これは私のトレースルートの結果です
トレースルート 211.140.5.120
1 141.1.31.2 (111.1.31.2) 0.397 ms 0.380 ms 0.366 ms
2 141.1.28.38 (111.1.28.38) 3.999 ms 3.971 ms 3.982 ms
3 142.11.124.193 (112.11.124.133) 1.315 ms 1.533 ms 1.455 ms
4 (201.141.0.261) 2.615 ms 2.749 ms 2.572 ms
5 (201.141.0.82) 2.705 ms 2.564 ms 2.680 ms
6 (201.118.231.14) 5.375 ms 5.126 ms 5.252 ms
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
*** が何を意味するのか、また、結果はホストとターゲット サーバーの間に実際に 30 を超えるホップがあることを意味するのかを知りたいです。
答え1
traceroute のすべての実装は、送信元に送信される ICMP (タイプ 11) パケットに依存します。
このプログラムは、小さな ttl (存続時間) で UDP プローブ パケットを開始し、ゲートウェイからの ICMP "time exceeded" 応答を待機することで、トレース ルートを試みます。プローブは ttl 1 から開始し、ICMP "port unreachable" (つまり "host" に到達した) を受信するか、最大値 (デフォルトでは 30 ホップで、-m フラグで変更できます) に達するまで、1 ずつ増加します。各 ttl 設定で 3 つのプローブ (-q フラグで変更) が送信され、各プローブの ttl、ゲートウェイのアドレス、および往復時間を示す行が印刷されます (つまり、3 つの * )。5 秒のタイムアウト間隔 (-w フラグで変更) 内に応答がない場合は、そのプローブに対して "*" が印刷されます。
したがって、あなたのケースでは、201.118.231.14 までしか応答がなかったと結論付けることができます。その後、ノードは最大存続時間 (最大ホップ数) であるホップ 30 まで ICMP パケット (タイプ 11) に応答しません。-m フラグを使用して最大存続時間を増やすことができます。
答え2
Traceoute は、出力を作成するために、ターゲット サーバーと各中間ホップからの応答を必要とします。ルーターが応答を生成しない場合Time-to-live exceeded
、traceroute はそのホップについて何も知りません。出力を行うホップは、* * *
そのホップのルーターが traceroute に使用したパケットの種類 (デフォルトでは Unix 系では UDP、Windows では ICMP) に応答しないことを意味します。
私が使用しているのと同じバージョンのtracerouteを使用している場合は、-e
ファイアウォールを回避するオプションと-P
ICMP、TCP、またはグレUDP の代わりにパケットを送信します。オプションを使用して、フィルタリングされる可能性が低い特定のポート (80 や 25 など) を指定することもできます-p
。
他にも回答を得るのに役立つオプションがあるかもしれません。traceroute のマニュアルページ。
質問の 2 番目の部分に答えると、いいえ、この traceroute は、ユーザーとターゲット サーバーの間のホップが正確に 30 であることを意味するわけではありません。traceroute は、一定のホップ数に達すると「諦めます」。これは、パケットの最大 TTL を制限することによって行われます。Linux では、デフォルトでは 30 です。オプションを使用してこれを変更できます-m
。ホップ数はもっと多いか少ない可能性がありますが、6 番目以降のホップはどれも応答しないので、わかりません。