Tracerouteが開始され、ノードからICMP応答を受信したとき。
個人的なコメントと調査:
私は仮想Ciscoラボを持っていませんし、VirtualBoxにいくつかのRAMルーターをセットアップするのに十分なVMもあるとは思いません。
こんにちは私は遅れていますが、あなたがまだ興味がある場合は...
RSteenbergenのNANOGスライドからの引用は正しいです。動作はRFC1812の セクション4.3.2.4 で定義されており、次のように述べられています。
ルータによって発信されたICMPメッセージのIP送信元アドレスは、ICMPメッセージが送信される物理インターフェイスに関連付けられたIPアドレスの1つでなければなりません。
Tracerouteの実装に応じて、トレースへの応答は、ICMP Destination Unreachable(つまり、Unixで実装されたtraceroute)またはICMP Time Exceeded(Windowsで開始されたtraceroute)の場合があります。これはSteenbergenのプレゼンテーションでカバーされていると思います。これらのセクションはいずれもICMP応答の送信元アドレスを指定するための規定を設けていないため、セクション4.3.2.4がこれらの特定の応答タイプに当てはまると想定します。
このシナリオを想像してください そして次のことを想定してください:
現代の実装でのTracerouteは、次のようになります。
traceroute to R
1 A 0.329 ms A 0.425 ms A 0.471 ms
2 C 0.349 ms C 0.435 ms C 0.473 ms
3 F 0.359 ms G 0.445 ms F 0.481 ms
4 R 0.369 ms R 0.455 ms R 0.491 ms
また、ルーターが仕様に合わせてコーディングされている場合のトレースは次のようになります。
traceroute to R
1 B 0.329 ms B 0.425 ms B 0.471 ms
2 D 0.349 ms E 0.435 ms D 0.481 ms
3 H 0.369 ms H 0.445 ms H 0.491 ms
4 R 0.389 ms R 0.455 ms R 0.496 ms
したがって、より口語的な意味で、最新の実装は、特定のホストに到達した方法を示しています。元の仕様では、ルーターを離れた方法はわかりますが、そこにたどり着いた方法はわかりません。
これによりPingが破損すると思われるかもしれませんが、仕様ではそのケースを明示的にカバーしていることに注意してください。
ICMPエコー応答のIP送信元アドレスは、
対応するICMPエコー要求の特定の宛先アドレス
メッセージ。
つまり、Pingの場合、ICMPエコー応答の送信元アドレスはセクション4.3.2.4で指定されている出力インターフェイスに関連付けられたアドレスではなく、元のICMPエコー要求の宛先アドレスから派生した送信元アドレスを使用する必要があります。 。