ジュニパー®クラウドネイティブルーターのコンポーネント
ジュニパークラウドネイティブルーターソリューションは、クラウドネイティブルーターコントローラ(cRPD)、vRouter、JCNR-CNIなどの複数のコンポーネントで構成されています。このトピックでは、ジュニパークラウドネイティブルーターのコンポーネントについて簡単に説明します。
クラウドネイティブルーターのコンポーネント
ジュニパーのクラウドネイティブルーターには、主にコントロールプレーン用のクラウドネイティブルーターコントローラー、vRouter DPDKフォワーディングプレーン、Kubernetes統合用のCNIの3つのコンポーネントがあります。Cloud-Native Routerのコンポーネントはすべてコンテナとして導入されます。
図1は、Kubernetesクラスター内のジュニパークラウドネイティブルーターのコンポーネントを示しています
ジュニパーコンポーネント
クラウドネイティブルーターコントローラ
クラウドネイティブルーターコントローラ(cRPD)は、クラウドネイティブルーターソリューションのコントロールプレーンであり、ステートフルセットとして実行されます。コントローラは、クラウドネイティブルーターの他の要素と通信します。導入時にコントローラに設定した構成、ポリシー、ルールは、実装のために他のコンポーネント(主にクラウドネイティブルーターのvRouter)に伝達されます。
例えば、cRPDでは、拒否ルールでL2アクセスリストを設定するために、ファイアウォールフィルター(ACL)がサポートされています。cRPDは、vRouterエージェントを介して設定情報をvRouterに送信します。
ジュニパークラウドネイティブルーターコントローラの機能:
-
NETCONFプロトコルを使用して外部の自動化およびオーケストレーションシステムからアクセス可能な、Junos OS互換のCLI設定および操作コマンドを公開します。
-
vRouterを高速転送プレーンとしてサポートします。これにより、DPDKフレームワークを使用して構築されたアプリケーションは、カーネルを経由することなく、アプリケーションとvRouterと直接パケットを送受信することができます。
-
DPDK対応vRouterで管理される物理機能(PF)、仮想機能(VF)、virtio、アクセス、およびトランクインターフェイス上で、VLANタグ付きサブインターフェイスの設定をサポートします。
-
ブリッジドメイン、VLAN、仮想スイッチの設定をサポートします。
-
主に BGP と IS-IS を使用するルーティングプロトコルを使用して、コアネットワークへの DPDK アプリケーションの到達可能性をアドバタイズします。
-
ポッドのL3ネットワーク到達可能性情報をクラスターの内外に配布します。
-
L2ファイアウォールの設定を維持します。
-
vRouterエージェントを介して設定情報をvRouterに渡します。
-
ライセンスキー情報を保存します。
-
リリース23.2からBGPスピーカーとして動作し、他のBGPスピーカーとピア関係を確立してルーティング情報を交換します。
構成オプション
導入中に、 ノードアノテーションを使用してJCNRをカスタマイズ できます。
導入後、 PyEZ でNETCONFプロトコルを使用してcRPDを設定することをお勧めします。または、 SSH で cRPD に直接 接続するか、 NETCONF 経由で接続することもできます。最後に、Kubernetesコマンドを使用して JCNRコントローラ(cRPD)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ベースの転送を使用可能
-
L2アクセスコントロールリスト(ACL)を適用
-
JCNR-vRouterへのDPDKの統合
-
フォワーディングプレーンは、カーネルベースのフォワーディングよりも高速なフォワーディング機能を提供します
-
フォワーディングプレーンはカーネルベースのフォワーディングよりも拡張性が高い
-
以下のNICをサポートしています。
-
Intel E810(コロンビアビル)ファミリー
- Intel XL710(Fortville)ファミリー
-
JCNR-CNI
JCNR-CNIは、ジュニパーが開発した新しいコンテナネットワークインターフェイス(CNI)です。JCNR-CNIは、アプリケーションポッドのネットワークインターフェイスをプロビジョニングするために各ノードにインストールされるKubernetes CNIプラグインです。ポッドの作成中に、Kubernetesはポッドインターフェイスの作成と設定をJCNR-CNIに委任します。JCNR-CNIは、クラウドネイティブルーターコントロールプレーン(cRPD)およびvRouterと対話してDPDKインターフェイスを設定します。ポッドが削除されると、JCNR-CNIが呼び出され、Kubernetesおよびクラウドネイティブルーターコンポーネントのポッドインターフェイス、設定、および関連する状態のプロビジョニングが解除されます。JCNR-CNIはセカンダリCNIとして動作し、Multus CNIとともにポッドインターフェイスを追加および設定します。
JCNR-CNIの機能:
-
Kubernetesポッドのネットワーキングタスクを管理します。
-
IPアドレスの割り当て
-
MACアドレスの割り当て
-
Kubernetesクラスター内のポッドとvRouterの間でタグなしインターフェイス、アクセスインターフェイス、その他のインターフェイスを設定する
-
VLANサブインターフェイスの作成
-
-
追加や削除などのポッドイベントに対処します。
-
cRPD設定を生成
JCNR-CNIは、ポッドが使用するセカンダリインターフェイスを管理します。YAML形式のNAD(ネットワーク添付ファイル定義)ファイルの設定に基づいて、必要なインターフェイスを作成します。JCNR-CNIは、最終的な場所または接続ポイントに渡す前に一部のインターフェイスを設定し、以下のような追加のインターフェイス設定オプションのためのAPIを提供します。
-
さまざまな種類のポッドインターフェイスをインスタンス化します。
-
DPDKデータプレーンを活用するポッド用のvirtioベースの高性能インターフェイスを作成する。
-
Pod が Linux Kernei l ネットワーキングスタックを使用して通信できるようにする veth ペアインターフェイスを作成します。
-
アクセスモードまたはトランクモードでのポッドインターフェイスの作成
-
ブリッジドメインへのポッドインターフェイスのアタッチ
-
動的IPアドレス割り当て用のIPAMプラグインをサポートします。
-
virtio インターフェイスに固有のソケット インターフェイスを割り当てます。
-
ブリッジドメインへのポッドインターフェイスのアタッチ
-
IP アドレスの割り当て、AI Kubernetes クラスターでのポッドと vRouter 間のインターフェイスの設定など、ポッド内のネットワークタスクの管理。
-
ポッド間およびポッド間ネットワークを含むネットワークにポッドインターフェイスを接続します。
-
パケット処理のオフロードのための vRouter との統合。
JCNR-CNIのメリット:
-
ポッドインターフェイス管理の改善
-
カスタマイズ可能な管理および監視機能
-
cRPDおよびvRouterコンポーネントとの緊密な統合によるパフォーマンスの向上
ポッド作成におけるJCNR-CNIの役割:
クラウドネイティブルーターで使用するポッドを作成すると、 kubelet として知られるKubernetesコンポーネントがMultus CNIを呼び出して、ポッドのネットワーキングとインターフェイスを設定します。Multusは、 pod.yaml ファイルのアノテーションセクションを読み取り、NADを見つけます。NADがCNIプラグインとしてJCNR-CNIを指している場合、MultusはJCNR-CNIを呼び出してポッドインターフェイスを設定します。JCNR-CNIは、NADで指定されたとおりにインターフェイスを作成します。次に、JCNR-CNIが設定を生成し、cRPDにプッシュします。
Syslog-NG
ジュニパークラウドネイティブルーターは、syslog-ngポッドを使用して、cRPDとvRouterからイベントログを収集し、そのログをJSONベースの通知に変換します。通知はファイルに記録されます。Syslog-ngはデーモンセットとして実行されます。