VXLANとは
VXLAN (Virtual eXtensible Local Area Network)は、 離れた複数のL2ネットワーク*1*2の間に、オーバーレイネットワークを使って、 共通のL2ネットワークを構築する技術です。 サーバの仮想化が進む中、複数のデータセンターをまたぐなど遠隔の仮想化されたサーバとネットワークの基盤で、 L2ネットワークを構築するために利用できます。
VXLANでは、L2ネットワークを拡張して他のL2ネットワークとつなぐために、 IPネットワークを使用します。VXLANセグメントと呼ばれるL2ネットワークを、 トンネリング技術を利用してIPネットワークにオーバーレイ(重ね合わせ)することで実現します。 この方式は、RFC7348*3に記述されています。
RFC7348においてVLANの設計は、 既存のL2ネットワークで広く利用されているスパニングツリーの制約への対応と、 802.1q Tag VLANで利用可能なVLAN ID数の制約への対応が意図されています。 具体的には、カプセリングに用いられるIPヘッダにより、 スパニングツリーでは実現できないマルチパスの冗長機能が利用できます。 また、Tag VLANで利用されるVLAN ID数の上限である4,094個(12ビット、VLAN ID 0および4095は除く)は、 サーバ仮想化の利用が進み、 L2ネットワークが増えていく中で設計上のプレッシャーとなることがありました。
VXLANでは、VXLANセグメントを識別するVXLAN Network ID (VNI)は24ビットであるため、 Tag VLANよりも大幅に多い約1,600万のVXLANセグメントを設けることが可能となります。 またVXLANを利用した場合には、 L2ネットワークがVXLANセグメントごとに分離されることになりますので、 L2ネットワークを収容するスイッチが学習する必要のあるMACアドレス数が、 Tag VLANで構築した場合よりも少なくなる利点も挙げられています。
VXLANセグメント同士は、カプセル化を行うVTEP (Virtual Tunnel End Point)を経由して通信を行います。 遠隔地のVTEPを見つけるなどのためにマルチキャストが利用されますので、 オーバーレイネットワークを設けるIPネットワークでは、 マルチキャストがサポートされている必要があります。 また、RFC7348ではVXLANパケットをフラグメントしないことが規定されており、 ジャンボフレームへの対応などMTUの調整が必要です。
*1 OSI参照モデルとは
https://www.nic.ad.jp/ja/basics/terms/osi.html
*2 L2ネットワーク
ここではイーサネットで構築されたネットワークを指します
*3 RFC7348
https://tools.ietf.org/rfc/rfc7348.txt