✨
Amazon VPC トラフィックミラーリング × tcpdumpでVXLANパケットをキャプチャする
AWSのAmazon VPC トラフィックミラーリングを使えば、あるEC2インスタンスのネットワークトラフィックを別のインスタンスへコピーして監視ができる。
このとき内部的に使われているのが VXLAN(Virtual Extensible LAN) というトンネリングプロトコル。
今回はVXLANトラフィック(UDPポート4789)を tcpdump でキャプチャして確認する方法紹介する。
🔍 この記事でわかること
- トラフィックミラーリングの構成
- VXLANパケットをキャプチャする tcpdump コマンド
- 出力の見方とポイント
🧱 構成イメージ
+------------------+ VXLAN +------------------+
| EC2-A (送信元) | ------------> | EC2-B (受信側) |
| 通常トラフィック | | ミラーターゲット |
+------------------+ +------------------+
- EC2-A:監視対象の本番インスタンスなど
- EC2-B:tcpdump でミラートラフィックを受ける解析用インスタンス
⚙️ VPCトラフィックミラーリングの簡単な設定手順
- ミラーターゲットの作成
- VPC コンソール → [トラフィックミラーリング] → [Mirror Targets] → 作成
- ターゲットタイプ:ネットワークインターフェース
- 対象:EC2-BのENI
- ミラーセッションの作成
- Mirror Source:EC2-AのENI
- Mirror Target:先ほど作成したターゲット
- Traffic Filter:All traffic(全トラフィック)
🧪 tcpdumpでVXLANをキャプチャする
- EC2-Bにtcpdumpをインストール
Amazon Linux
sudo yum install -y tcpdump
- VXLANパケットのキャプチャコマンド
sudo tcpdump -nni eth0 -vvv udp dst port 4789
🔍 コマンド解説
パラメータ | 意味 |
---|---|
sudo | 管理者権限で実行 |
tcpdump | パケットキャプチャツール |
-nni eth0 | -n: 名前解決をしない、-i eth0: eth0インターフェースを指定 |
-vvv | 超詳細モードで出力 |
udp dst port 4789 | 宛先ポート4789(VXLAN)へのUDPパケットだけを表示 |
🧾 実行例
22:46:16.479260 IP (tos 0x0, ttl 255, id 0, offset 0, flags [none], proto UDP (17), length 134)
10.0.0.20.65450 > 10.0.0.30.4789: [no cksum] VXLAN, flags [I] (0x08), vni 100
IP (tos 0x0, ttl 255, id 52364, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.10 > 10.0.0.20: ICMP echo request, id 31495, seq 1, length 64
🔍 出力の解説
- VXLANカプセル化の外側パケット(UDP)
10.0.0.20.65450 > 10.0.0.30.4789: [no cksum] VXLAN, flags [I], vni 100
- 10.0.0.20: ミラー元(送信元ENI)
- 10.0.0.30: ミラーターゲット(受信側ENI)
- dst port 4789: VXLAN用の標準ポート
- vni 100: VXLANネットワーク識別子(仮想ネットワークID)
このパケットはVXLANヘッダーを使ってカプセル化されたUDPパケット。
- VXLANの中身:ICMPリクエスト(ping)
10.0.0.10 > 10.0.0.20: ICMP echo request, id 31495, seq 1, length 64
- 10.0.0.10: pingの送信元(ユーザーがpingを実行したインスタンス)
- 10.0.0.20: pingの宛先(つまり、ミラー対象となったインスタンス)
これは ping コマンドのICMP Echo Requestで、正常にVXLANの中に入ってターゲットまで届いていることが確認できる。
ここで確認できるポイント
- VXLANトンネルの宛先ポート:4789
- トラフィックのコピー元・コピー先IP
- VXLANフレームの詳細(VNIなど)
💡 VXLANとは?
VXLAN(Virtual eXtensible LAN)は、レイヤー2フレームをUDPパケットにカプセル化してレイヤー3ネットワーク上で送信する技術。
AWSのトラフィックミラーリングでもこのVXLANが内部的に使われている。
- VXLANポート番号:UDP/4789
- VXLANヘッダーにはVNI(仮想ネットワーク識別子) などの情報が含まれる
📝 まとめ
項目 | 内容 |
---|---|
技術 | Amazon VPC トラフィックミラーリング |
通信形式 | VXLAN(UDP/4789)を利用 |
可視化方法 | tcpdump を使用して VXLAN パケットをキャプチャ |
活用用途 | セキュリティ監視、トラブル調査、パフォーマンス分析 |
トラフィックミラーリングを使えば、本番環境に影響を与えることなく、詳細なネットワーク解析が可能。tcpdumpと組み合わせることで、AWS上でもローレベルなパケット解析ができるようになる。
Discussion