本シリーズ記事は、エンタープライズネットワークにおける重要な技術であるBGP EVPN VXLANについて、基本から応用まで段階的に解説し、理解を深めていただくことを目的としています。
その第一回として、今回はCiscoの実機を使い、BGP EVPN VXLANの基本となるL2ネットワークをゼロから構築する手順と、その確認方法を具体的に紹介します。
なお、本記事はエンタープライズネットワークにおけるルーティングおよびスイッチングに関する知識を有する方を対象としています。
概要
BGP EVPN VXLANとは
BGP EVPN VXLANは、データセンターやクラウド環境で広く採用されるオーバーレイ技術です。
VXLAN(Virtual Extensible LAN)によるL2延伸と、EVPN(Ethernet VPN)によるBGPベースのコントロールプレーンを組み合わせています。
利点
- 高い拡張性: L3ベースのUnderlayにより、ECMPを利用した効率的な帯域利用とスケールアウトが可能です。
- 柔軟性: 物理的な場所にとらわれず、どこにでも仮想ネットワークを延伸できます。
- 効率的なルーティング: 各Leafスイッチがゲートウェイとなる分散ルーティングにより、トラフィックの最適化(ヘアピニングの解消)が実現します。
構築のポイント
BGP EVPN VXLANの構築は、物理ネットワーク層である「Underlay」と、仮想ネットワーク層である「Overlay」の2段階で考えます。
Underlayネットワーク
- IGP (今回はOSPF): VTEP(VXLANトンネルの端点)間でIP疎通を確保するためのルーティングプロトコルです。
- マルチキャスト: BUMトラフィック(Broadcast, Unknown Unicast, Multicast)を転送するために設定します。
Overlayネットワーク
- BGP EVPN: MACアドレスなどの到達性情報を交換するためのコントロールプレーンです。
- VXLAN: L2フレームをカプセル化して転送するためのデータプレーンです。
検証環境
機器構成
- Spine:C9300-48S
- Leaf × 2:C9300L-48P-4X
- Client × 2:WS-C3750X-24T-S(今回はスイッチをクライアント役として使用します。)
OSバージョン
IOS-XE 17.18.01(全機器共通)
ネットワーク構成図
※ 本記事の構成図は検証用であり、実際の本番環境とは異なります。

IPアドレス設計
本記事のIPアドレスは検証用であり、実際の本番環境とは異なります。
Spine:
Loopback0:10.0.0.3/32
Loopback1: 192.168.0.3/32
PIM RP: 10.0.0.4
Leaf1向け物理IF:192.168.1.2/24
Leaf2向け物理IF:192.168.2.2/24
Leaf1:
Loopback0:10.0.0.1/32
Loopback1: 192.168.0.1/32
Spine向け物理IF:192.168.1.1/24
Leaf2:
Loopback0:10.0.0.2/32
Loopback1: 192.168.0.2/32
Spine向け物理IF:192.168.2.1/24
クライアント:
VLAN 101, L2 VNI 10001
Client1 IP: 192.168.101.1/24
Client2 IP: 192.168.101.2/24
構築手順
手順1: Underlayネットワークの構築 (OSPF & PIM)
まず、VTEP間でIP疎通を確保するためにOSPFを設定し、BUMトラフィック転送用にPIM(マルチキャスト)を有効にします。
Spine 設定例
! OSPFとPIMのためのLoopbackインターフェース設定
interface Loopback0
ip address 10.0.0.3 255.255.255.255
ip ospf 1 area 0
!
interface Loopback1
ip address 192.168.0.3 255.255.255.255
ip pim sparse-mode
ip ospf 1 area 0
!
interface Loopback2
ip address 10.0.0.4 255.255.255.255
ip pim sparse-mode
ip ospf 1 area 0
!
! Leafへの物理インターフェース設定
interface GigabitEthernet1/0/1
no switchport
ip address 192.168.1.2 255.255.255.0
ip pim sparse-mode
ip ospf network point-to-point
ip ospf 1 area 0
!
interface GigabitEthernet1/0/3
no switchport
ip address 192.168.2.2 255.255.255.0
ip pim sparse-mode
ip ospf network point-to-point
ip ospf 1 area 0
!
! OSPFルーターID設定
router ospf 1
router-id 10.0.0.3
!
! PIM RPアドレス指定
ip pim rp-address 10.0.0.4
Leaf1 設定例
! Loopbackインターフェース設定
interface Loopback0
ip address 10.0.0.1 255.255.255.255
ip ospf 1 area 0
!
interface Loopback1
ip address 192.168.0.1 255.255.255.255
ip pim sparse-mode
ip ospf 1 area 0
!
! Spineへの物理インターフェース設定
interface GigabitEthernet1/0/1
no switchport
ip address 192.168.1.1 255.255.255.0
ip pim sparse-mode
ip ospf network point-to-point
ip ospf 1 area 0
!
! クライアント接続用インターフェース設定
interface GigabitEthernet1/0/11
switchport access vlan 101
switchport mode access
!
! OSPFルーターID設定
router ospf 1
router-id 10.0.0.1
!
! PIM RPアドレス指定
ip pim rp-address 10.0.0.4
Leaf2も同様に、IPアドレスやインターフェース番号を適宜変更して設定しますが、詳細IPはネットワーク図を参照してください。
手順2: Overlayネットワークの構築 (BGP EVPN & VXLAN)
次に、Underlay上にVXLANトンネルを構築し、コントロールプレーンとしてBGP EVPNを設定します。
Spine 設定例 (BGP Route Reflector)
router bgp 1
bgp router-id 10.0.0.3
bgp log-neighbor-changes
no bgp default ipv4-unicast
! BGPネイバーとしてLeaf1, Leaf2を指定
neighbor 10.0.0.1 remote-as 1
neighbor 10.0.0.1 update-source Loopback0
neighbor 10.0.0.2 remote-as 1
neighbor 10.0.0.2 update-source Loopback0
!
address-family l2vpn evpn
! L2VPN EVPNアドレスファミリーを有効化
neighbor 10.0.0.1 activate
neighbor 10.0.0.1 send-community both
neighbor 10.0.0.1 route-reflector-client
neighbor 10.0.0.2 activate
neighbor 10.0.0.2 send-community both
neighbor 10.0.0.2 route-reflector-client
exit-address-family
Leaf1 設定例 (VTEP)
! L2VPN EVPNの基本設定
l2vpn evpn
replication-type static
router-id Loopback1
!
! VLANとVNIのマッピング
l2vpn evpn instance 101 vlan-based
encapsulation vxlan
!
vlan configuration 101
member evpn-instance 101 vni 10001
!
! VXLANトンネルインターフェース(NVE)の設定
interface nve1
no ip address
source-interface Loopback1
host-reachability protocol bgp
member vni 10001 mcast-group 225.0.0.101
!
! BGP設定
router bgp 1
bgp log-neighbor-changes
no bgp default ipv4-unicast
! BGPネイバーとしてSpineを指定
neighbor 10.0.0.3 remote-as 1
neighbor 10.0.0.3 update-source Loopback0
!
address-family l2vpn evpn
! L2VPN EVPNアドレスファミリーを有効化
neighbor 10.0.0.3 activate
neighbor 10.0.0.3 send-community both
exit-address-family
Leaf2も同様に設定します。
ステータス確認
設定後、以下のコマンドで各プロトコルが正しく動作しているかを確認します。
OSPFネイバー確認
Underlayの疎通性確認として、SpineとLeaf間で正しくネイバーを確立しているか確認します。
State カラムが FULL になっていれば成功です。
Spineでの実行例
Spine#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.0.2 0 FULL/ - 00:00:39 192.168.2.1 GigabitEthernet1/0/3
192.168.0.1 0 FULL/ - 00:00:39 192.168.1.1 GigabitEthernet1/0/1
BGP EVPNピア確認
OverlayのコントロールプレーンはBGPになります。そこで、Spine (RR) とLeaf間で正しくピアを確立しているか確認します。
Spine (RR) とLeaf間で正しくピアを確立し、経路を交換しているか確認します。State/PfxRcd カラムに具体的なPrefix受信数が表示されていれば正常です。
Spineでの実行例
Spine#show bgp l2vpn evpn summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.0.0.1 4 1 15 11 9 0 0 00:05:38 3
10.0.0.2 4 1 8 12 9 0 0 00:03:03 3
Leaf1での実行例
Leaf1#show bgp l2vpn evpn summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.0.0.3 4 1 12 16 17 0 0 00:06:51 3
NVEピア確認
VXLANトンネルの対向先(VTEP)をBGP経由で正しく認識できているか確認します。
対向のLeafのVTEP IPアドレス(Peer-IP)が表示され、state が UP になっていれば成功です。
Leaf1での実行例
Leaf1#show nve peers
Interface VNI Type Peer-IP RMAC/Num_RTs eVNI state flags UP time
nve1 10001 L2CP 192.168.0.2 3 10001 UP N/A 00:04:51
Leaf2での実行例
Leaf2#show nve peers
Interface VNI Type Peer-IP RMAC/Num_RTs eVNI state flags UP time
nve1 10001 L2CP 192.168.0.1 3 10001 UP N/A 00:04:06
EVPN経路確認
クライアントのMAC/IPアドレス情報が、BGPのType-2経路として学習されているか確認します。
実行例結果のように、[2]で始まるType-2経路と、末尾にクライアントのIPアドレス(192.168.101.1 や 192.168.101.2)が表示されている行から、Leafがアドバタイズしているクライアント情報が示されています。
Leaf1での実行例
Leaf1#show bgp l2vpn evpn all (抜粋)
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 192.168.0.1:101
*> [2][192.168.0.1:101][0][48][00005E005300][32][192.168.101.1]/24
0.0.0.0 32768 ?
Route Distinguisher: 192.168.0.2:101
*>i [2][192.168.0.2:101][0][48][00005E005301][32][192.168.101.2]/24
192.168.0.2 0 100 0 ?
マルチキャスト経路確認
BUMトラフィック転送に使われるマルチキャストの経路が、PIMによって正しく構築されているか確認します。
(*, 225.0.0.101) のような、VNIにマッピングしたマルチキャストグループのエントリが存在し、RPアドレス(10.0.0.4)が正しく認識されていることが重要なポイントです。
また、225.0.0.101は、EVPN-VXLANにおけるBUMトラフィック(Broadcast、Unknown Unicast、Multicast)の転送に利用されるマルチキャストグループです。
Spineでの実行例
Spine#show ip mroute
IP Multicast Routing Table
...
(*, 225.0.0.101), 00:36:41/00:03:20, RP 10.0.0.4, flags: S
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
GigabitEthernet1/0/3, Forward/Sparse, 00:35:51/00:03:03, flags:
GigabitEthernet1/0/1, Forward/Sparse, 00:36:41/00:03:20, flags:
まとめ
上記の確認を終え、BGP EVPN VXLANの基本となるL2ネットワークを構築しました。
今回はEVPN-VXLANによる複雑なL2ネットワークを、段階的に構築・検証しました。各プロトコルの役割と相互連携を実機で確認することで、より明確なイメージを持つことができます。
次回は、Leafスイッチでパケットキャプチャを実施し、EVPN-VXLANの挙動をより詳細に解析します。実際のトラフィックを確認することで、コントロールプレーンとデータプレーンの動作をさらに深く理解していきます。
鄭 秋怡(日本ビジネスシステムズ株式会社)
CTS本部 SNIに所属の鄭です。エンタープライズのお客さまに向けて、ネットワークの設計、構築、検証などを経験してきました。現在はネットワーク機器メーカーのお客さま先に常駐し、技術支援を担当しています。
担当記事一覧