如何分析數據包判斷網路故障?
01-15
怎麼學習分析數據包呢?誰能推薦一下學習方法,還有教材或者網站什麼的?
PS:抓的包裡面那些16進位內容我都能翻譯過來是什麼意思,但是我不明白,就算知道那些內容了,怎麼判斷網路故障呢?
這個問題我也來說兩句
從網路抓包是可以分析出很多東西,其中一項就是用來做排錯。
根據個人的實際經驗,用抓包來排錯有分為幾種情況:1、通過數據包的有無來判斷故障,一般用於防火牆策略調試等場景,在防火牆上進行抓包,或交換機上鏡像抓包,或者這交換機內嵌抓包功能。這種抓包無需進行過多分析。2、網路故障,已經明確網路設備配置不存在問題的情況下,通過抓包來判斷問題,我把這主要分為行為判斷和協議判斷。1)最常見的是通過抓包數量來判定網路行為的是否正常,比如ARP病毒爆發一定會收到大量ARP數據包;攻擊行為也很多時候體現為大量數據包(但是一般判斷這種攻擊行為抓包不會放在第一步,只是在確定攻擊特徵時需要抓包);當然還有其他很多情況,適用於通過抓包數量來分析的。
2)通信質量判斷,抓包存在大量的重傳,此時通信質量一般都不太好。另外有視頻和語音的應用場景中,有時需要通過時間統計來判斷通信毛刺,來分析定位視頻和語音通信質量問題。3)協議判斷,比如win2008和win2003通信時因為windowscale不兼容,導致窗口過小,而程序設計適當時,通信變動極其緩慢。這些判斷都是建立在抓包協議分析的基礎上的;另外不同廠商SIP通信對接也有可能會用到協議分析,其中一種方式就是抓包分析。綜合而言,協議分析時要求比較高,很多人都可以說把基礎學好,但是對應實際工作多年的人,TCP/IP的協議學習一般都是多年前的事情,而且不同操作系統,對於協議棧的實現是有區別的,這部分析的工作一般都是出現問題後有針對性查資料來解決的。說了這麼多,針對抓包分析我個人的意見是:排查問題關鍵是思路,真的用到協議層判斷的場景相對而言還是比較少,初學這不必過分糾結。但是從另外一個方面來看,能深入協議層進行排錯的網工,都是具備鑽研精神的,屬於高級排錯的一部分。
在網路上捕獲的數據包只能讓你知道什麼包發出來了,什麼包沒有收到,那至於什麼包沒有收到還是需要對特定的協議的了解。
舉個例子:比如你想trouble shooting DHCP , 捕獲的包只有 DHCP discovery ,而且不停地發,沒有DHCP offer,如果熟悉這個協議,你就可以有以下推測:DHCP relay 沒有配置好,DHCP server down 掉了,或者服務沒開,或者防火牆block掉了DHCP報文,或者ACL deny 掉DHCP報文,等等。
所以抓包工具只是一個輔助工具,如果想學習一個協議,先找個容易的例子 ,然後做個實驗,等理解了在看看RFC文檔,可以有更深刻的認識。tcpip詳解,三卷,你先通讀一遍,然後再精讀兩遍第一卷,協議。這樣你能看懂報文了。
剩下的,你要分析什麼協議,就去看看這個協議的實現吧。
基本思路就是,出了故障,做分析,定位故障的層面,涉及到哪個協議,哪個階段,然後抓包,篩選出對應的報文,然後讀報文,看報文中的欄位反應的情況是否和你分析的一致,如果和你分析的一致,則證明你的分析很大可能是正確的,按你的分析去排錯,如果和你分析的不一致,則推倒重來謝邀。第一,推薦一本書《wireshark數據包分析實戰》,了解常用的工具如何使用。第二,要熟悉需要分析協議內容,例如分析sip協議的話,需要熟悉常用報文的每個欄位是怎樣的?還是舉個例子,sip200消息是做什麼用的?它的格式是怎樣的?應該攜帶的欄位是哪些?
會抓包和會分析包是兩個概念,會分析包和判斷出問題又不一樣。
建議樓主可以從實際問題出發,從協議以及信令入手,層層來看,找到關鍵欄位。
自動翻譯一部分了
用故障診斷命令(ping、dig、traceroute)不是也一樣可以判斷網路故障,比抓包看數據方便我現在經常用網速通APP來查故障,其中有個幫幫測可以一次執行DNS檢測、網站檢測、路由檢測,報告很有用
謝邀網路出錯了就抓包排錯,有的時候排錯也是純粹的經驗之談。
推薦閱讀:
※網路工程師有必要非得去系統集成商鍛煉么?
※為什麼計算機專業書籍鼓勵讀英文原版?
※用tracert命令追蹤路由,出現了相同的IP地址,怎麼解釋?
※想考網路工程師,希望能給出一些建議?
※學完了網路工程師怎麼找不到工作呢?