Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

クラウドネイティブのContrail Networkingに仮想ネットワークルーターを導入

概要 クラウドネイティブのContrail® Networking は、(VNR)構成を VirtualNetworkRouter サポートします。この構造は、 間の接続を提供します VirtualNetworks

VirtualNetworkRouter の概要

通常、 VirtualNetwork (VN)トラフィックはテナントの分離を維持するために分離されます。クラウドネイティブのContrail Networking(CN2) VirtualNetworkRouter では、(VNR)がルート漏洩を実行します。ルートリークは、ルーティングインスタンス(RI)とこれらのインスタンスに関連付けられたルーティングテーブルをインポートすることで、接続 VirtualNetworks を確立します。その結果、あるルーティング テーブル内のデバイスは、別のルーティング テーブル内のデバイスからリソースにアクセスできます。

VNR は、次の 2 つの一般的なネットワーク モデルに接続を提供します。

  • メッシュ:接続 VirtualNetworks されているすべてのポッドが相互に通信します。

  • ハブスポーク: VirtualNetworks スポークタイプVNRに接続された2つの異なるVNRタイプ(スポーク、ハブ) VirtualNetworks に接続し、ハブタイプVNFと VirtualNetworks 通信し、その逆も接続します。 VirtualNetworks スポークVNFに接続すると、スポークVNFは他 VirtualNetworks のスポークVNFと通信できません。

VNRは、CN2内に導入されたKubernetesの構成要素です。

VirtualNetworkRouterのユースケース

以下の例は、CN2におけるVNRの機能を示す一般的なユースケースです。

同じ名前空間にある 2 つ以上の仮想ネットワークを接続するメッシュ VNR

  1. 図-1:ユーザーは、名前空間-1 に VN1 と VN2 を作成します。VN1のポッドは、VN2内のポッドに接続できません。これはCN2のデフォルト動作 VirtualNetworks です。
  2. 図-2: ユーザーは、VN1 と VN2 を選択するタイプ メッシュの VNR を定義します。この VNR により、VN1 のポッドは VN2 のポッドと通信でき、その逆も同様です。
  3. 図-3:VN1のポッドは、VN2のポッドに接続します。VNR のルート ターゲットは importExported 両方 VirtualNetworksです。

VirtualNetworkRouter の使用事例に戻る

同じネームスペース内の新しい仮想ネットワークを既存のメッシュタイプVNRに追加する

  1. 図 1:2 VirtualNetworks (VN1、VN2)は名前空間-1 の VNR に接続します。
  2. 図-2:ユーザーが 2 つの新しい VirtualNetworks (VN3、VN4)を作成します。
  3. 図 3:VN3 と VN4 は VNR に接続します。その結果、VNR に接続されたすべての VirtualNetworks接続が受信されます。

VirtualNetworkRouter の使用事例に戻る

同じ名前空間にある 2 つのメッシュ VNF

  1. 図 1 と図 2:タイプ メッシュの VNR-Web と VNR-db はすでに名前空間-1 に存在します。それぞれの VNF に接続された VNF のみが相互に通信します。

  2. 図 1 と図 2:VNR-Web と VNR-db は相互に通信します。

  3. 図 3:VNR-Web と VNR-db の両方に接続されたすべてが VirtualNetworks 相互に通信します。

VirtualNetworkRouter の使用事例に戻る

名前空間が異なる 2 つのメッシュ VNF

  1. 図 1:VNR-Web が VN1 と VN2 を選択VN1およびVN2のポッドは相互に通信します。VN1 および VN2 は、VN3 または VN4 と通信できません。

  2. 図 2:VNR-db は VN3 と VN4 を選択します。VN3およびVN4のポッドは相互に通信します。VN3 および VN4 は VN1 または VN2 と通信できません。

  3. 図 3:ユーザーは VNR-Web を更新して VNR-db を選択します。

  4. 図 3:ユーザーは VNR-db を更新して VNR-web を選択します。

  5. 図 3:2 つの VNR が互いに選択するため、VNR-Web の RT(ルート ターゲット)が VN3 と VN4 に追加されます。VNR-db の RT が VN1 および VN2 に追加されます。VN1、VN2、VN3、VN4 のポッドは相互に通信します。

VirtualNetworkRouter の使用事例に戻る

同じネームスペース内のハブアンドスポークVNF

  • 図-1:VN1のポッドは、VN2内のポッドと通信できません。VN1 および VN2 は VN3 と通信できません。

  • 図-2:ユーザーは、VNR タイプ「スポーク」と「ハブ」の VNR を作成し、VNR スポークと VNR ハブが互いの RR をインポートします。

  • 図 3:VNR スポークと VNR-hub の RR は、互いの VT をインポートするため、VN1、VN2、VN3 に追加されます。その結果、VN1およびVN2のポッドはVN3と通信します。VN1およびVN2のポッドは相互に通信できません。

VirtualNetworkRouter の使用事例に戻る

さまざまな名前空間のハブアンドスポークVNR

VirtualNetworkRouter の使用事例に戻る

複数の VNR で同一の仮想ネットワークを使用

  • 図 1:VN1 と VN2 のポッドは相互に通信できません。VN3、VN4 のリソースも相互に通信できます。

  • 図 2:VN1 と VN2 を選択して VNR スポークを作成します。VN3 と VN4 を選択して、VNR-hub を作成します。VN3 と VN4 を選択して、VNR メッシュを作成します。

  • 図 3:VNR スポークにより、VN1 と VN2 が互いに通信できず、VNR ハブによって VN1 と VN2 が VN3 と VN4 に到達でき、VN3 と VN4 間の通信が可能になります。

VirtualNetworkRouter の使用事例に戻る

ユース ケースの説明

このセクションでは、以下の 2 つの VNR のユース ケースと、各ユース ケースのエンドツーエンドの説明で構成されています。

標準的なユースケース:2つの仮想ネットワークを接続する1つのVNR

このユースケースは、以下の通りです。

  • 名前空間ns-single-meshに2つのVirtualNetworks(vn-1およびvn-2)。どちらの仮想ネットワークにも.label vn: webそれぞれにVirtualNetwork1つのポッドが含まれています。にはVirtualNetworkvn-1、 が含まれていますpod-vn-1。にはVirtualNetworkvn-2、 が含まれていますpod-vn-2

  • 名前vnr-1type: mesh付いた VNR。この VNR は、 と を使用して 2 つのVirtualNetworks間で接続をmatchExpressions確立しますvn: web。VNR は RI とルーティング テーブルvn-1をその逆にvn-2インポートします。メッシュタイプVNRであるためvnr-1、接続VirtualNetworksされているすべてのポッドが相互に通信します。

導入事例を更新:追加の 2 つの仮想ネットワークを接続する単一の VNR

このユースケースは標準的なユースケースと似ていますが、このユースケースでは、ユーザーは追加type: meshのVNRでYAMLファイルを更新し、名前空間ns-single-meshに2つの新しいVirtualNetworks(vn-3vn-4)を接続します。以下の点に注意してください。

  • 示されているVNRの名前vnr-2は、 を持つmatchExpressions: db, middlware名前空間ns-single-meshにあります。

  • には VirtualNetwork vn-3 ラベル vn: db、 と vn-4 のラベル vn: middlewareがあります。

その結果、 vnr-2 RIとその逆のルーティングテーブル vn-3vn-4 インポートします。

VirtualNetworkRouter の構成

次のセクションでは、次のリソースの YAML 構成情報を提供します。

API タイプ(スキーマ)

メッシュ VNR

前述のYAMLファイルは、 と ns: frontendを含む名前空間frontendの名前vnr-1を持つメッシュVNRのlabelsvnr: web例です。この VNR は、 で名前空間backend matchLabel vnr: db内の任意の VNR にルート ターゲットをインポートします。

スポーク VNR

前述のYAMLファイルは、 と ns: frontendの名前空間labels vnrgroup: spokes frontendにある名前vnr-1を持つスポークVNRの例です。この VNR は、 で名前空間backend matchLabel vnrgroup: hubs内の任意の VNR にルート ターゲットをインポートします。

ハブ VNR

前述のYAMLファイルは、 と ns: backendを持つ名前空間labels vnrgroup: hubs backendの名前vnr-2を持つハブVNRの例です。この VNR は、 で名前空間frontend matchLabels vnrgroup: spokes内の任意の VNR にルート ターゲットをインポートします。