はじめに
近年のデータセンターネットワークで採用されているVXLAN/EVPNについて、技術的な理解を深めるためにCisco Modeling Labs(CML2)を使用して検証を行いました。
VXLAN/EVPNは、従来のVLANを中心としたネットワークとは異なり、オーバーレイネットワークやMP-BGPなど、複数の技術を組み合わせて実現されています。
そのため、仕組みを理解するには、まず関連する用語や各技術の役割を整理する必要があります。
本シリーズでは、VXLAN/EVPNの基本的な仕組みから、CML2を使用した構築・検証までを解説します。
本シリーズの構成
本シリーズは、全5パートで構成しています。
Part1では、VXLAN/EVPNを理解するうえで必要となる用語を整理します。
各用語の概要を中心に解説しているため、まずは全体像を把握していただき、必要に応じて参考資料も確認することをおすすめします。
VXLAN/EVPNの概要
用語の解説に入る前に、VXLAN/EVPNの基本的な仕組みを整理します。
VXLAN/EVPNは、主に以下の技術を組み合わせて実現されています。
| 技術 | 役割 |
|---|---|
| VXLAN | L3ネットワーク上でL2通信を実現するカプセル化技術 |
| EVPN | MACアドレスやIPアドレスなどの到達性情報を交換する仕組み |
| MP-BGP | EVPNの経路情報を交換するためのプロトコル |
| アンダーレイネットワーク | VTEP間のIP到達性を提供する物理・論理ネットワーク |
| オーバーレイネットワーク | アンダーレイ上に構築される仮想ネットワーク |
つまり、EVPNが通信先に関する情報を交換し、VXLANが実際のユーザートラフィックを転送するという関係です。
これらを組み合わせることで、L3ネットワークを基盤としながら、論理的にL2ネットワークを延伸できます。
用語の解説
VXLAN(Virtual eXtensible Local Area Network)
VXLANは、L3ネットワーク上に論理的なL2ネットワークを構築するためのトンネリング技術です。
主な特徴は以下のとおりです。
- EthernetフレームをUDP/IPパケットでカプセル化することで、L3ネットワークを経由したL2通信を実現する
- VXLAN Network Identifier(VNI)によって、論理的なネットワークを識別する
- 標準的なUDP宛先ポート番号として4789を使用する
- 24ビットのVNIを使用するため、従来のVLANよりも多くの論理ネットワークを収容できる
- アンダーレイネットワークのL3ルーティングを活用できる
従来のVLANでは、VLAN IDが12ビットであるため、利用できるVLAN数には制限があります。
一方、VXLANでは24ビットのVNIを使用することで、理論上約1,677万の識別子を表現できます。
これにより、大規模なデータセンターやマルチテナント環境でのネットワーク分離に適しています。
なお、VXLANによるカプセル化ではヘッダーが追加されるため、アンダーレイネットワークのMTU設計にも注意が必要です。
VNI(VXLAN Network Identifier)
VNIは、VXLANで使用される24ビットのネットワーク識別子です。
主な特徴は以下のとおりです。
- VXLANの論理ネットワークを識別する
- 24ビットの識別子であり、理論上2の24乗(16,777,216)の値を表現できる
- 異なるVNI間の通信は論理的に分離される
- 同じVNIに所属するエンドポイント間では、VTEPを経由したL2通信を実現できる
VXLAN/EVPNでは、VNIは用途によって以下の2種類に分類されます。
L2VNI(Layer 2 VNI)
- L2セグメントを識別するためのVNI
- VLANとVNIを対応付けて使用する構成が一般的
- 同じL2VNIに所属するエンドポイント間のL2通信に使用される
L3VNI(Layer 3 VNI)
- L3ルーティングを実現するためのVNI
- IP-VRFと関連付けて使用される
- Symmetric IRB構成などで、異なるL2VNI間のルーティングに使用される
L2VNIとL3VNIの違いは、VXLAN/EVPNの構成を理解するうえで重要です。
VTEP(VXLAN Tunnel Endpoint)
VTEPは、VXLANトンネルの終端となる機能です。
主な役割は以下のとおりです。
- VXLANトンネルの終端として機能する
- EthernetフレームをVXLANパケットにカプセル化する
- 受信したVXLANパケットのカプセル化を解除する
- VNIに基づいて、トラフィックを適切なL2ネットワークに転送する
- リモートVTEPとの間でVXLANトラフィックを送受信する
VTEPは、物理スイッチだけでなく、ハイパーバイザーなどの仮想化基盤上にも実装できます。
Cisco Nexusシリーズでは、LoopbackインターフェースのIPアドレスをVTEPの送信元IPアドレスとして使用する構成が一般的です。
ただし、VTEP自体はLoopbackインターフェースを意味するわけではありません。
あくまでも、VXLANのカプセル化およびカプセル化解除を実行する機能を指します。
NVE(Network Virtualization Edge)
NVEは、物理ネットワークと仮想ネットワークの境界で動作するネットワーク仮想化機能です。
主な役割は以下のとおりです。
- オーバーレイネットワークとアンダーレイネットワークの境界として機能する
- 仮想ネットワークへのトラフィックの送受信を担当する
- VXLANを使用する場合、VTEPとしてカプセル化およびカプセル化解除を実行する
Cisco NX-OSでは、NVEインターフェースを使用してVXLANの設定を行います。
例えば、interface nve1 はVXLANトンネルの終端機能を提供する論理インターフェースです。
NVEはネットワーク仮想化における一般的な概念であり、VTEPはVXLANにおけるトンネル終端機能を表すものと理解すると分かりやすいでしょう。
EVI(EVPN Instance)
EVIは、EVPNで提供される仮想ネットワークのサービスインスタンスです。
主な特徴は以下のとおりです。
- EVPNにおける論理的なサービスインスタンス
- L2サービスの転送情報を管理するMAC-VRFと関連する
- EVPN経路を識別するためのRDを使用する
- EVPN経路のインポート・エクスポートを制御するRTを使用する
MAC-VRFは、L3VPNにおけるIP-VRFと対比して理解すると分かりやすくなります。
| 項目 | 主な役割 |
|---|---|
| MAC-VRF | L2サービスのMACアドレスなどの転送情報を管理 |
| IP-VRF | L3サービスのIPルーティング情報を管理 |
なお、EVIとMAC-VRF、VNIの対応関係は、EVPNのサービスモデルや製品の実装によって異なります。
Cisco Nexusの一般的なVLAN-Based Serviceでは、L2VNIに対してEVPNインスタンスを構成します。
BUMトラフィック
BUMは、以下の3種類のトラフィックの総称です。
-
B:Broadcast
ブロードキャストトラフィック -
U:Unknown Unicast
宛先MACアドレスが未学習のユニキャストトラフィック -
M:Multicast
マルチキャストトラフィック
従来のL2ネットワークでは、これらのトラフィックは必要に応じてフラッディングされます。
VXLANでもBUMトラフィックの転送が必要ですが、L3ネットワーク上で転送するため、適切な複製・配送の仕組みが必要になります。
代表的な転送方式として、以下の2種類があります。
- アンダーレイマルチキャスト
- Ingress Replication(ヘッドエンドレプリケーション)
それぞれの特徴については、後述します。
EVPN(Ethernet VPN)
EVPNは、Ethernetベースの仮想プライベートネットワークを実現するための技術です。
VXLAN/EVPN構成では、EVPNが主にコントロールプレーンを担当します。
主な役割は以下のとおりです。
- MP-BGPを使用してMACアドレスやIPアドレスなどの到達性情報を交換する
- エンドポイントが接続されているVTEPの情報を共有する
- BUMトラフィックの転送に必要な情報を交換する
- MACアドレスの移動など、ネットワークの状態変化に対応する
従来のVXLAN Flood and Learn方式では、データプレーンでのフラッディングなどを通じてMACアドレスを学習していました。
一方、EVPNを組み合わせることで、MP-BGPを通じてリモートのMACアドレスなどを学習できます。
これにより、リモートエンドポイントに関する到達性情報を効率的に管理できます。
なお、EVPNはVXLAN専用の技術ではなく、MPLSなどをデータプレーンとして使用することも可能です。
コントロールプレーン
コントロールプレーンは、ネットワークの経路情報や転送に必要な情報を管理する機能です。
VXLAN/EVPNでは、主にEVPNとMP-BGPがこの役割を担当します。
具体的には、以下の処理を実行します。
- ローカルで学習したMACアドレスやIPアドレスの情報を広告する
- リモートVTEPが保持するMACアドレスなどの情報を学習する
- EVPNの経路情報を交換する
- BUMトラフィックの配送先となるVTEPの情報を取得する
EVPNでは、これらの情報をMP-BGPのEVPNアドレスファミリーを使用して交換します。
データプレーン
データプレーンは、実際のユーザートラフィックを転送する機能です。
VXLAN/EVPNでは、VXLANがオーバーレイのデータプレーンを担当します。
主な役割は以下のとおりです。
- EthernetフレームのVXLANカプセル化
- VXLANパケットの転送
- 受信したVXLANパケットのカプセル化解除
- VNIに基づくL2トラフィックの転送
VXLAN/EVPNを利用することで、以下のようなメリットが期待できます。
メリット1:大規模なネットワークへの対応
従来のVLAN IDより広い識別子空間を持つVNIを使用することで、多数の論理ネットワークを収容できます。
メリット2:ネットワークの冗長化と負荷分散
アンダーレイのL3ネットワークでは、ECMP(Equal-Cost Multi-Path)を活用した負荷分散が可能です。
また、構成によってはEVPNマルチホーミングなどを使用し、Active-Active型の冗長化を実現できます。
メリット3:不要なフラッディングの削減
EVPNによるMACアドレスの学習やARP/ND Suppressionを活用することで、不要なフラッディングを削減できます。
ただし、VXLAN/EVPNを導入するだけですべてのBUMトラフィックが抑制されるわけではありません。
BUMトラフィックを削減できる理由
EVPNでは、MP-BGPを使用してリモートエンドポイントのMACアドレスやIPアドレスなどの情報を交換できます。
例えば、以下のような処理が行われます。
- VTEPがローカルに接続されたエンドポイントのMACアドレスを学習する
- MP-BGP EVPNを使用して、学習したMACアドレスなどの情報を他のVTEPへ広告する
- リモートVTEPが、受信した情報からMACアドレスの到達先を学習する
- 宛先MACアドレスが既知であれば、該当するVTEPへユニキャスト転送できる
この仕組みにより、宛先MACアドレスが分からないことによるUnknown Unicastのフラッディングを削減できます。
さらに、ARP/ND Suppressionを有効化した場合、学習済みのIPアドレスとMACアドレスの対応情報を利用して、ARP要求やNeighbor Solicitationに対する応答をローカルで処理できる場合があります。
これにより、ARP/NDに起因するフラッディングも削減できます。
ただし、未学習の宛先や各種ブロードキャスト、マルチキャストについては、引き続きBUMトラフィックの配送処理が必要になります。
アンダーレイマルチキャスト
アンダーレイマルチキャストは、IPマルチキャストを利用してVXLANのBUMトラフィックを転送する方式です。
主な特徴は以下のとおりです。
- アンダーレイネットワークでIPマルチキャストを使用する
- VNIとマルチキャストグループを対応付ける
- マルチキャストルーティングを利用して、必要なVTEPへトラフィックを複製・転送する
- アンダーレイネットワークでPIMなどのマルチキャストルーティングプロトコルを利用する場合がある
この方式では、ネットワーク内のマルチキャスト転送機能を利用して、複数のVTEPへBUMトラフィックを配送します。
ただし、VNIとマルチキャストグループは必ずしも1対1である必要はなく、複数のVNIで同じグループを共有する構成もあります。
また、VXLAN/EVPNではアンダーレイマルチキャストが必須というわけではありません。
Ingress Replication
Ingress Replicationは、BUMトラフィックを送信元VTEPで複製し、複数のリモートVTEPへユニキャスト転送する方式です。
主な特徴は以下のとおりです。
- アンダーレイネットワークでIPマルチキャストを使用する必要がない
- 送信元VTEPでBUMトラフィックを複製する
- 複製したパケットをリモートVTEPへユニキャスト転送する
- EVPNのRoute Type 3などを利用して配送先VTEPを把握できる
アンダーレイマルチキャストと比較すると、アンダーレイネットワークの構成を簡素化できるメリットがあります。
一方、配送先VTEPが増えるほど、送信元VTEPでのパケット複製数が増加するため、帯域や処理負荷への影響を考慮する必要があります。
どちらの方式が適切かは、ネットワーク規模や機器の処理能力、運用要件によって異なります。
マルチキャスト
マルチキャストは、特定のグループに所属する複数の受信者へ、データを効率的に配信する通信方式です。
代表的な通信方式を比較すると、以下のようになります。
| 通信方式 | 内容 |
|---|---|
| ユニキャスト | 1対1の通信 |
| ブロードキャスト | 同一ブロードキャストドメイン内の全体を対象とする通信 |
| マルチキャスト | 特定のグループに所属する複数の受信者を対象とする通信 |
VXLANでは、BUMトラフィックの配送手段として、アンダーレイマルチキャストを利用できます。
PIM(Protocol Independent Multicast)
PIMは、IPマルチキャストのルーティングを実現するためのプロトコルです。
主な動作モードには以下があります。
- PIM-DM(Dense Mode)
- PIM-SM(Sparse Mode)
PIM-DM(Dense Mode)
最初にマルチキャストトラフィックを広範囲に転送し、不要な経路を枝刈りする方式です。
PIM-SM(Sparse Mode)
マルチキャストの受信を希望するルータが、必要な配送ツリーに参加する方式です。
現在の一般的なネットワーク設計では、PIM-SMやSSM(Source-Specific Multicast)などが利用されます。
VXLANのアンダーレイでIPマルチキャストを使用する場合、PIM-SMが採用される構成もあります。
RP(Rendezvous Point)
RPは、PIM-SMのASM(Any-Source Multicast)で使用される機能です。
主な役割は以下のとおりです。
- マルチキャスト送信元と受信側を結び付ける役割を持つ
- マルチキャスト配送ツリーの構築に関与する
- PIM-SMにおける共有ツリーの中心となる
RPは、マルチキャストの送信元と受信者が通信を開始する際に重要な役割を果たします。
なお、RPは必ずしもすべてのマルチキャストトラフィックが通過し続ける中継点ではありません。
また、SSMでは通常RPを使用しません。
補足:RPとRRの違い
RPとRRは混同しやすいですが、異なる技術です。
- RP(Rendezvous Point):PIM-SMで使用する機能
- RR(Route Reflector):iBGPの経路情報を反射し、BGPピアのフルメッシュ構成を回避するための機能
VXLAN/EVPNでは、構成によって両方の技術が登場するため、区別しておく必要があります。
Anycast RP
Anycast RPは、複数のRPを使用して、RPの冗長性や可用性を向上させるための仕組みです。
主な特徴は以下のとおりです。
- 複数のRPに同じAnycast RPアドレスを設定する
- ルーティングによって、到達性の高いRPへ通信を誘導する
- RPの障害時に、別のRPへ切り替えられる
- 複数のRP間で、送信元情報を適切に共有する仕組みが必要となる
一般的には、複数のRPのLoopbackインターフェースに同じAnycast RPアドレスを設定します。
IPv4環境では、/32のホストアドレスを使用する構成が一般的です。
ただし、Anycast RPアドレスとは別に、RP間の情報交換に使用する個別のIPアドレスも必要です。
MP-BGP(Multiprotocol BGP)
MP-BGPは、BGPを拡張し、複数のアドレスファミリーの経路情報を交換できるようにした技術です。
主な特徴は以下のとおりです。
- IPv4以外のアドレスファミリーも扱える
- IPv6やVPNなどの経路情報を交換できる
- AFIとSAFIによって、取り扱う経路情報の種類を識別する
- VXLAN/EVPNでは、EVPNの経路情報を交換するために使用される
AFI(Address Family Identifier)とSAFI(Subsequent Address Family Identifier)の代表例は以下のとおりです。
| AFI | SAFI | アドレスファミリー |
|---|---|---|
| 1 | 1 | IPv4 Unicast |
| 2 | 1 | IPv6 Unicast |
| 1 | 128 | VPNv4 |
| 2 | 128 | VPNv6 |
| 25 | 70 | L2VPN EVPN |
VXLAN/EVPNでは、L2VPN EVPNアドレスファミリーを使用して経路情報を交換します。
EVPNでは複数のRoute Typeが定義されていますが、代表的なものとして以下があります。
Route Type 2:MAC/IP Advertisement Route
MACアドレスや、必要に応じてIPアドレスの到達性情報を広告します。
Route Type 3:Inclusive Multicast Ethernet Tag Route
同じEVPNサービスに参加するVTEPの検出や、BUMトラフィックの配送に必要な情報交換などに使用されます。
この2種類は、VXLAN/EVPNの基本的な動作を理解するうえで重要です。
VRF(Virtual Routing and Forwarding)
VRFは、1台のネットワーク機器上に複数の独立したルーティングテーブルを構成する技術です。
主な特徴は以下のとおりです。
- 1台のルータやL3スイッチに複数のルーティングテーブルを構成できる
- VRFごとに経路情報を分離できる
- 異なるVRF間で同じIPアドレス帯を使用できる
- マルチテナント環境におけるL3ネットワークの分離に利用できる
例えば、テナントAとテナントBで同じ192.168.1.0/24を使用していても、異なるVRFに所属していれば、それぞれ独立したルーティングテーブルで管理できます。
VXLAN/EVPNでは、IP-VRFとL3VNIを関連付けることで、オーバーレイネットワーク上のL3通信を実現できます。
RD(Route Distinguisher)
RDは、VPN経路を識別するための8バイトの識別子です。
主な役割は以下のとおりです。
- 重複するアドレス情報を持つ経路を、BGP上で区別できるようにする
- VPNの経路情報に一意性を持たせる
- EVPNではMAC-VRFやIP-VRFに関連する経路情報などで使用される
例えば、異なるVRFで同じIPアドレスを使用している場合でも、RDを付加することで、BGP上では異なる経路として扱えます。
RDの表記例は以下のとおりです。
192.0.2.1:10010
RDは、経路情報を識別するためのものであり、経路をどのVRFへ取り込むかを制御するものではありません。
その役割を担当するのが、次に紹介するRTです。
RT(Route Target)
RTは、BGPで交換するVPN経路について、どのVRFやMAC-VRFへインポートするかを制御するための属性です。
主な特徴は以下のとおりです。
- BGP Extended Communityとして経路に付加される
- 経路のインポート・エクスポートの制御に使用される
- 異なるネットワーク機器間でVPN経路の共有範囲を制御する
RTの表記例は以下のとおりです。
65000:10010
RTでは、主に以下の設定を使用します。
- Export RT:経路を広告する際に付加するRT
- Import RT:経路を受信する際に、取り込み対象を判断するRT
基本的には、広告された経路に付加されたRTが、受信側のImport RTと一致することで、その経路を対象のVRFなどに取り込むことができます。
RDとRTの違いを整理すると、以下のとおりです。
| 項目 | RD | RT |
|---|---|---|
| 正式名称 | Route Distinguisher | Route Target |
| 主な役割 | 経路情報の識別 | 経路のインポート・エクスポート制御 |
| 目的 | 重複する経路情報の区別 | 経路の共有範囲の制御 |
| BGPでの扱い | VPN経路情報の一部 | Extended Community |
RDは経路を識別するためのもの、RTは経路をどこに取り込むかを制御するためのものと理解しておくと分かりやすいでしょう。
まとめ
今回は、VXLAN/EVPNを理解するために必要な用語を整理しました。
特に重要なのは、以下の関係です。
- VXLAN:L3ネットワーク上でL2通信を実現するカプセル化技術
- EVPN:MACアドレスやIPアドレスなどの到達性情報を交換する仕組み
- MP-BGP:EVPNの経路情報を交換するプロトコル
- VTEP:VXLANパケットのカプセル化・カプセル化解除を行う機能
- VNI:VXLANの論理ネットワークを識別するID
- RD:VPN経路を識別するための識別子
- RT:VPN経路のインポート・エクスポートを制御する属性
VXLAN/EVPNは複数の技術が組み合わさっているため、最初は複雑に感じるかもしれません。
しかし、それぞれの技術が担当する役割を理解すれば、全体の仕組みも把握しやすくなります。
次回は、これらの用語を踏まえて、VXLAN/EVPNの具体的な動作について解説します。
参考資料
RFC・公式ドキュメント
- RFC 7348:Virtual eXtensible Local Area Network(VXLAN)
- RFC 7432:BGP MPLS-Based Ethernet VPN
- RFC 8365:A Network Virtualization Overlay Solution Using EVPN
- RFC 9161:Operational Aspects of Proxy ARP/ND in EVPN
- RFC 4610:Anycast-RP Using PIM
- Cisco Nexus 9000 Series NX-OS VXLAN Configuration Guide
- Juniper Networks:マルチプロトコルBGP