VXLAN
-
**より高いスケーラビリティ。**サーバーの仮想化とクラウドコンピューティングアーキテクチャにより、データセンター内の独立したレイヤー2ネットワークの需要が劇的に高まっています。VLAN仕様では、12ビットのVLAN IDを使用してレイヤー2ネットワークを識別するため、4094を超えるVLANを拡張することはできません。何千もの分離されたレイヤ 2 ネットワークが必要な場合、この数では不十分な場合があります。24 ビット VNI は、同じ管理ドメイン内で最大 1,600 万の VXLAN セグメントに対応します。
-
**より高い柔軟性。**VXLANはレイヤー3パケットを介してレイヤー2データフレームを伝送するため、VXLANはデータセンターのさまざまな部分や地理的に離れたデータセンターにL2ネットワークを拡張します。データセンターのさまざまな部分や異なるデータセンターでホストされているが、同じ VXLAN の一部であるアプリケーションは、1 つの隣接するネットワークとして認識されます。
VXLAN の仕組み
-
ユニキャストモード:このモードでは、NetScalerでVXLANを構成する際にVTEPのIPアドレスを指定します。NetScalerは、ブロードキャストフレーム、マルチキャストフレーム、および未知のユニキャストフレームをレイヤー3を介してこのVXLANのすべてのVTEPに送信します。
-
マルチキャストモード:このモードでは、NetScalerでVXLANを構成するときにマルチキャストグループのIPアドレスを指定します。NetScalersはインターネットグループ管理プロトコル(IGMP)プロトコルをサポートしていません。NetScalerは、アップストリームルーターを利用して、共通のマルチキャストグループIPアドレスを共有するマルチキャストグループに参加します。NetScalerは、ブロードキャスト、マルチキャスト、および未知のユニキャストフレームをレイヤー3を介してこのVXLANのマルチキャストグループIPアドレスに送信します。
VXLAN の使用事例:データセンター間の負荷分散
-
NS-ADC は、IP と MAC のマッピングを解決するために S2 に ARP 要求をブロードキャストします。このパケットには次の内容が含まれます。
-
送信元IPアドレス = サーバー用のサブネットIPアドレスSNIP(192.0.1.50)
-
送信元MACアドレス = パケットの送信元となるNS-ADCのインタフェースのMACアドレス = NS-MAC-1
-
-
NS-ADC は、パケットを次のヘッダーでカプセル化して、VXLAN 9000 経由で送信する ARP パケットを準備します。
-
ID (VNI) が 9000 の VXLAN ヘッダー
-
標準 UDP ヘッダー、UDP チェックサムは 0×0000、宛先ポートは 4789 に設定されています。
-
-
NS-ADC は、生成されたカプセル化されたパケットを VXLAN-9000 の Dev-VTEP-1 と Dev-VTEP-2 に送信します。カプセル化されたパケットには次のものが含まれます。
-
送信元 IP アドレス = SNIP-VTEP-0 (203.0.100.100)。
-
-
Dev-VTEP-2 は UDP パケットを受信して UDP ヘッダーをカプセル化解除します。Dev-VTEP-2 は、このパケットが VXLAN 関連のパケットであることを学習します。次に、Dev-VTEP-2 は VXLAN ヘッダーのカプセル化を解除し、パケットの VXLAN ID を学習します。結果のパケットは、ステップ 1 と同じ S2 の ARP 要求パケットです。
-
Dev-VTEP-2 は VXLAN パケットの内部ヘッダーと外部ヘッダーから、VXLAN9000 の MAC アドレス (NS-MAC-1) と SNIP-VTEP-0 (203.0.100.100) のマッピングを示すエントリを VXLAN マッピングテーブルに作成します。
-
Dev-VTEP-2 は ARP パケットを S2 に送信します。S2 の応答パケットは Dev-VTEP-2 に到達します。Dev-VTEP-2 は VXLAN マッピングテーブルを検索し、宛先 MAC アドレス NS-MAC-1 と一致するものを取得します。Dev-VTEP-2 は、VXLAN 9000 経由で SNIP-VTEP-0 (203.0.100.100) 経由で NS-MAC-1 にアクセスできることを認識するようになりました。
-
S2 はその MAC アドレス(MAC-S2)で応答します。ARP 応答パケットには次の内容が含まれます。
-
送信先IPアドレス = サブネットIPアドレスサーバー用SNIP アドレス (192.0.1.50)
-
宛先 MAC アドレス = NS-MAC-1
-
-
S2 の応答パケットは Dev-VTEP-2 に到達します。Dev-VTEP-2 は VXLAN マッピングテーブルを検索し、宛先 MAC アドレス NS-MAC-1 と一致するものを取得します。Dev-VTEP-2 は、VXLAN 9000 経由で SNIP-VTEP-0 (203.0.100.100) 経由で NS-MAC-1 にアクセスできることを認識するようになりました。Dev-VTEP-2 は ARP 応答を VXLAN ヘッダーと UDP ヘッダーでカプセル化し、結果のパケットを NS-ADC の SNIP-VTEP-0 (203.0.100.100) に送信します。
-
NS-ADC は、パケットを受信すると、VXLAN と UDP ヘッダーを削除してパケットのカプセル化を解除します。結果のパケットは S2 の ARP 応答です。NS-ADC は、S2 の MAC アドレス (MAC-S2) の VXLAN マッピングテーブルを VXLAN 9000 の Dev-VTEP-2 の IP アドレス (203.0.102.102) に更新します。NS-ADCは、S2のIPアドレス(192.0.1.102)のARPテーブルもS2のMACアドレス(MAC-S2)で更新します。
-
クライアント CL は、NS-ADC の LBVS に要求パケットを送信します。リクエストパケットには次のものが含まれます。
-
送信元 IP アドレス = クライアント CL の IP アドレス (198.51.100.90)
-
宛先 IP アドレス = LBVS の IP アドレス (VIP) = 198.51.110.100
-
-
NS-ADCのLBVSは要求パケットを受信し、その負荷分散アルゴリズムがデータセンターDC2のサーバーS2を選択します。
-
NS-ADCは要求パケットを処理し、宛先IPアドレスをS2のIPアドレスに変更し、送信元IPアドレスをNS-ADCで設定されたサブネットIP(SNIP)アドレスのいずれかに変更します。リクエストパケットには次のものが含まれます。
-
送信元 IP アドレス = NS-ADC 上のサブネット IP アドレス = SNIP-for-server (192.0.1.50)
-
宛先 IP アドレス = S2 の IP アドレス (192.0.1.102)
-
-
NS-ADC は、ブリッジテーブルで S2 の VXLAN マッピングエントリを検出します。このエントリは、VXLAN 9000 経由の Dev-VTEP-2 経由で S2 にアクセスできることを示しています。
-
NS-ADC は、パケットを次のヘッダーでカプセル化して、VXLAN 9000 経由で送信するパケットを準備します。
-
ID (VNI) が 9000 の VXLAN ヘッダー
-
標準 UDP ヘッダー、UDP チェックサムは 0×0000、宛先ポートは 4789 に設定されています。
-
-
NS-ADCは、生成されたカプセル化されたパケットをDev-VTEP-2に送信します。リクエストパケットには次のものが含まれます。
-
送信元 IP アドレス = SNIP アドレス = SNIP-VTEP-0 (203.0.100.100)
-
宛先 IP アドレス = Dev-VTEP-2 (203.0.102.102) の IP アドレス
-
-
Dev-VTEP-2 は UDP パケットを受信して UDP ヘッダーをカプセル化解除します。Dev-VTEP-2 は、このパケットが VXLAN 関連のパケットであることを学習します。次に、Dev-VTEP-2 は VXLAN ヘッダーのカプセル化を解除し、パケットの VXLAN ID を学習します。結果のパケットは、ステップ 3 と同じパケットです。
-
次に、Dev-VTEP-2 はパケットを S2 に転送します。
-
S2 は要求パケットを処理し、NS-ADC の SNIP アドレスに応答を送信します。応答パケットには次の内容が含まれます。
-
ソース IP アドレス = S2 の IP アドレス (192.0.1.102)
-
宛先 IP アドレス = NS-ADC 上のサブネット IP アドレス = SNIP-for-Servers (192.0.1.50)
-
-
Dev-VTEP-2は、NS-ADCが手順4と5で要求パケットをカプセル化したのと同じ方法で応答パケットをカプセル化します。次に、Dev-VTEP-2 はカプセル化された UDP パケットを NS-ADC の SNIP アドレス SNIP サーバ用 SNIP アドレス (192.0.1.50) に送信します。
-
NS-ADCは、カプセル化されたUDPパケットを受信すると、Dev-VTEP-2がステップ7でパケットをカプセル化解除したのと同じ方法で、UDPヘッダーとVXLANヘッダーを削除してパケットのカプセル化を解除します。生成されるパケットは、ステップ 9 と同じ応答パケットです。
-
次に、NS-ADCはセッションテーブルを使用して仮想サーバーLBVSの負荷分散を行い、応答パケットをクライアントCLに転送します。応答パケットには次の内容が含まれます。
-
送信元 IP アドレス = クライアント CL の IP アドレス (198.51.100.90)
-
宛先 IP アドレス = LBVS (198.51.110.100) の IP アドレス (VIP)
-
VXLAN を設定する際に考慮すべきポイント
-
NetScalerでは最大2048のVXLANを構成できます。
-
VXLAN はクラスタではサポートされません。
-
リンクローカル IPv6 アドレスは、VXLAN ごとに設定できません。
-
NetScalersは、マルチキャストグループを形成するためのインターネットグループ管理プロトコル(IGMP)プロトコルをサポートしていません。NetScalersは、アップストリームルーターのIGMPプロトコルを利用して、共通のマルチキャストグループIPアドレスを共有するマルチキャストグループに参加します。VXLAN ブリッジテーブルエントリを作成するときにマルチキャストグループ IP アドレスを指定できますが、マルチキャストグループはアップストリームルータで設定する必要があります。NetScalerは、ブロードキャスト、マルチキャスト、および未知のユニキャストフレームをレイヤー3を介してこのVXLANのマルチキャストグループIPアドレスに送信します。次に、アップストリームルータは、マルチキャストグループに含まれるすべての VTEP にパケットを転送します。
-
VXLAN のカプセル化により、各パケットに 50 バイトのオーバーヘッドが追加されます。外部イーサネットヘッダー (14) + UDP ヘッダー (8) + IP ヘッダー (20) + VXLAN ヘッダー (8) = 50 バイトフラグメンテーションやパフォーマンスの低下を防ぐには、VXLAN パケットの 50 バイトのオーバーヘッドを処理できるように、VXLAN VTEP デバイスを含む VXLAN パスウェイ内のすべてのネットワークデバイスの MTU 設定を調整する必要があります。重要:ジャンボフレームは、NetScaler VPX仮想アプライアンス、NetScaler SDXアプライアンス、およびNetScaler MPX 15000/17000アプライアンスではサポートされていません。これらのアプライアンスは 1500 バイトの MTU サイズしかサポートしておらず、VXLAN パケットの 50 バイトのオーバーヘッドを処理するように調整することはできません。これらのアプライアンスのいずれかがVXLAN経路にあるか、VXLAN VTEPデバイスとして機能している場合、VXLANトラフィックは断片化されるか、パフォーマンスが低下する可能性があります。
-
NetScaler SDXアプライアンスでは、VXLANパケットに対してVLANフィルタリングは機能しません。
-
VXLAN に MTU 値を設定することはできません。
-
インターフェイスを VXLAN にバインドすることはできません。
構成の手順
-
VXLAN エンティティを追加します。正の整数で一意に識別される VXLAN エンティティを作成します。これは VXLAN ネットワーク識別子 (VNI) とも呼ばれます。このステップでは、VXLAN プロトコルが実行されているリモート VTEP の宛先 UDP ポートを指定することもできます。デフォルトでは、VXLAN エンティティの宛先 UDP ポートパラメータは 4789 に設定されています。この UDP ポート設定は、この VXLAN のすべてのリモート VTEP の設定と一致する必要があります。VLAN をこの VXLAN にバインドすることもできます。バインドされたすべての VLAN のトラフィック(ブロードキャスト、マルチキャスト、未知のユニキャストを含む)は、この VXLAN 上で許可されます。VXLANにバインドされているVLANがない場合、NetScalerはこのVXLAN上の他のVXLANに含まれていないすべてのVLANのトラフィックを許可します。
-
ローカル VTEP IP アドレスと VXLAN エンティティをバインドします。設定した SNIP アドレスのいずれかを VXLAN にバインドして、発信 VXLAN パケットを送信します。
-
ブリッジ可能なエントリを追加します。作成する VXLAN の VXLAN ID とリモート VTEP IP アドレスを指定するブリッジ可能なエントリを追加します。
-
(オプション)さまざまな機能エンティティを設定済みの VXLAN にバインドします。VXLANはVLANと同様に機能しますが、分類パラメーターとしてVLANをサポートするNetScaler機能のほとんどは、VXLANもサポートしています。これらの機能には、VXLAN VNI を指定するオプションの VXLAN パラメータ設定が含まれます。
-
(オプション)VXLAN マッピングテーブルを表示します。リモートホストの MAC アドレスから特定の VXLAN の VTEP IP アドレスへのマッピングエントリを含む VXLAN マッピングテーブルを表示します。つまり、VXLAN マッピングとは、特定の VXLAN 上の VTEP を介してホストにアクセスできるということです。NetScalerはVXLANマッピングを学習し、受信したVXLANパケットからマッピングテーブルを更新します。NetScalerは、VXLANマッピングテーブルを使用してレイヤー2フレームの宛先MACアドレスを検索します。このMACアドレスのエントリがVXLANテーブルに存在する場合、NetScalerはVXLANプロトコルを使用してレイヤー3上のレイヤー2フレームを、VXLANのマッピングエントリに指定されているマッピングされたVTEP IPアドレスに送信します。
CLI のプロシージャ
-
add vxlan \<id>
-
show vxlan\<id>
-
bind vxlan \<id> -SrcIP \<IPaddress>
-
show vxlan \<id>
-
add bridgetable -mac \<macaddress> -vxlan \<ID> -vtep \<IPaddress>
-
ブリッジテーブルを表示
-
ブリッジテーブルを表示
GUIのプロシージャ
-
MAC
-
VTEP
-
VXLAN ID
Example
> add vxlan 9000
Done
> bind vxlan 9000 -srcIP 203.0.100.100
Done
> add bridgetable -mac 00:00:00:00:00:00 -vxlan 9000 -vtep 203.0.101.101
Done
> add bridgetable -mac 00:00:00:00:00:00 -vxlan 9000 -vtep 203.0.102.102
Done
VXLAN での IPv6 ダイナミックルーティングプロトコルのサポート
-
show vxlan
In the following sample configuration, VXLAN-9000 is created and has IPv6 dynamic routing protocols enabled on it. Then, using the VTYSH command line, process for the IPv6 OSPF protocol is started on the VXLAN.
> add vxlan 9000 -ipv6DynamicRouting ENABLED
Done
> bind vxlan 9000 -srcIP 203.0.100.100
Done
> add bridgetable -mac 00:00:00:00:00:00 -vxlan 9000 -vtep 203.0.101.101
Done
> VTYSH
NS# configure terminal
NS(config)# ns IPv6-routing
NS(config)# interface VXLAN-9000
NS(config-if)# ipv6 router OSPF area 3
VXLAN-VLAN マップを使用した複数の企業からクラウドへの VLAN の拡張
-
VXLAN-VLAN マップを作成します。
-
VXLAN-VLANマップを、クラウド上のNetScalerアプライアンス上のネットワークブリッジベースまたはPBRベースのCloudBridgeコネクタトンネル構成にバインドします。
-
(オプション)VXLAN 設定で VLAN タギングを有効にします。
CLI のプロシージャ
-
VXLAN マップの追加 \<name>
-
show vxlanVlanMap \<name>
-
show vxlanVlanMap \<name>
-
show netbridge \<name>
-
show netbridge \<name>
-
show pbr \<name>
-
show pbr \<name>
-
add vxlan \<vnid> -vlanTag (ENABLED \| DISABLED)
-
show vxlan \<vnid>
-
set vxlan \<vnid> -vlanTag (ENABLED \| DISABLED)
-
show vxlan \<vnid>
GUIのプロシージャ
> add vxlanVlanMap VXLANVLAN-DC1
Done
> bind vxlanvlanmap VXLANVLAN-DC1 -vxlan 3000 -vlan 3
Done
> bind vxlanvlanmap VXLANVLAN-DC1 -vxlan 3500 -vlan 4
Done
>add vxlanVlanMap VXLANVLAN-DC2
Done
> bind vxlanvlanmap VXLANVLAN-DC1 -vxlan 8000 -vlan 3 4
Done
> set pbr PBR-CBC-DC-1-CLOUD ALLOW -ipTunnel CBC-DC-1-CLOUD -vxlanVlanMap VXLANVLAN-DC1
Done
> set pbr PBR-CBC-DC-2-CLOUD ALLOW -ipTunnel CBC-DC-2-CLOUD -vxlanVlanMap VXLANVLAN-DC2
Done