EVPN

読み:いーぶいぴーえぬ / 英語表記:Ethernet VPN

MACアドレスなどの到達情報をBGPで交換し、離れた拠点や装置の間でイーサネットの接続を制御する技術である。VXLANやMPLSと組み合わせ、端末の所在や冗長な接続先を共有する。

イマシルちゃんの解説

離れた場所のサーバへフレームを届けるには、どのスイッチの先にいるのかを知る必要があるよ。
通信が流れてくるたびに覚える方法もあるけれど、先に接続情報を教え合えたら送り先を選びやすいよね。
EVPNは、ルータが経路を交換するBGPを使って、サーバのMACアドレスと接続先を知らせ合う技術なんだ。
実際のフレームはVXLANなどの仕組みで運ぶよ。
サーバが移動したときも、新しい接続先を伝えられるんだ。
複数のスイッチにつないだサーバでは、その接続関係も共有して、通信の重複やループを防ぐために使うよ。

より深い解説

運ぶ仕組みと知らせる仕組みを分ける

EVPNはEthernet VPNの略である。RFC 7432ではMPLSを使う構成が定められ、RFC 8365ではVXLANなどのIPネットワーク上のトンネルへ適用されている。EVPNとVXLANは同義ではなく、組み合わせて役割を分担する技術である。

役割VXLANを使う構成の技術扱う情報
データプレーンVXLAN利用者のフレームをカプセル化して運ぶ
コントロールプレーンEVPNとMP-BGP端末の到達先やネットワークの参加先を知らせる

制御情報を交換できても、その情報が指すVTEPへIPパケットを送れなければデータは届かない。反対にVTEPへのIP到達性があっても、正しい仮想ネットワークへ接続するための情報が不足すれば通信できない。この二つの状態を区別することが障害解析の出発点になる。

MP-BGPで到達情報を交換する

MP-BGPは、複数の種類の経路情報を扱えるようにBGPを拡張した仕組みである。EVPN用のアドレスファミリーを使うと、IPプレフィックスだけでなくMACアドレスなどの情報もBGPで広告できる。

VXLANと組み合わせた基本的な動作では、VTEPが接続された端末を学習し、その到達情報をEVPNの経路として広告する。受信側は必要な経路を取り込み、端末宛てのフレームをどのVTEPへ送るかを決める。ローカル側の端末情報は受信フレームなどから学習するため、EVPNの導入であらゆるMAC学習が不要になるわけではない。

EVPNには目的が異なる複数の経路タイプがある。主要なものは次のとおりである。

タイプ経路の名称主な役割
Type 1Ethernet Auto-discovery冗長な接続先の把握や障害時の一括撤回に使う
Type 2MAC/IP AdvertisementMACアドレスと、必要に応じて関連するIPアドレスを広告する
Type 3Inclusive Multicast Ethernet TagBUMの配送に参加する装置やトンネルの情報を知らせる
Type 4Ethernet Segment同じ接続区間を共有する装置を発見し、転送役の選出に使う

通常のiBGPで全装置間のセッション数が増えすぎる場合は、ルートリフレクタがクライアント間の経路情報を中継する。これは制御情報の配布を集約する仕組みであり、利用者のフレームを必ずルートリフレクタへ通すものではない。BGPセッションの構成と実際の転送経路を分けて考える。

識別子は役割で区別する

複数の利用者が同じ装置を共有すると、MACアドレスやVLAN番号が重なる場合がある。EVPNでは経路自体の区別と、どの仮想ネットワークが経路を受け入れるかを別の情報で扱う。

情報表すもの
RD(Route Distinguisher)別の仮想ネットワークなどが広告する経路を区別するための値
RT(Route Target)経路に付け、受信側が経路を取り込む条件との照合に使う属性
VNIVXLANのパケットで論理的なネットワークを識別する番号
ESI複数の装置が共有するEthernet Segmentの識別子

RDが異なることだけでは経路の取り込み先は決まらない。RTの設定が合わなければ、BGPで受信した経路を必要な仮想ネットワークへ取り込めない。VNIが同じかどうかと、経路の配布・取り込みが正しいかどうかは別々に確かめる。

BUMを配送する

BUMはBroadcast、Unknown Unicast、Multicastをまとめた呼び方である。Unknown Unicastは宛先MACアドレスの到達先が未学習のユニキャストを指す。これらは一つの既知の接続先だけでは処理できないため、論理的なLANに参加する装置へ広く配送する必要がある。

EVPNは参加先をType 3の経路などで知らせる。配送にはアンダーレイのIPマルチキャストを使う方法と、イングレスレプリケーションを使う方法がある。後者は入口のVTEPがフレームを複製し、参加する各VTEPへユニキャストで送る方式である。EVPNを導入しただけで一方に決まるわけではない。

リモートVTEPに接続された端末のMACアドレス、その仮想ネットワークを表すVNI、到達先のVTEPのIPアドレスを対応付けて学習すると、フレームの転送先を事前に決められる。これによってUnknown Unicastによるフラッディングを減らせるが、ブロードキャストまで自動的になくなるわけではない。IPアドレスとMACアドレスの対応を利用してARP要求などに代理応答する機能を組み合わせる場合も、必要な対応情報や装置の機能を確認する。

冗長な接続区間を識別する

EVPNマルチホーミングは、一つの接続区間を複数のEVPN対応装置へ収容する仕組みである。この区間をEthernet Segmentと呼び、ESI(Ethernet Segment Identifier)という10オクテットの値で識別する。同じ区間へ接続する装置は同じESIを共有する。ESIはVNIやサーバのMACアドレスを置き換える番号ではない。

All-Activeでは複数の接続を同時に転送へ利用できる。例えばリンクアグリゲーションを組んだサーバを複数のスイッチへ接続する構成がある。Single-Activeでは、対象のサービスについて一台を転送に使い、他を待機させる。

All-Activeで同じBUMが複数のスイッチからサーバ側へ届くと、フレームが重複する。これを防ぐため、ネットワーク側から対象区間へBUMを転送する代表としてDF(Designated Forwarder、指定フォワーダ)を選ぶ。担当はEthernet Segmentと対象のサービスの単位で決まり、通常のユニキャストもすべて一台へ集中させる意味ではない。

同じ区間から出たフレームをネットワーク経由で元の区間へ戻さない制御も必要になる。VXLANでは共有する接続区間とトンネルの送信元などを基に判定し、折り返しによるループを防ぐ。ESIを一致させるだけでなく、サーバ側のリンクアグリゲーションやVLANも整合させる。

移動と障害を経路の変化で伝える

端末が別のEthernet Segmentへ移動すると、古い接続先と新しい接続先の情報が同時に見えることがある。MAC Mobilityではシーケンス番号を用いて移動の順序を表し、新しい到達情報への更新と古い広告の撤回を進める。同じ区間へ複数の装置が接続するマルチホーミングとは区別する。

冗長な接続の一つが故障した場合は、Ethernet Auto-discovery経路の撤回を利用して、その接続先へ依存する多数のMACアドレスの到達情報をまとめて更新できる。MACアドレスごとの変更を一件ずつ待つだけの方式より、切替えを進めやすい。

こうした制御も障害を瞬時になくすものではない。検出、経路撤回の伝達、転送表の更新が完了するまでの時間は必要になる。また、EVPNはフレームを暗号化する機能ではなく、VTEP間の到達性やアクセス制御も別に設計する。

参考資料

実際の試験ではここに出る!全1問

ネットワークスペシャリスト

午後Ⅱ

この用語が出てくる記事

↑