Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ジュニパークラウドネイティブルーターのコンポーネント

ジュニパークラウドネイティブルーターソリューションは、クラウドネイティブルーターコントローラー、クラウドネイティブルーターvRouter、JCNR-CNIなど、複数のコンポーネントで構成されています。このトピックでは、ジュニパークラウドネイティブルーターのコンポーネントについて簡単に説明します。

クラウドネイティブルーターのコンポーネント

ジュニパークラウドネイティブルーターには、主にクラウドネイティブルーターコントローラーコントロールプレーン、クラウドネイティブルーターvRouter DPDKフォワーディングプレーン、Kubernetes統合向けJCNR-CNIの3つのコンポーネントがあります。Cloud-Native Routerのコンポーネントはすべてコンテナとして導入されます。

図1は、Kubernetesクラスター内のジュニパークラウドネイティブルーターのコンポーネントを示しています

図1:クラウドネイティブルーターComponents of Juniper Cloud-Native Routerジュニパーコンポーネント

クラウドネイティブルーターコントローラ

クラウドネイティブルーターコントローラは、Junosコンテナ化ルーティングプロトコルデーモン(cRPD)を実行するクラウドネイティブルーターソリューションのコントロールプレーンです。これはステートフルセットとして実装されます。コントローラは、クラウドネイティブルーターの他の要素と通信します。導入時にコントローラに設定した構成、ポリシー、ルールは、実装のために他のコンポーネント(主にクラウドネイティブルーターのvRouter)に伝達されます。

例えば、ファイアウォールフィルター(ACL)は、拒否ルールを持つL2アクセスリストを設定するために、コントローラでサポートされています。コントローラは、vRouterエージェントを介して設定情報をCloud-Native Router vRouterに送信します。

ジュニパークラウドネイティブルーターコントローラの機能:

  • NETCONFプロトコルを使用して外部の自動化およびオーケストレーションシステムからアクセス可能な、Junos OS互換のCLI設定および操作コマンドを公開します。

  • vRouterを高速転送プレーンとしてサポートします。これにより、DPDKフレームワークを使用して構築されたアプリケーションは、カーネルを経由することなく、アプリケーションとvRouterと直接パケットを送受信することができます。

  • DPDK対応vRouterで管理される物理機能(PF)、仮想機能(VF)、virtio、アクセス、およびトランクインターフェイス上で、VLANタグ付きサブインターフェイスの設定をサポートします。

  • ブリッジドメイン、VLAN、仮想スイッチの設定をサポートします。

  • 主に BGP、IS-IS、OSPF を使用したルーティング プロトコルを使用して、コア ネットワークへの DPDK アプリケーションの到達可能性をアドバタイズします。

  • ポッドのL3ネットワーク到達可能性情報をクラスターの内外に配布します。

  • L2ファイアウォールの設定を維持します。

  • vRouterエージェントを介して設定情報をvRouterに渡します。

  • ライセンスキー情報を保存します。

  • リリース23.2からBGPスピーカーとして動作し、他のBGPスピーカーとピア関係を確立してルーティング情報を交換します。

構成オプション

導入中に、 クラウドネイティブルーター設定をカスタマイズ できます。

導入後は、 PyEZ でNETCONFプロトコルを使用してコントローラを設定することをお勧めします。 SSH または NETCONF経由で接続できます。最後に、Kubernetesコマンドを使用して JCNRコントローラのCLIにアクセスし 、クラウドネイティブルーターを設定することもできます。

クラウドネイティブルーターvRouter

Cloud-Native Router vRouterは、高性能なデータパスコンポーネントです。これは、Linux ブリッジまたは Linux カーネルの Open vSwitch (OVS) モジュールの代替手段です。これはユーザー空間プロセスとして実行され、データプレーン開発キット(DPDK)ライブラリと統合されます。vRouterポッドは、vrouter-agent、vrouter-agent-dpdk、vrouter-テレメトリ-exporterの3つのコンテナで構成されています。

Cloud-Native Router vRouterの機能:

  • レイヤー3仮想プライベートネットワークでルーティングを実行します。

  • L2転送を実行します。

  • 高性能なDPDKベースの転送をサポートします。

vRouterのメリット:
  • JCNR-vRouterへのDPDKの統合。

  • フォワーディングプレーンは、カーネルベースのフォワーディングよりも高速なフォワーディング機能を提供します。

  • フォワーディングプレーンは、カーネルベースのフォワーディングよりも拡張性に優れています。

  • 以下のNICをサポートしています。

    • Intel E810(コロンビアビル)ファミリー

    • Intel XL710(Fortville)ファミリー

JCNR-CNI

JCNR-CNIは、ジュニパーが開発した新しいコンテナネットワークインターフェイス(CNI)です。JCNR-CNIは、アプリケーションポッドのネットワークインターフェイスをプロビジョニングするために各ノードにインストールされるKubernetes CNIプラグインです。ポッドの作成中に、Kubernetesはポッドインターフェイスの作成と設定をJCNR-CNIに委任します。JCNR-CNIは、Cloud-Native RouterコントローラおよびvRouterと対話してDPDKインターフェイスを設定します。ポッドが削除されると、JCNR-CNIが呼び出され、Kubernetesおよびクラウドネイティブルーターコンポーネントのポッドインターフェイス、設定、および関連する状態のプロビジョニングが解除されます。JCNR-CNIはセカンダリCNIとして動作し、Multus CNIとともにポッドインターフェイスを追加および設定します。

JCNR-CNIの機能:

  • Kubernetesポッドのネットワーキングタスクを管理します。

    • IPアドレスの割り当て。

    • MACアドレスの割り当て。

    • Kubernetesクラスター内のポッドとvRouterの間にタグなしインターフェイス、アクセスインターフェイス、およびその他のインターフェイスを設定する。

    • VLANサブインターフェイスの作成

    • L3インターフェイスの作成

  • 追加や削除などのポッドイベントに対処します。

  • cRPD設定を生成します。

JCNR-CNIは、ポッドが使用するセカンダリインターフェイスを管理します。YAML形式のNAD(ネットワーク添付ファイル定義)ファイルの設定に基づいて、必要なインターフェイスを作成します。JCNR-CNIは、最終的な場所または接続ポイントに渡す前に一部のインターフェイスを設定し、以下のような追加のインターフェイス設定オプションのためのAPIを提供します。

  • さまざまな種類のポッドインターフェイスをインスタンス化します。

  • DPDKデータプレーンを活用するポッド用のvirtioベースの高性能インターフェイスを作成する。

  • Pod が Linux カーネルネットワークスタックを使用して通信できるようにする veth ペアインターフェイスを作成します。

  • アクセスモードまたはトランクモードでのポッドインターフェイスの作成

  • ブリッジドメインと仮想ルーターへのポッドインターフェイスのアタッチ。

  • 動的IPアドレス割り当て用のIPAMプラグインをサポートします。

  • virtio インターフェイスに固有のソケット インターフェイスを割り当てます。

  • IPアドレスの割り当て、Kubernetesクラスター内のポッドとvRouter間のインターフェイスの設定など、ポッドでのネットワーキングタスクの管理。

  • ポッド間およびポッド間ネットワークを含むネットワークにポッドインターフェイスを接続します。

  • パケット処理のオフロードのための vRouter との統合。

JCNR-CNIのメリット:

  • ポッドインターフェイス管理の改善

  • カスタマイズ可能な管理および監視機能

  • コントローラおよびvRouterコンポーネントとの緊密な統合によるパフォーマンスの向上

ポッド作成におけるJCNR-CNIの役割:

クラウドネイティブルーターで使用するポッドを作成すると、 kubelet として知られるKubernetesコンポーネントがMultus CNIを呼び出して、ポッドのネットワーキングとインターフェイスを設定します。Multusは、 pod.yaml ファイルのアノテーションセクションを読み取り、NADを見つけます。NADがCNIプラグインとしてJCNR-CNIを指している場合、MultusはJCNR-CNIを呼び出してポッドインターフェイスを設定します。JCNR-CNIは、NADで指定されたとおりにインターフェイスを作成します。次に、JCNR-CNIが設定を生成し、コントローラにプッシュします。

Syslog-NG

ジュニパークラウドネイティブルーターは、syslog-ngポッドを使用して、cRPDとvRouterからイベントログを収集し、そのログをJSONベースの通知に変換します。通知はファイルに記録されます。Syslog-ngはデーモンセットとして実行されます。