第6章 ルートアドバタイズメント
6.1. ルートアドバタイズメントについて リンクのコピーリンクがクリップボードにコピーされました!
この機能は、OVN-Kubernetes ネットワークプラグインにルートアドバタイズメント機能を提供します。Border Gateway Router (BGP) プロバイダーが必要です。詳細は、BGP ルーティングについて を参照してください。
6.1.1. Border Gateway Protocol を使用してクラスターネットワークルートをアドバタイズする リンクのコピーリンクがクリップボードにコピーされました!
ルートアドバタイズメントが有効な場合、OVN-Kubernetes ネットワークプラグインは、EgressIP を含めたデフォルトの Pod ネットワークとクラスターユーザー定義 (CUDN) ネットワークのネットワークルートをプロバイダーネットワークにアドバタイズすること、およびプロバイダーネットワークからデフォルトの Pod ネットワークと CUDN にルートをインポートすることがサポートされます。プロバイダーネットワークからは、デフォルトの Pod ネットワークからアドバタイズされた IP アドレスと CUDN に直接アクセスできます。
たとえば、デフォルトの Pod ネットワークにルートをインポートできるため、各ノードでルートを手動で設定する必要がなくなります。以前は、routingViaHost
パラメーターを true
に設定し、同様の設定に近づけるために各ノードでルートを手動で設定していた可能性があります。ルートアドバタイズメントを使用すると、routingViaHost
パラメーターを false
に設定することで、このタスクをシームレスに実行できます。
クラスターの Network
カスタムリソース CR で routingViaHost
パラメーターを true
に設定することもできますが、その場合は同様の設定をシミュレートするために各ノードでルートを手動で設定する必要があります。ルートアドバタイズを有効にすると、ノードごとにルートを手動で設定しなくても、Network
CR で routingViaHost=false
を設定できます。
プロバイダーネットワーク上のルートリフレクタがサポートされており、大規模ネットワーク上でルートをアドバタイズするために必要な BGP 接続の数を削減できます。
ルートアドバタイズメントを有効にして EgressIP を使用する場合、レイヤー 3 プロバイダーネットワークは EgressIP フェイルオーバーを認識します。つまり、これまではレイヤー 2 プロバイダーネットワークのみが認識していたため、すべての Egress ノードが同じレイヤー 2 セグメント上にある必要がありましたが、異なるレイヤー 2 セグメント上に EgressIP をホストするクラスターノードを配置できるようになります。
6.1.1.1. サポートされているプラットフォーム リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルインフラストラクチャータイプでは、Border Gateway Protocol (BGP) を使用したルートアドバタイズメントがサポートされています。
6.1.1.2. インフラストラクチャーの要件 リンクのコピーリンクがクリップボードにコピーされました!
ルートアドバタイズメントを使用するには、ネットワークインフラストラクチャーに BGP を設定する必要があります。ネットワークインフラストラクチャーの停止や設定ミスにより、クラスターネットワークが中断される可能性があります。
6.1.1.3. 他のネットワーク機能との互換性 リンクのコピーリンクがクリップボードにコピーされました!
ルートアドバタイズメントは、次の OpenShift Container Platform ネットワーク機能をサポートします。
- 複数の外部ゲートウェイ (MEG)
- この機能で MEG はサポートされていません。
- EgressIP
EgressIP の使用とアドバタイズメントがサポートされます。Egress IP アドレスが存在するノードは、EgressIP をアドバタイズします。Egress IP アドレスは、Egress ノードと同じレイヤー 2 ネットワークサブネット上にある必要があります。以下の制限が適用されます。
- レイヤー 2 モードで動作するユーザー定義ネットワーク (CUDN) からの EgressIP のアドバタイズメントはサポートされていません。
- プライマリーネットワークインターフェイスに割り当てられた Egress IP アドレスと、追加のネットワークインターフェイスに割り当てられた Egress IP アドレスの両方を持つネットワークの EgressIP をアドバタイズすることは現実的ではありません。すべての EgressIP は、選択された FRRConfiguration インスタンスのすべての BGP セッションでアドバタイズされます。これは、セッションが EgressIP が割り当てられている同じインターフェイス上で確立されているかどうかかかわらず実行されるため、不要なアドバタイズが発生する可能性があります。
- サービス
- MetalLB Operator と連携して、プロバイダーネットワークにサービスをアドバタイズします。
- Egress サービス
- 完全サポート
- Egress ファイアウォール
- 完全サポート
- Egress QoS
- 完全サポート
- ネットワークポリシー
- 完全サポート
- Pod の直接 Ingress
- デフォルトのクラスターネットワークとクラスターユーザー定義 (CUDN) ネットワークを完全にサポートします。
6.1.1.4. MetalLB Operator の使用に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
MetalLB Operator は、クラスターへのアドオンとしてインストールされます。MetalLB Operator をデプロイすると、、追加のルーティング機能プロバイダーとして FRR-K8 が自動的に有効になります。この機能と MetalLB Operator は、同じ FRR-K8s デプロイメントを使用します。
6.1.1.5. クラスターユーザー定義ネットワーク (CUDN) の命名に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
FRRConfiguration
CR で VRF デバイスを参照する場合、VRF 名は 15 文字以下の VRF 名の CUDN 名と同じになります。CUDN 名から VRF 名を推測できるように、15 文字以下の VRF 名を使用することが推奨されます。
6.1.1.6. BGP ルーティングカスタムリソース リンクのコピーリンクがクリップボードにコピーされました!
次のカスタムリソース (CR) は、BGP によるルートアドバタイズメントを設定するために使用されます。
RouteAdvertisements
-
この CR は、BGP ルーティングのアドバタイズメントを定義します。この CR から、OVN-Kubernetes コントローラーは、クラスターネットワークルートをアドバタイズするように FRR デーモンを設定する
FRRConfiguration
オブジェクトを生成します。これは、クラスタースコープの CR です。 FRRConfiguration
-
この CR は、BGP ピアを定義し、プロバイダーネットワークからクラスターネットワークへのルートインポートを設定するために使用されます。BGP ピアを設定するためには、
RouteAdvertisements
オブジェクトを適用する前に、まず少なくとも 1 つの FRRConfiguration オブジェクトを定義する必要があります。この CR には namespace があります。
6.1.1.7. OVN-Kubernetes コントローラーによる FRRConfiguration オブジェクトの生成 リンクのコピーリンクがクリップボードにコピーされました!
FRRConfiguration
オブジェクトは、各ノードに適用される、アドバタイズされた適切な接頭辞を持つ RouteAdvertisements
CR によって選択されたネットワークおよびノードごとに生成されます。OVN-Kubernetes コントローラーは、RouteAdvertisements
CR によって選択されたノードが、RouteAdvertisements
CR によって選択された FRR 設定に基づき選択されたノードのサブセットであるかどうかを確認します。
RouteAdvertisement
CR から生成される FRRConfiguration
オブジェクトでは、受信する接頭辞のフィルタリングや選択は考慮されません。他の FRRConfiguration
オブジェクトで受信する接頭辞を設定してください。OVN-Kubernetes は、VRF から適切なネットワークにルートをインポートします。
6.1.1.8. Cluster Network Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Network Operator (CNO) API は、ルートアドバタイズメントを設定するためのいくつかのフィールドを公開します。
-
spec.additionalRoutingCapabilities.providers
: ルートをアドバタイズするために必要な追加のルーティングプロバイダーを指定します。サポートされている値はFRR
のみで、これによりクラスターの FRR-K8S デーモンのデプロイメントが有効になります。有効にすると、FRR-K8S デーモンがすべてのノードにデプロイされます。 -
spec.defaultNetwork.ovnKubernetesConfig.routeAdvertisements
: デフォルトのクラスターネットワークと CUDN ネットワークのルートアドバタイズメントを有効にします。この機能を有効にするには、spec.additionalRoutingCapabilities
フィールドをFRR
に設定する必要があります。
6.1.2. RouteAdvertisements オブジェクトの設定 リンクのコピーリンクがクリップボードにコピーされました!
次のプロパティーを使用して、クラスタースコープの RouteAdvertisements
オブジェクトを定義できます。
RouteAdvertisements
カスタムリソース (CR) のフィールドについては、次の表で説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
|
|
|
アドバタイズする異なるタイプのネットワークを含めることができる配列を指定します。 |
|
|
OVN-Kubernetes ドリブンの |
|
| デフォルトのクラスターネットワークとクラスターユーザー定義ネットワーク (CUDN) の間でアドバタイズするネットワークを指定します。 |
|
|
アドバタイズメントを選択したノードに制限します。 |
|
|
どのルーターでルートをアドバタイズするかを決定します。ルートは、選択された |
6.1.3. BGP により Pod IP アドレスをアドバタイズする例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、Border Gateway Protocol (BGP) を使用して Pod IP アドレスと EgressIP をアドバタイズするためのいくつかの設定について説明します。外部ネットワークボーダールーターの IP アドレスは 172.18.0.5
です。これらの設定では、クラスターネットワーク上のすべてのノードにルートを中継できる外部ルートリフレクターが設定されていることを前提としています。
6.1.3.1. デフォルトのクラスターネットワークのアドバタイズ リンクのコピーリンクがクリップボードにコピーされました!
このシナリオでは、デフォルトのクラスターネットワークが外部ネットワークに公開され、Pod の IP アドレスと EgressIP がプロバイダーネットワークにアドバタイズされます。
このシナリオは、次の FRRConfiguration
オブジェクトに依存します。
FRRConfiguration
CR
OVN-Kubernetes コントローラーがこの RouteAdvertisements
CR を認識すると、選択された FRRConfiguration
オブジェクトに基づき追加のオブジェクトを生成します。生成された追加オブジェクトは、デフォルトのクラスターネットワークのルートをアドバタイズするように FRR デーモンを設定します。
OVN-Kubernetes によって生成された FRRConfiguration
CR の例
生成された FRRConfiguration
オブジェクトの例では、<default_network_host_subnet>
は、プロバイダーネットワークにアドバタイズされるデフォルトのクラスターネットワークのサブネットです。
6.1.3.2. BGP 経由でクラスターのユーザー定義ネットワークから Pod IP をアドバタイズする リンクのコピーリンクがクリップボードにコピーされました!
このシナリオでは、blue クラスターユーザー定義ネットワーク (CUDN) が外部ネットワークに公開されるため、ネットワークの Pod IP アドレスと EgressIP がプロバイダーネットワークにアドバタイズされます。
このシナリオは、次の FRRConfiguration
オブジェクトに依存します。
FRRConfiguration
CR
この FRRConfiguration
オブジェクトを使用すると、ルートは近隣の 172.18.0.5
からデフォルトの VRF にインポートされ、デフォルトのクラスターネットワークで使用できるようになります。
次の図に示すように、CUDN はデフォルトの VRF を介してアドバタイズされます。
- red CUDN
-
red
という名前の CUDN に関連付けられているred
という名前の VRF -
10.0.0.0/24
のサブネット
-
- blue CUDN
-
blue
という名前の CUDN に関連付けられているblue
という名前の VRF -
10.0.1.0/24
のサブネット
-
この設定では、2 つの異なる CUDN が定義されます。red ネットワークは 10.0.0.0/24
サブネットをカバーし、blue ネットワークは 10.0.1.0/24
サブネットをカバーします。red および blue ネットワークには、export: true
というラベルが付けられています。
次の RouteAdvertisements
CR は、red および blue テナントの設定について説明します。
red および blue テナントの RouteAdvertisements
CR
OVN-Kubernetes コントローラーがこの RouteAdvertisements
CR を認識すると、選択された FRRConfiguration
オブジェクトに基づき追加のオブジェクトを生成します。生成された追加オブジェクトは、ルートをアドバタイズするように FRR デーモンを設定します。以下は、そのような設定オブジェクトの一例であり、選択されたノードとネットワークに応じて作成される FRRConfiguration
オブジェクトの数が表示されます。
OVN-Kubernetes によって生成された FRRConfiguration
CR の例
生成された FRRConfiguration
オブジェクトは、blue ネットワークに属するサブネット 10.0.1.0/24
をデフォルトの VRF にインポートし、近隣の 172.18.0.5
にアドバタイズするように設定します。RouteAdvertisements
CR によって選択された各ネットワークおよびノードに対して、各ノードに適用される適切な接頭辞を持つ FRRConfiguration
オブジェクトが生成されます。
targetVRF
フィールドを省略すると、ルートはデフォルトの VRF 経由でリークされ、アドバタイズされます。さらに、初期 FRRConfiguration オブジェクトの定義後にデフォルト VRF にインポートされたルートも、blue VRF にインポートされます。
6.1.3.3. クラスターユーザー定義ネットワークから BGP 経由で VPN を使用して Pod IP をアドバタイズする リンクのコピーリンクがクリップボードにコピーされました!
このシナリオでは、VLAN インターフェイスは、blue ネットワークに関連付けられた VRF デバイスにアタッチされます。このセットアップは VRF lite 設計を提供します。FRR-K8S は、blue ネットワーク VRF/VLAN リンク上の対応する BGP セッションを介してのみ、blue ネットワークをネクストホップの Provide Edge (PE) ルーターにアドバタイズするために使用されます。red テナントは同じ設定を使用します。blue および red ネットワークには、export: true
というラベルが付けられています。
このシナリオでは、EgressIP の使用はサポートされていません。
次の図はこの設定を示しています。
- red CUDN
-
red
という名前の CUDN に関連付けられているred
という名前の VRF - VRF デバイスにアタッチされ、外部 PE ルーターに接続された VLAN インターフェイス
-
割り当てられたサブネット
10.0.2.0/24
-
- blue CUDN
-
blue
という名前の CUDN に関連付けられているblue
という名前の VRF - VRF デバイスにアタッチされ、外部 PE ルーターに接続された VLAN インターフェイス
-
割り当てられたサブネット
10.0.1.0/24
-
このアプローチは、OVN-Kubernetes ネットワークプラグインの ovnKubernetesConfig.gatewayConfig
仕様で routingViaHost=true
を設定した場合にのみ使用できます。
次の設定では、追加の FRRConfiguration
CR によって、blue および red の VLAN 上の PE ルーターとのピアリングが設定されます。
FRRConfiguration
CR を BGP VPN セットアップ用に手動で設定しました
次の RouteAdvertisements
CR は、blue および red テナントの設定を記述しています。
blue および red テナントの RouteAdvertisements
CR
RouteAdvertisements
CR では、選択された個々のネットワークに対応する VRF デバイス内でアドバタイズメントが行われるように、targetVRF
が auto
に設定されています。このシナリオでは、blue の Pod サブネットは blue VRF デバイス経由でアドバタイズされ、red の Pod サブネットは red VRF デバイス経由でアドバタイズされます。さらに、各 BGP セッションは、初期 FRRConfiguration
オブジェクトで定義されているとおり、対応する CUDN VRF にのみルートをインポートします。
OVN-Kubernetes コントローラーがこの RouteAdvertisements
CR を認識すると、選択された FRRConfiguration
オブジェクトに基づき追加のオブジェクトを生成します。生成された追加オブジェクトは、blue および red テナントのルートをアドバタイズするように FRR デーモンを設定します。
OVN-Kubernetes によって生成された blue および red テナント用の FRRConfiguration
CR の例
このシナリオでは、受信するルートのフィルタリングまたは選択は、ピアリング関係を定義する FRRConfiguration
CR で行う必要があります。