Linux tracepath跟踪路径到沿着该路径发现MTU的网络主机

tracepath指令可以追踪数据到达目标主机的路由信息,同时还能够发现MTU值。tracepath使用套接字API来实现其所有功能,不需要root权限。它跟踪路径到目的地,沿着这条路径发现MTU。它使用UDP端口或一些随机端口。它类似于Traceroute,只是不需要超级用户特权,并且没有花哨的选项。tracepath6很好地替代了traceroute6和Linux错误队列应用程序的典型示例。tracepath的情况更糟,因为商用IP路由器在ICMP错误消息中没有返回足够的信息。很可能当它们被更新的时候,它会改变。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora
描述
它沿着这条路径追踪到发现MTU的目的地。它使用UDP端口或一些随机端口。它类似于traceroute,只是不需要超级用户特权,没有花哨的选项。

tracepath6是对traceroute6的很好的替代,也是Linux错误队列应用的经典示例。IPv4的情况更糟,因为商业IP路由器在ICMP错误消息中没有返回足够的信息。当它们被更新时,它可能会改变。目前,它使用Van Jacobson的技巧,清扫一系列UDP端口来维护跟踪历史。

命令格式

# 用法:tracepath [-n] [-b] [-l <len>] [-p port] <destination>
-n	只显示ip地址
-b	同时显示ip地址和主机名
-l	设置初始化的数据包长度,默认为65535
-m	设置最大TTL值,默认为30
-p	设置要使用的初始目标端口

参考示例

tracepath www.baidu.com		# 追踪到达域名的主机路由信息
tracepath -b www.baidu.com  # 追踪到达域名的主机路由信息(同时显示ip地址与主机名)
tracepath -n www.baidu.com  # 追踪到达域名的主机路由信息(只显示ip)
[root@master ~]# tracepath -b  www.baidu.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  100.75.0.1 (100.75.0.1)                             7.563ms asymm  7 
 1:  100.75.0.1 (100.75.0.1)                             2.019ms asymm  7
 2:  10.38.11.42                                         4.274ms asymm  6 
 3:  11.76.17.63                                         9.121ms asymm  5 
 4:  no reply
 5:  no reply
     Resume: pmtu 1500 hops 1 back 1	<这个是机器之间相互ping>

第一列显示探针的TTL,后面是冒号。通常TTL的值是从网络中得到的,但有时回复并不包含必要的信息,我们不得不猜测它。在这种情况下,数字后面跟着?。
第二列显示网络跳,对探测作出答复。如果探测未发送到网络,则为路由器地址或者[localhost]地址。
行的其余部分显示了有关到达相关工作跳的路径的各种信息。作为规则,它包含RTT的值。此外它可以显示路径MTU,当它改变。如果路径是不对称的,或者探测在到达指定跳之前完成,则显示前向和后向跳数之间的差异。这一信息不可靠。第二三行显示1的不对称性,这是因为第一次TTL为2的探针在第一跳时由于路径MTU发现而被拒绝。
最后一行总结了到达目的地的所有路径的信息,显示了检测到的路径MTU、到达目的地的跳数以及我们对从目的地到我们的跳数的猜测,这在路径不对称时可能有所不同。

综上,tracepath是一款很好用的故障排查工具,但他最大的用武之地在于探测源目节点间路由走向是否异常,是否发生as路径错误等故障,而不在于探测目的节点网络连通性
We people this life is not a model for others, is the reference of others.

猜你喜欢

转载自blog.csdn.net/qq_50573146/article/details/127537274