Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

スタティック ルート

概要 ジュニパークラウドネイティブのContrail Networking(CN2)リリース23.1は、クラスターの静的ルートをサポートしています。この記事では、CN2クラスターの静的ルートを設定する方法について説明します。

スタティック ルートについて

ネットワークに動的ルーティング プロトコルの複雑さが不要な場合は、静的ルートを使用できます。ルーティングテーブルと転送テーブルの永続的な固定ルートは、静的ルートとして設定されることがよくあります。スタブネットワークからの内部トラフィックは、静的ルートからメリットがあります。

ルートは、宛先プレフィックスとネクストホップ転送アドレスで構成されています。スタティックルートはルーティングテーブルでアクティブ化され、ネクストホップアドレスに到達可能になると転送テーブルに挿入されます。静的ルートに一致するトラフィックは、指定されたネクストホップアドレスに転送されます。

CN2の静的ルート

CN2は、以下の2つのカスタムリソース(RR)を介して静的ルートを実装します。
  • RouteTable:ユーザー定義のネクストホップ宛先(nextHop)と、ネクストホップトラフィックを識別する宛先プレフィックスが含まれます。IP アドレスは nextHop 、別の VMI オブジェクトの IP アドレスである必要があります。プレフィックスは、一致するトラフィックのネクストホップとして機能する宛先ネットワークを定義します。A RouteTable では、静的ルートを定義できます。を仮想ネットワーク(VN)に関連付けることができます RouteTable 。CRの例を以下に RouteTable 示します。

    フィールドnextHopTypeには、 の値ip-addressが必要です。それ以外の値を指定すると、ユーザー入力エラーが発生します。フィールドをcommunityAttributes使用すると、BGP経由でルート学習を制御できます。
  • InterfaceRouteTable: 仮想 InterfaceRouteTable マシン インターフェイス(VMI)の静的ルーティングを設定します。は InterfaceRouteTable 、ネクストホップエントリーを必要としない宛先プレフィックスを含みます。と RouteTable同様に、プレフィックスは宛先ネットワーク、またはネクストホップを定義します。 RouteTableとは異なり、IP アドレスを nextHop 定義する必要はありません。これは、VMI に関連付 InterfaceRouteTable けると、関連する VMI がこのプレフィックスのネクスト ホップとして機能するためです。

    CRの例を以下に InterfaceRouteTable 示します。

    フィールドnextHopTypeには、 の値ip-addressが必要です。それ以外の値を指定すると、ユーザー入力エラーが発生します。
これらの CR は、それぞれの名前空間のスコープであり、静的ルートに必要な属性を設定できます。

仮想ネットワークの静的ルートの設定

CR を RouteTable 設定して、スタティック ルートを VN に適用します。VNは仕様内のaを RouteTable 参照します。その結果、 RouteTable はVNに関連付けされ、静的ルートが設定されます。以下は、関連 RouteTableするVNオブジェクトを示しています。

VMIの静的ルートを設定する

VMI InterfaceRouteTableに静的ルートを適用するように を設定します。VMIは、そのセクション内の InterfaceRouteTableReferenceInterfaceRouteTable参照しています。以下は、 を参照する VMI オブジェクトです InterfaceRouteTable

ポッドインターフェイスで静的ルートを設定する

ポッドのマニフェストのアノテーションセクションを使用して、ポッドのデフォルトまたはセカンダリインターフェイスの静的ルートを設定できます。ポッド調整機能は、アノテーションセクションを処理して、関連付けられた InterfaceRouteTableVMI オブジェクトを作成します。調整では、注釈セクションで文字列キー「core.juniper.net/interface-route-table」を探します。ポッドのVMEは、その文字列をメタデータラベルとして使用して、 に関連付 InterfaceRouteTableけます。

次に、デフォルトインターフェイスで定義された InterfaceRouteTable ポッドマニフェストの例を示します。

セカンダリインターフェイスで定義されたポッドマニフェストの例を InterfaceRouteTable次に示します。プライマリインターフェイス name は であり name、セカンダリインターフェイス InterfaceRouteTableの は vmi-rt です vn-route。同じ namespaceで異なる names2つ InterfaceRouteTablesを定義すると、そのポッドのプライマリおよびセカンダリインターフェイスが自動的に作成 InterfaceRouteTableされます。

NAD を使用した仮想ネットワークの静的ルートの設定

ネットワーク添付ファイル定義(NAD)オブジェクトで静的ルート プロパティを指定することもできます。NAD が調整または適用されると、a RouteTable が作成され、結果として生成される VN オブジェクトは、 を参照します RouteTable。静的ルート情報が定義された NAD の例を以下に示します。

ポッドインターフェイス上の複数のスタティックルート

使用するとInterfaceRouteTable,、複数の静的ルートを単一のポッドインターフェイス(VMI)に関連付けることができます。これは、IP プレフィックスに応じて、VMI オブジェクトにデフォルトのネクスト ホップの宛先が複数存在することを意味します。クラスター・サービス・バージョン (CSV) 構文または JSON 構文annotationsを使用して、複数InterfaceRouteTableの参照を指定することができます。

メモ:

「名前空間/名前」形式で参照 InterfaceRouteTable する必要があります。次の例では、 static-route は名前空間であり to-rightto-zone-1 は VMI の InterfaceRouteTable オブジェクトまたはネクスト ホップの left-vn 宛先です。

以下の例は、複数InterfaceRouteTable参照を持つ場合のDeployment例です。

次の例は、JSON構文を使用した複数 InterfaceRouteTable の参照を含むポッドマニフェストです。

メモ:

JSON 構文ではバックスラッシュを使用する必要があります。後方スラッシュは、別の JSON 文字列内で JSON 文字列をエンコードする必要があります。

RouteTable と InterfaceRouteTable のトラブルシューティング

以下のセクションには、さまざまな RouteTable 問題をトラブルシューティングする際に役立つコマンドが InterfaceRouteTable 含まれています。

設定プレーンの検証

  • InterfaceRouteTable オブジェクトの状態をRouteTable確認します。

    • オブジェクトの調整のステータスを InterfaceRouteTable 確認します。

    • オブジェクトの調整のステータスを RouteTable 確認します。

  • 関連する RouteTable VN のリファレンスを確認します。関連する InterfaceRouteTable VMI のリファレンスを確認します。

    • VMI の調整のステータスを確認します。VMI には、InterfaceRouteTable関連するユニバーサル一意識別子(UUID)、Contrail FQ(、 kindnamespacename)名などのapiversionメタ情報が表示されます。

データプレーンの検証

  • イントロスペクションで、以下の手順を使用して、VN の VRF が RT で指定されたスタティック ルート プレフィックスと一致する行を示していることを確認します。

    • VRF が VN に関連付けられていることを確認します。

      https://%3Cvroute_ip%3E:8085/Snh_VrfListReq

    • VRF ユニキャストの ucindex 列に移動します RouteTable

    • テーブルに正しい静的ルート プレフィックスを持つ行が含まれていることを確認します。

  • イントロスペクションで、VNのネクストホッププロパティが有効であることを確認します。イントロスペクションでは、プレフィックスのネクストホップ列には以下が含まれている必要があります。
    • ネクストホップインターフェイス名は、有効なタップインターフェイスである必要があります。

    • label 正の整数でなければなりません。

    • 値は resolved . でなければなりません true

    • 値は route-type: . でなければなりません InterfaceStaticRoute