Tracepathは常に最初のホップを2回表示しますが、Tracerouteがそうでない理由は何ですか?

Tracepathは常に最初のホップを2回表示しますが、Tracerouteがそうでない理由は何ですか?

tracepath最初のホップが常に2回表示されるのはなぜですか?

$ 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以下ではありません:

$ 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ゲートウェイグループ内の2つの物理ルーターの1つである論理ゲートウェイルーターは次のとおりです172.16.5.1

$ 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 使用:

$ 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 使用:

$ 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 使用:

$ 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

答え1

これは、初期パケット長が大きすぎるためです。オプションを使用して-lパケットサイズを最大値に設定してみてください。あなたのMTU。 mtuが1500なら-l 1500大丈夫-l 1501ですが、2桁の数字になります。

編集:トレースパスがpmtu検出と一致しません。ここは1460時もあり、1500時もあります。いずれにしても、より低い値が機能し、実際には100ほど小さくなければなりません。

答え2

man tracepath出力部分によると

最初の列にはプローブのTTLが表示され、その後にコロンが表示されます。通常、TTLの値はネットワークの応答から取得されますが、時には応答に必要な情報が含まれていないため、これを推測する必要があります。この場合、数字の後には?が付きます。

関連情報