在RHEL 8上寻找Traceroute?尝试使用Tracepath

网络诊断是任何网络/系统管理员工作中必不可少的一部分,其中包括分析和解决不同类型的网络问题。

了解网络中两个点之间的IP数据包路径提供了很多对训练有素的人来说非常有用的信息。

一个这样的流行和常用跨平台工具,它有助于网络路径相关的分析和故障排除,是traceroute

简单来说,traceroute通过发送探测数据包(可能是ICMP ECHO或TCP SYN)并监听它们的ICMP“time exceeded”响应,跟踪源和目标之间的IP数据包路径。这些数据包的TTL有意保持为1,并逐渐增加一个,直到我们获得ICMP“端口不可达”的响应,这意味着我们到达了主机或达到了最大值(默认为30跳)。

一个traceroute的示例输出类似于:

$ traceroute google.com
traceroute to google.com (172.217.169.14), 30 hops max, 60 byte packets
 1  140.91.200.22 (140.91.200.22)  0.129 ms 140.91.200.19 (140.91.200.19)  0.151 ms 140.91.200.77 (140.91.200.77)  0.114 ms
 2  linxbgp1.iwscloud.com (195.66.226.34)  0.735 ms  0.701 ms  1.024 ms
 3  195.66.224.125 (195.66.224.125)  0.603 ms  0.591 ms  0.591 ms
 4  108.170.246.129 (108.170.246.129)  0.583 ms  0.745 ms  0.714 ms
 5  209.85.241.95 (209.85.241.95)  1.576 ms 209.85.241.93 (209.85.241.93)  1.545 ms 209.85.241.95 (209.85.241.95)  1.520 ms
 6  lhr25s26-in-f14.1e100.net (172.217.169.14)  0.584 ms  0.547 ms  0.507 ms
$

默认的traceroute输出,如上所示,显示了三个数据包的TTL(Time To Live)或往返时间、最大跳数和数据包大小(以字节为单位),以及IP address和解析后的域名(如果可能)。

Traceroute非常有用,可以确定两个节点之间的响应延迟和路由。此外,它还有助于确定到目标的路由中的故障点。许多firewalls和路由器在互联网上阻止traceroute消息,因此其输出可能并不总是正确的。

可以通过更改探测消息类型来实现一定程度的解决方法,但这只能在一定程度上帮助绕过此问题。因此,在使用此实用程序时必须牢记这一点。

traceroute中的一些选项需要具有超级用户权限,以便修改原始数据包。

tracepath命令

Red Hat Enterprise Linux或RHEL 8及其派生的Linux发行版默认不安装traceroute命令。对于习惯于先前版本的Red Hat Linux或CentOS上的traceroute实用程序的人来说,这可能看起来是一个重大的变化。

但是,在RHEL8上默认情况下有一个同样功能强大的命令可用,名为tracepath,它具有与其对应的traceroute类似的功能,并已准备好与操作系统安装一起使用。

此外,tracepath支持MTU选项,允许检测MTU或最大传输单元值,即tracepath可以通过网络发送的最大数据包大小。

下面是tracepath的示例输出:

默认的tracepath输出如上所示,显示了数据包的TTL(生存时间)或往返时间,通过tracepath可以发送到网络上的MTU(最大传输单元),以及尽可能解析的域名。

tracepath语法

tracepath命令的一般用法语法如下:

$ tracepath  

#1. 不带标志符的情况下,tracepath显示到目标的路径如下所示:

$ tracepath 131.153.56.85
 1?: [LOCALHOST]                      pmtu 9000
 1:  140.91.200.77                                         0.226ms asymm  2
 1:  140.91.200.79                                         0.497ms asymm  2
 2:  140.91.200.74                                         0.216ms pmtu 1500
 2:  oracle-svc071174-lag003319.ip.twelve99-cust.net       0.691ms
 3:  slou-b1-link.ip.twelve99.net                          1.249ms asymm  2
 4:  ldn-bb4-link.ip.twelve99.net                          0.749ms asymm  3
 5:  nyk-bb1-link.ip.twelve99.net                         80.617ms asymm  8
 6:  rest-bb1-link.ip.twelve99.net                       153.250ms asymm 21
 7:  nyk-bb1-link.ip.twelve99.net                         83.084ms asymm  6
 8:  nash-bb1-link.ip.twelve99.net                       280.770ms asymm  9
 9:  no reply
10:  dls-b23-link.ip.twelve99.net                        110.820ms asymm  9
11:  phx-b1-link.ip.twelve99.net                         131.524ms
12:  phx-b1-link.ip.twelve99.net                         131.632ms asymm 11
13:  giglinx-ic305413-phx-b1.ip.twelve99-cust.net        132.583ms asymm 12
14:  no reply
15:  giglinx-ic305414-phx-b1.ip.twelve99-cust.net        142.685ms asymm 12
16:  PHOENIX-NAP.ear3.Chicago2.Level3.net                135.245ms asymm  4
17:  no reply
18:  no reply
19:  speedchi.phoenixnap.com                             133.809ms reached
     Resume: pmtu 1500 hops 19 back 8
$

#2. 如果你只想打印IP地址,可以使用-n标志:

#3. 使用-b选项打印主机名和IP地址:

$ tracepath -b 131.153.56.85
 1?: [LOCALHOST]                      pmtu 1500
 1:  140.91.200.19 (140.91.200.19)                         0.197ms asymm  2
 1:  140.91.200.74 (140.91.200.74)                         0.141ms asymm  2
 2:  oracle-svc071175-lag003322.ip.twelve99-cust.net (213.248.98.247)   1.186ms
 3:  slou-b1-link.ip.twelve99.net (213.248.98.246)        10.273ms asymm  2
 4:  ldn-bb4-link.ip.twelve99.net (62.115.141.246)         0.941ms asymm  3
 5:  prs-bb2-link.ip.twelve99.net (62.115.133.239)       141.858ms asymm 20
 6:  rest-bb1-link.ip.twelve99.net (62.115.141.244)       76.210ms asymm  7
 7:  no reply
 8:  rest-bb1-link.ip.twelve99.net (62.115.141.244)       89.209ms asymm  7
 9:  no reply
10:  dls-b23-link.ip.twelve99.net (62.115.136.119)       110.335ms asymm  9
11:  phx-b1-link.ip.twelve99.net (62.115.125.97)         132.091ms
12:  phx-b1-link.ip.twelve99.net (62.115.125.97)         131.844ms asymm 11
13:  giglinx-ic315451-phx-b1.ip.twelve99-cust.net (80.239.195.78) 142.975ms asymm 14
14:  no reply
15:  no reply
16:  PHOENIX-NAP.ear3.Chicago2.Level3.net (4.14.13.150)  135.233ms asymm  4
17:  no reply
18:  no reply
19:  speedchi.phoenixnap.com (131.153.56.85)             133.871ms reached
     Resume: pmtu 1500 hops 19 back 8
$

#4. 使用-l选项设置报文长度的自定义值,而不使用tracepath的默认值,即65535,可以使用-l选项指定值:
#5. 我们还可以使用-p标志设置初始目标端口,如下所示:

$ tracepath -p 9000 131.153.56.85
  1?:[本地主机]                      pmtu 1500
  1:  140.91.200.18                                         0.160毫秒不对称  2
  1:  140.91.200.74                                         0.177毫秒不对称  2
  2:  oracle-svc071175-lag003322.ip.twelve99-cust.net       1.151毫秒
  3:  slou-b1-link.ip.twelve99.net                          1.727毫秒不对称  2
  4:  无回复
  5:  nyk-bb1-link.ip.twelve99.net                         81.357毫秒不对称  8
  6:  rest-bb1-link.ip.twelve99.net                        78.325毫秒不对称  7
  7:  无回复
  8:  rest-bb1-link.ip.twelve99.net                        87.908毫秒不对称  7
  9:  无回复
 10:  dls-b23-link.ip.twelve99.net                        109.797毫秒不对称  9
 11:  phx-b1-link.ip.twelve99.net                         132.036毫秒
 12:  dls-b23-link.ip.twelve99.net                        121.404毫秒不对称  9
 13:  giglinx-ic315450-phx-b1.ip.twelve99-cust.net        136.322毫秒不对称 12
 14:  phx-b1-link.ip.twelve99.net                         142.596毫秒不对称 11
 15:  无回复
 16:  PHOENIX-NAP.ear3.Chicago2.Level3.net                135.182毫秒不对称  4
 17:  无回复
 18:  无回复
 19:  speedchi.phoenixnap.com                             133.562毫秒到达
     摘要:pmtu 1500跳19回8
$

#6. 最大跳数, 默认为30,可以使用-m标志自定义,如下所示:
请注意,tracepath不支持像traceroute那样的提升的超级用户特权,因为它不支持高级数据包修改功能。

概述

本文介绍了traceroute命令的使用方法,以及如何在RHEL8系统中使用tracepath命令执行相同的任务。

要了解更多关于这些命令的信息,请使用相应的手册页。

$ man traceroute
$ man tracepath

类似文章