はじめに
大規模なネットワークの設計を行っていると、必ずスケールアップの際に問題になる課題があります。
それがVLANの拡張問題です。
これについてまとめてみます。
VLANを巡る技術史
VLAN不足問題
VLAN(IEEE 802.1Q, タグVLAN, dot1q)は、1つの物理ネットワークを論理的に分割する技術で、今日のネットワーク設計では必ず使用されると言ってもいいほど広く普及している技術です。
VLANは次のようなヘッダー構成をしています。
このうち、VIDがVLAN IDを示し、12ビットのため 4096 件 (一部は予約で使用不可)まで使用することができます。
しかしながら、約4000件というのは実用上厳しい場合があり、2000年頃にインターネットが普及し始めると主にプロバイダーを中心に拡張を要望されるようになりました。
プロバイダーでは、各加入者にVLANを振っていましたが、4000ユーザーなどすぐに超えてしまい問題となりました。
QinQ
このようなVLAN不足問題に対応するため、様々な実装が考えられました。その中で標準化されたのがQinQ(IEEE 802.1ad、二重タグ方式)です。
QinQは非常にシンプルな仕様で、タグVLANのヘッダーの外に、もう一つタグVLANのヘッダーを付けます。こうすることで、4096 * 4096 = 1677万7216 件までVLANを拡張することができます。
タグVLANの規格番号のQを使用して、Qの中にQを入れる意味で QinQ と通称されています。
他の仕様に比べて実装も容易で、タグVLANのASICを流用できる場合が多いためスイッチの負荷も低く、安価なスイッチにも実装されていることが多い技術です。
主にプロバイダーで使用されることを想定した仕様であったため、内側のタグをCustomer VLAN、外側のタグを Service VLAN と呼びます。
しかし、このプロトコルにも弱点があります。
通常、L2スイッチはどの端末がどこに繋がっているかを示すMACアドレステーブルを持っているのですが、QinQはL2をそのまま拡張するため、L2スイッチには接続台数分のMACアドレスの登録が必要になります。
そのため、このMACアドレステーブルのサイズが実質的な接続台数の制限になってしまいます。(接続はできますがテーブルサイズを超えるとブロードキャストが増えるため遅延が発生するようになる)
以下は安価なFS.COMのスイッチで、こちらは3万テーブル程度となっています。TP-Linkの場合は1万件ほど、Ciscoの場合は金額が高額になります。
もちろん、多くのMACアドレスを登録できるスイッチもありますが、より高額なL2スイッチが必要になってしまいます。
エッジを含むすべてのスイッチに、これだけのスペックが必要なため、QinQはコストがかかる技術という課題を持っています。
このため、次にMACアドレステーブル不足問題が叫ばれるようになりました。
MAC-in-MAC
このような問題に対処するため、考えられたのがIEEE 802.1ahです。
この技術は、MACアドレスを二重にするため、通称として MAC-in-MAC とも呼ばれています。(QinQとネーミングセンスが同じ・・・)
IEEE 802.1ah のヘッダーは次のとおりです。
また、ahを拡張した IEEE 802.1aq も登場し、拡張性をより高めることとなりました。
しかし、この技術はプロバイダーなどでは普及しましたが、ユーザーがごく一部のためスイッチが高額になることなどから広くは普及しませんでした。
VXLAN
MACアドレス問題には、前述のようにIEEE 802.1ahなどが対処法として確立しましたが、ユーザー企業の仮想化の流行により、更なる転機がきます。
仮想マシンが広く普及すると、L3で区切った別ネットワーク間で仮想マシンを移動・展開させたいという要望が現れ始めました。
これには、次の様々な実装がありましたが、Ciscoなどが主体となっていたVXLANが広く普及しました。
VXLANは、VLANやQinQなどと比べると少々複雑です。
ヘッダーは以下のようになっており、L4までのヘッダーを付加して、元データをカプセル化します。
このような構成のため、MACアドレスはエンドポイントのスイッチのMACアドレスのみを学習すれば良いなり、MACアドレステーブルの問題も発生しません。
また、VLAN ID(VXLANの場合はVNIと呼ぶ)も24ビットあるため、16,777,216件までVLAN IDをサポートしています。
VXLAN はユーザー企業が主体となっていたため、VLANやQinQ対応製品に比べると高価ではありますが、MACinMACに比べると多くのスイッチに導入され価格も安くなっています。
おおむねL3以上のスイッチを購入すれば使用できます。
現在では、VXLANを使用する構成がスタンダードとなっています。
参考文献
ahについて詳しい
https://journal.ntt.co.jp/backnumber2/0604/files/jn200604012.pdf
QinQを使わずL2 VRRPで解消している案
https://www.janog.gr.jp/meeting/janog10/pdf/janog10-l2-ando.pdf
https://www.janog.gr.jp/meeting/janog10/log/janog10-vlan.txt
さくらはQinQとVXLANを組み合わせている
https://www.janog.gr.jp/meeting/janog39/application/files/3814/8479/0067/janog39-qinq-ito-01.pdf
関連技術がよくまとまっている
https://milestone-of-se.nesuke.com/nw-advanced/spb/spbm-summary/
コメント