這個(gè)網(wǎng)絡(luò)故障排查神器,運(yùn)維用了都說好!
原文連接:cloud.tencent.com/developer/article/1491610
↓推薦關(guān)注↓
常用的 ping,tracert,nslookup 一般用來判斷主機(jī)的網(wǎng)絡(luò)連通性,其實(shí) Linux 下有一個(gè)更好用的網(wǎng)絡(luò)聯(lián)通性判斷工具,它可以結(jié)合ping nslookup tracert 來判斷網(wǎng)絡(luò)的相關(guān)特性,這個(gè)命令就是 mtr。
mtr 全稱 my traceroute,是一個(gè)把 ping 和 traceroute 合并到一個(gè)程序的網(wǎng)絡(luò)診斷工具。
traceroute 默認(rèn)使用 UDP 數(shù)據(jù)包探測(cè),而 mtr 默認(rèn)使用 ICMP 報(bào)文探測(cè),ICMP 在某些路由節(jié)點(diǎn)的優(yōu)先級(jí)要比其他數(shù)據(jù)包低,所以測(cè)試得到的數(shù)據(jù)可能低于實(shí)際情況。
安裝方法
https://cdn.ipip.net/17mon/besttrace.exe 下載 BestTrace 工具并安裝。也可以在 https://github.com/oott123/WinMTR/releases GitHub上下載 MTR專用工具,該工具為免安裝,下載后可以直接使用。
# Debian/Ubuntu 系統(tǒng)sudo apt install mtr# RedHat/CentOS 系統(tǒng)sudo yum install mtr
3. Apple 客戶端可以在 App store 搜索 Best NetTools 下載安裝
使用
MTR 使用非常簡(jiǎn)單,查看本機(jī)到 qq.com 的路由以及連接情況直接運(yùn)行如下命令:
mtr qq.com

MTR qq.com 測(cè)試界面
具體輸出的參數(shù)含義為:
第一列是IP地址 丟包率:Loss 已發(fā)送的包數(shù):Snt 最后一個(gè)包的延時(shí):Last 平均延時(shí):Avg 最低延時(shí):Best 最差延時(shí):Wrst 方差(穩(wěn)定性):StDev
參數(shù)說明
-r or —report
-c 參數(shù)-s or —packetsize
-s 來指定ping數(shù)據(jù)包的大小mtr -s 100 qq.com
-c
指定發(fā)送數(shù)量
mtr -c 100 qq.com
-n
-n 選項(xiàng)來讓 mtr 只輸出 IP,而不對(duì)主機(jī) host name 進(jìn)行解釋mtr -n qq.com
MTR 結(jié)果分析
當(dāng)我們分析 MTR 報(bào)告時(shí)候,最好找出每一跳的任何問題。除了可以查看兩個(gè)服務(wù)器之間的路徑之外,MTR 在它的七列數(shù)據(jù)中提供了很多有價(jià)值的數(shù)據(jù)統(tǒng)計(jì)報(bào)告。Loss% 列展示了數(shù)據(jù)包在每一跳的丟失率。Snt 列記錄的多少個(gè)數(shù)據(jù)包被送出。使用 –report 參數(shù)默認(rèn)會(huì)送出10個(gè)數(shù)據(jù)包。如果使用 –report-cycles=[number-of-packets] 選項(xiàng),MTR 就會(huì)按照 [number-of-packets] 指定的數(shù)量發(fā)出 ICMP 數(shù)據(jù)包。
網(wǎng)絡(luò)丟包

人為限制MTR丟包

網(wǎng)絡(luò)延遲

MTR查看網(wǎng)絡(luò)延遲
從上面的MTR報(bào)告截圖中,我們可以看到從第11跳到12跳的延遲猛增,直接導(dǎo)致了后面的延遲也很大,一般有可能是11跳到12跳屬于不通地域,物理距離導(dǎo)致時(shí)延猛增,也有可能是第12條的路由器配置不當(dāng),或者是線路擁塞。需要具體問題進(jìn)行具體的分析。
然而,高延遲并不一定意味著當(dāng)前路由器有問題。延遲很大的原因也有可能是在返回過程中引發(fā)的。從這份報(bào)告的截圖看不到返回的路徑,返回的路徑可能是完全不同的線路,所以一般需要進(jìn)行雙向MTR測(cè)試。
注:ICMP 速率限制也可能會(huì)增加延遲,但是一般可以查看最后一條的時(shí)間延遲來判斷是否是上述情況。
根據(jù)MTR結(jié)果解決網(wǎng)絡(luò)問題
- END -
推薦閱讀 《K8s 運(yùn)維架構(gòu)師實(shí)戰(zhàn)》集訓(xùn)營(yíng)【本周開課】 這些 K8S 日常故障處理集錦,運(yùn)維請(qǐng)收藏~ 豬八戒網(wǎng) CI/CD 最佳實(shí)踐之路 Jenkins Pipeline 流水線部署 Kubernetes 應(yīng)用 快、狠、準(zhǔn)!系統(tǒng)有效的排查運(yùn)維類故障 GitLab 14.0發(fā)布,一個(gè)全新的 DevOps 平臺(tái) Nginx 常用配置清單 最強(qiáng)整理!常用正則表達(dá)式速查手冊(cè) 七年老運(yùn)維實(shí)戰(zhàn)中的 Shell 開發(fā)經(jīng)驗(yàn)總結(jié) 快速入門 Ansible 自動(dòng)化運(yùn)維工具 | 16張圖 12年資深運(yùn)維老司機(jī)的成長(zhǎng)感悟 搭建一套完整的企業(yè)級(jí) K8s 集群(v1.20,二進(jìn)制方式)
點(diǎn)亮,服務(wù)器三年不宕機(jī)


