溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux 環(huán)境下通過(guò)mtr命令行工具進(jìn)行鏈路測(cè)試

發(fā)布時(shí)間:2020-08-28 11:17:46 來(lái)源:億速云 閱讀:253 作者:小新 欄目:建站服務(wù)器

這篇文章主要介紹了Linux 環(huán)境下通過(guò)mtr命令行工具進(jìn)行鏈路測(cè)試,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

Linux實(shí)例網(wǎng)站訪問(wèn)丟包延時(shí)高

當(dāng)網(wǎng)站訪問(wèn)很慢或無(wú)法訪問(wèn)時(shí),若排除其它顯著問(wèn)題,而檢測(cè)到 ping 有明顯丟包時(shí),建議您作鏈路測(cè)試。Linux 環(huán)境下,您可以通過(guò) mtr 命令行工具(優(yōu)先使用) 或 traceroute 命令行工具進(jìn)行鏈路測(cè)試來(lái)判斷問(wèn)題來(lái)源。

通常情況下,請(qǐng)依照下述步驟進(jìn)行處理:

利用鏈路測(cè)試工具探測(cè)網(wǎng)絡(luò)狀況和服務(wù)器狀態(tài)。

根據(jù)鏈路測(cè)試結(jié)果分析處理。

mtr 命令行工具(優(yōu)先使用)

mtr (My traceroute)幾乎是所有 Linux 發(fā)行版本預(yù)裝的網(wǎng)絡(luò)測(cè)試工具,集成了 tracert 與 ping 這兩個(gè)命令的圖形界面,功能十分強(qiáng)大。

ping 與 tracert 通常被用來(lái)檢測(cè)網(wǎng)絡(luò)狀況和服務(wù)器狀態(tài),具體說(shuō)明如下:

Linux 環(huán)境下通過(guò)mtr命令行工具進(jìn)行鏈路測(cè)試

mtr 默認(rèn)發(fā)送 ICMP 數(shù)據(jù)包進(jìn)行鏈路探測(cè),通過(guò) -u 參數(shù)來(lái)指定 UDP 數(shù)據(jù)包用于探測(cè)。相對(duì)于 traceroute 只作一次鏈路跟蹤測(cè)試,mtr 會(huì)對(duì)鏈路上的相關(guān)節(jié)點(diǎn)做持續(xù)探測(cè)并給出相應(yīng)的統(tǒng)計(jì)信息。mtr 能避免節(jié)點(diǎn)波動(dòng)對(duì)測(cè)試結(jié)果的影響,所以其測(cè)試結(jié)果更正確,建議優(yōu)先使用。

用法說(shuō)明

mtr [-hvrctglspni46] [--help] [--version] [--report]
                [--report-cycles=COUNT] [--curses] [--gtk]
                [--raw] [--split] [--no-dns] [--address interface]
                [--psize=bytes/-s bytes]
                [--interval=SECONDS] HOSTNAME [PACKETSIZE]

示例輸出

[root@centos ~]# mtr 223.5.5.5
                                  My traceroute  [v0.75]
mycentos6.6 (0.0.0.0)                                             Wed Jun 15 23:16:27 2016
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                  Packets               Pings
 Host                                           Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. ???
 2. 192.168.17.20                                0.0%     7   13.1   5.6   2.1  14.7   5.7
 3. 111.1.20.41                                  0.0%     7    3.0  99.2   2.7 632.1 235.4
 4. 111.1.34.197                                 0.0%     7    1.8   2.0   1.2   2.9   0.6
 5. 211.138.114.25                               0.0%     6    0.9   4.7   0.9  13.9   5.8
 6. 211.138.114.70                               0.0%     6    1.8  22.8   1.8  50.8  23.6
    211.138.128.134
    211.138.114.2
    211.138.114.66
 7. 42.120.244.186                               0.0%     6    1.4   1.6   1.3   1.8   0.2
    42.120.244.198
 8. 42.120.244.246                               0.0%     6    2.8   2.9   2.6   3.2   0.2
    42.120.244.242
 9. ???
10. 223.5.5.5                                    0.0%     6    2.7   2.7   2.5   3.2   0.3

常見可選參數(shù)說(shuō)明

-r 或 —report:以報(bào)告模式顯示輸出。

-p 或 —split:將每次追蹤的結(jié)果分別列出來(lái),而非如 —report 統(tǒng)計(jì)整個(gè)結(jié)果。

-s 或 —psize:指定 ping 數(shù)據(jù)包的大小。

-n 或 —no-dns:不對(duì) IP 地址做域名反解析。

-a 或 —address:設(shè)置發(fā)送數(shù)據(jù)包的 IP 地址。用于主機(jī)有多個(gè) IP 時(shí)。

-4:只使用 IPv4 協(xié)議。

-6:只使用 IPv6 協(xié)議。

在 mtr 運(yùn)行過(guò)程中,您也可以輸入相應(yīng)字母來(lái)快速切換模式,各字母的含義如下:

? 或 h:顯示幫助菜單。

d:切換顯示模式。

n:切換啟用或禁用 DNS 域名解析。

u:切換使用 ICMP 或 UDP 數(shù)據(jù)包進(jìn)行探測(cè)。

返回結(jié)果說(shuō)明

默認(rèn)配置下,返回結(jié)果中各數(shù)據(jù)列的說(shuō)明如下:

第一列(Host):節(jié)點(diǎn) IP 地址和域名。如前面所示,按 n 鍵可以切換顯示。

第二列(Loss%):節(jié)點(diǎn)丟包率。

第三列(Snt):每秒發(fā)送數(shù)據(jù)包數(shù)。默認(rèn)值是 10,可以通過(guò)參數(shù) -c 指定。

第四列(Last):最近一次的探測(cè)延遲值。

第五、六、七列(Avg、Best、Wrst):分別是探測(cè)延遲的平均值、最小值和最大值。

第八列(StDev):標(biāo)準(zhǔn)偏差。越大說(shuō)明相應(yīng)節(jié)點(diǎn)越不穩(wěn)定。

traceroute 命令行工具

traceroute 是幾乎所有 Linux 發(fā)行版本預(yù)裝的網(wǎng)絡(luò)測(cè)試工具,用于跟蹤 Internet 協(xié)議(IP)數(shù)據(jù)包傳送到目標(biāo)地址時(shí)經(jīng)過(guò)的路徑。

traceroute 先發(fā)送具有小的最大存活時(shí)間值(Max_TTL)的 UDP 探測(cè)數(shù)據(jù)包,然后偵聽從網(wǎng)關(guān)開始的整個(gè)鏈路上的 ICMP TIME_EXCEEDED 響應(yīng)。探測(cè)從 TTL=1 開始,TTL 值逐步增加,直至接收到 ICMP PORT_UNREACHABLE 消息。ICMP PORT_UNREACHABLE 消息用于標(biāo)識(shí)目標(biāo)主機(jī)已經(jīng)被定位,或命令已經(jīng)達(dá)到允許跟蹤的最大 TTL 值。

traceroute 默認(rèn)發(fā)送 UDP 數(shù)據(jù)包進(jìn)行鏈路探測(cè)。可以通過(guò) -I 參數(shù)來(lái)指定發(fā)送 ICMP 數(shù)據(jù)包用于探測(cè)。

用法說(shuō)明

traceroute [-I] [ -m Max_ttl ] [ -n ] [ -p Port ] [ -q Nqueries ] [ -r ] 
[ -s SRC_Addr ] [  -t TypeOfService ] [ -f flow ] [ -v ] [  -w WaitTime ] Host [ PacketSize ]

示例輸出

[root@centos ~]# traceroute -I 223.5.5.5
traceroute to 223.5.5.5 (223.5.5.5), 30 hops max, 60 byte packets
 1  * * *
 2  192.168.17.20 (192.168.17.20)  3.965 ms  4.252 ms  4.531 ms
 3  111.1.20.41 (111.1.20.41)  6.109 ms  6.574 ms  6.996 ms
 4  111.1.34.197 (111.1.34.197)  2.407 ms  2.451 ms  2.533 ms
 5  211.138.114.25 (211.138.114.25)  1.321 ms  1.285 ms  1.304 ms
 6  211.138.114.70 (211.138.114.70)  2.417 ms 211.138.114.66 (211.138.114.66)  
 1.857 ms 211.138.114.70 (211.138.114.70)  2.002 ms
 7  42.120.244.194 (42.120.244.194)  2.570 ms  2.536 ms 42.120.244.186 (42.120.244.186)  1.585 ms
 8  42.120.244.246 (42.120.244.246)  2.706 ms  2.666 ms  2.437 ms
 9  * * *
10  public1.alidns.com (223.5.5.5)  2.817 ms  2.676 ms  2.401 ms

常見可選參數(shù)說(shuō)明

-d 使用 Socket 層級(jí)的排錯(cuò)功能。

-f 設(shè)置第一個(gè)檢測(cè)數(shù)據(jù)包的存活數(shù)值 TTL 的大小。

-F 設(shè)置不要分段標(biāo)識(shí)。

-g 設(shè)置來(lái)源路由網(wǎng)關(guān),最多可設(shè)置 8 個(gè)。

-i 使用指定的網(wǎng)卡送出數(shù)據(jù)包。用于主機(jī)有多個(gè)網(wǎng)卡時(shí)。

-I 使用 ICMP 數(shù)據(jù)包替代 UDP 數(shù)據(jù)包進(jìn)行探測(cè)。

-m 設(shè)置檢測(cè)數(shù)據(jù)包的最大存活數(shù)值 TTL 的大小。

-n 直接使用 IP 地址而非主機(jī)名稱(禁用 DNS 反查)。

-p 設(shè)置 UDP 傳輸協(xié)議的通信端口。

-r 忽略普通的 Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上。

-s 設(shè)置本地主機(jī)送出數(shù)據(jù)包的 IP 地址。

-t 設(shè)置檢測(cè)數(shù)據(jù)包的 TOS 數(shù)值。

-v 詳細(xì)顯示指令的執(zhí)行過(guò)程。

-w 設(shè)置等待遠(yuǎn)端主機(jī)回包時(shí)間。

-x 開啟或關(guān)閉數(shù)據(jù)包的正確性檢驗(yàn)。

分析鏈路測(cè)試結(jié)果

以如下鏈路測(cè)試結(jié)果示例圖為基礎(chǔ)進(jìn)行闡述:

Linux 環(huán)境下通過(guò)mtr命令行工具進(jìn)行鏈路測(cè)試

操作步驟

判斷各區(qū)域是否存在異常,并根據(jù)各區(qū)域的情況分別處理。

區(qū)域 A:客戶端本地網(wǎng)絡(luò),即本地局域網(wǎng)和本地網(wǎng)絡(luò)提供商網(wǎng)絡(luò)。針對(duì)該區(qū)域異常,客戶端本地網(wǎng)絡(luò)相關(guān)節(jié)點(diǎn)問(wèn)題,請(qǐng)對(duì)本地網(wǎng)絡(luò)進(jìn)行排查分析;本地網(wǎng)絡(luò)提供商網(wǎng)絡(luò)相關(guān)節(jié)點(diǎn)問(wèn)題,請(qǐng)向當(dāng)?shù)剡\(yùn)營(yíng)商反饋。

區(qū)域 B:運(yùn)營(yíng)商骨干網(wǎng)絡(luò)。針對(duì)該區(qū)域異常,可根據(jù)異常節(jié)點(diǎn) IP 查詢歸屬運(yùn)營(yíng)商,然后直接或通過(guò)阿里云售后技術(shù)支持,向相應(yīng)運(yùn)營(yíng)商反饋問(wèn)題。

區(qū)域 C:目標(biāo)服務(wù)器本地網(wǎng)絡(luò),即目標(biāo)主機(jī)歸屬網(wǎng)絡(luò)提供商網(wǎng)絡(luò)。針對(duì)該區(qū)域異常,需要向目標(biāo)主機(jī)歸屬網(wǎng)絡(luò)提供商反饋問(wèn)題。

結(jié)合 Avg(平均值)和 StDev(標(biāo)準(zhǔn)偏差),判斷各節(jié)點(diǎn)是否存在異常。

若 StDev 很高,則同步觀察相應(yīng)節(jié)點(diǎn)的 Best 和 Wrst,來(lái)判斷相應(yīng)節(jié)點(diǎn)是否存在異常。

若 StDev 不高,則通過(guò) Avg 來(lái)判斷相應(yīng)節(jié)點(diǎn)是否存在異常。

注意:上述 StDev 高 或者 不高,并沒有具體的時(shí)間范圍標(biāo)準(zhǔn)。而需要根據(jù)同一節(jié)點(diǎn)其它列的延遲值大小來(lái)進(jìn)行相對(duì)評(píng)估。比如,如果 Avg 為 30 ms,那么,當(dāng) StDev 為 25 ms,則認(rèn)為是很高的偏差。而如果 Avg 為 325 ms,則同樣的 StDev(25 ms),反而認(rèn)為是不高的偏差。

查看節(jié)點(diǎn)丟包率,若 Loss% 不為零,則說(shuō)明這一跳網(wǎng)絡(luò)可能存在問(wèn)題。

導(dǎo)致節(jié)點(diǎn)丟包的原因通常有兩種:

人為限制了節(jié)點(diǎn)的 ICMP 發(fā)送速率,導(dǎo)致丟包。

節(jié)點(diǎn)確實(shí)存在異常,導(dǎo)致丟包。

確定當(dāng)前異常節(jié)點(diǎn)的丟包原因。

若隨后節(jié)點(diǎn)均沒有丟包,說(shuō)明當(dāng)前節(jié)點(diǎn)丟包是由于運(yùn)營(yíng)商策略限制所致,可以忽略。如前文鏈路測(cè)試結(jié)果示例圖中的第 2 跳所示。

若隨后節(jié)點(diǎn)也出現(xiàn)丟包,說(shuō)明當(dāng)前節(jié)點(diǎn)存在網(wǎng)絡(luò)異常,導(dǎo)致丟包。如前文鏈路測(cè)試結(jié)果示例圖中的第 5 跳所示。

說(shuō)明:前述兩種情況可能同時(shí)發(fā)生,即相應(yīng)節(jié)點(diǎn)既存在策略限速,又存在網(wǎng)絡(luò)異常。對(duì)于這種情況,若當(dāng)前節(jié)點(diǎn)及其后續(xù)節(jié)點(diǎn)連續(xù)出現(xiàn)丟包,而且各節(jié)點(diǎn)的丟包率不同,則通常以最后幾跳的丟包率為準(zhǔn)。如前文鏈路測(cè)試結(jié)果示例圖所示,在第 5、6、7跳均出現(xiàn)了丟包。所以,最終丟包情況,以第 7 跳的 40% 作為參考。

通過(guò)查看是否有明顯的延遲,來(lái)確認(rèn)節(jié)點(diǎn)是否存在異常。通過(guò)如下兩個(gè)方面進(jìn)行分析:

若某一跳之后延遲明顯陡增,則通常判斷該節(jié)點(diǎn)存在網(wǎng)絡(luò)異常。如前文鏈路測(cè)試結(jié)果示例圖所示,從第 5 跳之后的后續(xù)節(jié)點(diǎn)延遲明顯陡增,則推斷是第 5 跳節(jié)點(diǎn)出現(xiàn)了網(wǎng)絡(luò)異常。

注意:高延遲并不一定完全意味著相應(yīng)節(jié)點(diǎn)存在異常,延遲大也有可能是在數(shù)據(jù)回包鏈路中引發(fā)的,建議結(jié)合 反向鏈路測(cè)試 一并分析。

ICMP 策略限速 也可能會(huì)導(dǎo)致相應(yīng)節(jié)點(diǎn)的延遲陡增,但后續(xù)節(jié)點(diǎn)通常會(huì)恢復(fù)正常。如前文鏈路測(cè)試結(jié)果示例圖所示,第 3 跳有 100% 的丟包率,同時(shí)延遲也明顯陡增。但隨后節(jié)點(diǎn)的延遲馬上恢復(fù)了正常。所以判斷該節(jié)點(diǎn)的延遲陡增及丟包是由于策略限速所致。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Linux 環(huán)境下通過(guò)mtr命令行工具進(jìn)行鏈路測(cè)試內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問(wèn)題就找億速云,詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI