手当たり次第に書くんだ

飽きっぽいのは本能

VXLAN・Geneve を L2 延伸技術としてだけ理解すると設計を誤る

ネットワーク設計の関連記事

VXLAN や Geneve は、ネットワーク仮想化の文脈でよく登場する技術です。一般的には、VXLAN は L3 ネットワーク上で L2 ネットワークを延伸する技術と説明されます。

これは間違いではありません。VXLAN は VTEP によって Ethernet frame を UDP/IP で encapsulation し、IP underlay の上に論理的な L2 segment を構成します。

しかし、この説明だけで VXLAN や Geneve を理解すると、設計を誤る可能性があります。なぜなら、VXLAN や Geneve の本質は、単に L2 を遠くまで伸ばすことではないからです。

この記事で扱う内容は次の通りです。

  • VXLAN は L2 延伸そのものが目的ではなく、overlay network を構成するための技術である
  • 問題はトンネルではなく、その上に載せる L2 / L3 の意味論である
  • Geneve は単なる新しい VXLAN ではなく、拡張性を意識した encapsulation である
  • underlay / overlay / data plane / control plane / management plane を分けて考える
  • L2 を伸ばせることと、L2 を伸ばすべきことは違う

VXLAN は L2 延伸そのものが目的ではない

VXLAN は、L3 underlay の上に overlay network を構成するための encapsulation 技術です。物理ネットワーク側は IP fabric として構成し、その上に VNI によって分離された論理ネットワークを作ります。

ここで重要なのは、VXLAN が L2 を伸ばせることと、L2 を伸ばすべきことは別だという点です。L2 を overlay に載せれば、当然ながら L2 の意味論も一緒に持ち込むことになります。

論点内容
broadcastブロードキャストドメインをどこまで広げるのか
unknown unicast宛先不明フレームをどの範囲へ流すのか
multicast制御方式をどうするのか
ARP / NDneighbor discovery をどこまで広げるのか
MTUencapsulation 分の overhead をどう吸収するのか
障害分離L2 障害をどこで止めるのか
運用責任underlay と overlay の責任分界をどう切るのか

つまり、VXLAN を使えば L2 延伸はできます。しかし、L2 延伸を選択した瞬間に、ブロードキャストドメインを拡張する責任も引き受けることになります。

問題はトンネルではなく、上に載せる意味論である

VXLAN や Geneve は、transport として見ればよくできた技術です。問題は、トンネルそのものではありません。問題は、その上に何を載せるかです。

L2 を載せるなら、L2 の責任を持つ必要があります。L3 を載せるなら、routing / policy / reachability の責任を持つ必要があります。

この区別を曖昧にしたまま、VXLAN だから便利、L2 延伸できるから移行が簡単、と考えると設計は危うくなります。

特に DR や拠点間接続の文脈では、IP アドレスを変えたくない、既存システムを変更したくない、という理由で L2 延伸が選ばれがちです。しかし、それは単に変更コストをネットワーク側へ押し込んでいるだけの場合があります。

Geneve はより汎用的な network virtualization encapsulation である

Geneve は、VXLAN より後発の network virtualization encapsulation です。VXLAN が比較的シンプルな L2 overlay の実装として広く使われてきたのに対し、Geneve はより拡張性を意識しています。

Geneve では、可変長 option によって追加情報を持たせることができます。仮想スイッチ、物理スイッチ、middlebox、controller など、さまざまな構成要素が関わるネットワーク仮想化基盤に対応しやすい設計です。

ここでも重要なのは、Geneve が新しい VXLAN だから良い、という単純な話ではないことです。Geneve の意味は、単なる encapsulation 方式の置き換えではなく、data plane にどのような情報を載せ、control plane とどう連携するかという話にあります。

Underlay と Overlay を分けて考える

VXLAN / Geneve の設計で重要なのは、underlay と overlay を分けて考えることです。

領域役割
underlayIP 到達性、ECMP、物理経路、MTU、障害収束
overlaytenant / workload / service の論理ネットワーク
data plane実際の packet forwarding / encapsulation
control planeMAC / IP / VTEP / policy などの制御
management plane設定、状態管理、運用、監視

underlay は、基本的には安定した IP fabric として作るべきです。overlay は、その上に構成される論理ネットワークです。この分離ができていれば、VXLAN / Geneve は非常に強力な道具になります。

逆に、この分離が曖昧なまま L2 延伸だけを目的にすると、物理ネットワークと論理ネットワークの責任分界が崩れます。

L2 延伸は便利だが、責任も延伸する

L2 延伸は便利です。IP アドレスを変えずに VM を移動できる。既存システムの設定変更を減らせる。同一セグメント前提の古いシステムを延命できる。そのようなメリットはあります。

しかし、同時に L2 の責任も遠隔地まで広がります。

得られるもの引き受けるもの
IP アドレスを変えない移動広域 L2 の障害範囲
既存システム変更の抑制broadcast / unknown unicast の制御
同一セグメント維持ARP / ND の拡散
移行時の一時的な柔軟性underlay / overlay の複雑化

したがって、L2 延伸はできるから使うものではありません。使うなら、どの範囲で、どの期間、どの制御プレーンで、どの障害を許容するのかを明確にする必要があります。

VXLAN / Geneve の理解は責任分界の理解である

VXLAN と Geneve を比較するとき、ヘッダ形式や option の有無だけを見ると、本質を見失います。もちろん、技術仕様の違いは重要です。しかし設計上より重要なのは、次の問いです。

問い意味
underlay は何を保証するのかIP 到達性、MTU、ECMP、障害収束
overlay は何を表現するのかtenant、segment、service、workload
control plane は何を配布するのかMAC、IP、VTEP、policy
L2 を載せる必要があるのかbroadcast domain を広げる理由があるか
L3 境界で切れないのかrouting / policy で分離できないか
障害範囲はどこで止まるのかL2 / L3 / overlay / underlay の境界

VXLAN / Geneve は、単なるトンネル技術ではありません。ネットワーク仮想化において、物理ネットワークと論理ネットワークの責任を分離するための技術です。

まとめ

VXLAN や Geneve は、L2 延伸を可能にする技術です。しかし、それらを L2 延伸技術としてだけ理解すると、設計を誤ります。本質は、IP underlay の上に overlay network を構成することです。

設計上重要なのは、VXLAN か Geneve かという表面的な比較ではありません。underlay に何を任せるのか。overlay に何を載せるのか。control plane で何を制御するのか。L2 の意味論をどこまで広げるのか。障害範囲と責任分界をどこで切るのか。

  • underlay に何を任せるのか
  • overlay に何を載せるのか
  • control plane で何を制御するのか
  • L2 の意味論をどこまで広げるのか
  • 障害範囲と責任分界をどこで切るのか

L2 を伸ばせることと、L2 を伸ばすべきことは違います。VXLAN / Geneve の理解とは、トンネルの理解ではなく、ネットワーク仮想化における責任分界の理解です。

関連する記事
VXLAN・Geneve を L2 延伸技術としてだけ理解すると設計を誤る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る