> [!abstract] 概要(Abstract の日本語訳)
> 本文書は、BGP MPLS ベースの Ethernet VPN(EVPN)の手続きを記述する。ここで記述する手続きは、RFC 7209「Requirements for Ethernet VPN (EVPN)」で規定された要件を満たす。
## 文書情報
- タイトル: BGP MPLS-Based Ethernet VPN
- RFC 番号: 7432(Standards Track、ISSN 2070-1721)
- 編集者: Ali Sajassi([[Cisco]])
- 著者: Rahul Aggarwal(Arktan)・Nabil Bitar(Verizon)・Aldrin Isaac(Bloomberg)・James Uttaro(AT&T)・John Drake([[Juniper Networks]])・Wim Henderickx(Alcatel-Lucent)
- 発行: [[IETF]]、2015年2月
- 要件仕様の前提: RFC 7209「Requirements for Ethernet VPN (EVPN)」
- URL: https://www.rfc-editor.org/rfc/rfc7432.html
## 背景・動機
Virtual Private LAN Service(VPLS、RFC 4761/4762/4664)は実績のある広く展開された技術だが、マルチホーミングと冗長性、マルチキャスト最適化、プロビジョニングの簡素性、フローベースの負荷分散とマルチパスという点で限界を抱える。これらはデータセンター(DC)展開において特に重要な考慮事項である。EVPN はこれらの限界に対処する BGP MPLS ベースのソリューションとして、[[VPLS]] とは異なる設計原理を採る。
VPLS との最大の違いは MAC 学習の場所である。VPLS では PE 間の MAC 学習がデータプレーンで(伝統的なブリッジングと同様に)行われるのに対し、EVPN ではコントロールプレーンで行われる。コントロールプレーン学習は、誰が何を学習するかの制限やポリシー適用など、MAC 学習プロセスに対するより大きな制御を提供する。EVPN が選択したコントロールプレーンは Multiprotocol BGP(MP-BGP)であり、IP VPN(RFC 4364)と同様の柔軟性と、相互作用するエージェント(ホスト・サーバ・VM)群の「仮想化」ないし分離を保持する能力を提供する。PE は接続された CE から学習した MAC アドレスを MPLS ラベルとともに、コントロールプレーンで MP-BGP を用いて他の PE へ広告する。
## コア機構
### Ethernet Segment と ESI
CE がイーサネットリンクの集合を介して 1 台以上の PE に接続されている場合、そのリンク集合を「Ethernet Segment(ES)」と呼ぶ。マルチホームサイトごとに、Ethernet Segment Identifier(ESI)という一意な非ゼロの識別子を持つ。ESI は 10 オクテットの整数として符号化され、`T`(1オクテットの ESI Type)+ 9オクテットの ESI Value からなる。
ESI Type は 0〜5 の 6 種類が定義される: Type 0(オペレータが手動設定する任意の値)、Type 1(LACP System MAC + LACP Port Key から自動生成、CE から見ると複数 PE が同一スイッチに見える)、Type 2(ブリッジド LAN 経由の間接接続で Bridge PDU の Root Bridge MAC + Priority から自動生成)、Type 3(PE の System MAC + ローカル判別子)、Type 4(Router ID + ローカル判別子)、Type 5(AS 番号 + ローカル判別子)。予約値として ESI 0(単一ホームサイト)と MAX-ESI(`0xFF` × 10)がある。
### BGP EVPN NLRI と 4 種類のルート
EVPN は新しい BGP NLRI(AFI=25 L2VPN、SAFI=70 EVPN)を定義し、4 種類の Route Type を規定する。
1. **Ethernet Auto-discovery(A-D)ルート** — ESI と Ethernet Tag ID をキーに、マルチホーミングの高速収束・split-horizon 用 ESI ラベル配布・Aliasing/backup path に使う。ES 単位(per ES)と EVI 単位(per EVI)の 2 つの粒度で広告される。
2. **MAC/IP Advertisement ルート** — MAC アドレス(および任意の IP アドレス)の到達性を広告する中核ルート。MPLS Label1(必須、ダウンストリーム割当)と Label2(任意)を運ぶ。
3. **Inclusive Multicast Ethernet Tag ルート** — マルチデスティネーション(BUM: broadcast/unknown-unicast/multicast)トラフィック配送用の P-tunnel を識別する。PMSI Tunnel 属性(RFC 6514)を運ぶ。
4. **Ethernet Segment ルート** — ES-Import Route Target 拡張コミュニティとともに広告され、同一 ES に接続された PE 同士の自動発見と Designated Forwarder 選出に使う。
これらに加えて 3 種類の新しい拡張コミュニティを定義する: ESI Label 拡張コミュニティ(split-horizon 用、Single-Active フラグを含む)、ES-Import Route Target(ES ルートのインポートフィルタリング用)、MAC Mobility 拡張コミュニティ(シーケンス番号と Sticky/static フラグ)。
### Split Horizon と Aliasing/Backup Path
All-Active 冗長モードで多重ホームされた CE から BUM パケットが non-DF の PE に届いた場合、そのパケットは他の PE(DF PE を含む)へ転送されるが、DF PE は CE へ折り返し転送してはならない(split-horizon filtering)。これを実現するため、non-DF PE から送出される全ての BUM パケットには、出所の Ethernet Segment を識別する ESI ラベルが付与される。この仕組みは ingress replication と P2MP MPLS LSP の両方に対応する形で規定される。
Aliasing は、CE が LAG で複数 PE にマルチホームされているが CE 側の負荷分散(ハッシュ)により特定の MAC アドレスが単一の PE からしか学習されない状況に対処する。Ethernet A-D per EVI ルートにより、MAC アドレスを学習していない PE でも当該 EVI/ES への到達性を広告でき、遠隔 PE はマルチホームの全 PE 宛てに負荷分散できる。Single-Active モードでは同じ仕組みが backup path として機能する。
### Designated Forwarder 選出(service carving)
複数 PE にマルチホームされた CE に対して、マルチキャスト・ブロードキャストトラフィックの送出とアンノウンユニキャストのフラッディングは 1 台の PE(Designated Forwarder)だけが担当する。既定の選出粒度は <ES, VLAN>(または <ES, VLAN bundle>)であり、これを「service carving」と呼ぶ。手続きは、(1) Ethernet Segment ルートの交換で ES 上の PE 群を自動発見、(2) タイマ(既定3秒)満了後に PE の IP アドレスを昇順に並べて序数(ordinal)を割り当て、(3) N 台の冗長グループにおいて序数 i の PE が `(V mod N) = i` を満たす VLAN V の DF になる、という 3 段階からなる。これにより ES 上の VLAN 空間が PE 間で分割され、負荷分散が実現する。
### MAC Mobility
同一 MAC アドレスが異なる Ethernet Segment 間を移動する現象を「MAC Mobility(MAC move)」と呼ぶ。移動を安全に収束させるため、MAC Mobility 拡張コミュニティにシーケンス番号を持たせ、新しい ES から広告するたびに 1 ずつ増加させる。異なる ESI で同じシーケンス番号を持つ広告が複数存在する場合は、最も IP アドレスの小さい PE の広告を最良経路とする。誤検知による重複 MAC 検出のため、M秒(既定180秒)間にN回(既定5回)の移動を検知した場合は重複 MAC の状況と判断し、操作者への警告とともに当該 MAC の BGP 広告・処理を停止する。Sticky/static フラグにより、特定の MAC アドレスを移動不可として静的に固定することもできる。
### マルチデスティネーショントラフィックとフレーム順序
BUM トラフィックの配送には ingress replication・P2MP MPLS LSP・MP2MP LSP のいずれかを使う。Inclusive Multicast Ethernet Tag ルートで P-tunnel を識別し、複数 EVI を同一ツリーに集約(Aggregation)する仕組みも規定する。フレーム順序の節では、宛先 MAC アドレスの上位ニブルが `0x4`/`0x6` の場合に中間 P ノードの deep packet inspection ベース ECMP が誤って IPv4/IPv6 パケットと解釈しうる問題を指摘し、Preferred PW MPLS Control Word の使用や entropy label との使い分けを規定する。
## セキュリティ上の考慮事項
コントロールプレーンの侵害は、ある EVPN の顧客データを別の EVPN へ送出する、EVPN 顧客データをブラックホール化する、盗聴者へ送るといった事態を招きうる。BGP メッセージの認証(RFC 5925 の TCP MD5/AO)は更新の詐称・撤回による DoS を難しくするが、MPLS ラベル自体の秘匿は保証しない——ラベルを知っていればデータプレーンへのアクセスと合わせて EVPN トラフィックを盗聴できる。MPLS ラベルは正当なインタフェースからのみ受理すべきであり、マルチ AS EVPN インスタンスでは特に重要となる。重複 MAC 検出(§15.1)と Sticky MAC(§15.2)の仕組みは、なりすまし MAC アドレスによる悪意あるトラフィックの流入を制限する副次的なセキュリティ機構としても機能する。
## 横断的知見
既存 concept [[MPLS]] は MPLS の実用上の主目的の1つとして「ラベルスタックを用いたレイヤ2/レイヤ3 VPN の構築」を挙げているが、本 RFC はその L2VPN 側の具体的な実装を規定する文書である。VPLS がデータプレーン学習・フラッディングに依存する伝統的ブリッジングの延長線上にあるのに対し、EVPN は IP VPN(RFC 4364)の設計思想——コントロールプレーンでの到達性広告——を L2 に適用した点が本質的な転換である。この転換により、マルチホーミングの高速収束(個々の MAC ルート撤回を待たずに Ethernet A-D ルート撤回だけで一括更新)や All-Active 負荷分散といった、データプレーン学習方式の VPLS では構造的に困難だった性質が得られる。
## 出典検査
本ページの記述は RFC 7432 全文(`rfc-editor.org` 公式テキスト版、56 ページ、全 21 節)を通読して作成した。数値(タイマ既定値・M/N パラメータ・DF 選出の modulo 式・ルートタイプ番号・拡張コミュニティの Type/Sub-Type 値)はいずれも本文の該当箇所に直接記載されている値をそのまま転記した(✅)。著者・所属は RFC 冒頭のヘッダーおよび末尾の Authors' Addresses セクションに基づく(✅)。