Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

サービスとしての BGP を有効にする

クラウドネイティブのContrail® Networking™は、BGP as a Service(BGPaaS)をサポートしています。このドキュメントは、リリース 22.1 以降を使用する環境で BGPaaS を有効にするために使用する必要があります。

クラウドネイティブContrail NetworkingのBGPaaS機能は、クラウドネイティブContrail Networkingを使用して、クラウドネットワーク環境の仮想ネットワーク内で動作するBGPのネットワークサポートを提供します。

クラウドネイティブContrailにおけるBGP as a Serviceのメリット

クラウドネイティブのContrail Networkingを使用したKubernetes環境のBGPaaSでは、以下の機能を利用できます。

  • 仮想ネットワークで実行される BGP プロトコル サービス。このBGPサービスは、仮想ネットワーク内のポッド、仮想マシン、およびその他のワークロードに対するBGPネイバーセッションを作成します。

  • IPv4 ネイバー、IPv4 および IPv6 ユニキャスト アドレス ファミリー、IPv6-over-IPv4 ネクストホップ マッピングをサポートするルーティング プロトコル。

  • 最もよく知られた BGP 設定パラメータを使用してユーザーが設定可能な BGP プロトコル サービス。

ルーティング プロトコルによって提供される機能を必要とする任意のクラウド ネットワーク環境で BGPaaS を使用できます。BGPaaS は、以下のシナリオで特に役立つ場合があります。

  • 複数のワークロードを実行する大規模なクラウド ネットワーク環境を管理する場合は、BGPaaS を使用してネットワーク サービスを拡張できます。

  • ルーティング プロトコルのネットワーク到達可能性情報を必要とするトンネリング プロトコルを使用してトンネルを作成および維持する場合、BGPaaS が役立ちます。

前提 条件

サービスとしての BGP を有効にする前に、以下のことを想定しています。

  • Kubernetesオーケストレーションを使用して稼働しているクラウドネットワーク環境で運用しており、クラウドネイティブのContrail Networkingが運用されています。

  • あなたはBGPに関する実務知識を持っています。

クラウドネイティブContrail NetworkingにおけるサービスとしてのBGPの概要

クラウドネイティブのContrail Networkingは、BGPaaSのネットワークサポートを提供します。

クラウドネットワーク環境でBGPを実行するBGPサービスを見つける必要があります。このドキュメントでは、BIRDインターネットルーティングデーモン(BIRD)が提供するBGPサービスを使用して、クラウドネイティブContrail NetworkingでBGPaaSのネットワークサポートを有効にする方法を説明します。このデーモンは、UNIXの多くのバージョンに組み込み開発ツールとして利用できます。別の画像を使用して環境にダウンロードすることもできます。

この後の例では、BGPaaSが有効になっているときに、BIRDのBGPデーモンがポッドで実行されていることがわかります。そのデーモンは、Cloud-Native Contrail Networkingが提供するネットワーク機能を使用して、ネットワーク上でBGPメッセージを送信します。BIRD の詳細については、 BIRD インターネット ルーティング デーモン ホームページを参照してください。

BGPaaSが動作している場合、BGPデーモンはポッドで実行され、BGPaaSを管理します。BGP デーモンは Contrail vRouter に直接接続されています。

Contrail vRouter は、少なくとも 1 つの制御プレーン ノードに接続し、BIRD デーモンを制御プレーンに接続します。少なくとも 1 つの制御ノードと BIRD デーモン間の BGP ピアリング セッションは、Contrail vRouter とのこの接続を通じて確立されます。

制御ノードとBGPデーモンの間にピアリング・セッションが作成されると、BGPデーモンはBGPPaaSを管理し、制御プレーンを介してBGPクライアントにルートを送信することができます。BGPaaS管理タスクには、ワークロード、ポッド、VM、またはその他のオブジェクトにIPアドレスを割り当てることが含まれます。

ポッドで BGPaaS を有効にする

BGPaaSを有効にするには、BGPサービスをホストするポッドを作成する必要があります。その後、BGPサービスをホストするポッドを、BGPaaSが実行される仮想ネットワークに関連付ける必要があります。

BGPサービスをホストするポッドを仮想ネットワークに関連付ける2つの方法のいずれかを使用できます。

  • 仮想マシンインターフェイスセレクター—BGPサービスを実行するポッドは、仮想ネットワークに直接関連付けられます。BGPサービスをホストするポッドは、仮想ネットワークアソシエーションが定義された後に自動的に発見されます。

  • 仮想マシンインターフェイス参照—BGPサービスを実行するポッドは、BGPサービスをホストするポッドの名前空間と仮想マシンインターフェイスの名前を明示的に提供することで、仮想ネットワークに直接関連付けられます。

以下のセクションでは、各アソシエーションメソッドの手順を示します。

仮想マシンインターフェイスセレクターを使用してポッドでBGPaaSを有効にする

BGPサービスをホストするポッドを作成する必要があります。その後、仮想マシンインターフェイスセレクターでBGPaaSを有効にすることができます。

ポッドには以下が必要です。

  • 少なくとも1つのIPv4インターフェイスを含めます。

  • アノテーションを使用して core.juniper.net/bgpaas-networks 、関連する仮想ネットワーク名を指定します。この注釈の値には、少なくとも 1 つの仮想ネットワーク名を含める必要があります。BIRDデーモンをホストするポッドを複数の仮想ネットワークに関連付ける場合は、仮想ネットワーク名をコンマ区切りリストとして入力します。

この YAML ファイルの例では、BGP サービスをホストするポッドが作成されています。ポッドは2つの仮想ネットワークに関連付けされており、BGPaaSは両方の仮想ネットワークで実行できます。 イメージ: コンテナ内の変数 : 階層は、この例で BGP サービスを提供する BIRD イメージ ファイルを指しています。

kubectl get vmi -n virtual-network-name を入力して、ポッドとそれに関連する仮想マシン インターフェイスが作成済みであることを確認します。また、kubectl describe コマンドを入力して、仮想マシンインターフェイスが存在することを確認することもできます。

kubectl describe コマンドのラベルセクションにある bgpaasVN= 出力を確認することで、仮想ネットワークが作成されたことを確認できます。

その後、BGPaaS を設定するには、BGPaaS オブジェクトを作成する必要があります。BGPaaS オブジェクトは、 virtualMachineInterfacesSelector: セクション内の仮想ネットワークを 参照します。

仮想マシンインターフェイスリファレンスを使用してポッドでBGPaaSを有効にする

まず BIRD デーモンをホストするポッドを作成して、仮想マシン・インターフェース参照を使用して BGPaaS を有効にする必要があります。ポッドには、少なくとも1つのIPv4インターフェイスを含める必要があります。

次の例では、 bgpaas-ns 名前空間にポッドが作成されています。アノテーションは、ポッドを bgpaas-vn-1 仮想ネットワークに関連付けます。 イメージ: コンテナ内の変数 : 階層は、この例で BGP サービスを提供する BIRD イメージ ファイルを指しています。

kubectl get vmi -n bgpaas-ns コマンドを入力して、ポッドオブジェクト設定ファイルをコミットした後にポッドが作成されたことを確認します。

このコマンド出力のポッドの仮想マシンインターフェイスの名前に注意してください。BGPaaS オブジェクトを設定する場合は、この手順の後半で仮想マシン インターフェイス名を指定する必要があります。

仮想マシン インターフェイス参照は、 仮想マシンインターフェイスリファレンス: 階層を使用して BGPaaS オブジェクトを作成する間に定義されます。 名前空間: はポッドの名前空間であり、 名前:kubectl get vmi -n bgpaas-ns コマンドを使用して取得した仮想マシンインターフェイス名です。

BGPasaSのIPアドレス割り当て方法を設定する

BGPaaService は、次のいずれかの IP アドレス割り当て方法で構成できます。

  • 自動IPアドレス割り当て—BGPサービスはIPアドレスを割り当てます。

  • ユーザー指定のIPアドレス割り当て—IPアドレスを割り当てます。

オブジェクトで IP アドレス割り当て方法を設定します Subnet

自動 IP アドレス割り当ては、デフォルトで有効になっています。自動 IP アドレス割り当てを手動で無効にせずに BGPaaS を有効にすると、BGPaaS は自動 IP アドレス割り当てを使用します。

自動 IP アドレス割り当てを無効にするには、 disableBGPaaSIPAutoAllocation: オブジェクト内の変数を Subnet true に設定します。サブネット オブジェクト ファイルに disableBGPaaSIPAutoAllocation: 変数が存在しない場合、自動 IP アドレス割り当てが有効になります。

以下の構成例では、サブネット・オブジェクト構成ファイルに disableBGPaaSIPAutoAllocation: 変数が存在しないため、自動 IP アドレス割り当てが有効になっています。

この構成サンプルでは、 disableBGPaaSIPAutoAllocation: 変数が false に設定されているため、自動 IP アドレス割り当てが有効 になっています

ユーザーが指定した IP アドレス割り当てを有効にするには、 disableBGPaaSIPAutoAllocation: 変数 を に設定します true。ユーザー指定のIPアドレス割り当てが有効になっている場合、BGPaaSがサブネット内のエンドポイントに割り当てることができるBGPアドレスも設定する必要があります。 bgpaasPrimaryIP: 変数を使用して、プライマリ IP アドレスを設定する必要があります。また、オプションのセカンダリIPアドレスを設定することもできます。これは、この例では bgpaasSecondaryIP: 変数で確認できます。

BGPasaServiceオブジェクトを設定する

オブジェクトを作成して、クラスターで BGPaaS を BGPAsAService 有効にします。

フィールドBGPAsAService使用BGPAsAService する YAML ファイルを作成してオブジェクトを作成します。

表 1:BGPaaS の仕様フィールド変数:

この表は、BGPaaS オブジェクト ファイル内の各 Spec フィールド変数の説明を示しています。

フィールド変数の 説明

共有:

共通の BGP ルーター オブジェクトを、同じ仮想ネットワーク内の複数の仮想マシン インターフェイスと共有できるかどうかを指定します。

このフィールドが true に設定されている場合、1 つの BGP クライアント ルーターを同じ仮想ネットワーク内の複数の仮想マシン インターフェイスと共有できます。この設定は、VMI の仮想ネットワークで作成する必要がある BGP クライアント ルーターの総数を制限します。

このフィールドを false に設定すると、各仮想マシン インターフェイスに対して 1 つの BGP クライアント ルーターが作成されます。

自律システム:

BGP インスタンスのグローバル自律システム番号を指定します。自律システム番号は、1~4294967295の任意の総数です。

bgpAsAServiceSessionAttributes:

BGPaaS の BGP セッション属性を定義します。

表 2 を参照してください。

仮想マシンインターフェイスリファレンス:

仮想マシン インターフェイス 参照を使用する場合に BGPaaS に関連付ける仮想マシン インターフェイス パラメーターを定義します。

表 3 を参照してください。

virtualMachineインターフェイス選択者:

仮想マシン インターフェイス セレクターを使用する際に BGPaaS が実行される仮想ネットワークを定義します。

表 4 を参照してください。
表 2:BgpAsAServiceSessionAttributes フィールド for BGPaaS:

bgpAsAServiceSessionAttributes:階層の はspec:、すべての BGPaaS セットアップで使用されます。階層にはbgpAsAServiceSessionAttributes:、以下のフィールドが含まれます。

フィールド の説明

localAutonomousSystem:

BGPのローカル自律システム番号を指定します。

ループカウント:

ルートを破棄する前に、ルート更新で同じ ASN を確認できる回数を指定します。 LoopCount: は、最大 16 までの任意の総数を指定できます。

routeOriginOverride:

元の設定を上書きし、ルート転送時に起点属性を 不完全 に設定します。

このフィールドを false に設定した場合、ルートは起点設定に基づいて BGP にアドバタイズされます。送信元は IGP または EGP のいずれかであり、このファイルの 起点: フィールドを使用して設定されます。

このフィールドを true に設定すると、アドバタイズされたルートの起点は 不完全 に設定されます。

BGPネットワークがBGPサービスから受信したルートの優先順位付け方法を変更する場合は、このフィールドを使用します。デフォルトでは、BGPネットワークは送信元に基づいてルートを優先し、 不完全 な起点を持つルートは、IGPまたはEGPから受信したルートよりも低い優先度を受信します。

起源:

BGPが内部ゲートウェイプロトコル(igp)または外部ゲートウェイプロトコル(egp)として動作するかどうかを指定します。デフォルトのルート起点は igp です

アドレスファミリー:

アドレスファミリーを指定します。ファミリーは、IPv4の場合は inetIPv6ではinet6 に指定できます。両方のアドレスファミリーを同時に指定できます。

表 3:virtualMachineInterfaceReferences:in BGPaaS:

virtualMachineInterfaceReferences:階層のにはspec:、以下のフィールドが含まれます。

フィールド の説明

apiVersion:

仮想マシン インターフェイス リファレンスの API バージョンを指定します。

種類:

このフィールドは必ず VirtualMachineInterface に設定します。

名前 空間:

仮想マシン インターフェイスリファレンスに関連付けられた名前空間を指定します。 ポッド オブジェクトの作成中に、この名前空間を定義します。 仮想マシンインターフェイスリファレンスを使用してポッドでBGPaaSを有効にするを参照してください

名前:

仮想マシン・インターフェース・リファレンスに関連付けられたポッドの名前を指定します。 kubectl get vmi -n bgpaas-ns コマンドを入力すると、ポッド名を取得できます。 仮想マシンインターフェイスリファレンスを使用してポッドでBGPaaSを有効にするを参照してください

表 4:VirtualMachineInterfacesSelector: BGPaaS のフィールド:

階層の にはvirtualMachineInterfacesSelector:spec:、以下のフィールドが含まれています。

フィールド の説明

matchラベル:

仮想マシンインターフェイスセレクターの一致ラベルを定義します。

このコンテキストの一致ラベルは、仮想マシンインターフェイスセレクターが実行されている仮想ネットワークを参照するために常に使用されます。

このセクションには、必ず core.juniper.net/bgpaasVN :virtual-network-name として一致ラベル値を入力します。 仮想マシンインターフェイスセレクターを使用してポッドでBGPaaSを有効にするを参照してください

サービス構成としての BGP の検証

BGPAsAService オブジェクト ファイルをコミットした後、BGPaaS オブジェクトが正常に実行されていることを確認する必要があります。

オブジェクトの状態を確認するために BGPAsAService オブジェクトを作成した後、 kubectl get BGPAsAService コマンドを入力します。[ 状態] フィールドが [成功] を示す場合、オブジェクトは正常に作成されます。

また、BGPaaS サーバーと BGPaaS クライアントが作成され、が 成功 状態であることを確認する必要があります。

kubectl get BGPRouter コマンドを入力して、BGPaaS サーバーとクライアントの存在と運用状態を確認します。

ポッドでBGPを設定する

また、ポッドで実行されているBGPサービスのネットワークパラメーターも設定する必要があります。各 BGP サービスの設定は一意です。必要なネットワーク設定パラメータの文書化は、このドキュメントの範囲外です。ご利用のBGPサービスに関連するドキュメントを確認してください。

この例では、BIRD を使用して BGP ネットワーク設定を設定する方法を示します。

この例では、BIRD CLIを使用してBGPを設定します。Cloud-Native Contrail Networking で定義された BGPaaS オブジェクトと一致させる必要がある BGP 設定のパラメーターに留意してください。この例では示していませんが、ほとんどの導入で BIRD 設定ファイルにアクセスするデフォルトの場所は/etc/bird.conf または /etc/bird/bird.conf であることを知る必要があります。

BGP サービスから、BGP プロトコルが実行されていることを確認します。

BIRD からのこの例では、 show protocol コマンドを入力して、BGP プロトコルが BIRD で確立されていることを確認します。