當前位置:
首頁 > 最新 > Wireshark捕獲過濾器在處理網上問題時的應用

Wireshark捕獲過濾器在處理網上問題時的應用

捕獲過濾之前的文章有提到過,捕獲過濾器最直觀的好處是節省主機的資源,Wireshark只捕獲顯示特定協議的報文,大大節省了主機資源,如果不使用捕獲過濾器,在一個流量稍微多點的網路環境中,如果用wireshark抓取全部的報文,不需要多久,電腦就卡死動不了了,這一點相信很多的一線的攻城獅深有感觸。Wireshark捕獲過濾器除了能節省主機資源,更重要的一點是能夠設置抓包自動保存,按照報文量自動切割保存,這一點對於定位一些問題時非常有用。

之前本人接到一個報障,某用戶連接無線之後經常概率性出現網路掉線的情況,後來經過一步一步分析,發現網路掉線時電腦的沒有獲取到IP地址,沒有獲取到IP地址是DHCP伺服器沒有響應DHCP請求呢,還是AP沒有轉發響應報文呢?(AP是瘦模式,通過AC集中轉發),在沒有確定問題之前,這些都是懷疑點,由於問題是概率出現,出現也隨機性,且出現後也不是無法自動恢復,這給定位帶來一定的難度,分析諸多定位方法後,最終採用wireshark抓包是最適合的方法,當然用wireshark抓包也需要一些設置條件,而設置的條件其實就是捕獲過濾器。

首先分析需要抓取哪些協議,這個過程中對定位問題最有效的協議是ARP,DHCP,ICMP(為了更直觀發現是不是沒有獲取到IP,電腦一直ping網關)。

確定了需要抓取的協議之後,我們就要開始抓包,由於問題出現的時間點不確定,我們就一直抓包,直到手動停止,wireshark抓包如果不進行一些設置,是只保存為一個文件的,雖然只抓取了部分協議,但是時間長了,報文量也是很大,如果達到GBtye的量,這裡又有幾個故障點,一是普通PC機想要打開上GBtye的Wireshark文件,PC資源消耗巨大,估計載入文件很慢,完全打開之後,電腦操作也慢,其二對裝有wireshark的主機也是很大的挑戰,實時抓取這麼量的報文,萬一主機沒抗住,崩潰了,抓包豈不是功虧一簣了,因此這裡又需要用到捕獲過濾的按報文大小自動切割分組保存的功能。

好了,鋪墊那麼多,該到底怎麼使用這個捕獲過濾器呢?

啟動Wireshark,設置捕獲,具體的步驟如上圖所示。

接下來設置分組存儲條件,選擇輸出

文件:對此次抓包文件的存儲位置及名稱

輸出格式:對高版本的Wireshark,兩種格式都行,低版本的Wireshark建議選擇pcap

自定創建文件:可以按大小自動創建,也可以按時間自動創建,根據實際需要自行選擇,本例中,選擇了每100MBtye自動保存創建新的文件

設置完上述參數,點擊開始就可以自動運行抓包了。

上述完成之後,wireshark就根據設置的條件,自動分組存儲

ARP_00001_20180405103515

ARP:自己設置的文件名

00001:保存的第一份報文,後續按照00002自動保存

20180405103515:保存的時間,2018年4月5日10時35分15秒

再回到本文一開始說的無線問題,經過設置捕獲過濾器抓包之後,通過報文發現,當電腦的租約快到期時,PC已經發出去了DHCP請求報文,伺服器也給回了,但是回的目的MAC不對,不是對應的PC的MAC,而不是廣播MAC,至此問題就清晰了。

通過上述分析,捕獲過濾器在解決某些問題時具有很好的效果,而整個捕獲器運用的難點在於過濾條件的使用,即過濾語法,下面對過濾語法進行一些舉例。

Protocol(協議): ether,fddi, ip,arp,rarp,decnet,lat, sca,moprc,mopdl, tcp , udp 等,如果沒指明協議類型,則默認為捕捉所有支持的協議。

Direction(方向):src, dst,src and dst, src or dst等,如果沒指明方向,則默認使用 「src or dst」 作為關鍵字。

Host(s): net, port, host, portrange等,默認使用」host」關鍵字

Logical Operations(邏輯運算):not, and, or 等,否(「not」)具有最高的優先順序。或(「or」)和與(「and」)具有相同的優先順序,運算時從左至右進行。

下面介紹一些常用的過濾語句:

host 192.168.1.5 and port 80 and http#只捕獲主機192.168.1.5 的http流量。

port 80 and http#捕獲所有經過該介面的http流量

host192.168.1.5and not port 80# 捕獲主機192.168.1.5除 http 之外的其他所有流量

not port 80 # 捕獲除 http 之外的其他所有流量,

not port 80 and !http#捕獲除 http 之外的其他所有流量

host192.168.1.5#捕獲源或目主機為192.168.1.5

dst192.168.1.5#捕獲目的主機均為192.168.1.5

src192.168.1.5#捕獲來源主機均為192.168.1.5

net192.168.1.0/24#捕獲網段為192.168.1.0的所有主機的所有流量

host192.168.1.5and port 53 # 只捕獲主機192.168.1.5且埠為53的流量。

src192.168.1.5and port 53 #只捕獲源為192.168.1.5且埠為53 的流量。

dst192.168.1.5and port 53 #只捕獲目的為192.168.1.5且埠為53的流量

port 53#捕獲介面中的埠為53的流量

host192.168.1.5and arp#只捕獲主機192.168.5.231 的arp流量。

host192.168.1.5and !arp #只捕獲主機192.168.1.5除arp外的所有流量。

arp#捕獲介面中的所有arp協議

!arp #捕獲介面中所有非arp協議。

tcp portrange 8000-9000 an port 80#捕獲埠8000-9000之間和80埠的流量

port 5060#捕獲sip流量,因為sip的默認埠是5060

vlan #捕獲所有vlan 的流量

vlan and (host 192.168.5.0 and port 80)#捕獲vlan 中主機192.168.5.0且埠為80的流量

pppoes #捕獲所有的pppoes流量

pppoes and (host192.168.1.5and port 80) #捕獲且主機為192.168.1.5埠為80的流量


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT測試鍋 的精彩文章:

TAG:IT測試鍋 |