VXLAN(ブイエックスラン)は、Virtual eXtensible Local Area Networkの略で、データセンターなどの大規模ネットワーク上でレイヤー2(L2)のマルチテナント環境を柔軟に実現するための技術の一つ。主にサーバー仮想化環境での利用を想定する。

 マルチテナントとは、物理サーバーやネットワーク機器などのリソースを論理的に分割し、複数の組織のシステムで共用するための環境のことである。サーバー仮想化を導入した今日のデータセンターでは、IEEE 802.1QなどのVLANを使ってL2ネットワークのマルチテナントを構築するのが一般的だ。しかし大規模ネットワークでは、VLANを使ったマルチテナントにいくつか課題が出てきた。一例として、VLANの数に限界がある点が挙げられる。802.1Qでは、1つのL2ネットワーク上に4094個のVLANしか作成できない。ところが大規模なデータセンターでは、もっと大量の論理ネットワークが求められる。

 こうした課題に対処するために出てきたプロトコルがVXLANだ。IETFで規格化を目指しており、2012年12月の時点はドラフトの段階である。一部の製品ではドラフトベースで実装が進んでいる。例えば米ヴイエムウェアの「VMware vSphere」や、米シスコシステムズの仮想スイッチ「Nexus 1000V」などだ。

 VXLANは、イーサネットフレームをカプセル化することで、レイヤー3(L3)のネットワーク上に論理的なL2ネットワークを構築できるトンネリングプロトコルだ。トンネルは、ハイパーバイザーに含まれる仮想スイッチなどで終端される。これをトンネル終端ポイント(VTEP)と呼ぶ。実際にはL3のIPネットワークを介して仮想スイッチ間を接続する場合でも、仮想マシン(VM)からはフラットなL2ネットワークに見えるのが特徴だ。

 各論理ネットワーク(テナント)の識別には、「VXLAN Network Identifier」(VNI)と呼ばれる24ビットのIDを使う。最大で1677万以上のL2ネットワークを作成できる。

 VM間で通信する際は、マルチキャストとユニキャストの2種類の通信を使う。宛先のVMがどのVTEPに属するか学習済みの場合は、ユニキャストで通信する。学習していない場合は、VTEPはIPマルチキャストを使って同じVNIに属する他のVTEPに同報する仕組みだ。