路由環導致網絡丟包
這是一個實際發生的分析網絡大量丟包原因的案例,用戶的網絡丟包現象很嚴重,給用戶造成了很大的困擾,我們試圖通過流量分析的手段來分析造成網絡丟包的原因。
網絡環境
用戶的網絡是一個覆蓋全省的網絡環境,包括省中心局域網和跨地市的廣域網構成,并同全國的廣域網絡相連。網絡拓撲如下:
用戶網絡環境圖
網絡異常現象描述
該網絡丟包現象嚴重,如果通過省局域網向地市網絡或全國網絡發包,每發出 10 個 PING 包將只能收到 7 個 REPLY 包,丟包率在 30% 左右,這樣,網絡丟報對一些網絡應用運行產生很大的影響,應用運行緩慢,甚至有些應用無法正常運行。
在此期間,網絡設備的運行沒有發現異常,局域網和廣域網的物理鏈路也未發現異常。
網絡丟包分析手段
造成網絡丟包可能的原因很多,包括鏈路層原因和網絡層問題,而網絡擁塞也是造成網絡丟包非常可能的原因。為了分析是否是由于網絡擁塞引起的網絡丟包,我們采用流量分析的手段進行分析定位。
找出產生網絡流量最大的主機
當網絡出現擁塞時,我們需要對造成擁塞的原因進行分析,一般首先我們先分析產生流量最大的主機,我們利用 Sniffer 的 Host Table 功能,將該網絡所有計算機產生的網絡流量按照發出數據包的包數多少進行排序,結果如下圖。
Host Table分析每臺主機到流量
從圖 3-14 中我們看到, IP 地址為 10.22.0.25 的主機發出數據包最多,遠遠超過了其他主機,相應產生的流量也最大,該主機向網絡中大量發送數據是造成網絡擁塞的重要原因
我們對省局域網交換機到二級網路由器鏈路的網絡流量進行了監控,其中二級網路由器的局域網絡接口為10M,我們在局域網交換機上設置鏡像口(SPANPORT),將該鏈路流量鏡像到一個百兆網絡接口上,并用Sniffer協議分析儀接入該鏡像口,監控分析該鏈路的網絡流量來確定是否存在流量異常現象。
網絡流量分析過程
1. 網絡總體流量監控
我們首先通過Sniffer Pro的History Samples(歷史抽樣)功能監控該鏡像鏈路上的網絡利用率狀況,我們得到如下結果:
該鏈路到利用率情況
該鏈路每秒鐘實際傳輸數字
從以上的監控結果中我們可以看到,在大約每 40 秒的周期內,該鏈路中的網絡流量會出現15秒的峰值,而且非常規律,峰值流量大約為20Mb/s,考慮到路由器同交換機的接口為 10Mb/s (全雙工工作時為 20Mb/s ),則我們看到這時的網絡利用率為100%!
通過 Sniffer 對該鏈路流量進行監控分析,我們很直觀的可以看到該鏈路出現周期性的網絡擁塞,而這個周期和網絡的丟包時間規律非常吻合,我們可以非常肯定的認定,這種流量的異常峰值是導致網絡中大量的丟包的重要原因。
#p#副標題#e#
分析這臺主機的網絡流量
確定該主機大量發送流量是造成網絡擁塞的主要原因后,我們需要進一步對該主機的流量進行分析,也就是對他在網絡中正在做什么進行分析,可以稱為對他的網絡行為進行分析。
首先我們分析該主機的網絡流量流向,也就是分析它在向誰發包,我們利用Sniffer 的 Matrix 功能來監控。
主機的會話
通過Sniffer的Matrix,我們發現IP地址為10.22.0.25的主機發出的數據包很分散,我們調查了一下,發現IP地址為10.22.0.25的主機為該網絡的網絡管理系統主機,而它發包的對象是該網絡中地市級路由器的IP地址,也就是說網絡的網管主機向地市路由器發出大量的網絡包,導致網絡流量異常并導致網絡大量丟包,使網絡處于不穩定狀態。
在發現這個問題后,我們將該網管主機的網絡連接解除,發現網絡馬上恢復到了正常狀態,不在有丟包現象發生,看起來這個網絡的問題完全是由這臺網管主機引起的一樣,但這種現象非常難以理解,為什么網管主機會造成網絡問題呢。
我們利用Sniffer的Decode功能將捕獲到的網絡流量解碼,來分析網管主機發出的數據包的內容,看看到底它發出了什么樣的數據包,從而進行進一步的網絡行為分析。
解碼分析其發送到網絡流量
我們通過Sniffer的Decode發現這臺網絡主機向網絡中地市路由器發送大量的ICMP Echo數據包,也就是Ping包,我們對其向10.22.127.246發送的ICMP Echo包進行分析,發現了奇怪的現象。
我們對我們捕獲的由 10.22.0.25 向 10.22.127.246 發送的 ICMP Echo 包其中相鄰的數據包進行解碼分析,圖3-16為其發出的第739個數據包,圖3-17為其發出的第740個數據包,我們發現這兩個包的IP Identification是一樣的,都是 15633 ,每個 IP 包都會有一個特定的 Identification 來標志其唯一性,這說明我們捕獲到的這兩個數據包其實是同一個IP包。
路由器分析之解碼分析
而捕獲到的這個數據包的Time to live也就是TTL值一個為251,另一個為250,TTL為IP包的生存時間,每經過一個路由處理,TTL值就會被減一,直至到0后被路由器丟掉。
我們看到其他的數據包也是同樣的情況,這個 IP ID 為 15663 的數據包不斷在網絡中出現,直到TTL值減到0,這種現象清楚的表明,網絡里存在著路由環,發向10.22.127.246的數據包是在路由器間不斷的互相傳遞,最終被丟掉,這種現象也可以稱為路由乒乓現象,出現路由環后,一個數據包將重復在網絡中傳送,而且瞬時流量會異常的大,造成網絡異常,這正和該網絡的網絡異常現象相吻合。
為什么會出現路由環呢,我們對其網絡進行了詳細的了解,發現其在路由器中設置了大量的靜態路由,其路由設置如圖3-18所示。
從圖 3-18中我們可以看出,如果二級網路由器同地市網絡路由器之間的DDN網絡連接一旦中斷,二級網路由器中所設的指向地市網絡路由器的靜態路由就會由于端口狀態問題而無效,而其到各地市網段的路由指向就會采用缺省路由指向而指回省局域網交換機,這樣路由的乒乓現象就形成了。
事實上當時的地市網絡并未調通,但網絡的路由都已經設置完成了,同時各地市路由器的 IP 地址已經添加到了網管系統中,網管系統在固定的時間間隔內向這些路由器發出ICMP包,驗證這些路由器是否能夠訪問到,而這些ICMP包卻在省局域網交換機和二級網路由器間被放大形成乒乓現象,造成網絡丟包現象嚴重。
路由環導致網絡丟包中主機的網絡流量的分析過程就為大家介紹完了,這個案例告訴我們,在配置靜態路由時要非常小心,最好不要在網絡配置中采用靜態路由.希望大家能夠掌握。
原文鏈接:http://network.51cto.com/art/201104/255424.htm