技術3課の杉村です。以下の目的でAWS Direct Connect経由でtracerouteを実行する機会がありました。
- 専用線のフェイルオーバテストを行いたい( Virtual Interface のフェイルオーバテストなどを利用)
- その際に確かに期待された Virtual Interface を経由して通信しているか確認したい
オンプレミスの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となりますので、表示結果が異なります。
いずれの方向から traceroute を打った場合でも Virtual Interface のパラメータである ルーターのピア IP または Amazon ルーターのピア IP が表示されるため、どの Virtual Interface の経路を通っているかを確認することができます。
杉村 勇馬 (記事一覧)
サーバーワークス → 株式会社G-gen 執行役員CTO
2021 Japan APN Ambassadors / 2021 APN All AWS Certifications Engineers
マルチAWSアカウント管理運用やネットワーク関係のAWSサービスに関するブログ記事を過去に執筆。
2021年09月から株式会社G-genに出向、Google Cloud(GCP)が専門に。G-genでもGoogle Cloud (GCP) の技術ブログを執筆中。