AWS Direct Connect経由でEC2にtracerouteを打つ

記事タイトルとURLをコピーする

技術3課の杉村です。以下の目的でAWS Direct Connect経由でtracerouteを実行する機会がありました。

オンプレミスのPC等からVPC上のEC2インスタンス等に対して traceroute を打つ場合に期待される挙動を出力結果はどうなるでしょうか。

なお traceroute コマンド (Linux) と tracert コマンド (Windows) では実行結果が異なる場合があります。( traceroute ではデフォルトで UDP が利用されるが tracert ではデフォルトで ICMP が利用される)

これ以降の記載ではどちらのコマンドでも共通する仕様を記載していますが、簡易化のため "traceroute" とだけ記載します。

1. オンプレミス→EC2(VPC) へtracerouteを実行した場合

traceroute 出力結果には Virtual Interface の Amazon ルーターのピア IP アドレスが表示されます。
ルーターのピア IP (オンプレ側のピアIP) アドレスは表示されません。

2. EC2(VPC)→オンプレミス へtracerouteを実行した場合

traceroute 出力結果には Virtual Interface の ルーターのピア IP (オンプレ側のピアIP) アドレスが表示されます。
Amazon ルーターのピア IP アドレスは表示されません。

3. 違いが起きる理由

traceroute は経路上でパケット TTL が expire したときに経路上のNW機器が "ICMP Time Exceeded" を送信してくれることを利用する機能です。

traceroute の出力結果に表示されるIPは基本的に、経由するNW機器の「traceroute を実行した機器側」のインターフェイスのIPアドレスになるはずです。
そのため前述の 1. と 2. で同じNW機器を経由した場合でも、表示されるIPは異なるインターフェイスのIPとなりますので、表示結果が異なります。

f:id:swx-yuma-sugimura:20200815143410p:plain
traceroute実行結果

いずれの方向から traceroute を打った場合でも Virtual Interface のパラメータである ルーターのピア IP または Amazon ルーターのピア IP が表示されるため、どの Virtual Interface の経路を通っているかを確認することができます。

杉村 勇馬 (記事一覧)

クラウドインテグレーション部 技術3課 課長

マルチAWSアカウント管理運用やネットワーク関係のAWSサービスに関するブログをよく書いています

2020年10月現在、ハマっているものはポケモン ソード(遅い)