网络排查命令 MTR
mtr
命令是一个集合 ping
和 traceroute
功能并能直观显示结果的网络诊断工具
实验平台:CentOS 7.7.1908
mtr 版本:mtr 0.85
一、介绍说明
1.简介
traceroute
默认使用 UDP
数据包探测,而 mtr
默认使用 ICMP
报文探测.
mtr
命令是 Linux
中有一个非常棒的网络连通性判断工具,它结合了 ping
, traceroute
, nslookup
的相关特性.全称: my traceroute
.适配多平台(Windows、Linux、IOS、Android)后续会介绍每个平台的安装方法
参数详情:
命令内参数详情:
二、安装介绍
1.Windows
BestTrace
工具(需安装):
GitHub(免安装)
2.Linux (本文主要演示)
3.IOS
4.Android
三、使用介绍
1.基本用法
一般情况下 mtr
前几跳都是本地 ISP
,后几跳属于服务商如(腾讯云、阿里云)
,中间跳数则是中间节点,如果发现前几跳异常,需要联系本地 ISP
服务提供上,相反如果后几跳出现问题,则需要联系服务提供商,中间几跳出现问题,则需要联系运营商进行处理
四、MTR结果分析
当我们分析 MTR
报告时候,最好找出每一跳的任何问题。除了可以查看两个服务器之间的路径之外,MT
R 在它的七列数据中提供了很多有价值的数据统计报告。 Loss%
列展示了数据包在每一跳的丢失率
。 Snt
列记录的多少个数据包被送出。 使用 –r 参数默认会送出 10
个数据包。如果使用 –report-cycles=[number-of-packets]
选项,MTR
就会按照 [number-of-packets]
指定的数量发出 ICMP
数据包。
Last
, Avg
, Best
和 Wrst
列都标识数据包往返的时间,使用的是毫秒( ms )
单位表示。 Last
表示最后一个数据包所用的时间,Avg
表示平均时间, Best
和 Wrst
表示最小和最大时间。在大多数情况下,平均时间 Avg
列需要我们特别注意。
最后一列 StDev
提供了数据包在每个主机的标准偏差。如果标准偏差越高,说明数据包在这个节点的延时越不相同。标准偏差会让您了解到平均延时是否是真的延时时间的中心点,或者测量数据受到某些问题的干扰。
例如,如果标准偏差很大,说明数据包的延迟是不确定的。一些数据包延迟很小(例如:25ms)
,另一些数据包延迟很大(例如:350ms)
。当 10
个数据包全部发出后,得到的平均延迟可能是正常的,但是平均延迟是不能很好的反应实际情况的。如果标准偏差很高,使用最好和最坏的延迟来确定平均延迟是一个较好的方案。
在大多数情况下,您可以把 MTR
的输出分成三大块。根据配置,第二或第三跳一般都是 本地 ISP
,倒数第二或第三跳一般为目的主机的 ISP
。中间的节点是数据包经过的路由器。
当分析 MTR 的输出时,需要注意两点: loss 和 latency
。
- 网络丢包
如果在任何一跳上看到 loss
的百分比,这就说明这一跳上可能有问题了。当然,很多服务提供商人为限制 ICMP
发送的速率,这也会导致此问题。那么如何才能指定是人为的限制 ICMP
传输 还是确定有丢包的现象?此时需要查看下一跳。如果下一跳没有丢包现象,说明上一条是人为限制的
- eg:
在此例中,第 2
跳发生了丢包现象,但是接下来几条都没任何丢包现象,说明第二跳的丢包是人为限制的。如果在接下来的几条中都有丢包,那就可能是第二跳有问题了。请记住,ICMP
包的速率限制和丢失可能会同时发生。
- Loss%(丢包率)的判断
任一节点的 Loss%(丢包率)
如果不为零,则说明这一跳网络可能存在问题。导致相应节点丢包的原因通常有两种。
运营商基于安全或性能需求,人为限制了节点的 ICMP
发送速率,导致丢包。
节点确实存在异常,导致丢包。
可以结合异常节点及其后续节点的丢包情况,来判定丢包原因。
如果随后节点均没有丢包,则通常说明异常节点丢包是由于运营商策略限制所致。可以忽略相关丢包。如前文链路测试结果示例图中的第2跳所示。
如果随后节点也出现丢包,则通常说明异常节点确实存在网络异常,导致丢包。如前文链路测试结果示例图中的第5跳所示。
另外,需要说明的是,前述两种情况可能同时发生。即相应节点既存在策略限速,又存在网络异常。对于这种情况,如果异常节点及其后续节点连续出现丢包,而且各节点的丢包率不同,则通常以最后几跳的丢包率为准。如前文链路测试结果示例图所示,在第 5、6、7跳均出现了丢包。所以,最终丢包情况,以第7跳的40%作为参考。
- 关于延迟 延迟跳变
如果在某一跳之后延迟明显陡增,则通常判断该节点存在网络异常。如前文链路测试结果示例图所示,从第5跳之后的后续节点延迟明显陡增,则推断是第5跳节点出现了网络异常。不过,高延迟并不一定完全意味着相应节点存在异常。如第5跳之后,虽然后续节点延迟明显陡增,但测试数据最终仍然正常到达了目的主机。所以,延迟大也有可能是在数据回包链路中引发的。所以,最好结合反向链路测试一并分析。
Over ~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1346 0 2020-07-31
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2025-04-14
今日天气
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:15条
- 本站总访问量 401594 次
@ymidsuwfoa 这篇文章不错!
@svmuvwpuqi 真棒!
@smdxydrauu 博主太厉害了!
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...