首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么tracepath总是显示第一跳两次,而traceroute不显示?

为什么tracepath总是显示第一跳两次,而traceroute不显示?
EN

Unix & Linux用户
提问于 2022-07-26 08:08:14
回答 2查看 452关注 0票数 1

为什么tracepath总是显示第一跳两次:

代码语言:javascript
运行
复制
$ tracepath -n X.Y.Z.T
 1?: [LOCALHOST]                      pmtu 1500
 1:  172.16.5.2                                            0.586ms
 1:  172.16.5.2                                            0.420ms
 2:  no reply
 3:  X.Y.Z.T                                           6.199ms reached
     Resume: pmtu 1500 hops 3 back 3

traceroute没有:

代码语言:javascript
运行
复制
$ traceroute -n X.Y.Z.T
traceroute to X.Y.Z.T (X.Y.Z.T), 30 hops max, 60 byte packets
 1  172.16.5.2  0.672 ms  0.705 ms  0.723 ms
 2  * * *
 3  X.Y.Z.T  1.192 ms  1.220 ms  1.218 ms

顺便说一下,172.16.5.2是网关组中的两个物理路由器之一,逻辑网关路由器是172.16.5.1

代码语言:javascript
运行
复制
$ ip route get X.Y.Z.T
X.Y.Z.T via 172.16.5.1 dev ens160 src 172.16.5.X uid 1000
    cache

EDIT0 :使用MTU=1500:

代码语言:javascript
运行
复制
$ tracepath -n X.Y.Z.T -l 1500
 1:  172.16.5.2                                            0.598ms
 2:  no reply
 3:  X.Y.Z.T                                           6.368ms reached
     Resume: pmtu 1500 hops 3 back 3

使用MTU=1501:

代码语言:javascript
运行
复制
$ tracepath -n X.Y.Z.T -l 1501
 1?: [LOCALHOST]                      pmtu 1500
 1:  172.16.5.2                                            0.600ms
 1:  172.16.5.2                                            0.394ms
 2:  no reply
 3:  X.Y.Z.T                                           6.139ms reached
     Resume: pmtu 1500 hops 3 back 3

使用MTU=3*1500+1:

代码语言:javascript
运行
复制
$ tracepath -n X.Y.Z.T -l $((3*1500+1))
 1?: [LOCALHOST]                      pmtu 1500
 1:  172.16.5.2                                            0.653ms
 1:  172.16.5.2                                            1.239ms
 2:  no reply
 3:  X.Y.Z.T                                           6.098ms reached
     Resume: pmtu 1500 hops 3 back 3
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2022-07-26 10:33:28

这是因为初始数据包长度太大。尝试使用选项-l将数据包大小设置为最大。你的mtu。如果mtu是1500,-l 1500就可以了,而-l 1501则会带来双位数。

编辑: tracepath与检测pmtu不一致。有时这里是1460,有时是1500。在每种情况下,较低的值都是有效的,事实上,它的大小应该是100。

票数 1
EN

Unix & Linux用户

发布于 2022-07-26 08:13:36

根据man tracepath,输出部分

第一列显示探针的TTL,后面是冒号。通常TTL的值是从网络中得到的,但有时回复并不包含必要的信息,我们不得不猜测它。在这种情况下,数字后面跟着?

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/711299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档