このページで
ジュニパー® クラウドネイティブルーターとは
概要
ジュニパークラウドネイティブルーター(JCNR)は、JCNRコントローラ(cRPDベースの制御プレーン)と JCNR-vRouter(DPDK対応転送/データプレーン)を組み合わせたコンテナベースのソフトウェアソリューションです。クラウドネイティブルーターを使用すると、拡張転送機能でJunos OSベースのスイッチング制御を有効にできます。
Kubernetes(K8s)コンピューティング ホスト上で動作する JCNR コントローラは、コントロール プレーン管理機能を備え、Linux カーネルまたは DPDK 対応 JCNR-vRouter によって提供される転送機能を使用します。
DPDK ライブラリとドライバーのオープン ソース セットです。DPDKは、ネットワークインターフェイスカード(NIC)が直接メモリアクセス(DMA)パケットをアプリケーションのアドレス空間に直接送信できるようにすることで、高速パケット処理を可能にします。アプリケーションは、NIC からの割り込みのオーバーヘッドを回避するために、パケットをポーリングします。DPDK と統合することで、vRouter がカーネル モジュールとして実行される場合よりも、1 秒あたりにより多くのパケットを処理できます。
この統合ソリューションでは、JCNR-Controller は gRPC ベースのサービスを使用してメッセージ交換や JCNR-vRouter との通信を行い、完全に機能するクラウドネイティブ ルーターを作成します。この緊密な通信により、以下が可能になります。
-
ファブリックとワークロードインターフェイスの詳細
-
必要に応じて、K8s ポッド用の DPDK またはカーネルベース インターフェイスのプロビジョニング
-
ポッドのIPv4およびIPv6アドレス割り当てを設定する
利点
-
DPDK ベースの JCNR-vRouter によるパケット転送パフォーマンスの向上
-
Helmを使用した汎用コンピューティングデバイスでの導入、削除、アップグレードが容易
-
ソフトウェア内の完全なスイッチングと転送スタック
-
MAC 学習、MAC エージング、MAC 制限、L2 統計などの基本的な L2 機能
-
管理トラフィック用の無線ユニット(RU)への L2 到達可能性
-
5G ミリ波 DU や 4G DU などの物理分散ユニット(DU)への L2 到達可能性
-
VLAN タギング
-
ブリッジ ドメイン
-
トランク ポート、アクセス ポート、サブインターフェイス ポート
-
イーサネットNICで複数の仮想機能(VF)をサポート
-
接着 VF インターフェイスのサポート
-
設定可能なL2アクセスコントロールリスト(ACL)
-
ファブリックインターフェイスにおけるエグレスブロードキャストおよびマルチキャストトラフィックのレート制限
-
すぐに利用可能なソフトウェアベースのオープン無線アクセスネットワーク(O-RAN)のサポート
-
コンテナ化された導入で迅速にスピンアップ
-
拡張性に優れたソリューション
Kubernetes(K8s)は、クラスター化されたコンピューティング環境でコンテナ化されたアプリケーションを実行するためのオーケストレーションプラットフォームです。コンテナ化されたアプリケーションの自動導入、拡張、ネットワーク、管理を提供します。
K8sポッドは、1つ以上のコンテナで構成され、各ポッドはアプリケーションのインスタンスを表します。ポッドは、K8sが管理できる最小ユニットです。ポッド内のすべてのコンテナは、同じネットワーク名スペースを共有します。
クラウドネイティブルーターの運用に必要なインフラストラクチャをオーケストレーションするには、K8sを利用しています。ただし、このマニュアルでは K8s のインストールや管理手順は提供していません。Kubernetesのドキュメントについては、 https://kubernetes.io を参照してください。現在、ジュニパークラウドネイティブルーターでは、K8sクラスターはスタンドアロンクラスターである必要があります。つまり、K8sマスター機能とワーカー機能の両方が単一のノードで実行されます。
ジュニパークラウドネイティブルーターコンポーネント
ジュニパークラウドネイティブルーターコントローラJCNR-Controller(cRPD)は、ジュニパークラウドネイティブルーターソリューションのコントロールプレーン部分です。コントローラは、クラウドネイティブルーターの他の要素と通信するために使用します。コントローラに導入時に設定した設定、ポリシー、およびルールは、他のコンポーネント(主に実装用の JCNR-vRouter エージェントおよび JCNR-vRouter)に通信されます。
例えば、アクセス・コントロール・リスト(ACL)は、JCNR-Controllerでサポートされており、拒否ルールを持つL2アクセス・リストを設定します。JCNR-controller は、設定情報を JCNR-vRouter エージェントを介して JCNR-vRouter に送信します。
ジュニパークラウドネイティブルーターコントローラの機能:
-
NETCONF プロトコルを使用して外部の自動化およびオーケストレーション システムからアクセスできる Junos OS 互換 CLI 設定および操作コマンドを公開します。
-
高速転送プレーンとして JCNR-vRouter をサポートします。これにより、DPDK フレームワークを使用して構築されたアプリケーションは、カーネルを通過せずに、アプリケーションと JCNR-vRouter に直接パケットを送受信できます。
-
物理機能(PF)、仮想機能(VF)、virtio、アクセス、トランク インターフェイスで、DPDK 対応 JCNR-vRouter で管理される VLAN タグ付きサブインターフェイスの設定をサポートします。
-
ブリッジ ドメインの設定をサポート
JCNR-vRouter は、Linux カーネル内の Linux ブリッジまたは OVS(Open vSwitch)モジュールの代替手段です。JCNR-vRouterコンテナを収容するポッドには、JCNR-vRouterエージェントコンテナも格納されています。JCNR-vRouter の機能は次のとおりです。
-
L2 転送の実行
-
L2 レート制限の実行
-
DPDK ベースの転送を使用できる
-
L2 ACL(アクセスコントロールリスト)の適用
JCNR-CNIは、ジュニパーが開発した新しいCNIで、JCNR-vRouterエージェント、JCNR-vRouterエージェントDPDKなどのジュニパー開発ポッド、DPDKアプリケーションポッド、クラウドネイティブルーターコントローラを扱います。JCNR-CNIは、アプリケーションポッド向けのネットワークインターフェイスをプロビジョニングするために、各ノードにインストールされたkubernetes CNIプラグインです。ポッド作成時に、K8s はポッド インターフェイスの作成と設定を JCNR-CNI に委任します。JCNR-CNI は、JCNR コントロール プレーンおよび JCNR-vrouter と対話して DPDK インターフェイスを設定します。ポッドが削除されると、JCNR-CNIが呼び出され、K8sおよびクラウドネイティブルーターコンポーネントのポッドインターフェイス、設定、および関連する状態のプロビジョニングを解除します。JCNR-CNIは、Multus CNIと連携して、ポッドインターフェイスを追加および設定します。
JCNR-CNI は、以下の機能を提供します。
-
IPアドレスの割り当て、MACアドレスの割り当て、K8sクラスター内のポッドとホスト間のインターフェイスの設定など、K8sポッドのネットワークタスクを管理します。
-
L2 ACL を適用します。データ プレーンに適用するために、ポリシーが JCNR-vRouter に送信されます。
-
追加や削除などのポッドイベントに対する行為
-
cRPD 設定を生成します。
ジュニパークラウドネイティブルーターは、syslog-ngポッドを使用して、cRPDとvRouterからイベントログを収集し、ログをJSONベースの通知に変換します。通知はファイルに記録され、そのファイルからアクセスできます。