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

網(wǎng)絡(luò)數(shù)據(jù)丟包的原因及攝像機(jī)丟包的原因
網(wǎng)絡(luò)排錯的基本步驟與案例
常見的云網(wǎng)絡(luò)丟包故障定位?法

Linux優(yōu)化實(shí)戰(zhàn):如何分析網(wǎng)絡(luò)丟包的問題
深入分析Linux網(wǎng)絡(luò)丟包問題!
深入分析Linux網(wǎng)絡(luò)丟包問題

如何檢測丟包?常用這兩種方式

基于V682-SONiC交換機(jī)的實(shí)現(xiàn)網(wǎng)絡(luò)丟包檢測的可視化

網(wǎng)絡(luò)丟包問題解析

網(wǎng)絡(luò)丟包故障如何定位

網(wǎng)絡(luò)丟包問題分析

網(wǎng)絡(luò)丟包率正常范圍及其影響因素
計(jì)算機(jī)網(wǎng)絡(luò)排錯思路總結(jié)

評論