VXLAN について
VXLAN(仮想拡張 LAN)プロトコル技術を使用すると、ネットワークでより多くの VLAN をサポートできるようになります。IEEE 802.1Q 規格に基づくと、従来の VLAN 識別子の長さは 12 ビットですが、この命名法ではネットワークの VLAN 数が 4,094 に制限されます。VXLAN プロトコルは、従来よりも長い論理ネットワーク識別子を使用してより多くの VLAN に対応できるようにすることで、この制限を解消しました。したがって、一般的に多数の仮想マシンが含まれているクラウドなどの大規模なネットワークでより多くの論理ネットワークの分離が可能になります。
VXLAN のメリット
VXLANテクノロジーでは(VLANが行うように)ネットワークをセグメント化できますが、VLANにはないメリットがあります。VXLAN を使用する場合の最も重要なメリットを以下に示します。
理論的には、管理ドメインに 1,600 万もの VXLAN を作成できます(これと比較して、ジュニパーネットワークスのデバイスの 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 をサポートしています。
別々のレイヤー 2 ドメインに存在するサーバー間での仮想マシンの移行は、レイヤー 3 ネットワークでトラフィックをトンネリングすることで、可能になります。この機能により、レイヤー 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 を一意に識別するために使用される、 VXLAN ネットワーク識別子(VNI)と呼ばれる 24 ビット フィールドを含む VXLAN ヘッダー。VNI は VLAN ID と似ていますが、24 ビットであるため、作成できる VXLAN の数は VLAN の場合よりも多くなります。
VXLANは元のイーサネットフレームに50〜54バイトの追加ヘッダー情報を追加するため、基盤となるネットワークのMTUを増やすことができます。この場合、論理 VTEP 発信元インターフェイスの MTU(これは無視されます)ではなく、VXLAN ネットワークに属する物理インターフェイスの MTU を設定します。
図 1 に、VXLAN のパケット形式を示します。
![VXLAN Packet Format](/documentation/us/en/software/junos/evpn-vxlan/images/g043104.gif)
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:この環境では、EVPN(イーサネットVPN)がホスト(物理サーバーと 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 を増やす必要がある場合があります。たとえば、スイッチがデフォルトの MTU 値 1,514 バイトを使用していて、VXLAN 上で 1,500バイトのパケットを転送する場合は、MTU を増やして、追加ヘッダーによってパケット サイズを増やす必要があります。
QFX5100、QFX5110、QFX5200、QFX5210、EX4600 の各スイッチでの UDP ポートの変更
Junos OS リリース 14.1X53-D25 以降(QFX5100 スイッチの場合)、Junos OS リリース 15.1X53-D210 以降(QFX5110および QFX5200 スイッチの場合)、Junos OS リリース 18.1R1 以降(QFX5210 スイッチの場合)、Junos OS リリース 18.2R1 以降(EX4600 スイッチの場合)では、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 で使用可能な帯域幅に悪影響を与える可能性があります。Junos OS リリース 14.1X53-D30 以降(QFX5100 スイッチの場合)、Junos OS リリース 15.1X53-D210 以降(QFX5110およびQFX5200スイッチの場合)、Junos OS リリース 18.1R1 以降(QFX5210 スイッチの場合)、Junos OS リリース 18.2R1 以降(EX4600 スイッチの場合)では、特定のマルチキャスト グループのトラフィックを使用する、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 または Juniper Networks 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 パスが存在する場合は、ロード バランシングが実装されるということです。これは、パケット単位のロード バランシングがデフォルトで使用されない、通常のルーティングの動作とは異なります。(デフォルトでは通常のルーティングで、プレフィックス単位のロード バランシングが使用されます)。
レイヤー 3 ネットワーク内の VXLAN トラフィックの ECMP ロード バランシングを有効にするには、UDP ヘッダーの送信元ポート フィールドを使用します。このフィールドは内側のパケット フィールドのハッシュに設定され、ECMP がトンネル間の宛先(フロー)を識別するために使用する変数になります。
フローベースの ECMP で通常使用されるその他のフィールドは、VXLAN への使用には適していません。同じ 2 つの VTEP 間のトンネルはすべて同じ外側の発信元 IP アドレスと宛先 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.3Rxを実行している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は、他のすべてのデータを照合し、インターフェイスet-0/0/3が設定されているルーティングインスタンス(ルート1)に転送します。
この例では、インターフェイス et-0/0/3 がルーティング インスタンス route1 によって参照されていることに注意してください。そのため、 set firewall family inet filter vxlan100 term 2 then routing-instance route1
コマンドを含める必要があります。このコマンドを使用しないと、ファイアウォール フィルターが適切に機能しません。
VXLAN での ping と traceroute の使用
QFX5100 スイッチと QFX5110 スイッチでは、 ping
コマンドと traceroute
コマンドを使用して、 overlay
パラメータとさまざまなオプションを含め、VXLAN トンネルを通過するトラフィック フローのトラブルシューティングを行うことができます。オプションを使用して、 ping
パケットまたは traceroute
パケットが、VXLAN トンネルを通過するデータ パケットと同じパスをたどるように強制します。言い換えれば、アンダーレイ パケット(ping
および traceroute
)に、オーバーレイ パケット(データ トラフィック)と同じルートを取らせます。詳細については、「 ping オーバーレイ 」および 「traceroute overlay 」を参照してください。
サポートされる VXLAN 標準
以下は、VXLAN の標準を定義した RFC とインターネット ドラフトです。
RFC 7348、 Virtual eXtensible Local Area Network(VXLAN):レイヤー3ネットワーク上で仮想化レイヤー2ネットワークをオーバーレイするためのフレームワーク
インターネット ドラフト draft-ietf-nvo3-vxlan-gpe、 VXLAN の汎用プロトコル拡張
変更履歴テーブル
機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。