VXLAN について
VXLAN(仮想拡張 LAN プロトコル)技術により、ネットワークはより多くの VLAN をサポートできます。IEEE 802.1Q 規格では、従来の VLAN 識別子の長さは 12 ビットです。これにより、ネットワークの VLAN の数は 4094 に制限されます。VXLANプロトコルは、より多くのVLANを可能にする長い論理ネットワーク識別子を使用することで、この制限を克服します。したがって、一般的に多くの仮想マシンを含むクラウドなどの大規模なネットワークでは、より多くの論理ネットワーク分離が可能になります。
VXLAN のメリット
VXLAN テクノロジーでは、(VLAN の場合と同様に)ネットワークをセグメント化できますが、VLAN では得られないメリットがあります。VXLAN を使用する場合の最も重要なメリットは次のとおりです。
理論的には、管理ドメインに 1,600 万もの VXLAN を作成できます(Juniper Networks デバイス上の VLAN は 4,094 個と異なります)。
MXシリーズルーターとEX9200スイッチは、最大32,000のVXLAN、32,000のマルチキャストグループ、8,000ものVTEP(仮想トンネルエンドポイント)をサポートしています。つまり、MXシリーズルーターをベースにしたVXLANは、クラウドビルダーが大量のテナントをサポートするために必要な規模でネットワークをセグメント化します。
QFX10000 シリーズ スイッチは、4,000 の VXLAN と 2,000 のリモート VTEP をサポートします。
QFX5100、QFX5110、QFX5200、QFX5210、EX4600スイッチは、4,000のVXLAN、4,000のマルチキャストグループ、および2,000のリモートVTEPをサポートしています。
EX4300-48MPスイッチは、4,000のVXLANをサポートしています。
レイヤー 3 ネットワーク上のトラフィックをトンネリングすることで、別のレイヤー 2 ドメインに存在するサーバー間で仮想マシンの移行を有効にすることができます。この機能により、レイヤー 2 の境界の制約を受けることなく、大規模なレイヤー 2 ドメインや地理的に拡張されたレイヤー 2 ドメインを作成せずに、データ センター内またはデータ センター間で動的にリソースを割り当てることができます。
VXLAN を使用して小規模なレイヤー 2 ドメインを作成し、レイヤー 3 ネットワーク上で接続します。つまり、STP(スパニング ツリー プロトコル)を使用してトポロジーを統合する必要はありませんが、代わりにレイヤー 3 ネットワークでより堅牢なルーティング プロトコルを使用できます。STPがない場合、すべてのリンクがブロックされません。つまり、購入したすべてのポートからフルバリューを得ることができます。また、ルーティングプロトコルを使用してレイヤー2ドメインに接続することで、トラフィックの負荷分散を行い、利用可能な帯域幅を最大限に活用することもできます。データ センター内またはデータ センター間で頻繁に流れる East-West トラフィックの量を考えると、そのトラフィックに対するネットワーク パフォーマンスを最大限に高めるのは非常に重要です。
ビデオ「 データ センターでオーバーレイ ネットワークを使用する理由」では、 VXLAN を使用するメリットについて簡単に説明しています。
VXLANの仕組み
VXLAN はオーバーレイ技術とよく言われます。IP アドレスを含む VXLAN パケットにイーサネット フレームをカプセル化(トンネリング)することで、レイヤー 3 ネットワーク上でレイヤー 2 接続を拡張できるためです。VXLANをサポートするデバイスは 、仮想トンネルエンドポイント(VTEP)と呼ばれ、エンドホストまたはネットワークスイッチまたはルーターにすることができます。VTEP は VXLAN トラフィックをカプセル化し、VXLAN トンネルを出るときにそのトラフィックのカプセル化を解除します。イーサネット フレームをカプセル化するために、VTEP は以下のフィールドを含むいくつかのフィールドを追加します。
外側の MAC(メディア アクセス制御)宛先アドレス(トンネル エンドポイント VTEP の MAC アドレス)
外側の MAC 送信元アドレス(トンネル送信元 VTEP の MAC アドレス)
外側の IP 宛先アドレス(トンネル エンドポイント VTEP の IP アドレス)
外側の IP 送信元アドレス(トンネル送信元 VTEP の IP アドレス)
外側の UDP ヘッダー
VXLAN を一意に識別するために使用される、 VNI(VXLAN ネットワーク識別子)と呼ばれる 24 ビット フィールドを含む VXLAN ヘッダー。VNIはVLAN IDと似ていますが、24ビットであるため、VLANよりも多くのVXLANを作成できます。
VXLANは、元のイーサネットフレームに50~54バイトのヘッダー情報を追加するため、基盤となるネットワークのMTUを増やすことができます。この場合、論理 VTEP 送信元インターフェイスの MTU(これは無視されます)ではなく、VXLAN ネットワークに参加する物理インターフェイスの MTU を設定します。
図 1 は、VXLAN パケット形式を示しています。
VXLAN の実装方法
Junos OS は、以下の環境での VXLAN の実装をサポートしています。
手動 VXLAN—この環境では、ジュニパーネットワークスのデバイスは VTEP として機能するダウンストリーム デバイスのトランジット デバイスとして機能します。また、レイヤー 3 ネットワークを介して通信する VM(仮想マシン)をホストするダウンストリーム サーバーの接続を提供するゲートウェイとしても機能します。この環境では、SDN(Software-Defined Networking)コントローラは導入されません。
メモ:QFX10000 スイッチは、手動 VXLAN をサポートしていません。
OVSDB-VXLAN—この環境では、SDN コントローラが OVSDB(Open vSwitch Database)管理プロトコルを使用して、OVSDB をサポートするコントローラ(VMware NSX、Juniper Networks Contrail コントローラなど)およびジュニパーネットワークスのデバイスが通信できる手段を提供します。
EVPN-VXLAN—この環境では、イーサネットVPN(EVPN)は、ホスト(物理サーバーとVM)をネットワーク内の任意の場所に配置し、同じ論理レイヤー2オーバーレイネットワークに接続し続けることを可能にするコントロールプレーン技術であり、VXLANはレイヤー2オーバーレイネットワークのデータプレーンを作成します。
VXLAN を搭載した QFX5100、QFX5110、QFX5120、QFX5200、QFX5210、EX4300-48MP、EX4600 スイッチの使用
スイッチは、以下のすべての役割を実行するように設定できます。
(EX4300-48MPを除くすべてのスイッチ)SDN コントローラを使用しない環境では、VTEP として機能するダウンストリーム ホストのトランジット レイヤー 3 スイッチとして機能します。この設定では、スイッチで VXLAN 機能を設定する必要はありません。スイッチが VXLAN マルチキャスト グループのマルチキャスト ツリーを形成できるように、IGMP と PIM を設定する必要があります。(詳細については、「 手動 VXLAN には PIM が必要」 を参照してください)。
(EX4300-48MPを除くすべてのスイッチ)SDN コントローラの有無にかかわらず、同じデータ センター内またはデータ センター間で仮想化ネットワークと仮想化以外のネットワーク間のレイヤー 2 ゲートウェイとして機能します。たとえば、スイッチを使用して、VXLAN を使用するネットワークを VLAN を使用するネットワークに接続できます。
(EX4300-48MPスイッチ)キャンパス ネットワーク内の仮想化ネットワークと仮想化以外のネットワーク間のレイヤー 2 ゲートウェイとして機能します。たとえば、スイッチを使用して、VXLAN を使用するネットワークを VLAN を使用するネットワークに接続できます。
(EX4300-48MPを除くすべてのスイッチ)同一または異なるデータ センター内の仮想化ネットワーク間のレイヤー 2 ゲートウェイとして機能し、これらのネットワークとデータ センター間で VMotion(仮想マシンの移動)を可能にします。たとえば、2 つの異なるネットワーク内のデバイス間で VMotion を許可する場合、両方のネットワークに同じ VLAN を作成し、両方のデバイスをその VLAN に配置できます。VTEP として動作するこれらのデバイスに接続されたスイッチは、その VLAN を同じ VXLAN にマッピングでき、VXLAN トラフィックを 2 つのネットワーク間でルーティングできます。
(EVPN-VXLANを搭載したQFX5110およびQFX5120スイッチ)同じデータ センター内の異なる VXLAN 間でトラフィックをルーティングするレイヤー 3 ゲートウェイとして機能します。
(EVPN-VXLANを搭載したQFX5110およびQFX5120スイッチ)標準のルーティング プロトコルや VPLS(仮想プライベート LAN サービス)トンネルを使用して、WAN またはインターネット上の異なるデータ センター内の異なる VXLAN 間でトラフィックをルーティングするレイヤー 3 ゲートウェイとして機能します。
QFX5110またはQFX5120スイッチをEVPN-VXLAN環境のレイヤー3 VXLANゲートウェイにする場合は、VLAN間のトラフィックルーティングと同様に、IRB(統合型ルーティングおよびブリッジング)インターフェイスをVXLANに接続するように設定する必要があります。
ヘッダーを追加すると 50~54 バイトが追加されるため、より大きなパケットに対応するために VTEP の MTU を増やす必要がある場合があります。例えば、スイッチが 1514 バイトのデフォルト MTU 値を使用していて、VXLAN 上で 1,500 バイトのパケットを転送する場合、MTU を増やして、追加ヘッダーによってパケット サイズを増やす必要があります。
QFX5100、QFX5110、QFX5200、QFX5210、EX4600スイッチのUDPポートの変更
QFX5100スイッチのJunos OSリリース14.1X53-D25以降、 QFX5110およびQFX5200スイッチのJunos OSリリース15.1X53-D210、QFX5210スイッチのJunos OSリリース18.1R1、EX4600スイッチのJunos OSリリース18.2R1では、VXLANトラフィックの宛先ポートとして使用されるUDPポートを設定できます。VXLAN 宛先ポートをデフォルトの UDP ポートである 4789 以外に設定するには、以下のステートメントを入力します。
set protocols l2-learning destination-udp-port port-number
設定したポートは、スイッチ上で設定されたすべての VXLAN に使用されます。
VXLAN 内の 1 つのスイッチでこの変更を行う場合、スイッチに設定された VXLAN を終端するすべてのデバイスで同じ変更を行う必要があります。これを行わないと、スイッチに設定されたすべての VXLAN でトラフィックが中断されます。UDP ポートを変更すると、学習済みのリモート VTEP とリモート MAC が失われ、スイッチがリモート VTEP とリモート MAC を再学習するまで VXLAN トラフィックが中断されます。
QFX5100、QFX5110、QFX5200、QFX5210、EX4600 スイッチでのトランジット マルチキャスト トラフィックの制御
VTEP として動作するスイッチは、ブロードキャスト、不明なユニキャスト、マルチキャスト パケットを受信すると、パケットに対して以下のアクションを実行します。
パケットのカプセル化を解除し、ローカルで接続されたホストに配信します。
次に、VXLANカプセル化を再度追加し、VXLAN内の他のVTEPにパケットを送信します。
これらのアクションは、VXLAN トンネル アドレスとして使用されるループバック インターフェイスによって実行されるため、VTEP で使用可能な帯域幅に悪影響を与える可能性があります。QFX5100スイッチのJunos OSリリース14.1X53-D30以降、 QFX5110およびQFX5200スイッチ用Junos OSリリース15.1X53-D210、QFX5210スイッチ用Junos OSリリース18.1R1、EX4600スイッチのJunos OSリリース18.2R1(特定のマルチキャストグループのトラフィックを必要とするVXLAN内の他のVTEPに接続されているマルチキャストレシーバーがない場合) 次のステートメントを入力することで、ループバックインターフェイスの処理負荷を軽減できます。
set protocols l2-learning disable-vxlan-multicast-transit vxlan-multicast-group multicast-group
この場合、指定されたグループに対してトラフィックは転送されませんが、他のすべてのマルチキャスト トラフィックは転送されます。VXLAN 内の他の VTEP にマルチキャスト トラフィックを転送しない場合は、以下のステートメントを入力します。
set protocols l2-learning disable-vxlan-multicast-transit vxlan-multicast-group all
MXシリーズルーター、EX9200スイッチ、またはQFX10000スイッチをVTEPとして使用
MX シリーズ ルーター、EX9200 スイッチ、または QFX10000 スイッチを VTEP として機能させ、以下のすべての役割を実行するように設定できます。
同じデータ センター内またはデータ センター間の仮想化ネットワークと仮想化以外のネットワーク間のレイヤー 2 ゲートウェイとして機能します。たとえば、MX シリーズ ルーターを使用して、VXLAN を使用するネットワークを VLAN を使用するネットワークに接続できます。
同一または異なるデータ センター内の仮想化ネットワーク間のレイヤー 2 ゲートウェイとして機能し、これらのネットワークとデータ センター間で VMotion(仮想マシンの移動)を可能にします。
同じデータ センター内の異なる VXLAN 間でトラフィックをルーティングするレイヤー 3 ゲートウェイとして機能します。
標準のルーティング プロトコルや VPLS(仮想プライベート LAN サービス)トンネルを使用して、WAN またはインターネット上の異なるデータ センター内の異なる VXLAN 間でトラフィックをルーティングするレイヤー 3 ゲートウェイとして機能します。
このセクションで説明されているデバイスのいずれかを VXLAN レイヤー 3 ゲートウェイにする場合は、VLAN 間でトラフィックをルーティングする場合と同様に、IRB(統合型ルーティングおよびブリッジング)インターフェイスを VXLAN に接続するように設定する必要があります。
手動 VXLAN には PIM が必要
コントローラ(VMware NSX やジュニパーネットワークス Contrail コントローラなど)がある環境では、ジュニパーネットワークスのデバイス上で VXLAN をプロビジョニングできます。コントローラは、VTEP が到達可能性のアドバタイズや他の VTEP の到達可能性の学習に使用するコントロール プレーンも提供します。コントローラを使用する代わりに、ジュニパーネットワークスデバイスでVXLANを手動で作成することもできます。このアプローチを使用する場合、VTEP 間で VXLAN トンネルを作成できるように、VTEP に PIM(プロトコル独立マルチキャスト)も設定する必要があります。
また、特定の VXLAN 内の各 VTEP を同じマルチキャスト グループのメンバーとして設定する必要があります。(可能な場合、これは必須ではありませんが、各 VXLAN に異なるマルチキャスト グループ アドレスを割り当てる必要があります。複数の VXLAN で同じマルチキャスト グループを共有できます)。)その後、VTEP は、接続されたホストから受信した ARP 要求をマルチキャスト グループに転送できます。グループ内の他の VTEP は VXLAN 情報のカプセル化を解除し、(それらが同じ VXLAN のメンバーであると仮定して)、ARP リクエストを接続されたホストに転送します。ターゲットホストがARP要求を受信すると、そのMACアドレスで応答し、VTEPはこのARP返信を送信元VTEPに戻します。このプロセスを通じて、VTEP は VXLAN 内の他の VTEP の IP アドレスと、他の VTEP に接続されたホストの MAC アドレスを学習します。
マルチキャスト グループとツリーは、VTEP 間のブロードキャスト、不明なユニキャスト、マルチキャスト(BUM)トラフィックの転送にも使用されます。これにより、BUM トラフィックが VXLAN の外部に不必要にフラッディングするのを防ぎます。
VXLAN トンネルを介して転送されるマルチキャスト トラフィックは、VXLAN 内のリモート VTEP にのみ送信されます。つまり、カプセル化 VTEP はマルチキャスト ツリーに従ってパケットのコピーと送信を行わず、受信したマルチキャスト パケットのみをリモート VTEP に転送します。リモート VTEP は、カプセル化されたマルチキャスト パケットのカプセル化を解除し、適切なレイヤー 2 インターフェイスに転送します。
VXLAN トラフィックのロード バランシング
VXLAN トンネルを形成するレイヤー 3 ルートは、デフォルトでパケット単位のロード バランシングを使用します。これは、リモート VTEP への ECMP パスがある場合にロード バランシングが実装されていることを意味します。これは、パケット単位のロード バランシングがデフォルトで使用されない通常のルーティング動作とは異なります。(通常のルーティングでは、デフォルトでプレフィックス単位のロード バランシングが使用されます)。
UDP ヘッダーの送信元ポート フィールドは、レイヤー 3 ネットワーク内の VXLAN トラフィックの ECMP ロード バランシングを有効にするために使用されます。このフィールドは内部パケット フィールドのハッシュに設定され、ECMP がトンネル(フロー)の識別に使用できる変数になります。
フローベース ECMP が通常使用する他のフィールドは、VXLAN での使用には適しません。同じ 2 つの VTEP 間のすべてのトンネルは、同じ外側の送信元と宛先 IP アドレスを持ち、UDP 宛先ポートは定義によりポート 4789 に設定されます。そのため、これらのフィールドのいずれも、ECMP がフローを区別するための十分な方法を提供しません。
QFX5120スイッチを有効化して、コアに面したレイヤー3のタグ付きインターフェイスとIRBインターフェイスでトラフィックをトンネリング
このセクションは、Junos OS リリース 18.4R1、18.4R2、18.4R2-S1~18.4R2-S3、19.1R1、19.1R2、19.2Rx、19.3R をx実行する QFX5120 スイッチにのみ適用されます。
QFX5120スイッチが、コアに面したレイヤー3タグ付きインターフェイスまたはIRBインターフェイスでトラフィックをトンネリングしようとすると、スイッチはパケットをドロップします。この問題を回避するには、レイヤー 3 タグ付きまたは IRB インターフェイス上に、シンプルな 2 条件フィルターベースファイアウォールを設定できます。
QFX5120スイッチは、最大256個の2期間フィルターベースファイアウォールをサポートしています。
例えば:
set interfaces et-0/0/3 unit 0 family inet filter input vxlan100 set firewall family inet filter vxlan100 term 1 from destination-address 192.168.0.1/24 then accept set firewall family inet filter vxlan100 term 2 then routing-instance route1
条件1は、スイッチのループバックインターフェイスに割り当てられた送信元VTEP IPアドレス(192.168.0.1/24)によって識別されるQFX5210スイッチ宛てのトラフィックを照合し、受け入れます。条件 1 では、アクションを指定する際に、受け入れるのではなくトラフィックをカウントすることに注意してください。
条件2は、他のすべてのデータトラフィックを照合してルーティングインスタンス(ルート1)に転送します。これはインターフェイスet-0/0/3で設定されています。
この例では、インターフェイスet-0/0/3がルーティングインスタンスルート1によって参照されていることに注意してください。その結果、 コマンドを set firewall family inet filter vxlan100 term 2 then routing-instance route1 含める必要があります。このコマンドを使用しないと、ファイアウォール フィルターが正しく機能しません。
VXLAN での ping と traceroute の使用
QFX5100およびQFX5110スイッチでは、 および traceroute コマンドをping使用して、VXLANトンネルを通過するトラフィックフローをトラブルシューティングするには、 パラメーターとさまざまなオプションをoverlay含めます。これらのオプションを使用して、 または traceroute のパケットをping強制的に VXLAN トンネルを通過するデータ パケットと同じパスをたどるようにします。つまり、アンダーレイ パケット(および)はオーバーレイ パケット(pingデータ トラフィック)とtraceroute同じルートを取得します。詳細については、 ping オーバーレイと traceroute overlay を参照してください。
サポートされている VXLAN 標準
VXLAN の標準を定義する RFC とインターネット ドラフト:
RFC 7348、 仮想eXtensible Local Area Network(VXLAN):レイヤー3ネットワーク上で仮想化されたレイヤー2ネットワークをオーバーレイするためのフレームワーク
インターネットドラフトdraft-ietf-nvo3-vxlan-gpe、 VXLANの一般的なプロトコル拡張