MTR 网络连通性测试工具 基础入门 整理

2023-09-18 16:33:30

MTR

MTR的全称是 my traceroute,是一个集合了 ping 与 traceroute 功能的网络诊断工具,广泛应用于链路测试。相对于 traceroute 只会做一次链路跟踪测试,mtr会对链路上的相关节点做持续探测并给出相应的统计信息。因此,mtr能避免节点波动对测试结果的影响,所以其测试结果更正确,建议优先使用。

安装mtr

#linux
yum -y install mtr
​
#macOS
brew install mtr
​
#alpine
apk add --no-cache mtr

使用mtr

mtr命令格式如下:

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

以 www.baidu.com 为HOSTNAME,使用示例:

mtr www.baidu.com

可选参数

参数说明

-r-report

以报告模式显示输出。

-p-split

将每次链路跟踪的结果分别列出来。

-s-psize

指定ping数据包的大小。

-n-no-dns

不对IP地址做域名反解析(参数禁用反向 DNS 查找,这样就会始终显示 IP)。

-a-address

设置发送数据包的IP地址。

说明:该参数用于主机存在多个IP地址的场景。

-i发送数据包的时间间隔,默认为 1 秒,小于 1 秒需要 sudo 提权运行。
-c指定发送数据包的数量,例如发送 20 个数据包(发送数据包后会自动退出,因此可不必添加 r 参数)。
-u发送 UDP 数据包探测而非默认 ICMP ECHO 数据包。

-4

只使用IPv4协议。

-6

只使用IPv6协议。

可以在mtr命令运行过程中,输入如下参数来快速切换模式。

参数

参数说明

h

显示帮助菜单。

d

切换显示模式。

n

启用或禁用DNS域名解析。

u

使用ICMP或UDP数据包进行探测。

r重新探测。
o相关指令。
q退出探测。

mtr返回示例

以执行mtr 目标IP地址命令为例,返回结果如下:

默认配置下,返回结果列表中各数据项的说明如下。

参数

参数说明

Host

节点IP地址和域名。您可以按n键切换显示。

Loss%

节点丢包率。

Snt

已发送数据包数。默认值是10,可以通过参数-c指定。

Last

最近一次的探测延迟值,单位是毫秒ms。

Avg

该Host的平均延时,单位是毫秒ms。

Best

该Host的最低延时,单位是毫秒ms。

Wrst

该Host的最高延时,单位是毫秒ms。

StDev

该Host的标准偏差,稳定性的体现。该值越大说明相应节点越不稳定。

WinMTR

WinMTR是mtr工具在Windows环境下的图形化实现,但进行了功能简化,只支持部分mtr的参数。WinMTR默认发送ICMP数据包进行探测,无法切换。

下载安装:WinMTR Visual Traceroute

WinMTR返回示例

以测试目标服务器域名为例,返回示例如下:

测试进行中

默认配置下,返回结果中各数据项的说明如下:

参数

参数说明

Hostname

节点IP地址和域名。

Nr

节点编号。

Loss%

节点丢包率。

Sent

已发送的数据包数量。

Recv

已成功接收的数据包数量。

Best

节点延迟的最小值。

Avg

节点延迟的平均值。

Worst

节点延迟的最大值。

Last

节点延迟的最后一次值。

StDev

标准偏差。该值越大说明相应节点越不稳定。

链路测试结果说明

由于mtr命令有更高的准确性,本文以mtr命令测试结果为例,对链路测试结果的分析进行简要说明。后续的说明,均以如下链路测试结果示例图为基础进行阐述。

网络区域

通常情况下,从客户端到目标服务器的整个链路,会显著的包含如下区域:

  • 客户端本地网络

    本地局域网和本地网络提供商网络,如前文链路测试结果示例图中的区域A,一般为前2~3个节点。如果该区域出现异常,如果是客户端本地网络相关节点出现异常,则需要对本地网络进行相应排查分析。否则,如果是本地网络提供商网络相关节点出现异常,则需要向当地运营商反馈问题。

  • 运营商网络

    运营商网络,如前文链路测试结果示例图中的区域B,一般有很多个节点,并且会经过很多个骨干网络。如果该区域出现异常,可以根据异常节点IP地址查询该IP地址归属的运营商,然后直接或通过阿里云售后技术支持,向相应运营商反馈问题。

  • 目标服务器本地网络

    目标主机归属网络提供商网络,如前文链路测试结果示例图中的区域C,一般为最后目标服务器IP地址前的2~3个节点。如果该区域出现异常,则需要向目标主机归属网络提供商反馈问题。

链路负载均衡

如前文链路测试结果示例图中的区域D。如果中间链路某些部分启用了链路负载均衡,则mtr命令只会对首尾节点进行编号和探测统计。中间节点只会显示相应的IP地址或域名信息。

Avg(平均值)和 StDev(标准偏差)

由于链路抖动或其他因素的影响,节点的Best和Wrst值可能相差很大。而Avg(平均值)统计了自链路测试以来所有探测的平均值,所以能更好的反应出相应节点的网络质量。而StDev(标准偏差值)越高,则说明数据包在相应节点的延时值越不相同(越离散)。所以标准偏差值可用于协助判断Avg是否真实反应了相应节点的网络质量。例如,如果标准偏差很大,说明数据包的延迟是不确定的。可能某些数据包延迟很小(例如25 ms),而另一些延迟却很大(例如350 ms),但最终得到的平均延迟反而可能是正常的。所以此时Avg并不能很好的反应出实际的网络质量情况。

综上,建议分析标准如下:

  • 如果StDev值很高,则同步观察相应节点的Best和Wrst,来判断相应节点是否存在异常。

  • 如果StDev值不高,则通过Avg来判断相应节点是否存在异常。

    说明:StDev值或者不高,并没有具体的时间范围标准,而需要根据同一节点其他列的延迟值大小来进行评估。例如,如果Avg为30ms,当StDev为25ms时,则认为是很高的偏差。而如果Avg为325ms,当StDev同样为25ms时,反而认为是不高的偏差。

Loss%(丢包率)

任一节点的Loss%(丢包率)如果不为零,则说明这一跳网络可能存在问题。导致相应节点丢包的原因通常有如下两种:

  • 运营商基于安全或性能需求,人为限制了节点的ICMP发送速率,导致丢包。

  • 节点确实存在异常,导致丢包。

    您可以结合异常节点及其后续节点的丢包情况,来判定丢包原因:

  • 如果随后节点均没有丢包,则通常说明异常节点丢包是由于运营商策略限制所致。可以忽略相关丢包。如前文链路测试结果示例图中的第2跳所示。

  • 如果随后节点也出现丢包,则通常说明异常节点确实存在网络异常,导致丢包。如前文链路测试结果示例图中的第5跳所示。

  • 如果随后节点出现没有丢包的节点和丢包的节点,即相应节点既存在策略限速,又存在网络异常。对于这种情况,如果异常节点及其后续节点连续出现丢包,而且各节点的丢包率不同,则通常以最后几跳的丢包率为准。如前文链路测试结果示例图所示,在第 5、6、7跳均出现了丢包。所以,最终丢包情况,以第7跳的40%作为参考。

延迟

  • 延迟跳变

    如果在某一跳之后延迟陡增,则通常判断该节点存在网络异常。如前文链路测试结果示例图所示,从第5跳之后的后续节点延迟陡增,则推断是第5跳节点出现了网络异常。不过,高延迟并不一定完全意味着相应节点存在异常。如前文链路测试结果示例图所示,第5跳之后,虽然后续节点延迟陡增,但测试数据最终仍然正常到达了目的主机。所以,延迟大也有可能是在数据回包链路中引发的。所以,建议结合反向链路测试一并分析。

  • ICMP限速导致延迟增加

    ICMP策略限速也可能会导致相应节点的延迟陡增,但后续节点通常会恢复正常。如前文链路测试结果示例图所示,第3跳有100%的丢包率,同时延迟也明显陡增。但随后节点的延迟马上恢复了正常。所以判断该节点的延迟陡增及丢包是由于策略限速所致。

常见链路异常场景

说明:常见链路异常场景以Linux操作系统上执行mtr命令为例进行说明,具体结果以您的实际操作系统和工具返回结果为准。

目标主机网络配置不当

如下图所示,数据包在目标地址出现了100%的丢包。初步看是数据包没有到达,其实很有可能是目标服务器相关安全策略,例如防火墙、iptables等禁用了ICMP所致,导致目的主机无法发送任何应答。所以,该场景需要排查目标服务器的安全策略配置。

ICMP限速

如下图所示,数据包在目标地址出现了100%的丢包。初步看是数据包没有到达,其实很有可能是目标服务器相关安全策略,例如防火墙、iptables 、运营商策略等禁用了ICMP所致,导致目的主机无法发送任何应答。所以,该场景需要排查目标服务器的安全策略配置,或结合反向MTR链路测试综合分析。

链路中存在环路

如下图所示,数据包在第5跳之后出现了循环跳转,导致最终无法到达目标服务器。这通常是由于运营商相关节点路由配置异常,即链路中存在环路所致。所以,该场景需要联系相应节点归属运营商处理。

链路中断

如下图所示,数据包在第4跳之后就无法收到任何反馈。这通常是由于相应节点中断所致。建议结合反向链路测试做进一步确认。该场景需要联系相应节点归属运营商处理。

参考教程 

ping不通或丢包时如何进行链路测试?_云服务器 ECS-阿里云帮助中心

运维工具-MTR - 知乎

更多推荐

电脑入门:怎么进入路由器设置

怎么进入路由器设置在浏览器地址栏上输入路由器的出厂默认IP地址(192.168.0.1)后按回车。在登录窗口中输入说明书上的密码,点击“Login”按钮进入宽带路由器管理设置界面。管理设置界面分为左右栏,左栏是主菜单,右边则是与之对应的设置内容。请根据自己接入的宽带类型来做出正确的选择。第一项“DynamicIPAdd

MySQL 几种导数据的方法与遇到的问题

零、说在前面MySQL导数据通常使用第三方工具和MySQL自身的工具,本文分别就这两类方法分别介绍。一、第三方工具之Navicat1.1、Navicat的“数据传输”工具打开Navicat,点击“工具”标签,找到“数据传输”,即可看到操作界面。这里不对这个工具本身做过多介绍,侧重点在于工具中的一些配置选项的含义的介绍上

LeetCode每日练习之链表常见题目

1.两个链表的第一个公共节点输入两个链表,找出它们的第一个公共节点。1.1思路哈希和集合,先将一个链表全部存到Map里,然后一边遍历第二个链表,一边检测Hash是否存在当前结点,如果有交点,那么一定能检测出来,使用两个栈,分别将两个链表入栈,然后分别出栈对比,如果相等就出栈,知道找到最晚出栈的那组,拼接两个字符串,将两

【论文记录】Boosting Detection in Crowd Analysis via Underutilized Output Features

BoostingDetectioninCrowdAnalysisviaUnderutilizedOutputFeaturesAbstractCrowdHat使用一种混合的2D-1D压缩技术进行细化空间特征与获取特定人群信息的空间和数量分布。进一步的,CrowdHat采用自适应区域的NMS阈值与一个解耦然后对齐的范式来解

猫眼 面经和答案

你好,我是田哥上一篇文章,给大家分享了几家公司的面经;最新猫眼、阿里云、美团....面经有朋友私聊我,说昨天的这篇文章中,只给出了面试题,没有答案,今天给安排一份猫眼面经的参考答案。在线刷题小程序面试题自我介绍项目用到的技术栈、项目问的比较多,一定要多看三次握手四次挥手缓存穿透和雪崩的原因和解决方法布隆过滤器你了解吗m

c++最短路计数(acwing版)

先看题目:给出一个N个顶点M条边的无向无权图,顶点编号为1到N。问从顶点1开始,到其他每个点的最短路有几条。输入格式第一行包含2个正整数N,M,为图的顶点数与边数。接下来M行,每行两个正整数x,y,表示有一条顶点x连向顶点y的边,请注意可能有自环与重边。输出格式输出N行,每行一个非负整数,第i行输出从顶点1到顶点i有多

【C++】模板初阶

今天开始将图片的水印全部去掉,以方便大家的观看和知识截屏分享,希望对大家都有所帮助模板初阶目录:一、什么是泛型编程(编写与类型无关的代码)二、函数模板2.1概念与格式2.2底层原理2.3实例化(细节较多)2.3.1隐式类型化:让编译器根据实参推演模板参数的实际类型2.3.2显示实例化2.4参数的匹配规则2.4.1尽管看

李宏毅机器学习第一课

机器学习就是让机器找一个函数f,这个函数f是通过计算机找出来的如果参数少的话,我们可以使用暴搜,但是如果参数特别多的话,我们就要使用GradientDescentRegression(输出的是一个scalar数值)Classification(在设定好的选项,两个或者多个,中做出选择)StructuredLearnin

睿趣科技:抖音开通蓝V怎么操作的

在抖音这个充满创意和活力的社交媒体平台上,蓝V认证成为了许多用户的梦想之一。蓝V认证不仅是身份的象征,还可以增加用户的影响力和可信度。但是,要在抖音上获得蓝V认证并不是一件容易的事情。下面,我们将介绍一些操作步骤,帮助你了解如何在抖音上开通蓝V认证。建立优质内容:在抖音上,内容是王道。要获得蓝V认证,首先需要建立自己的

nacos的各个客户端的功能

这两个依赖都与Nacos配置中心的集成有关,但是功能和作用略有不同。1.`com.alibaba.nacos:nacos-client`:这是Nacos的Java客户端库,用于与Nacos服务器进行通信。它提供了与Nacos的各种功能交互的API,例如获取配置、注册服务、发现服务等。这个依赖是必需的,因为它提供了与Na

RFID车辆自动化称重管理

应用背景随着物流和交通管理的发展,车辆称重成为了不可忽视的环节,传统的车辆称重管理方式存在诸多问题,如人工操作繁琐、数据准确性低、容易出现作弊等,为了提高车辆称重管理的效率和准确性,RFID技术被引入到车辆称重管理中,RFID设备实现对车辆的自动识别和数据采集,从而实现车辆自动化称重管理的目标。车辆称重管理的难点人工操

热文推荐