前言
今天浩道跟大家分享硬核網絡故障排錯干貨,主要針對網絡丟包時常用的排錯思路。讓你遇到網絡丟包時,不再迷茫!
01
什么是網絡丟包
說明網絡丟包之前,你需要了解的是收發包的原理。
數據在 Internet 上是以數據包為單位傳輸的,單位為字節,數據在網絡上傳輸,受網絡設備,網絡質量等原因的影響,使得接收到的數據小于發送出去的數據,造成丟包。
了解了收發包的原理,可以了解到丟包原因主要會涉及?卡設備、?卡驅動、內核協議棧三?類。
在文章開頭說到一點,網絡丟包是在使用Ping對目的站進行詢問時,數據包由于各種原因在信道中丟失的現象。
Ping命令使用了ICMP回送請求與回送回答報文。
ICMP回送請求報文是主機或路由器向一個特定的目的主機發出的詢問,收到此報文的機器必須給源主機發送ICMP回送回答報文。
這種詢問報文,是用來測試目的站是否可到達以及了解其狀態。
需要指出的是,Ping命令是直接使用網絡層ICMP協議的一個例子,它沒有通過運輸層的UDP或TCP協議。
網絡丟包是網絡中常見的故障之一,它會引起網速降低甚至造成網絡中斷。
發生網絡故障在所難免,但是如何快速隔離和排除故障是網絡工程師應該具備的基本素質。
02
常見的丟包故障現象+處理方法
01 網絡數據包發送時通時斷,丟包嚴重
【故障現象】
通常故障發生時,該方向網絡出現震蕩性中斷。使用Ping命令測試,發現在一段時間內數據包發送延時比正常值略高,間隔一小段時間數據包又全部丟失,丟包率超過60%,丟包曲線成規則狀,網絡服務基本不可用。
【故障分析】
在局域網中引起網絡發生振蕩性時斷時通,一般可能是由于互連的交換機中的某兩個交換機間出現了環路,或者某個交換機的兩個端口直接相連。
這樣就會造成局域網的生成樹協議構建失敗,不斷重復檢查并試圖構建新的生成樹網絡,從而導致網絡振蕩性通斷。
同時,伴隨著交換機間不斷重復地發送廣播包,就會形成“廣播風暴”,使交換機負擔過重,網絡傳輸通道嚴重被堵塞,無法正常的處理通信數據。
環路雖然可能出現在某個接入交換機上,但會影響整個以三層交換機為核心的局域網的穩定運行。
【故障處理】
當發現網絡數據包發送時通時斷,丟包嚴重,特別是整個單位或整個樓層出現振蕩性中斷現象時,則可以判定應該是該單位的某個交換機上出現了環路所致。
作為網絡管理人員應首先查看各接入交換機的指示燈閃爍狀態,通常出現環路狀況會指示燈會急速閃爍,次數每秒4次以上,所環交換機更為突出。
逐個撥出交換機級聯接入網線,同時實時監控交換機狀態,在撥下某端口網線后,交換機指示燈恢復正常狀態,再進一步查找,會發現該連接線的末端有線路形成環路,清理該網線后,網絡恢復暢通。
02 網絡數據包發送超時現象嚴重,時有不規則丟包
【故障現象】
網絡突然出現嚴重堵塞,日常辦公程序不能正常運行,打開網頁速度緩慢,有時會因超時而中斷。未發現網絡設備有任何問題,該網絡中有幾臺計算機在入網后速度明顯變慢,在禁用網卡或者中斷網絡后恢復正常。
【故障分析】
首先,在一臺用戶終端上ping網關測試,結果可以ping通網關,但是數據包發送超時現象嚴重,丟包率30%左右,丟包不規律。
其次,登陸用戶交換機,運行arp -a命令,發現網關IP和網關MAC地址指向正確。
通過上面的測試基本排除網絡設置錯誤以及ARP欺騙,丟包表現了一定的隨機性而沒有連續性和振蕩性的通斷,基本排除網絡環路問題,初步判斷這種現象可能是病毒攻擊等引起的。
為此,需要進一步獲取ARP信息、網絡中傳輸的原始數據包等信息。
再次,部署抓包分析。在該交換機上配置鏡像端口,并將維護終端接到此端口上,啟動網絡協議分析工具(sniffer)捕獲分析網絡的數據通信,約10分鐘后停止。
在網絡分析系統主界面左邊的節點瀏覽器中發現,網絡中可能存在偽造IP地址攻擊或自動掃描攻擊。
選擇連接視圖,發現在10分鐘內,網絡中共發起了12000多個連接,且狀態大多都是客戶端請求同步。
據此,斷定網絡中存在自動掃描攻擊。
最后,詳細查看連接信息,發現這些連接大多都是由同一主機發起,選中任意一個連接,選擇數據包視圖,查看傳輸數據的原始解碼信息,發現這臺計算機正在主動對網絡中其它主機的TCP 445端口進行掃描攻擊,可能是主機感染病毒程序,或者有人正使用掃描軟件。通過分析圖表視圖,進一步確定主機肯定存在自動掃描攻擊。
【故障處理】
找到問題根源后,對主機進行隔離,經過一段時間的測試,網絡丟包現象有所緩解,但沒有從根本上解決問題。
于是再次啟動網絡協議分析系統捕獲并分析,又發現了1臺相似情況的主機。據此基本可以斷定兩臺主機都是感染了病毒,且該病毒會主動掃描網絡中其他主機是否打開TCP 445端口,如果某主機打開該端口,就攻擊并感染這臺主機。
如此循環,即引發了上述的網絡故障。立即對新發現感染病毒的兩臺主機進行物理隔離,網絡通信立刻恢復正常,再對該終端進行殺毒處理。
03 網絡數據包發生嚴重延時現象,下載、瀏覽等服務不能正常使用
【故障現象】
局域網內部日常數據共享正常,但是出局瀏覽外網和下載數據時速度明顯降低,使用Ping命令發現到某個方向網絡時延特別大,甚至有少量丟包現象。
【故障分析】
一般通過telnet遠程登陸到該方向的交換機,以華為系列交換機為例,輸入下列命令:
#Display cpu 查看交換機CPU利用率#Display memory 查看內存利用率
發現兩者都非常高,再通過輸入命令 #Display interface端口號,檢查各端口下的數據流。
對其數據流進行抓包分析,發現多線程指向某網站電影欄目,為避免影響整個網絡的暢通,對所接入交換機進行處理。
發現其中的兩個端口數據流量特別大,遠高于正常使用的網絡流量。對其數據流進行抓包分析,發現多線程指向某網站電影欄目,為避免影響整個網絡的暢通,對所接入交換機進行處理。
【故障處理】
進入該端口配置界面下,輸入Shutdown命令,強制關閉該端口使其斷網,聯系該終端使用人員,令其終止下載進程后,再恢復其網絡。
寫在最后:
最后想補充一點,很多網工用Ping命令來檢測丟包情況,但其實除了Ping,常用的tracert,nslookup 都可以用來判斷主機的網絡連通性。
而且 Linux 下有一個更好用的網絡聯通性判斷工具,它可以結合ping nslookup traceroute 來判斷網絡的相關特性,這個命令就是 mtr。
mtr 全稱 my traceroute,是一個把 ping 和 traceroute 合并到一個程序的網絡診斷工具。
traceroute 默認使用 UDP 數據包探測,而 mtr 默認使用 ICMP 報文探測,ICMP 在某些路由節點的優先級要比其他數據包低,所以測試得到的數據可能低于實際情況。
-
網絡
+關注
關注
14文章
7565瀏覽量
88788 -
路由器
+關注
關注
22文章
3732瀏覽量
113779 -
數據包
+關注
關注
0文章
261瀏覽量
24394
原文標題:出現網絡丟包時,無計可施?看看這篇吧!
文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論