您好,这是网络技术联盟网站。我叫锐哥。
Traceroute 是一种网络诊断工具,可跟踪数据包通过网络从源到目的地的路径。它显示数据包经过的每个路由器(或“跃点”)的地址和响应时间。它可以帮助网络工程师排除网络故障、分析网络性能并了解网络拓扑。
根据您的操作系统,Traceroute 可能有不同的名称。例如,Windows 通常使用tracert 命令,而Linux 和macOS 使用traceroute 命令。尽管名称和一些实现细节有所不同,但基本功能和目的是相同的。
Traceroute的工作原理
Traceroute的工作原理是基于ICMP(互联网控制消息协议)或UDP(用户数据报协议)消息并使用TTL(生存时间)值来确定数据包所经过的每一跳。
发送初始数据包:Traceroute首先向目标主机发送TTL值为1的数据包。收到ICMP超时报文:当第一个中间路由器收到该报文时,将TTL值减1,并将TTL值更改为0。路由器丢弃该数据包并将ICMP“超时”消息发送回源地址。这样Traceroute 就知道该路由器的IP 地址。增加TTL值并继续发送数据包。 Traceroute 然后发送一个TTL 值为2 的数据包。当第二个路由器收到时,TTL值再次减1,丢弃该数据包,并返回另一条ICMP超时消息。这个过程持续进行,TTL值加1,直到数据包到达目标主机或达到预设的最大TTL值。目标主机响应:当数据包到达目标主机时,目标主机会响应特定的ICMP消息(通常是“端口不可达”),以表明Traceroute已完成路径追踪。
通过记录每个返回消息的源地址和往返时间(RTT),Traceroute 可以增量映射数据包从源主机到目标主机的路径。
Traceroute命令的基本语法及参数
Linux/macOS
Traceroute [可选] 目标主机
常用参数:
-m:指定最大TTL值。默认值为30。 -q:指定每跳的检测次数。默认值为3。 -w:指定等待每个响应的超时时间(以秒为单位)。 -I:使用ICMP ECHO 请求而不是UDP 数据包。
例如:
traceroute -m 20 -q 4 www.wljslmz.cn
Windows
tracert [可选] 目标主机
常用参数:
-d:不将IP 地址解析为主机名。 -h:指定最大跳数。 -w:指定每次响应的超时时间(以毫秒为单位)。
例如:
tracest -h 20 www.wljslmz.cn
Traceroute的实战应用
Traceroute 最常见的用途之一是网络故障排除。如果您在连接网络时遇到问题,Traceroute 可以帮助您查明问题的确切位置。例如,如果您无法访问特定网站,Traceroute 可以向您显示数据包通过网络的路径,向您显示在哪些步骤发生延迟或数据包丢失。
Traceroute 允许网络工程师分析网络性能。 Traceroute 显示每一跳的往返时间(RTT)。这可以通过识别网络路径中的高延迟节点来帮助您优化网络性能。
在规划或验证网络拓扑时,Traceroute 可帮助您确定数据包实际采用的路由器和路径。这对于确保网络配置的准确性和有效性极其重要。
分析Traceroute输出结果
Traceroute 输出通常包括以下部分:
每跳数。路由器IP地址或域名。往返时间(RTT)。通常以毫秒为单位。
以下是典型Traceroute 输出的示例。
到example.com (93.184.216.34) 的跟踪路由,最大30 跳,60 字节数据包
1 192.168.1.1 (192.168.1.1) 1.123 毫秒1.098 毫秒1.076 毫秒
2 10.0.0.1 (10.0.0.1) 2.345 毫秒2.320 毫秒2.310 毫秒
3 192.168.2.1 (192.168.2.1) 5.678 毫秒5.655 毫秒5.642 毫秒
4 93.184.216.34 (93.184.216.34) 20.456 毫秒20.433 毫秒20.410 毫秒
在这个例子中:
Hop 1 是IP 地址192.168.1.1 的本地网络网关,RTT 约为1 ms。第二跳是LAN 中的路由器,IP 地址为10.0.0.1,RTT 约为2.3 ms。第3 跳是另一个LAN 路由器,IP 地址为192.168.2.1,RTT 约为5.6 毫秒。第四跳是目标主机,IP 地址为93.184.216.34,RTT 约为20.4 ms。
在分析Traceroute结果时,以下情况往往表明网络存在问题:
高延迟:特定跃点的RTT 明显高于其前后的跃点数量,这可能表明该节点或其连接存在性能问题。数据包丢失:如果您在特定跃点的输出中看到* * *,则意味着该节点没有响应。这可能是由路由器的防火墙设置或网络路径问题引起的。 RTT 不一致:RTT 值波动较大可能表明网络不稳定或拥塞。
考虑以下Traceroute 输出。
到example.com (93.184.216.34) 的跟踪路由,最大30 跳,60 字节数据包
1 192.168.1.1 (192.168.1.1) 1.123 毫秒1.098 毫秒1.076 毫秒
2 10.0.0.1 (10.0.0.1) 2.345 毫秒2.320 毫秒2.310 毫秒
3 192.168.2.1 (192.168.2.1) 50.678 毫秒50.655 毫秒50.642 毫秒
四* * *
5 93.184.216.34 (93.184.216.34) 20.456 毫秒20.433 毫秒20.410 毫秒
在本例中,第3跳的RTT明显高于前两跳,表明该节点存在高延迟问题。第四跳没有反应。这可能是由节点的防火墙引起的。另外,第5跳的RTT恢复正常,说明问题主要集中在第3跳。
通过分析Traceroute输出,网络工程师可以快速识别网络中的瓶颈。例如,如果特定跃点的RTT 明显高于其他跃点,则这可能表明该节点或其连接存在性能问题。这样就可以找出问题所在,并采取相应的措施进行优化。
由于路由器配置更改或网络故障,网络路径可能会发生变化。定期运行Traceroute可以让网络工程师监控网络路径变化,确保网络配置正确。
当发现超出本地网络范围的网络问题时,Traceroute 可帮助网络工程师与Internet 服务提供商(ISP) 合作,提供详细的路径信息,帮助ISP 更快地识别和解决问题。
假设您注意到在公司内部网络上访问外部网站非常慢。运行Traceroute命令时,您可以得到以下输出:
到lowwebsite.com (203.0.113.10) 的跟踪路由,最大30 跳,60 字节数据包
1 192.168.1.1 (192.168.1.1) 1.123 毫秒1.098 毫秒1.076 毫秒
2 10.0.0.1 (10.0.0.1) 2.345 毫秒2.320 毫秒2.310 毫秒
3 192.168.2.1 (192.168.2.1) 5.678 毫秒5.655 毫秒5.642 毫秒
4 203.0.113.1 (203.0.113.1) 50.456 毫秒50.433 毫秒50.410 毫秒
5 203.0.113.10 (203.0.113.10) 200.123 毫秒200.098 毫秒200.076 毫秒
结果表明,第4跳的RTT显着增加,第5跳的RTT达到200ms。这表明问题可能出在Jump 4 和Jump 5 之间,或者出在Jump 5 本身。向您的ISP 提供此信息将使他们能够进一步调查并解决问题。
高级Traceroute技术
调整探测包的类型
在不同的网络环境中,某些类型的发现数据包可能会被防火墙阻止。因此,使用不同类型的检测报文可以提高Traceroute的成功率。例如,在Linux 上,您可以使用以下选项更改探测数据包类型:
-I:使用ICMP ECHO请求(类似于ping)。 -T:使用TCP SYN数据包(适用于一些防火墙策略严格的网络)。 -U:使用UDP数据包(默认类型)。
traceroute -I www.wljslmz.cn # 使用ICMP ECHO 请求
traceroute -T www.wljslmz.cn # 使用TCP SYN 数据包
traceroute -U www.wljslmz.cn # 使用UDP数据包
调整探测次数和超时时间
默认情况下,Traceroute 向每一跳发送三个探测数据包。您可以使用-q 选项调整探测数量,并使用-w 选项调整每个响应的超时。
traceroute -q 5 -w 2 www.wljslmz.cn # 发现每一跳5 次,每次响应等待2 秒
跳过DNS解析
在某些情况下,DNS 解析可能会导致额外的延迟。可以使用-n选项跳过DNS解析,直接显示IP地址。
traceroute -n www.wljslmz.cn # 跳过DNS解析
设置最大跳数
默认情况下,Traceroute 的最大跳数为30。为了避免不必要的探测,可以使用-m 选项设置最大跳数。
traceroute -m 20 www.wljslmz.cn # 设置最大跳数为20
Traceroute案例分析
跨国网络连接问题
问题描述:公司中美网络连接速度极慢,影响两国员工工作效率。
诊断步骤:
Ping 测试:首先对美国目标主机进行ping 测试,检查是否存在高延迟问题。
ping -c 10 example.com
Traceroute分析:使用traceroute命令分析路径。
跟踪路由示例.com
输出显示:
1 192.168.1.1 (192.168.1.1) 1.123 毫秒1.098 毫秒1.076 毫秒
2 10.0.0.1 (10.0.0.1) 2.345 毫秒2.320 毫秒2.310 毫秒
3 203.0.113.1 (203.0.113.1) 50.678 毫秒50.655 毫秒50.642 毫秒
4 209.85.243.1 (209.85.243.1) 200.456 毫秒200.433 毫秒200.410 毫秒
5 72.14.235.1 (72.14.235.1) 300.123 毫秒300.098 毫秒300.076 毫秒
6 93.184.216.34 (93.184.216.34) 350.456 毫秒350.433 毫秒350.410 毫秒
结果分析:
第3跳和第4跳之间有明显的延迟(从50ms增加到200ms),表明跨境网络连接瓶颈就在这里。从第4跳到第6跳的延迟进一步增加表明问题不仅在于跨境连接,还在于国际网络服务提供商。
解决了:
请联系您的ISP 提供商,报告跨境网络连接的高延迟问题并请求路由优化。考虑使用专线或VPN 服务来提高跨境网络连接的质量。
本地网络不稳定
问题描述:企业内部网络经常不稳定,导致员工无法顺利访问内部资源。
诊断步骤:
Ping 测试:对公司内部服务器进行Ping 测试,观察网络不稳定情况。
ping -c 100 内部服务器
Traceroute分析:使用traceroute命令分析路径。
跟踪路由内部服务器
输出显示:
1 192.168.1.1 (192.168.1.1) 1.123 毫秒1.098 毫秒1.076 毫秒
2 10.0.0.2 (10.0.0.2) 2.345 毫秒2.320 毫秒2.310 毫秒
3 ** * *
4 192.168.2.1 (192.168.2.1) 50.678 毫秒50.655 毫秒50.642 毫秒
# 以上是网络工程师掌握traceroute命令的故事,但是追踪主机的路由并不一定很可怕!相关内容来源网络仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93285.html