VXLAN・EVPNによるデータセンター設計

読み:ぶいえっくすらんいーぶいぴーえぬによるでーたせんたーせっけい / 英語表記:data center network design with VXLAN and EVPN

VXLANでレイヤー2のネットワークをレイヤー3のネットワーク上に構成し、EVPNで端末や接続先の情報を交換する設計である。通信を運ぶ仕組みと転送先を知らせる仕組みを分け、利用者ごとのネットワークの分離と拡張性を確保する。

イマシルちゃんの解説

データセンターでは、離れたラックのサーバ同士を同じLANにつなぎたいことがあるんだ。
そこで使えるのが、LANのフレームをIPパケットに包んで運ぶトンネル技術のVXLANだよ。
途中のルータは外側の宛先を見て運ぶから、サーバの設置場所に縛られずにネットワークを組めるんだ。
ただし、届け先のサーバがどのトンネルの先にいるかを知る必要があるよ。
EVPNは、その接続情報をルータ同士で交換する制御技術なんだ。
運ぶ経路とサーバの接続情報を分けて管理すると、台数が増えたときも構成を広げやすくなるよ。

より深い解説

物理的な場所と論理的なネットワークを分ける

データセンターでは複数の利用者が同じ物理設備を共有する。この利用者や管理単位をテナントという。テナントごとの通信を分離しながら、仮想サーバを別のラックへ移動できるようにすることが設計上の課題になる。

VXLANは、VTEP間をつなぐIPネットワークの上に論理的なLANを構成する。土台となるネットワークをアンダーレイネットワーク、その上の仮想ネットワークをオーバレイネットワークという。VTEPはフレームを包んで送り、受信側で取り出すトンネルの端点である。

論理的なLANはVNIという番号で識別する。サーバ側のVLAN IDとVNIの対応を各VTEPに設定するため、接続場所によってVLAN IDが異なっていても同じVNIへ収容できる。

接続場所の例サーバ側のVLAN ID対応するVNI
ラックA21050,100
ラックB32050,100
ラックC21050,200

この例ではラックAとBのサーバを同じ論理的なLANへ接続できる。ラックAとCはVLAN IDが同じでも別のVNIに属する。通信可否を調べるときはIPアドレスの見た目だけで判断せず、VLANとVNIの対応を確認する。異なるVNI間で通信するには別途ルーティングを設計する。

カプセル化の内側と外側を読み分ける

VTEPはサーバから受け取ったイーサネットフレームにヘッダーを付け、UDPを使って相手のVTEPへ送る。内側にはサーバ同士の通信が残り、外側にはVTEP間で運ぶための情報が付く。構成図やパケットを読むときは、この二つの宛先を分けて追う。

情報が入る場所主な情報使う目的
元のイーサネットフレームサーバの送信元・宛先MACアドレステナントのLAN内で通信相手を指定する
VXLANヘッダーVNIどの論理的なLANのフレームかを識別する
外側のUDPヘッダーポート番号VXLANの受信処理や経路の負荷分散に利用する
外側のIPヘッダーVTEPの送信元・宛先IPアドレスアンダーレイで転送先を決める

既知のユニキャストを運ぶ場合、外側の宛先はリモートVTEPのIPアドレスとなる。元のサーバのIPアドレスを外側へ入れるわけではない。さらに外側のイーサネットヘッダーは、アンダーレイ上の各リンクで次の機器へ届けるために使われる。

ヘッダーが増えるため、アンダーレイのMTUにも余裕が必要である。例えばテナント側のIPパケットが1,500オクテットで、内側にVLANタグがなく外側がオプションなしのIPv4なら、外側のIPパケットは1,550オクテットになる。端点だけでなく、ECMPで使う途中の経路も含めてこのサイズを通せるか確認する。計算に含めるヘッダーの範囲はVXLANの記事で整理している。

土台となる経路を先に設計する

VXLANを設定しても、VTEP間でIPパケットが届かなければ通信できない。アンダーレイにOSPFを使う構成では、各ルータがLSAを交換してLSDBというネットワーク構成のデータベースを作り、自分を起点とする最短経路を計算する。同じエリアで情報が収束していても、起点が違うため各ルータの経路表は同じにはならない。

設計する項目判断の基準
ルータIDOSPFで各ルータを識別できる一意な値にする
ECMP同じ宛先へ向かう複数経路のコストの合計を等しくする
VTEPのIPアドレス特定の物理ポートに依存しないループバックインタフェースへ設定する
経路広告VTEPのアドレスへ両方向から到達できるようにする

ECMPは等コストの複数経路を利用する仕組みである。一般にフローごとの振り分けが行われるため、複数経路があることだけで一本の通信が全回線の合計速度になるとは限らない。

ループバックインタフェースは、物理ポートのリンク断に直接連動しない論理インタフェースである。別経路が残っていれば同じVTEPのアドレスへの通信を継続できる。ここで設定するのはネットワーク内から到達可能なアドレスであり、自分自身だけを表す127.0.0.1ではない。

未知の宛先をどう探すか

フレームの宛先がまだ分からないときは、同じ論理的なLANへ広く転送する必要がある。ブロードキャスト、宛先MACアドレスを未学習のユニキャスト、マルチキャストをまとめてBUMという。未学習のユニキャストはUnknown Unicastと呼ぶ。

データプレーンでMACアドレスを学習する方式では、内側の送信元MACアドレス、VNI、外側の送信元IPアドレスを対応付ける。これによって、どのLANのどのサーバが、どのVTEPの先にいるかを記録できる。調査時には宛先の情報を学習したものと取り違えないようにする。

例えばARP要求を受信したVTEPは、要求を送ったサーバの接続先を学習できる。その後のARP応答では、学習済みの対応を使って要求元のVTEPへユニキャストで返せる。このとき学習するサーバとVTEPを取り違えないことが重要である。

BUMの転送先は、基本的には同じVNIに参加するリモートVTEPである。土台のネットワーク全体や別テナントへ無条件に広げるものではない。

マルチキャストとユニキャスト複製を選ぶ

BUMを運ぶ代表的な方法には、アンダーレイのIPマルチキャストを利用する方法と、入口のVTEPで複製する方法がある。

方法外側の宛先と転送の仕方設計上の確認点
IPマルチキャストVNIに対応付けたマルチキャストグループへ送り、経路の途中で必要な複製を行うアンダーレイでマルチキャストを配送できることを確認する
イングレスレプリケーション入口のVTEPがフレームを複製し、参加する各VTEPへユニキャストで送る参加先の把握と送信側の帯域・複製処理の負荷を確認する

PIM-SMを使う構成では、ランデブーポイント(RP)を基点とする共有ツリーなどで配送経路を作る。受信側への配送経路と、VNIに対応するグループを確認する。送信元を起点とするツリーへ切り替わる場合もあるため、すべてのデータが常にRPを通るとは限らない。

EVPNはユニキャスト複製に必要な参加先の情報を配れるが、EVPNの導入によってマルチキャストが一律に禁止されるわけではない。採用する方式を設計として選ぶ。

EVPNで接続情報を交換する

EVPNを利用すると、VTEP同士はMP-BGPでMACアドレスや接続先VTEPなどの情報を交換する。ローカルで学習した端末の情報を広告することで、別のVTEPはその端末からデータを受信する前に転送先を知ることができる。

役割この構成で使う技術伝えるもの
データプレーンVXLANサーバが送受信するフレームを運ぶ
コントロールプレーンEVPNとMP-BGPMACアドレスの到達先やVNIの参加先を知らせる

端末の到達情報とBUMの参加先は、目的が異なるEVPNの経路として広告される。必要な経路を受信して取り込めているかを確認する。MACアドレスの到達先が事前に分かれば、Unknown Unicastによるフラッディングを減らせる。ブロードキャストを含むすべてのBUMが自動的になくなるわけではない。

同一AS内でiBGPの接続数を抑えるにはルートリフレクタを使う。各VTEPがすべてのVTEPと接続する代わりに、ルートリフレクタがクライアント間の経路情報を中継する。冗長化するときはクラスターIDやORIGINATOR_IDを使ったループ防止を理解し、どの機器を同じクラスターとして扱うかを設計する。ルートリフレクタを経由するのは経路情報であり、サーバのデータ通信も必ずそこを経由するという意味ではない。

サーバの接続を冗長化する

EVPNマルチホーミングでは、一つのEthernet Segmentを複数のVTEPへ接続する。同じ接続区間を識別する番号がESIである。ESIを共有する対応機器とサーバのリンクアグリゲーションを組み合わせると、複数のリンクをアクティブにして利用できる。

ESIはVNIとは役割が違う。VNIは仮想ネットワークを識別し、ESIは複数の機器が同じEthernet Segmentへ接続していることを識別する。ESIの一致に加えて、サーバとスイッチのリンクアグリゲーションやVLANの設定も合わせる。

All-Active構成では、ネットワーク側から同じサーバへBUMが重複して届かないようにDF(Designated Forwarder)を選出する。DFはその区間へBUMを届ける代表であり、通常のユニキャストまで常に一台だけが転送するという意味ではない。障害時には残った接続への切替えと、古い到達情報の撤回が正しく行われることを確認する。

構築後は土台から順番に確かめる

障害の切り分けは、物理リンク、アンダーレイの経路、EVPNの情報交換、サーバ側の対応関係の順に進める。VTEPへpingが届くだけでは、正しいVNIでフレームが運ばれていることまでは確認できない。

確認する対象見る情報と判断
アンダーレイOSPFの隣接関係、VTEP宛ての経路、往復の疎通を確認する
カプセル化外側のVTEPのアドレスと内側のサーバのアドレスを分けて読む
ネットワークの分離VLANとVNIの対応を確認し、別テナントへ届かないことを試す
EVPNBGPの接続状態だけでなく、必要なMACアドレスや参加先が学習されているかを見る
BUM採用した配送方式と、同じVNIに参加する配送先を確認する
MTU小さいパケットと大きいパケットで差がないかを確認する
冗長化回線やVTEPの片系を停止し、残る経路とサーバ接続で通信できるかを試す

参考資料

出題範囲はIPA 令和6年度春期ネットワークスペシャリスト午後Ⅱ 問題冊子の問1と、採点講評を参照した。本文は汎用的な設計の考え方として整理している。

午後での問われ方

問われ方判断のポイント
ヘッダーの識別サーバの情報、VNI、VTEPの情報がそれぞれどこに入るかを分ける
通信可否の判定接続先のVLAN IDからVNIへの対応を追い、同じ論理的なLANかを確認する
学習内容の記述受信したフレームの送信元と外側の送信元を区別する
経路の負荷分散経路全体のコストを比較し、ECMPの成立条件を説明する
BUMの配送先マルチキャストのグループか、同じVNIの参加先への複製かを読み取る
EVPN導入の利点事前の到達情報の学習、iBGP接続数の削減、サーバ接続の冗長化をそれぞれ説明する

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

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

午後Ⅱ
↑