2.9 使用 mtr 探测网络
如果两个节点之间延迟很大,该如何定位中间的链路问题呢?本节内容推荐笔者经常使用的 mtr 工具。mtr 的全称是 my traceroute,它综合 ping、traceroute、nslookup 等相关功能,能实时显示网络路径中的延迟和丢包信息,让我们能更直观地进行排查网络问题。
接下来我们选取一个测试节点进行网络质量观测,并对观测结果进行解读,以供读者参考。
1. mtr 应用示例
开启命令对测试节点进行网络探测。
$ mtr -z www.iq.com
如图所示,为 mtr 的输出报告。
图: MTR 报告
2. mtr 报告分析
输出的报告中两个核心指标:
- 丢包率(loss):如果在中间一个节点观察看到丢包率很高,这就说明这一跳上可能有问题了。
- 延迟(latency):延迟取决于节点之间的物理距离,通常会随着跳数以及跨自治网络而增加。在上图中,经过第九跳时延迟增大至 37ms。因为 AS58453 属于移动的出海国际线路,必定存在较高的延迟率。
通过 AS 号可以获知途径的自治网络:
- 上海移动(AS24400)
- 广东移动(AS9808)
- 移动出海网络 (AS58453)
- Akamai 自治系统(AS20940)
由于测试节点使用了动态加速服务,所以中间经过了 Akamai 网络。如果未使用网络优化,中国大陆用户会先路由到 美国(AS749),兜了一个大圈才到目的地新加坡。上面网络路径也说明了一个事实:各 ISP 之间的网络路径很多情况下不是最短,而是费用最低的选择策略。