クラウドネイティブルーターL3の機能
概要 この章では、L3モードで動作するJuniper Cloud-Native Routerの運用と監視について説明します。クラウドネイティブルーターの導入モード、インターフェイスタイプ、セグメントルーティングMPLSトンネルについて説明します。
Juniper Cloud-Native Routerの導入モード
Juniper Cloud-Native Router Release 22.4以降、L2またはL3モードでJuniper Cloud-Native Routerを導入して運用できます。配置モードを制御するには、配置前に適切な values.yaml
ファイルを編集します。
クラウドネイティブ ルーターを L2 モードで展開するには、 ファイル Juniper_Cloud_Native_Router_version-number/helmchart/values.yaml 内の値を保持するか変更します。
この章の残りの部分では、機能名の先頭に L2 を付けることで、L2 モードでのみ使用できる機能を特定します。
L2モードでは、クラウドネイティブルーターはスイッチのように振る舞うため、ルーティング機能は実行されず、ルーティングプロトコルも実行されません。ポッドネットワークは、VLANを使用してトラフィックをさまざまな宛先に転送します。
クラウドネイティブルーターをL3モードで展開するには、 ファイルJuniper_Cloud_Native_Router_version-number/helmchart/values_L3.yamlの値を保持するか変更します。
L3モードでは、クラウドネイティブルーターはルーターのように振る舞うため、ルーティング機能を実行し、ISIS、BGP、OSPF、セグメントルーティング-MPLSなどのルーティングプロトコルを実行します。L3モードでは、ポッドネットワークはIPv6アンダーレイネットワークとIPv4またはIPv6オーバーレイネットワークに分割されます。IPv6アンダーレイネットワークは、コントロールプレーンのトラフィックに使用されます。
Juniper Cloud-Native Routerセキュリティグループ
Juniper Cloud-Native Routerリリース22.4以降、L3モードでcloud-native routerを使用する場合、セキュリティグループを使用してトラフィックのタイプを制御します。
セキュリティグループは、セキュリティグループルールのコンテナです。セキュリティグループとセキュリティグループルールを使用すると、管理者はインターフェイスポートを通過するトラフィックのタイプを指定できます。仮想ネットワーク (VN) にポッドを作成するときに、セキュリティグループをポッドとその仮想マシンインターフェイス (VMI) に関連付けることができます。VMIは、ポッドをvrouter-dpdkに接続するインターフェイスです。cloud-native ルーターがポッドを起動すると、セキュリティグループ内のルールがポッドの VMI ポートに適用されます。ポッドのセキュリティグループを指定しない場合、cloud-native ルーターはデフォルトのセキュリティグループをポッドの VMI に関連付けます。デフォルトのセキュリティグループルールでは、ポートとの間のすべてのトラフィックが許可されます。デフォルトのセキュリティグループでは、進入トラフィックと退出トラフィックの両方が許可されます。セキュリティルールをデフォルトのセキュリティグループに追加して、トラフィックの動作を変更できます。
セキュリティグループの各ルールは、進入トラフィックまたは退出トラフィックに適用できます。イングレス トラフィックは、ポッドの VMI に送信されるトラフィックです。エグレストラフィックは、VMIを介してポッドを離れるトラフィックです。
Juniper Cloud-Native Router のインターフェイスタイプ
Juniper Cloud-Native Routerは、以下のタイプのインターフェイスをサポートしています。
-
エージェント インターフェイス
vRouter のエージェント インターフェイスは 1 つだけです。エージェント インターフェイスにより、vRouter エージェントと vRouter 間の通信が可能になります。vRouter CLI で コマンドを発行
vif --list
すると、エージェントインターフェイスは次のようになります。vif0/0 Socket: unix Type:Agent HWaddr:00:00:5e:00:01:00 Vrf:65535 Flags:L2 QOS:-1 Ref:3 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:0 bytes:0 errors:0 TX packets:650 bytes:99307 errors:0 Drops:0
-
データ プレーン開発キット(DPDK)仮想関数(VF)ワークロード インターフェイス
これらのインターフェイスは、無線ユニット(RU)またはミリ波分散ユニット(ミリ波DU)に接続します。 コマンドを発行
vif --list
すると、vRouter CLI では、DPDK VF ワークロード インターフェイスは次のようになります。vif0/5 PCI: 0000:ca:19.1 (Speed 10000, Duplex 1) Type:Workload HWaddr:9e:52:29:9e:97:9b Vrf:0 Flags:L2Vof QOS:-1 Ref:9 RX queue packets:29087 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:ca:19.1 Status: UP Driver: net_iavf Vlan Mode: Access Vlan Id: 1250 OVlan Id: 1250 RX packets:29082 bytes:6766212 errors:5 TX packets:0 bytes:0 errors:0 Drops:29896
-
DPDK VFファブリック インターフェイス
ホスト サーバー上の物理ネットワーク インターフェイス カード(NIC)に関連付けられている DPDK VF ファブリック インターフェイスは、複数の VLAN からのトラフィックを受け入れます。コマンドを発行
vif --list
すると、vRouter CLI では、DPDK VF ファブリック インターフェイスは次のようになります。vif0/1 PCI: 0000:31:01.0 (Speed 10000, Duplex 1) Type:Physical HWaddr:d6:22:c5:42:de:c3 Vrf:65535 Flags:L2Vof QOS:-1 Ref:12 RX queue packets:11813 errors:1 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 1 0 Fabric Interface: 0000:31:01.0 Status: UP Driver: net_iavf Vlan Mode: Trunk Vlan: 1001-1100 RX packets:0 bytes:0 errors:49962 TX packets:18188356 bytes:2037400554 errors:0 Drops:49963
-
アクティブまたはスタンバイ ボンド インターフェイス
ボンドインターフェイスは、複数のVLANからのトラフィックを受け入れます。ボンドインターフェイスは、アクティブまたはスタンバイモード(モード0)で動作します。
vRouter CLI で コマンドを発行
vif --list
すると、ボンド インターフェイスは次のようになります。vif0/2 PCI: 0000:00:00.0 (Speed 10000, Duplex 1) Type:Physical HWaddr:32:f8:ad:8c:d3:bc Vrf:65535 Flags:L2Vof QOS:-1 Ref:8 RX queue packets:1882 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: eth_bond_bond0 Status: UP Driver: net_bonding Slave Interface(0): 0000:81:01.0 Status: UP Driver: net_iavf Slave Interface(1): 0000:81:03.0 Status: UP Driver: net_iavf Vlan Mode: Trunk Vlan: 751-755 RX packets:8108366000 bytes:486501960000 errors:4234 TX packets:65083776 bytes:4949969408 errors:0 Drops:8108370394
-
virtio と DPDK データプレーンを使用したポッドインターフェイス
Virtio インターフェイスは、複数の VLAN からのトラフィックを受信し、DPDK データ プレーンで virtio を使用するポッド インターフェイスに関連付けられます。
コマンドを発行
vif --list
すると vRouter CLI では、DPDK データプレーンインターフェイスを持つ virtio は次のようになります。vif0/3 PMD: vhost242ip-93883f16-9ebb-4acf-b Type:Virtual HWaddr:00:16:3e:7e:84:a3 Vrf:65535 Flags:L2 QOS:-1 Ref:13 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Vlan Mode: Trunk Vlan: 1001-1003 RX packets:0 bytes:0 errors:0 TX packets:10604432 bytes:1314930908 errors:0 Drops:0 TX port packets:0 errors:10604432
-
仮想イーサネット(veth)ペアとDPDKデータプレーンを使用したポッドインターフェイス
veth ペアと DPDK データ プレーンを使用するポッド インターフェイスは、トランク インターフェイスではなくアクセス インターフェイスです。このタイプのポッドインターフェイスでは、1つのVLANからのトラフィックのみを通過させることができます。
コマンドを発行
vif --list
すると、vRouter CLI で DPDK データ プレーン インターフェイスを持つ veth ペアは次のようになります。vif0/4 Ethernet: jvknet1-88c44c3 Type:Virtual HWaddr:02:00:00:3a:8f:73 Vrf:0 Flags:L2Vof QOS:-1 Ref:10 RX queue packets:524 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Vlan Mode: Access Vlan Id: 3001 OVlan Id: 3001 RX packets:9 bytes:802 errors:515 TX packets:0 bytes:0 errors:0 Drops: 525
-
VLAN サブインターフェイス
ジュニパーのクラウドネイティブルーターリリース22.4以降、クラウドネイティブルーターは.VLANサブインターフェイスは、物理スイッチまたはルーター上の論理インターフェイスのようなものです。クラウドネイティブルーターをL2モードで実行する場合、各サブインターフェイスは特定のVLANに関連付けられている必要があります。JCNR-vRouterでは、VLANサブインターフェイスは次のようになります。
vif0/5 Virtual: vhostnet1-71cd7db1-1a5e-49.3003 Vlan(o/i)(,S): 3003/3003 Parent:vif0/4 Type:Virtual(Vlan) HWaddr:00:99:99:99:33:09 Vrf:0 Flags:L2 QOS:-1 Ref:3 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:0 bytes:0 errors:0 TX packets:0 bytes:0 errors:0 Drops:0
-
物理機能(PF)ワークロード・インターフェース
-
PF ファブリック インターフェイス
vRouter は、L2 モードで実行されている場合、この vhost0
インターフェイスをサポートしません。
vRouterエージェントは、導入中に values.yaml でL2モードを検出するため、インターフェイスが起動するのを vhost0
待たずにインストールが完了します。vRouterエージェントは仮想ホストインターフェイス追加メッセージを送信しないため、vRouterはインターフェイスを作成し vhost0
ません。
L3モードでは、インターフェイスが存在し vhost0
、機能します。
ポッドは、クラウドネイティブルーターで使用されるインターフェイスを含むKubernetes要素です。インターフェイスの作成を制御するには、YAML 構成ファイルの キーと値の ペアの値部分を操作します。クラウドネイティブ ルーターは、ポッドとインターフェイスの作成にポッド固有のファイルとネットワーク接続デバイス(NAD)固有のファイルを使用します。ポッドの作成時に、Kubernetes はポッドと NAD の構成ファイルを参照し、NAD 構成ファイルに含まれる値から必要なインターフェイスを作成します。
NAD およびポッドの YAML ファイルの例については、『L2 - カーネルアクセスを持つユーザーポッドをクラウドネイティブルーターインスタンスに追加する』および 「L2 - virtio トランクポートを持つユーザーポッドをクラウドネイティブルーターインスタンスに追加する」の例を参照してください。
セキュリティグループ
セキュリティ グループは、セキュリティ規則を保持するためのコンストラクトです。仮想ネットワークにポッドを作成すると、cloud-native ルーターによってセキュリティグループが仮想管理インターフェイス (VMI) に関連付けられます。VMIは、ポッドとvRouterコンテナを接続するインターフェイスです。セキュリティグループの各ルールは、進入トラフィックまたは退出トラフィックに適用されます。イングレストラフィックは、VMI上のポッドから送信されるトラフィックです。エグレストラフィックは、VMIからポッドに向かうトラフィックです。
Cloud-Native Router では、クラウドネイティブルーターコントローラからの gRPC メッセージを使用して、セキュリティグループを含むネットワークポリシーをローカルで設定します。APIコール、NETCONF、またはコマンド階層を使用してクラウドネイティブルーターコントローラCLIを使用して edit routing-options flow security-group security group name rule rule name セキュリティグループを設定できます。
ボンドリンクスイッチオーバーを強制するL2 API
L2モードのカスケードノードでボンドインターフェイスを使用する場合、API呼び出しを行って、トラフィックをアクティブインターフェイスからスタンバイインターフェイスに強制的に切り替えることができます。
Juniper Cloud-Native RouterのMPLSサポート
Juniper Cloud-Native Routerは、MPLSルーティングプロトコルをサポートしています。MPLSを設定するには、JCNRコントローラ(cRPD)を使用します。その後、cRPDはgRPCを使用して、設定をvRouterエージェントに送信します。次に、vRouterエージェントは、構成をvRouterに組み込むネットワークポリシーに変換します。クラウドネイティブルーターは、以下のMPLSベースのルーティングプロトコルをサポートしています。
-
L3 MPLS VPN(MPLS)- L3 MPLS VPNは、BGP/MPLS VPNとも呼ばれています。これは、BGPがプロバイダのバックボーン全体にVPNルーティング情報を分散するために使用され、MPLSはバックボーンを介してVPNトラフィックをリモートVPNサイトに転送するために使用されるためです。クラウドネイティブルーターは、MPLSプロトコルを使用して送信ルーター、受信ルーター、またはトランジットルーターとして参加できます
-
セグメントルーティング-MPLS(SR-MPLS):セグメントルーティングは、イングレスルーターが、ネットワークの中間ノードに依存して実際のパスを決定することなく、ネットワーク内の特定のノードとリンクのセットを介してパケットを誘導できるようにするコントロールプレーンアーキテクチャです。SR-MPLS は、MPLS でセグメント ルーティングを採用しています。クラウドネイティブルーターは、SR-MPLSネットワークの送信ルーター、受信ルーター、またはトランジットルーターとして参加できます。
-
MPLS over UDP(MPLSoUDP)- MPLSoUDPは、ネイティブMPLSまたはSR-MPLSをサポートしない一部のネットワークを通過するために、UDPパケット内にMPLSパケットをカプセル化するオーバーレイ技術です。クラウドネイティブルーターは、MPLSoUDPを使用して送信ルーター、受信ルーター、またはトランジットルーターとして参加できます。