前回の記事では、BGP EVPN VXLANの基本的なL2ネットワークを構築し、各プロトコルが正常に動作していることを確認いたしました。
Cisco実機で学ぶBGP EVPN VXLAN(第1回):基本のL2ネットワーク構築編 - JBS Tech Blog
本記事では、その続きとして、クライアント間で通信が発生した際に、データがどのようにVXLANパケットとしてカプセル化され、ネットワーク上を転送されるのかを実証します。
Cisco IOS-XEに標準搭載されているmonitor capture機能を活用し、Leafスイッチを通過するパケットを直接確認することで、VXLANの動作メカニズムに対する理解を深めます。
- 検証環境の概要
- パケットキャプチャの事前確認
- パケットキャプチャの設定
- パケットキャプチャの実行と通信テスト
- パケットの詳細
- まとめ
- 最後に
検証環境の概要
本記事においても、第1回記事で構築したSpine-Leaf構成のEVPN-VXLANネットワークを使用します。本設定は記事掲載の目的で設計したものであり、実際の運用環境とは異なります。詳細なコンフィグは一回目の記事をご参照ください。
Spine: C9300-48S Leaf × 2: C9300L-48P-4X Client × 2: WS-C3750X-24T-S (VLAN 101) OSバージョン: IOS-XE 17.18.01 VTEP IPアドレスおよびVNIは以下の設定に基づきます。 VTEP IP (Loopback1): Leaf1: 192.168.0.1/32 Leaf2: 192.168.0.2/32 VNI: 10001 Client IP: Client1: 192.168.101.1/24 (MAC: 00:00:5E:00:53:03 ) Client2: 192.168.101.2/24 (MAC: 00:00:5E:00:53:01)
パケットキャプチャの事前確認
キャプチャポイント
今回は、Client1からClient2への通信を想定し、Leaf2のSpine向けアップリンクインターフェース(GigabitEthernet1/0/1)でパケットをキャプチャします。
このポイントを取得することで、Leaf1からカプセル化されて送られてきたVXLANパケットがLeaf2に到着し、デカプセル化される直前の状態を確認することが可能です。

クライアントエントリー
キャプチャを行う前に、Leaf2にコンソールで接続して以下のコマンドを実行します。BGP EVPN経由でClient1のMAC/IPアドレスを正しく学習していることを確認します。
Leaf2#show l2vpn evpn mac MAC Address EVI VLAN ESI Ether Tag Next Hop(s) -------------- ----- ----- ------------------------ ---------- --------------- 0000.5E00.5300 101 101 0000.0000.0000.0000.0000 0 Gi1/0/11:101 0000.5E00.5301 101 101 0000.0000.0000.0000.0000 0 Gi1/0/11:101 0000.5E00.5302 101 101 0000.0000.0000.0000.0000 0 192.168.0.1 0000.5E00.5303 101 101 0000.0000.0000.0000.0000 0 192.168.0.1 Leaf2#show l2vpn evpn mac ip IP Address EVI VLAN MAC Address Next Hop(s) --------------------------------------- ----- ----- -------------- ----------- 192.168.101.1 101 101 0000.5E00.5303 192.168.0.1 192.168.101.2 101 101 0000.5E00.5301 Gi1/0/11:101
show l2vpn evpn mac ip の出力から、Leaf2は「192.168.101.1 (Client1) が 192.168.0.1 (Leaf1のVTEP IP) の向こうに存在することを認識している」ということが確認されます。
パケットキャプチャの設定
下記設定を使用します。
キャプチャセッションを作成する
bothを指定することで、インターフェースの送受信両方のパケットをキャプチャできます。
monitor capture cap interface GigabitEthernet1/0/1 both
キャプチャしたデータを保存するファイル名を指定する
monitor capture cap file location flash:cap01.pcap
キャプチャするトラフィック対象を指定する
今回はすべてのトラフィックを対象とします。
monitor capture cap match any
設定内容を確認する
Leaf2#show monitor capture cap parameter monitor capture cap interface GigabitEthernet1/0/1 BOTH monitor capture cap match any monitor capture cap file location flash:cap01.pcap
パケットキャプチャの実行と通信テスト
キャプチャを開始する
以下のコマンドでキャプチャを開始します。
Leaf2#monitor capture cap start Started capture point : cap *Dec 4 11:11:58.020: %BUFCAP-6-ENABLE: Capture Point cap enabled.
疎通を確認する
Client1 (192.168.101.1) から Client2 (192.168.101.2) へPingを実行します。
Client1#ping 192.168.101.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.101.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/8 ms
キャプチャを停止する
以下のコマンドでキャプチャを停止します。
Leaf2#monitor capture cap stop
Capture statistics collected at software:
Capture duration - 26 seconds
Packets received - 44
Packets dropped - 0
Packets oversized - 0
Bytes dropped in asic - 0
Stopped capture point : cap
*Dec 4 14:47:53.530: %BUFCAP-6-DISABLE: Capture Point cap disabled.
キャプチャリストを出力する
show monitor capture file flash:cap01.pcap コマンドで、取得できたパケットのサマリーを確認します。
Leaf2#show monitor capture file flash:cap01.pcap (ICMPペアのみ抜粋) Starting the packet display ........ Press Ctrl + Shift + 6 to exit ・・・
1 2.777996 192.168.101.1 -> 192.168.101.2 ICMP 164 Echo (ping) request id=0x0027, seq=1/256, ttl=255
2 2.780899 192.168.101.2 -> 192.168.101.1 ICMP 164 Echo (ping) reply id=0x0027, seq=1/256, ttl=255 (request in 1)
パケットの詳細
キャプチャしたファイル内の特定パケットの詳細を確認するには、次のコマンドを実行します。
show monitor capture file flash:<ファイル名>.pcap packet-number <パケット番号> detailed
ここでは、前章でキャプチャしたClient1から送信されたPing要求(ICMP Echo Request)に対応するパケット番号1と、その応答であるPing応答(ICMP Echo Reply)を含むパケット番号2のペアを確認します。
これらの通信往復パケットがどのようにカプセル化されているか(Ethernetフレーム、IPヘッダー、ICMPメッセージの構造)を確認することで、プロトコルスタックの階層をより明確に理解できます。
Ping要求パケットを出力する
(Client1 → Client2) の通信に対応する パケット番号1 の出力結果は以下のとおりです。(一部抜粋)
Leaf2#show monitor capture file flash:cap01.pcap packet-number 1 detailed
Starting the packet display ........ Press Ctrl + Shift + 6 to exit
Frame 1: 164 bytes on wire (1312 bits), 164 bytes captured (1312 bits) ...
[Protocols in frame: eth:ethertype:ip:udp:vxlan:eth:ethertype:ip:icmp:data]
Ethernet II, Src: 00:00:5E:00:53:04 , Dst: 00:00:5E:00:53:05
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.0.1, Dst: 192.168.0.2
Source Address: 192.168.0.1
Destination Address: 192.168.0.2
Protocol: UDP (17)
User Datagram Protocol, Src Port: 65282, Dst Port: 4789
Destination Port: 4789
Virtual eXtensible Local Area Network
VXLAN Network Identifier : 10001
Ethernet II, Src: 00:00:5E:00:53:03 , Dst: 00:00:5E:00:53:01
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.101.1, Dst: 192.168.101.2
Source Address: 192.168.101.1
Destination Address: 192.168.101.2
Protocol: ICMP (1)
Internet Control Message Protocol
Type: 8 (Echo (ping) request)
Code: 0
Ping要求パケットを確認する
上記で出力された詳細ログ(packet-number 1 detailed)の各行を、プロトコル階層の上(外側)から順に確認していきます。
Outer Ethernet Header(Underlayの物理転送)
出力の Ethernet II セクションを確認します。
Ethernet II, Src: 00:00:5E:00:53:04 , Dst: 00:00:5E:00:53:05
Type: IPv4 (0x0800)
Src: 00:00:5E:00:53:04...Dst: 00:00:5E:00:53:05と表示されており、送信元のSpineのMACから送信先Leaf2のMACへ転送されたことが分かります。これはUnderlayの物理的な経路を示しています。
Outer IP Header(VXLANトンネル)
最初の Internet Protocol Version 4 セクションを確認します。
Internet Protocol Version 4, Src: 192.168.0.1, Dst: 192.168.0.2
Source Address: 192.168.0.1
Destination Address: 192.168.0.2
Protocol: UDP (17)
Src: 192.168.0.1, Dst: 192.168.0.2 とあり、送信元IPはLeaf1のVTEP IP、宛先IPはLeaf2のVTEP IPです。これがVXLANトンネルの両端を示しています。
UDP Header(VXLANのカプセル化識別)
User Datagram Protocol セクションを確認します。
User Datagram Protocol, Src Port: 65282, Dst Port: 4789
Destination Port: 4789
Dst Port: 4789 と表示されています。宛先ポート4789はVXLANの標準ポートであり、このパケットがVXLANカプセル化されていることを示しています。
VXLAN Header(仮想ネットワーク識別)
Virtual eXtensible Local Area Network セクションを確認します。
Virtual eXtensible Local Area Network
VXLAN Network Identifier : 10001
VXLAN Network Identifier (VNI): 10001 が含まれています。これにより、このパケットがどの仮想ネットワーク(今回の検証ではVLAN 101)に属するかが識別されます。
Inner Ethernet / IP / ICMP(元の通信データ)
ここから下が、カプセル化された中身(Payload)です。
Ethernet II, Src: 00:00:5E:00:53:03 , Dst: 00:00:5E:00:53:01
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.101.1, Dst: 192.168.101.2
Source Address: 192.168.101.1
Destination Address: 192.168.101.2
Protocol: ICMP (1)
Internet Control Message Protocol
Type: 8 (Echo (ping) request)
Code: 0
- Inner Ethernet Header:
- 2つ目の Ethernet II セクションで、Client1のMACからClient2のMACへの通信であることが分かります。
- Inner IP Header:
- 2つ目の Internet Protocol Version 4 セクションで、Client1 IP (192.168.101.1) からClient2 IP (192.168.101.2) への通信であることが分かります。
- Inner ICMP Header:
- Internet Control Message Protocol セクションの Type: 8 は、これがPing要求(Echo request)であることを示しています。
Ping応答パケットを出力する
同様に、(Client2 → Client1) の返答パケットも確認するので、詳細を出力させます。
パケット番号2の出力結果は以下のとおりです。(一部抜粋)
Leaf2#show monitor capture file flash:cap01.pcap packet-number 2 detailed Starting the packet display ........ Press Ctrl + Shift + 6 to exit
Ethernet II, Src: 00:00:5E:00:53:05 , Dst: 00:00:5E:00:53:04
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.0.2, Dst: 192.168.0.1 Source Address: 192.168.0.2 Destination Address: 192.168.0.1 Protocol: UDP (17) User Datagram Protocol, Src Port: 65408, Dst Port: 4789 Destination Port: 4789 Virtual eXtensible Local Area Network VXLAN Network Identifier (VNI): 10001 Ethernet II, Src: 00:00:5E:00:53:01 , Dst: 00:00:5E:00:53:03 Type: IPv4 (0x0800) Internet Protocol Version 4, Src: 192.168.101.2, Dst: 192.168.101.1 Source Address: 192.168.101.2 Destination Address: 192.168.101.1 Protocol: ICMP (1) Internet Control Message Protocol Type: 0 (Echo (ping) reply)
Code: 0
Ping応答パケットを確認する
Packet 2の出力された結果の詳細を確認します。
Outer Ethernet Header(Underlayの物理転送)
出力の Ethernet II セクションを確認します。
Ethernet II, Src: 00:00:5E:00:53:05 , Dst: 00:00:5E:00:53:04
Type: IPv4 (0x0800)
Src: 00:00:5E:00:53:05 ... Dst: 00:00:5E:00:53:04 と表示され、Leaf2の物理MACからSpineの物理MACへ転送されたことが分かります。これはUnderlayの物理的な戻り経路を示しています。
Outer IP Header(VXLANトンネル)
Internet Protocol Version 4 の Src: 192.168.0.2, Dst: 192.168.0.1 を確認します。
Internet Protocol Version 4, Src: 192.168.0.2, Dst: 192.168.0.1
Source Address: 192.168.0.2
Destination Address: 192.168.0.1
Protocol: UDP (17)
送信元がLeaf2、宛先がLeaf1となり、Ping要求とは逆方向に転送されていることが分かります。
UDP Header(VXLANのカプセル化識別)/VXLAN Header(仮想ネットワーク識別)
User Datagram Protocol, Src Port: 65408, Dst Port: 4789
Destination Port: 4789
Virtual eXtensible Local Area Network
VXLAN Network Identifier : 10001
Ping要求と同様に、Dst Port: 4789 と VNI: 10001 が確認でき、同じVXLANトンネル・同じVNIを使用していることが分かります。
Inner Ethernet / IP / ICMP(元の通信データ)
戻りパケットも同様に中身(Payload)がカプセル化されています。
Ethernet II, Src: 00:00:5E:00:53:01 , Dst: 00:00:5E:00:53:03
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.101.2, Dst: 192.168.101.1
Source Address: 192.168.101.2
Destination Address: 192.168.101.1
Protocol: ICMP (1)
Internet Control Message Protocol
Type: 0 (Echo (ping) reply)
Code: 0
- IP Header:
- 送信元がClient2 (192.168.101.2)、宛先がClient1 (192.168.101.1) になっています。
- ICMP Header:
- Type: 0 (Echo (ping) reply) となっており、これがPing応答パケットであることを示しています。
まとめ
フロー図
上記パケット詳細を確認し、Client1(192.168.101.1)から Client2(192.168.101.2)への Ping 通信の処理フロー下記の図のように読み取ることができます。

通信ステップ
フロー図から、通信は以下のステップで進行していることがわかります。分解ステップから、「Encapsulates & Forwards」「Decapsulates & Forwards」が行われ、VXLAN トンネルを介して通信していることが確認できました。
Ping要求送信(Inner)
Client1から Ping 要求が送信されます。
カプセル化と転送(Leaf 1)
Leaf1(VTEP、IP:192.168.0.1)が受信したパケットを VXLAN カプセル化し、Underlayネットワークへ転送します。
Underlayネットワーク経由の転送
カプセル化されたパケットが Underlayネットワークを通過します。
カプセル化解除と転送(Leaf 2)
Leaf2(VTEP、IP:192.168.0.2)がパケットを受信し、VXLAN カプセル化を解除して Client2に転送します。
Ping応答送信(Inner)
Client2から Ping 応答が送信されます。
逆方向の処理
応答パケットは同様の手順で Leaf2 → Underlay → Leaf1 → Client1 へ戻ります。
最後に
VXLANパケットのカプセル化からネットワーク上での転送、そしてデカプセル化に至るまでの具体的な動作を、実際のパケットキャプチャを用いて可視化・確認することができました。各プロトコルのヘッダ情報を丁寧に追うことで、仕組みより実践的な視点で理解できました。
ネットワーク設計やトラブルシューティングの現場では、単なる設定だけでなく、パケットレベルでの挙動理解が重要です。本記事の内容が、EVPN VXLANの理解や、現場でのデバッグ作業に役立つ一助となれば幸いです。
次回は、さらに一歩踏み込んでL3 EVPN(異なるVLAN間でのルーティング)について、構築手順や実際の通信動作を検証します。
鄭 秋怡(日本ビジネスシステムズ株式会社)
CTS本部 SNIに所属の鄭です。エンタープライズのお客さまに向けて、ネットワークの設計、構築、検証などを経験してきました。現在はネットワーク機器メーカーのお客さま先に常駐し、技術支援を担当しています。
担当記事一覧