VXLANをデバッグする上でも知っておかなけえればならないのが、この各種テーブルの問題です。
L2のフレームをL3でカプセル化するとなると、VXLANで包まれた後の通信用MACアドレスと、元のL2フレーム時のMACアドレスなどいろいろな必要情報が出てきます。
特に物理ネットワークがL3レイヤーでまたいだセグメントの場合、どのノードに通信したい本来のマシンがあるかなどがわからないはずです。
では、まずはテーブルの種類を見ていきましょう。
VTEPテーブル
どのVNI(VXLAN Network Identifier)とVTEPテーブルを対応させるもの
MACテーブル
VNI、VTEP、仮想マシンのMACアドレスを対応させたテーブル
ARPテーブル
仮想マシンのIPアドレスとMACアドレスを対応させたテーブル
VTEPテーブルは、VXLAN独特のものですね。VNIといわれるVLAN-IDのようなもので、どのVNIがどのVTEPがESXiで構成されているかを持っています。
MACテーブル(L2スイッチは保有)とARPテーブル(L3スイッチや仮想マシンなどIPアドレスを認識するものが保有)は、通常と同じ考えですが、かならずVNIやVTEPとの関連性が出てきます。
では、このテーブルは各VTEP上にキャッシュされる仕組みになっていますが、このテーブル情報はどうやって各ESXiホストにあるVTEP同士で共有するのでしょうか?
これが、NSX Controllerの役割でもあります。
このテーブル情報の共有方法として、3つの種類をNSX for vSphereは保有しています。
<VTEPテーブルのレプリケーション方法>
- ユニキャストモード
- マルチキャストモード
- ハイブリッドモード
マルチキャストモードは、テーブル情報を常にマルチキャストで同期します。マルチキャストの場合、都度同期が走るため、NSX Controllerは、各種テーブル管理に介在しません。
ハイブリッドモードは、同じクラスター(vCenter Serverで構成したクラスター)の範囲間はマルチキャストで、違うクラスターをまたいだテーブル共有は、ユニキャストで行います。
違うクラスターとの通信の場合、受信をするESXiのVTEPは、1つが代表になり、代表が受信をした後、マルチキャストで同じクラスター内にテーブルが共有されます。
ちなみに、ハイブリッドモードで利用する際には、VTEP(L2フレームを変換したり戻したりする機能)のことを、MTEPと呼びます。
VXLANの仕様はもともと、マルチキャストでのテーブル共有しかありませんでした。(RFCもマルチキャストでの定義となっています)
ただ、L3 over L2であるにもかかわらず、L3越しのマルチキャストとなるとIGMPの設定など、いろいろと面倒な設定が物理層に必要になってきます。これはネットワーク仮想化を行う上で物理層に手を加える手間が出るのは不便であることと、そもそもIGMPに未対応なスイッチの場合、利用できないという観点から、ユニキャストモードとマルチキャストモードが新たにできた背景があるようです。
各種テーブルを作る動きは、VMwareのBlogに大変わかりやすく記載されていますので、是非こちらを参考にしてください。
第2回:論理スイッチ(VXLAN) –Layer2 の世界
https://blogs.vmware.com/jp-cim/2015/04/nwv02.html
0 件のコメント:
コメントを投稿