第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) のフィールドについては、次の表で説明しています。

Expand
表6.1 RouteAdvertisements オブジェクト
フィールド説明

metadata.name

string

RouteAdvertisements オブジェクトの名前を指定します。

advertisements

array

アドバタイズする異なるタイプのネットワークを含めることができる配列を指定します。"PodNetwork""EgressIP" の値のみがサポートされます。

frrConfigurationSelector

object

OVN-Kubernetes ドリブンの FRRConfiguration CR がどの FRRConfiguration CR に基づいているかを判断します。

networkSelector

object

デフォルトのクラスターネットワークとクラスターユーザー定義ネットワーク (CUDN) の間でアドバタイズするネットワークを指定します。

nodeSelector

object

アドバタイズメントを選択したノードに制限します。advertisements="PodNetwork" を選択した場合は、すべてのノードを選択する必要があります。advertisements="EgressIP" を選択した場合は、選択したノードに割り当てられた Egress IP アドレスのみがアドバタイズされます。

targetVRF

string

どのルーターでルートをアドバタイズするかを決定します。ルートは、選択された FRRConfiguration CR で指定されたとおりに、この Virtual Routing and Forwarding (VRF) ターゲットに関連付けられたルーター上でアドバタイズされます。省略した場合、デフォルトの VRF がターゲットとして使用されます。auto を指定すると、ネットワーク名と同じ名前の VRF がターゲットとして使用されます。

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

apiVersion: k8s.ovn.org/v1
kind: RouteAdvertisements
metadata:
  name: default
spec:
  advertisements:
  - PodNetwork
  - EgressIP
  networkSelectors:
  - networkSelectionType: DefaultNetwork
  frrConfigurationSelector:
    matchLabels:
      routeAdvertisements: receive-all
  nodeSelector: {}
Copy to Clipboard Toggle word wrap

OVN-Kubernetes コントローラーがこの RouteAdvertisements CR を認識すると、選択された FRRConfiguration オブジェクトに基づき追加のオブジェクトを生成します。生成された追加オブジェクトは、デフォルトのクラスターネットワークのルートをアドバタイズするように FRR デーモンを設定します。

OVN-Kubernetes によって生成された FRRConfiguration CR の例

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: ovnk-generated-abcdef
  namespace: openshift-frr-k8s
spec:
  bgp:
    routers:
    - asn: 64512
      neighbors:
        - address: 172.18.0.5
          asn: 64512
          toReceive:
            allowed:
              mode: filtered
          toAdvertise:
            allowed:
              prefixes:
              - <default_network_host_subnet>
      prefixes:
      - <default_network_host_subnet>
  nodeSelector:
    matchLabels:
      kubernetes.io/hostname: ovn-worker
Copy to Clipboard Toggle word wrap

生成された FRRConfiguration オブジェクトの例では、<default_network_host_subnet> は、プロバイダーネットワークにアドバタイズされるデフォルトのクラスターネットワークのサブネットです。

6.1.3.2. BGP 経由でクラスターのユーザー定義ネットワークから Pod IP をアドバタイズする

このシナリオでは、blue クラスターユーザー定義ネットワーク (CUDN) が外部ネットワークに公開されるため、ネットワークの Pod IP アドレスと EgressIP がプロバイダーネットワークにアドバタイズされます。

このシナリオは、次の FRRConfiguration オブジェクトに依存します。

FRRConfiguration CR

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: receive-all
  namespace: openshift-frr-k8s
  labels:
    routeAdvertisements: receive-all
spec:
  bgp:
    routers:
    - asn: 64512
      neighbors:
      - address: 172.18.0.5
        asn: 64512
        disableMP: true
        toReceive:
          allowed:
            mode: all
Copy to Clipboard Toggle word wrap

この 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

apiVersion: k8s.ovn.org/v1
kind: RouteAdvertisements
metadata:
  name: advertise-cudns
spec:
  advertisements:
  - PodNetwork
  - EgressIP
  networkSelectors:
  - networkSelectionType: ClusterUserDefinedNetworks
    clusterUserDefinedNetworkSelector:
      networkSelector:
        matchLabels:
          export: "true"
  frrConfigurationSelector:
    matchLabels:
      routeAdvertisements: receive-all
  nodeSelector: {}
Copy to Clipboard Toggle word wrap

OVN-Kubernetes コントローラーがこの RouteAdvertisements CR を認識すると、選択された FRRConfiguration オブジェクトに基づき追加のオブジェクトを生成します。生成された追加オブジェクトは、ルートをアドバタイズするように FRR デーモンを設定します。以下は、そのような設定オブジェクトの一例であり、選択されたノードとネットワークに応じて作成される FRRConfiguration オブジェクトの数が表示されます。

OVN-Kubernetes によって生成された FRRConfiguration CR の例

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: ovnk-generated-abcdef
  namespace: openshift-frr-k8s
spec:
  bgp:
    routers:
    - asn: 64512
      vrf: blue
      imports:
      - vrf: default
    - asn: 64512
      neighbors:
        - address: 172.18.0.5
          asn: 64512
          toReceive:
            allowed:
              mode: filtered
          toAdvertise:
            allowed:
              prefixes:
              - 10.0.1.0/24
      prefixes:
      - 10.0.1.0/24
      imports:
      - vrf: blue
  nodeSelector:
    matchLabels:
      kubernetes.io/hostname: ovn-worker
Copy to Clipboard Toggle word wrap

生成された FRRConfiguration オブジェクトは、blue ネットワークに属するサブネット 10.0.1.0/24 をデフォルトの VRF にインポートし、近隣の 172.18.0.5 にアドバタイズするように設定します。RouteAdvertisements CR によって選択された各ネットワークおよびノードに対して、各ノードに適用される適切な接頭辞を持つ FRRConfiguration オブジェクトが生成されます。

targetVRF フィールドを省略すると、ルートはデフォルトの VRF 経由でリークされ、アドバタイズされます。さらに、初期 FRRConfiguration オブジェクトの定義後にデフォルト VRF にインポートされたルートも、blue VRF にインポートされます。

このシナリオでは、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 セットアップ用に手動で設定しました

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: vpn-blue-red
  namespace: openshift-frr-k8s
  labels:
    routeAdvertisements: vpn-blue-red
spec:
  bgp:
    routers:
    - asn: 64512
      vrf: blue
      neighbors:
      - address: 182.18.0.5
        asn: 64512
        toReceive:
          allowed:
            mode: filtered
    - asn: 64512
      vrf: red
      neighbors:
      - address: 192.18.0.5
        asn: 64512
        toReceive:
          allowed:
            mode: filtered
Copy to Clipboard Toggle word wrap

次の RouteAdvertisements CR は、blue および red テナントの設定を記述しています。

blue および red テナントの RouteAdvertisements CR

apiVersion: k8s.ovn.org/v1
kind: RouteAdvertisements
metadata:
  name: advertise-vrf-lite
spec:
  targetVRF: auto
  advertisements:
  - "PodNetwork"
  nodeSelector: {}
  frrConfigurationSelector:
    matchLabels:
      routeAdvertisements: vpn-blue-red
  networkSelectors:
  - networkSelectionType: ClusterUserDefinedNetworks
    clusterUserDefinedNetworkSelector:
      networkSelector:
        matchLabels:
          export: "true"
Copy to Clipboard Toggle word wrap

RouteAdvertisements CR では、選択された個々のネットワークに対応する VRF デバイス内でアドバタイズメントが行われるように、targetVRFauto に設定されています。このシナリオでは、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 の例

apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
  name: ovnk-generated-abcde
  namespace: openshift-frr-k8s
spec:
  bgp:
    routers:
    - asn: 64512
      neighbors:
      - address: 182.18.0.5
        asn: 64512
        toReceive:
          allowed:
            mode: filtered
        toAdvertise:
          allowed:
            prefixes:
            - 10.0.1.0/24
      vrf: blue
      prefixes:
        - 10.0.1.0/24
    - asn: 64512
      neighbors:
      - address: 192.18.0.5
        asn: 64512
        toReceive:
          allowed:
            mode: filtered
        toAdvertise:
          allowed:
            prefixes:
            - 10.0.2.0/24
      vrf: red
      prefixes:
         - 10.0.2.0/24
  nodeSelector:
     matchLabels:
        kubernetes.io/hostname: ovn-worker
Copy to Clipboard Toggle word wrap

このシナリオでは、受信するルートのフィルタリングまたは選択は、ピアリング関係を定義する FRRConfiguration CR で行う必要があります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat