このページで
ジュニパー® クラウドネイティブルーターとは
概要
ジュニパークラウドネイティブルーターは、JCNRコントローラ(cRPDベースの制御プレーン)と JCNR-vRouterを組み合わせたコンテナベースのソフトウェアソリューションです。クラウドネイティブルーターを使用すると、拡張転送機能でJunos OSベースのルーティングやスイッチング制御を有効にできます。
Kubernetes コンピューティング ホスト上で動作する JCNR コントローラは、コントロール プレーン管理機能を備え、Linux カーネルまたは JCNR-vRouter によって提供されるルーティング機能または転送機能を使用します。
Dataplane Development Kit(DPDK)は、ライブラリとドライバーのオープン ソース セットです。DPDKは、ネットワークインターフェイスカード(NIC)が直接メモリアクセス(DMA)パケットをアプリケーションのアドレス空間に直接送信できるようにすることで、高速パケット処理を可能にします。アプリケーションは、NIC からの割り込みのオーバーヘッドを回避するために、パケットをポーリングします。DPDK と統合することで、vRouter がカーネル モジュールとして実行される場合よりも、1 秒あたりにより多くのパケットを処理できます。
この統合ソリューションでは、JCNR-Controller は gRPC ベースのサービスを使用してメッセージ交換や JCNR-vRouter との通信を行い、完全に機能するクラウドネイティブ ルーターを作成します。この緊密な通信により、以下が可能になります。
-
ファブリックとワークロードインターフェイスの詳細
-
必要に応じて、Kubernetesポッド用のDPDKまたはカーネルベースインターフェイスをプロビジョニングする
-
ポッドのIPv4およびIPv6アドレス割り当てを設定する
-
ルーティング テーブルへのルートのインストール
-
ISIS、BGP、OSPF などのルーティング プロトコルを実行する
利点
-
DPDK ベースの JCNR-vRouter によるパケット転送パフォーマンスの向上
-
Helmを使用した汎用コンピューティングデバイスでの導入、削除、アップグレードが容易
-
ソフトウェア内の完全なルーティング、スイッチング、転送スタック
-
MAC 学習、MAC エージング、MAC 制限、L2 統計などの基本的な L2 機能
-
管理トラフィック用の無線ユニット(RU)への L2 到達可能性
-
5G ミリ波 DU や 4G DU などの物理分散ユニット(DU)への L2 または L3 到達可能性
-
VLAN タギング
-
ブリッジ ドメイン
-
トランク ポートとアクセス ポート
-
イーサネットNICで複数の仮想機能(VF)をサポート
-
接着 VF インターフェイスのサポート
-
設定可能なL2アクセスコントロールリスト(ACL)
-
ファブリックインターフェイス上のエグレスブロードキャスト、不明なユニキャスト、マルチキャストトラフィックのレート制限
-
IPv4およびIPv6ルーティング
-
すぐに利用可能なソフトウェアベースのオープン無線アクセスネットワーク(O-RAN)のサポート
-
コンテナ化された導入で迅速にスピンアップ
-
拡張性に優れたソリューション

ジュニパーネットワークスは、プライマリ ノードとバックアップ ノードを指します。Kubernetes はマスター ノードとワーカー ノードを指します。このガイドの一次およびバックアップを Kubernetes の世界のマスターとワーカーと相互に関連付ける方法について説明します。
Kubernetes は、クラスター化コンピューティング環境でコンテナ化されたアプリケーションを実行するためのオーケストレーション プラットフォームです。コンテナ化されたアプリケーションの自動導入、拡張、ネットワーク、管理を提供します。
Kubernetesポッドは、1つ以上のコンテナで構成され、各ポッドはアプリケーションのインスタンスを表します。ポッドは、Kubernetesが管理できる最小ユニットです。ポッド内のすべてのコンテナは、同じネットワーク名スペースを共有します。
Kubernetessを利用して、クラウドネイティブルーターの運用に必要なインフラストラクチャをオーケストレーションしています。ただし、このマニュアルでは、Kubernetesのインストールや管理手順は提供していません。Kubernetesのドキュメントについては、 https://kubernetes.io を参照してください。現在、ジュニパークラウドネイティブルーターでは、Kubernetesクラスタをスタンドアロンクラスターにする必要があります。つまり、Kubernetesのプライマリ機能とバックアップ機能の両方が単一のノードで実行されます。
ジュニパークラウドネイティブルーターコンポーネント
ジュニパークラウドネイティブルーターコントローラJCNR-Controller(cRPD)は、クラウドネイティブルーターソリューションのコントロールプレーン部分です。コントローラは、クラウドネイティブルーターの他の要素と通信するために使用します。導入時にコントローラに設定した設定、ポリシー、およびルールは、実装のために、主に JCNR-vRouter エージェントと JCNR-vRouter の他のコンポーネントに通信されます。
例えば、cRPDでファイアウォールフィルター(ACL)がサポートされており、拒否ルールを持つL2アクセスリストを設定します。cRPD は、設定情報を JCNR-vRouter エージェントを介して JCNR-vRouter に送信します。
ジュニパークラウドネイティブルーターコントローラの機能:
-
NETCONF プロトコルを使用して外部の自動化およびオーケストレーション システムからアクセスできる Junos OS 互換 CLI 設定および操作コマンドを公開します。
-
高速転送プレーンとして JCNR-vRouter をサポートします。これにより、DPDK フレームワークを使用して構築されたアプリケーションは、カーネルを通過せずに、アプリケーションと JCNR-vRouter に直接パケットを送受信できます。
-
物理機能(PF)、仮想機能(VF)、virtio、アクセス、トランク インターフェイス上の VLAN タグ付きサブインターフェイスの設定を DPDK 対応 JCNR-vRouter で管理するためのサポート
-
ブリッジ ドメインの設定をサポート
-
主に BGP および IS-IS でルーティング プロトコルを使用して、コア ネットワークへの DPDK アプリケーションの到達可能性をアドバタイズします。
-
クラスタ内および外部のポッドのL3ネットワーク到達可能性情報を配信します。
JCNR-vRouter は、Linux カーネル内の Linux ブリッジまたは OVS(Open vSwitch)モジュールの代替手段です。JCNR-vRouterコンテナを収容するポッドには、JCNR-vRouterエージェントコンテナも格納されています。JCNR-vRouter の機能は次のとおりです。
-
L2 転送の実行
-
L2 レート制限の実行
-
DPDK ベースの転送を使用できる
-
L2 ACL(アクセスコントロールリスト)の適用
-
レイヤー 3 仮想プライベート ネットワークでルーティングを実行する
JCNR-CNIは、ジュニパーが開発した新しいCNIで、JCNR-vRouterエージェント、JCNR-vRouterエージェントDPDKなどのジュニパー開発ポッド、DPDK対応アプリケーションポッド、クラウドネイティブルーターコントローラを扱います。JCNR-CNIは、アプリケーションポッドのネットワークインターフェイスをプロビジョニングするために、各ノードにインストールされたKubernetes CNIプラグインです。ポッド作成時に、Kubernetes はポッド インターフェイスの作成と設定を JCNR-CNI に委任します。JCNR-CNIは、cRPDおよびJCNR-vrouterと対話し、DPDKインターフェイスを設定します。ポッドが削除されると、JCNR-CNIが呼び出され、Kubernetesおよびクラウドネイティブルーターコンポーネントのポッドインターフェイス、設定、および関連する状態のプロビジョニングを解除します。JCNR-CNIは、Multus CNIと連携して、ポッドインターフェイスを追加および設定します。
JCNR-CNI は、以下の機能を提供します。
-
IPアドレスの割り当て、MACアドレスの割り当て、Kubernetesクラスター内のポッドとホスト間のインターフェイスの設定など、Kubernetesポッドのネットワークタスクを管理します。
-
L2 ACL の適用 – データ プレーンに適用するためにポリシーが JCNR-vRouter に送信されます。
-
追加や削除などのポッドイベントに対する行為
-
cRPD 設定を生成します。
ジュニパークラウドネイティブルーターは、syslog-ngポッドを使用して、cRPDとvRouterからイベントログを収集し、ログをJSONベースの通知に変換します。通知はファイルに記録され、そのファイルからアクセスできます。