summary:
VXLANは,L2ネットワークをL3ネットワーク上に仮想的に構築する技術であり,物理的なネットワークトポロジの制約を超えて仮想マシンやコンテナ間の通信を可能にする.これにより,異なるデータセンターや異なるクラウド環境にまたがる仮想ネットワークの統合が実現される.
VXLANは,特にデータセンターやクラウド環境において,ネットワークの柔軟性と拡張性を向上させる目的で開発された.従来のVLANでは,IEEE 802.1Qによって定義される12ビットのVLAN IDを利用するため,最大4,096個のネットワークしか作成できなかった.この制約がクラウドや大規模データセンターの運用において大きな問題となり,多数のテナントをサポートするためにはより多くの論理ネットワークが必要とされた.VXLANは24ビットのVXLANネットワーク識別子[VNI]を使用することで,最大16,777,216[2^24]個のネットワークを作成できるようになり,大規模なマルチテナント環境でも十分な拡張性を確保できるようになった.
技術的には,VXLANはUDPベースのカプセル化を用いて,L2フレームをIPネットワーク上で転送する仕組みを採用している.具体的には,元のL2フレームにVXLANヘッダーを付加し,さらにUDP/IPヘッダーでカプセル化することで,標準的なIPネットワーク上で転送を可能にしている.これにより,異なるL3ネットワーク間でL2ネットワークを構築できるようになり,データセンターやクラウド環境をまたぐ仮想ネットワークの統合が可能となる.VXLANのトンネルの終端にはVXLAN Tunnel Endpoint[VTEP]と呼ばれるエンティティが配置され,これがL2フレームをVXLANパケットへカプセル化し,IPネットワーク上に送信する.受信側のVTEPはこのカプセル化を解除し,元のL2フレームを復元する.標準的にはUDPポート4789が使用される.これにより,仮想マシンやコンテナが物理ネットワークの制約を受けることなく,柔軟に配置・移動できるようになる.
VXLANの実装では,VTEPはソフトウェア[Open vSwitchなど]またはハードウェア[対応するスイッチやルーター]で実現される.また,VXLANネットワーク内のエンドポイント検出やVNIマッピングには,マルチキャストやコントロールプレーンプロトコル[BGP EVPNなど]が使用される.VXLANは,OpenStack NeutronやKubernetesのCNI[Container Network Interface]プラグインなど,多くのクラウドプラットフォームや仮想化基盤で採用されている.特に,ハイブリッドクラウドやマルチクラウド環境において,オンプレミスのネットワークとパブリッククラウドのネットワークを統合する際に利用され,異なるクラウドプロバイダ間のシームレスな接続を実現する手段として注目されている.これにより,クラウド間のリソースを統合し,分散したデータセンター環境でも統一されたネットワークの管理が可能となる.
VXLANの導入により,従来のネットワーク構成では困難だったスケーラブルで柔軟な仮想ネットワークが実現され,クラウド時代のネットワークアーキテクチャにおける重要な要素の一つとなった.ただし,カプセル化によるオーバーヘッド[VXLANヘッダー8バイト,UDPヘッダー8バイト,外部IPヘッダー20バイト]が発生するため,MTUサイズの調整やパフォーマンスへの影響を考慮した設計が必要である.また,セキュリティ面では,デフォルトではVXLANトラフィックが暗号化されないため,必要に応じてIPsecなどの追加的なセキュリティ対策を検討する必要がある.業界標準としては,VXLANはIETF RFC 7348で規定されており,主要なネットワーク機器ベンダーやクラウドサービスプロバイダーによって広くサポートされている.
Mathematics is the language with which God has written the universe.