ジュニパークラウドネイティブルーターのコンポーネント
ジュニパークラウドネイティブルーターソリューションは、クラウドネイティブルーターコントローラー、クラウドネイティブルーターvRouter、JCNR-CNIなど、複数のコンポーネントで構成されています。このトピックでは、ジュニパークラウドネイティブルーターのコンポーネントについて簡単に説明します。
クラウドネイティブルーターのコンポーネント
ジュニパークラウドネイティブルーターには、主にクラウドネイティブルーターコントローラーコントロールプレーン、クラウドネイティブルーターvRouter DPDKフォワーディングプレーン、Kubernetes統合向けJCNR-CNIの3つのコンポーネントがあります。Cloud-Native Routerのコンポーネントはすべてコンテナとして導入されます。
図1は、Kubernetesクラスター内のジュニパークラウドネイティブルーターのコンポーネントを示しています
ジュニパーコンポーネント
クラウドネイティブルーターコントローラ
クラウドネイティブルーターコントローラは、Junosコンテナ化ルーティングプロトコルデーモン(cRPD)を実行するクラウドネイティブルーターソリューションのコントロールプレーンです。これはステートフルセットとして実装されます。コントローラは、クラウドネイティブルーターの他の要素と通信します。導入時にコントローラに設定した構成、ポリシー、ルールは、実装のために他のコンポーネント(主にクラウドネイティブルーターのvRouter)に伝達されます。
例えば、ファイアウォールフィルター(ACL)は、拒否ルールを持つL2アクセスリストを設定するために、コントローラでサポートされています。コントローラは、vRouterエージェントを介して設定情報をCloud-Native Router vRouterに送信します。
ジュニパークラウドネイティブルーターコントローラの機能:
-
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スピーカーとピア関係を確立してルーティング情報を交換します。
構成オプション
導入中に、 クラウドネイティブルーター設定をカスタマイズ できます。
導入後は、 PyEZ でNETCONFプロトコルを使用してコントローラを設定することをお勧めします。 SSH または NETCONF経由で接続できます。最後に、Kubernetesコマンドを使用して JCNRコントローラの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ベースの転送をサポートします。
-
JCNR-vRouterへのDPDKの統合。
-
フォワーディングプレーンは、カーネルベースのフォワーディングよりも高速なフォワーディング機能を提供します。
-
フォワーディングプレーンは、カーネルベースのフォワーディングよりも拡張性に優れています。
-
以下のNICをサポートしています。
-
Intel E810(コロンビアビル)ファミリー
- 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およびクラウドネイティブルーターコンポーネントのポッドインターフェイス、設定、および関連する状態のプロビジョニングが解除されます。JCNR-CNIはセカンダリCNIとして動作し、Multus CNIとともにポッドインターフェイスを追加および設定します。
JCNR-CNIの機能:
-
Kubernetesポッドのネットワーキングタスクを管理します。
-
IPアドレスの割り当て。
-
MACアドレスの割り当て。
-
Kubernetesクラスター内のポッドとvRouterの間にタグなしインターフェイス、アクセスインターフェイス、およびその他のインターフェイスを設定する。
-
VLANサブインターフェイスの作成
-
L3インターフェイスの作成
-
-
追加や削除などのポッドイベントに対処します。
-
cRPD設定を生成します。
JCNR-CNIは、ポッドが使用するセカンダリインターフェイスを管理します。YAML形式のNAD(ネットワーク添付ファイル定義)ファイルの設定に基づいて、必要なインターフェイスを作成します。JCNR-CNIは、最終的な場所または接続ポイントに渡す前に一部のインターフェイスを設定し、以下のような追加のインターフェイス設定オプションのためのAPIを提供します。
-
さまざまな種類のポッドインターフェイスをインスタンス化します。
-
DPDKデータプレーンを活用するポッド用のvirtioベースの高性能インターフェイスを作成する。
-
Pod が 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
ジュニパークラウドネイティブルーターは、syslog-ngポッドを使用して、cRPDとvRouterからイベントログを収集し、そのログをJSONベースの通知に変換します。通知はファイルに記録されます。Syslog-ngはデーモンセットとして実行されます。