1 了解WireShark
1.1 什麼是Wireshark
Wireshark 是網絡封包分析工具。網絡封包分析工具的主要作用是嘗試捕獲網絡封包, 并嘗試顯示封包盡可能詳細的内容。過去的此類工具要麼太貴,要麼是非公開的。 直到Wireshark(Ethereal)出現以後,這種情況才得以改變。Wireshark可以算得上是今天能使用的最好的開源網絡分析軟體。
1.2 WireShark簡史
1997年,Gerald Combs 需要一個工具追蹤網絡問題,并且想學習網絡知識。是以他開始開發Ethereal (Wireshark項目以前的名稱) 以解決自己的需求。1998年,Ethreal0.2.0版誕生了。此後不久,越來越多的人發現了它的潛力,并為其提供了底層分析。2006年Ethreal改名為Wireshark.。2008年,在經過了十年的發展後,Wireshark釋出了1.0版本。
1.3 WireShark可以做什麼
簡而言之,WireShark主要作用就是可以抓取各種端口的封包,包括有線網口、無線網口、USB口、LoopBack口等等,進而就可以很友善地進行協定學習、網絡分析、系統排錯等後續任務。
1.4 不同平台下的WireShark
目前WireShark支援幾乎所有主流封包檔案,包括pcap,cap ,pkt,enc等等。但是不同平台下的WireShark卻有功能上的不同。總體來說,Linux版本WireShark的功能和特性比Windows版本的要豐富和強大。例如,Linux版本的WireShark可以直接抓取USB接口封包,而Windows版本就不行。
Figure 1,Linux下的WireShark
Figure 2,Windows下WireShark
Figure 3,各平台下的WireShark所支援的協定
各平台下的WireShark支援的協定如上圖所示。從圖中可以看到Linux下的版本功能最強大,由于平台本身特性,可以使WireShark幾乎支援所有協定。但由于我們平時工作中主要抓取以太網封包,且絕大部分的作業系統都是Windows,是以本文還是以Windows平台下的WireShark為例來進行說明。
2 使用WireShark抓取封包
2.1 WireShark組網拓撲
為了抓到HostA與HostB之間的封包,下面介紹幾種WireShark組網。
2.1.1 線上抓取
如果WireShark本身就是組網中的一部分,那麼,很簡單,直接抓取封包就行了。
Figure 4,Switched Media-Same Computer
2.1.2 串聯抓取
串聯組網是在封包鍊路中間串聯一個裝置,利用這個中間裝置來抓取封包。這個中間裝置可以是一個HUB,利用HUB會對域内封包進行廣播的特性,接在HUB上的WireShark也能收到封包。
Figure 5,Switched Media –“Hubbing Out”
若是WireShark有雙網卡,正确設定網絡轉發,直接串接在鍊路上。
也可以利用Tap分路器對來去的封包進行分路,把封包引到WireShark上。
串聯組網的好處是封包都必須經過中間裝置,所有包都能抓到。缺點是除非原本就已經規劃好,不然要把封包鍊路斷開,插入一個中間裝置,會中斷流量,是以一般用于學習研究,不适用于實際業務網。
2.1.3 并聯抓取
并聯組網是将現有流量通過現網裝置本身的特性将流量引出來。若是網絡本身通過HUB組網的,那麼将WireShark連上HUB就可以。
若是交換機組網,那直接連上也能抓取廣播封包。
當然,最常用的還是利用交換機的鏡像功能來抓包。
并聯組網的優點是不用破壞現有組網,适合有業務的線上網絡。缺點是HUB組網已經不常見,而交換機組網的裝置開啟鏡像後,對性能有非常大的影響。
2.2 WireShark的安裝
WireShark是免費開源軟體,在網上可以很輕松擷取到。 Windows版的WireShark分為32位而64位兩個版本,根據系統的情況來決定安裝哪一個版本,雖然64位系統裝32位軟體也能使用,但裝相應比對的版本,相容性及性能都會好一些。在Windows下,WireShark的底層抓包工具是Winpcap,一般來說WireShark安裝包内本身就包含了對應可用版本的Winpcap,在安裝的時候注意鈎選安裝就可以。安裝過程很簡單,不再贅述。
2.3 使用WireShark抓取網絡封包
1. 選擇需要抓取的接口,點選Start就開始抓包。
2.4 使用WireShark抓取MPLS封包
對于mpls封包,wireshark可以直接抓取帶MPLS标簽的封包。
2.5 使用WireShark抓取帶Vlan Tag的封包
早期網卡的驅動不會對VLAN TAG進行處理,而是直接送給上層處理,在這種環境下,WireShark可以正常抓到帶VLAN TAG的封包。而Intel,broadcom,marvell的網卡則會對封包進行處理,去掉TAG後再送到上層處理,是以WireShark在這種情況下通常抓不到VLAN TAG。這時我們需要針對這些網卡做一些設定,WireShark才能夠抓取帶VLAN TAG的封包。
1. 更新網卡的最新驅動
2. 按照以下說明修改系統資料庫
3. 以Intel網卡為例,對網卡進行配置
選擇Intel網卡的本地連接配接,右鍵屬性
點選“配置”按鈕。
在VLAN頁籤中,加入任意一個VLAN,激活接口的VLAN TAG上送功能。此時可以把“本地連接配接”接口看成是一個Trunk接口。
配置完VLAN後,如果發現系統禁用了“本地連接配接”接口,則隻要啟用它,會看到網絡連接配接中會出現一個新的子接口“本地連接配接2”。
在WireShark上檢視抓取“本地連接配接”接口的封包。
可以看到已經可以抓到有VLAN TAG的封包了。
由于此時的子接口都是有VLAN屬性的,是以無法當成正常的網卡來用。如果想要在抓VLAN包的同時,還能夠與網絡正常通信,隻要再建立一個未标記的VLAN就行。
這時,會生成一個對應的子接口“本地連接配接3”,在這個接口上正确配置網絡參數,就可以正常通信了。
加群交流在背景回複“加群”,添加小編微信,小編拉你進去
END