ルーターには通常、多くのIPアドレス(まあ、少なくとも1つ以上)があることを誰もが知っていると思います。 このような多様性に直面して、ルータは難しい選択に直面しています。ICMPTTL Exceededメッセージのソースとして選択する必要があるIPアドレスはどれですか。これはトレース出力の基礎です。
以前にこの問題について考えたことがない場合、最初に思い浮かぶかもしれないいくつかのオプションがあります:
1.元のパッケージに着信したインターフェースのIPアドレス。
2.元のパッケージに対して発信する必要があるインターフェイスのIPアドレス。
3. ICMPメッセージのアウトバウンドとなるインターフェースのIPアドレス。
4.バックバックのIPアドレス。
これについて以前に考えていた場合は、急いで明確な回答をしないでください:)
出版物のタイトルからの質問に答えるために、GNS3にそのようなラボをまとめました。
トポロジの説明:
1.トレースはPC1からPC2に行われます。
2.各ルーターには、XXXXという形式のループバックがあります
3. OSPFエリア0は、すべてのルーターとすべてのインターフェイスで起動されます。
4. OSPFインターフェースコストは、ルーターから60.0.0.0/24(PC2ネットワーク)へのトラフィックが「垂直」に進むように分散されます。 残りのルーターのチェーンを通じて。 逆に、Cisco1以外のルーターからの10.0.0.0/24(PC1ネットワーク)までのトラフィックは、SW1(ネットワーク123.0.0.0/24に対応)を通過します。 したがって、元のパケットのインバウンドインターフェイスとICMPメッセージのアウトバウンドインターフェイスが一致しない状況が発生します。
誰かが言う:現実からほど遠いこのようなトポロジーが必要な理由、私の会社では両方向のすべてのトラフィックは厳密に対称的に実行されます。
回答: OSPFの場合、これは実際には最も一般的な状況ではなく、設定を単純化するためだけに使用されました。 実際には、BGPはトラフィックパスの非対称性を主に担当しています。
トレースを実行
ご覧のとおり、CiscoとJuniperは着信インターフェイスのIPから応答し、Debian LinuxとMikrotik(OSのルートに同じLinuxを持っている)は、ICMPパケット(123.0.0.X)の発信であるIPインターフェースから応答しました。
比較のためのルートの記録:
おわりに
LinuxおよびMikrotikの動作は、 RFC 1812の条項で説明されています 。 この句は、ICMPメッセージの送信元アドレスが、このICMPパケットの送信に使用されるインターフェイスのアドレスであることを示します。
同時に、シスコやジュニパーなどの業界の巨人は、それほど広くない経験に明らかに依存して、RFC指示を無視することを認めています。 実際、元のパケットが通過するインターフェイスのIPアドレスをトレースで観察することは、私にとっては、厳密に言えば実際のパケットパスと直接関係のないサブネットから同じトレースIPを見つけるよりも正しい解決策のようです。