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

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

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

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

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

Cloud-Native Routerコントローラ

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

たとえば、コントローラではファイアウォールフィルタ(ACL)がサポートされており、拒否ルールを使用してL2アクセスリストを設定できます。コントローラは、vRouterエージェントを介して設定情報をCloud-Native Router 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スピーカーとピア関係を確立してルーティング情報を交換します。

構成オプション

導入時に、 Cloud-Native Router 設定をカスタマイズ できます。

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

Cloud-Native Router vRouter

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

Cloud-Native Router vRouterの機能:

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

  • L2転送を実行します。

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

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

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

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

  • 次のNICのサポート:

    • Intel E810(Columbiaville)ファミリー

    • 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およびCloud-Native Routerコンポーネントのポッドインターフェイス、構成、および関連する状態のプロビジョニングが解除されます。JCNR-CNIは、マルチCNIとともにセカンダリCNIとして機能し、ポッドインターフェイスを追加および設定します。

JCNR-CNIの機能:

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

    • IP アドレスの割り当て

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

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

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

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

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

  • cRPD設定を生成します。

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

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

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

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

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

  • ポッド インターフェイスをブリッジ ドメインと仮想ルーターにアタッチする。

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

  • virtio インターフェースに一意のソケットインターフェースを割り当てる。

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

  • ポッド間およびポッドからネットワークへのポッド インターフェイスの接続。

  • パケット処理の負荷を軽減するための vRouter との統合。

JCNR-CNIのメリット:

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

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

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

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

クラウドネイティブ・ルーターで使用するポッドを作成すると、 kubelet と呼ばれるKubernetesコンポーネントがMultus CNIを呼び出して、ポッドのネットワークとインターフェイスを設定します。Multus は pod.yaml ファイルの annotations セクションを読み取り、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 はデーモンセットとして実行されます。