Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Juniper Cloud-Native Routerのコンポーネント

概要 Juniper Cloud-Native Routerソリューションは、JCNRコントローラ、JCNR vRouter、JCNR-CNIなどの複数のコンポーネントで構成されています。このトピックでは、Juniper Cloud-Native Routerのコンポーネントの概要を説明します。

JCNR コンポーネント

Juniper Cloud-Native Routerは、主にJCNRコントローラコントロールプレーン、JCNR vRouter DPDKフォワーディングプレーン、Kubernetes統合向けJCNR-CNIの3つのコンポーネントで構成されています。すべての JCNR コンポーネントは、コンテナーとしてデプロイされます。

図1は、Kubernetesクラスタ内のJuniper Cloud-Native Routerのコンポーネントを示しています

図1:Juniper Cloud-Native Router Components of Juniper Cloud-Native Routerのコンポーネント

JCNR コントローラ

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

たとえば、ファイアウォールフィルター(ACL)はコントローラでサポートされており、拒否ルールを使用して L2 アクセス リストを設定できます。コントローラは、vRouter エージェントを介して JCNR vRouter に設定情報を送信します。

Juniper Cloud-Native Router Controller の機能:

  • 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スピーカーとピア関係を確立してルーティング情報を交換します。

構成オプション

デプロイメント時に、 JCNR 構成をカスタマイズ できます。

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

JCNR vRouter

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

JCNR vRouterの機能:

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

  • L2 転送を実行します。

  • 高性能なDPDKベースのフォワーディングをサポートします。

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

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

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

  • 次の NIC のサポート:

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

    • インテルXL710(フォートビル)ファミリー

JCNR-CNI

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

JCNR-CNIの機能:

  • 以下のような Kubernetes ポッドのネットワーク タスクを管理します。

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

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

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

    • VLANサブインターフェイスを作成します。

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

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

  • cRPD 設定を生成します。

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

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

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

  • ポッドが 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

Juniper Cloud-Native Routerは、syslog-ngポッドを使用してcRPDとvRouterからイベントログを収集し、そのログをJSONベースの通知に変換します。通知はファイルに記録されます。Syslog-ng はデーモンセットとして動作します。