Cloud-Native Routerインターフェイスの概要
ここでは、JCNRコントローラが提供するネットワーク通信インタフェースについて説明します。ファブリックインターフェイスは、複数のインターフェイスからトラフィックを受信する集約されたインターフェイスです。異なるワークロードが接続されているインターフェイスは、ワークロード インターフェイスと呼ばれます。
このトピックを読むと、JCNR-Controllerが提供するネットワーク通信インターフェースを理解することができます。インターフェイス名、接続先、通信方法、提供するサービスについて説明します。
Juniper Cloud-Native Routerのインターフェイスタイプ
Juniper Cloud-Native Routerは、2種類のインターフェイスをサポートしています。
-
ファブリックインターフェイス—複数のインターフェイスからトラフィックを受信する集約されたインターフェイス。ファブリックインターフェイスは常に物理インターフェイスです。それらは、物理機能 (PF) または仮想機能 (VF) のいずれかです。これらのインターフェイスのスループット要件はより高いため、複数のハードウェア キューが割り当てられます。各ハードウェア キューには、専用の CPU コアが割り当てられます。インターフェイスは、デプロイヤHelmchartsの適切な
values.yaml
ファイルを使用してCloud-Native Router用に設定されます。インターフェイス マッピングを表示するには、dpdkinfo -c
コマンドを使用します(詳細については、「 vRouter CLI を使用したトラブルシューティング 」トピックを参照してください)。また、スループット要件が低いファブリック ワークロード インターフェイスもあります。インターフェイスにはハードウェア キューが 1 つだけ割り当てられるため、貴重な CPU リソースを節約できます。これらのインターフェイスは、デプロイヤーのヘルムチャートの適切なvalues.yaml
ファイルを使用して構成できます。 -
ワークロードインターフェイス—さまざまなワークロードが接続されているインターフェイス。インターフェイスはソフトウェアベースまたはハードウェアベースのいずれかです。ソフトウェアベースのインターフェイス (ポッド インターフェイス) は、データ プレーン開発キット (DPDK) ポーリング モード ドライバー (PMD) を使用した高性能インターフェイス、またはカーネル ドライバーを使用した低パフォーマンス インターフェイスのいずれかです。通常、DPDKインターフェイスは、ユーザーデータ(GTP-U)トラフィックのGPRSトンネリングプロトコルなどのデータトラフィックに使用され、カーネルベースのインターフェイスは、TCPなどのコントロールプレーンデータトラフィックに使用されます。カーネル ポッド インターフェイスは、通常、運用、管理、保守 (OAM) トラフィック用であるか、非 DPDK ポッドによって使用されます。カーネル ポッド インターフェイスは veth ペアとして構成され、インターフェイスの一方の端はポッド内にあり、もう一方の端はホスト上の Linux カーネル内にあります。DPDKネイティブポッドインターフェイス(virtioインターフェイス)は、CNIによってDPDK vRouterへのvhost-userインターフェイスとしてプラミングされます。Cloud-Native Routerは、リンクボンディングPMDを介したボンディングされたインターフェイスもサポートしています。これらのインターフェイスは、デプロイヤーのヘルムチャートの適切な
values.yaml
ファイルを使用して構成できます。Cloud-Native Routerは、ファブリックおよびワークロードインターフェイス全体のトランクインターフェイス、アクセスインターフェイス、サブインターフェイスなど、さまざまなタイプのVLANインターフェイスをサポートします。
Cloud-Native Routerインターフェイスの詳細
さまざまなCloud-Native Routerインターフェイスについて、以下で詳しく説明します。
- エージェント インターフェイス
- L3ファブリックインターフェイス(DPDK)
- L3 ボンド インターフェイス(DPDK)
- L3ポッドVLANサブインターフェイス(DPDK)
- L3ポッドカーネルインターフェイス
- L2 ファブリック インターフェイス(DPDK、物理トランク)
- DPDK L2 ボンド インターフェイス(アクティブ/スタンバイ、トランク)
- DPDK L2ポッドインターフェイス(Virtioトランク)
- L2ポッドカーネルインターフェイス(アクセス)
- L2ポッドVLANサブインターフェイス(DPDK)
エージェント インターフェイス
vRouter のエージェントインターフェイスは 1 つだけです。エージェントインターフェイスは、vRouter-agentと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
L3ファブリックインターフェイス(DPDK)
DPDK にバインドされたレイヤー 3 ファブリック インターフェイス。
cRPDのL3ファブリックインターフェイスは、junos show interfaces
コマンドを使用してcRPDシェルで確認できます。
show interfaces routing ens2f2 Interface State Addresses ens2f2 Up MPLS enabled ISO enabled INET 192.21.2.4 INET6 2001:192:21:2::4 INET6 fe80::c5da:7e9c:e168:56d7 INET6 fe80::a0be:69ff:fe59:8b58
対応する物理インターフェイスとタップインターフェイスは、vRouterシェルの vif --list
コマンドを使用してvRouterで確認できます。
vif0/1 PCI: 0000:17:01.1 (Speed 25000, Duplex 1) NH: 7 MTU: 9000 <- PCI Address Type:Physical HWaddr:d6:93:87:91:45:6c IPaddr: 192.21.2.4 <- Physical interface IP6addr:2001:192:21:2::4 <- IPv6 address DDP: OFF SwLB: ON Vrf:2 Mcast Vrf:2 Flags:L3L2Vof QOS:0 Ref:16 <- L3 (only) interface RX port packets:423168341 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:17:01.1 Status: UP Driver: net_iavf RX packets:423168341 bytes:29123418594 errors:0 TX packets:417508247 bytes:417226216530 errors:0 Drops:8 TX port packets:417508247 errors:0
vif0/2 PMD: ens2f2 NH: 12 MTU: 9000 <- Tap interface name as seen by cRPD Type:Host HWaddr:d6:93:87:91:45:6c IPaddr: 192.21.2.4 <- Tap interface type IP6addr:2001:192:21:2::4 DDP: OFF SwLB: ON Vrf:2 Mcast Vrf:65535 Flags:L3DProxyEr QOS:-1 Ref:15 TxXVif:1 <-cross-connected to vif 1 RX device packets:306995 bytes:25719830 errors:0 RX queue packets:306995 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:306995 bytes:25719830 errors:0 TX packets:307489 bytes:25880250 errors:0 Drops:0 TX queue packets:307489 errors:0 TX device packets:307489 bytes:25880250 errors:0
L3 ボンド インターフェイス(DPDK)
DPDK にバインドされたレイヤー 3 ボンド インターフェイス。
show interfaces routing bond34 Interface State Addresses bond34 Up INET6 2001:192:7:7::4 ISO enabled INET 192.7.7.4 INET6 fe80::527c:6fff:fe48:7574
vif0/3 PCI: 0000:00:00.0 (Speed 25000, Duplex 1) NH: 6 MTU: 1514 <- Bond interface (PCI id 0) Type:Physical HWaddr:50:7c:6f:48:75:74 IPaddr:192.7.7.4 <- Physical interface IP6addr:2001:192:7:7::4 DDP: OFF SwLB: ON Vrf:1 Mcast Vrf:1 Flags:TcL3L2Vof QOS:0 Ref:18 RX port packets:402183888 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: eth_bond_bond34 Status: UP Driver: net_bonding <- Bonded master Slave Interface(0): 0000:5e:00.0 Status: UP Driver: net_ice <- Bond slave - 1 Slave Interface(1): 0000:af:00.0 Status: UP Driver: net_ice <- Bond slave - 2 RX packets:402183888 bytes:49519387070 errors:0 TX packets:79226 bytes:7330912 errors:0 Drops:1393 TX port packets:79226 errors:0
vif0/4 PMD: bond34 NH: 11 MTU: 9000 Type:Host HWaddr:50:7c:6f:48:75:74 IPaddr:192.7.7.4 <- Tap interface IP6addr:2001:192:7:7::4 DDP: OFF SwLB: ON Vrf:1 Mcast Vrf:65535 Flags:L3DProxyEr QOS:-1 Ref:15 TxXVif:3 <- Tap interface for bond RX device packets:76357 bytes:7101918 errors:0 RX queue packets:76357 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:76357 bytes:7101918 errors:0 TX packets:75349 bytes:6946908 errors:0 Drops:0 TX queue packets:75349 errors:0 TX device packets:75349 bytes:6946908 errors:0
L3ポッドVLANサブインターフェイス(DPDK)
Juniper Cloud-Native Routerリリース23.2以降、Cloud-Native Routerは、DPDKにバインドされたL3モードでのVLANサブインターフェイスの使用をサポートしています。
cRPDの対応するインターフェイスの状態:
show interfaces routing ens1f0v1.201 Interface State Addresses ens1f0v1.201 Up MPLS enabled ISO enabled INET6 fe80::b89c:fff:feab:e2c9
vif0/2 PCI: 0000:17:01.1 (Speed 25000, Duplex 1) NH: 7 MTU: 9000 Type:Physical HWaddr:d6:93:87:91:45:6c IPaddr:0.0.0.0 IP6addr:fe80::d493:87ff:fe91:456c <- IPv6 address DDP: OFF SwLB: ON Vrf:2 Mcast Vrf:2 Flags:L3L2Vof QOS:0 Ref:16 <- L3 (only) interface RX port packets:423168341 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:17:01.1 Status: UP Driver: net_iavf RX packets:423168341 bytes:29123418594 errors:0 TX packets:417508247 bytes:417226216530 errors:0 Drops:8 TX port packets:417508247 errors:0
vif0/5 PMD: ens1f0v1 NH: 12 MTU: 9000 Type:Host HWaddr:d6:93:87:91:45:6c IPaddr:0.0.0.0 IP6addr:fe80::d493:87ff:fe91:456c DDP: OFF SwLB: ON Vrf:2 Mcast Vrf:65535 Flags:L3DProxyEr QOS:-1 Ref:15 TxXVif:2 <- L3 (only) tap interface RX device packets:306995 bytes:25719830 errors:0 RX queue packets:306995 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:306995 bytes:25719830 errors:0 TX packets:307489 bytes:25880250 errors:0 Drops:0 TX queue packets:307489 errors:0 TX device packets:307489 bytes:25880250 errors:0
vif0/9 Virtual: ens1f0v1.201 Vlan(o/i)(,S): 201/201 Parent:vif0/2 NH: 36 MTU: 1514 <- VLAN fabric sub-intf with parent as vif 2 and VLAN tag as 201 Type:Virtual(Vlan) HWaddr:d6:93:87:91:45:6c IPaddr:103.1.1.2 IP6addr:fe80::d493:87ff:fe91:456c DDP: OFF SwLB: ON Vrf:1 Mcast Vrf:1 Flags:L3DProxyEr QOS:-1 Ref:4 RX queue errors to lcore 0 0 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
vif0/10 Virtual: ens1f0v1.201 Vlan(o/i)(,S): 201/201 Parent:vif0/5 NH: 21 MTU: 9000 Type:Virtual(Vlan) HWaddr:d6:93:87:91:45:6c IPaddr:103.1.1.2 IP6addr:fe80::d493:87ff:fe91:456c DDP: OFF SwLB: ON Vrf:1 Mcast Vrf:65535 Flags:L3DProxyEr QOS:-1 Ref:4 TxXVif:9 <- VLAN tap sub-intf cross connected to fabric sub-intf vif 9 and parent as tap intf vif 5 RX queue errors to lcore 0 0 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
vif0/50 PMD: vhostnet1-9403fd77-648a-47 NH: 177 MTU: 9160 ---> pod interface Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:65535 Mcast Vrf:65535 Flags:L3DProxyEr QOS:-1 Ref:20 RX queue errors to lcore 0 0 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
vif0/51 Virtual: vhostnet1-9403fd77-648a-47.201 Vlan(o/i)(,S): 201/201 NH: 17 MTU: 1514 Parent:vif0/50 ---->L3 pod sub-interface, parent is the pod interface Type:Virtual(Vlan) HWaddr:00:00:5e:00:01:00 IPaddr:99.62.0.2 IP6addr:1234::633e:2 DDP: OFF SwLB: ON Vrf:2 Mcast Vrf:2 Flags:PL3DProxyEr QOS:-1 Ref:4 RX queue errors to lcore 0 0 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
L3ポッドカーネルインターフェイス
これらは非 DPDK L3 ポッド インターフェイスです。cRPDのインターフェイス状態:
show interfaces routing jvknet1-0af476e Interface State Addresses jvknet1-0af476e Up INET6 enabled INET6 abcd:2:51:1::4 ISO enabled INET enabled INET 2.51.1.4
vif0/13 Ethernet: jvknet1-0af476e NH: 35 MTU: 9160 <- Kernel interface (jvk) of CNF Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:2.51.1.4 <- pod/ workload IP6addr:abcd:2:51:1::4 DDP: OFF SwLB: ON Vrf:1 Mcast Vrf:1 Flags:PL3DVofProxyEr QOS:-1 Ref:11 RX port packets:47 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:47 bytes:13012 errors:0 TX packets:0 bytes:0 errors:0 Drops:47
L2 ファブリック インターフェイス(DPDK、物理トランク)
DPDK L2 ファブリック インターフェイスは、ホスト サーバー上の物理ネットワーク インターフェイス カード (NIC) に関連付けられており、複数の VLAN からのトラフィックを受け入れます。トランク インターフェイスは、タグ付きパケットのみを受け入れます。タグなしタグなしパケットはすべて破棄されます。これらのインターフェイスは、特定の VLAN パケットのみを許可する VLAN フィルターを受け入れることができます。トランク インターフェイスは、複数のブリッジ ドメイン(BD)の一部になることができます。ブリッジ ドメインは、同じフラッディングまたはブロードキャスト特性を共有する一連の論理ポートです。VLAN と同様に、ブリッジ ドメインは複数のデバイスの 1 つ以上のポートにまたがります。
show configuration
コマンドを使用したcRPDインターフェイスの設定は、以下のようになります(簡潔にするために出力は省略されています)。
interfaces { ens786f0v0 { unit 0 { family bridge { interface-mode trunk; vlan-id-list 1001-1100; } } } }
vRouter CLI で vif --list
コマンドを発行すると、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
DPDK L2 ボンド インターフェイス(アクティブ/スタンバイ、トランク)
レイヤー2ボンディングインターフェイスは、複数のVLANからのトラフィックを受け入れます。ボンディング・インターフェースは、アクティブ・モードまたはスタンバイ・モード(モード0)で作動します。Helm チャート設定のボンドインターフェイスは、次のように定義します。
bondInterfaceConfigs: - name: "bond0" mode: 1 # ACTIVE_BACKUP MODE slaveInterfaces: - "ens2f0v1" - "ens2f1v1"
- bond0: ddp: "auto" interface_mode: trunk vlan-id-list: [1001-1100] storm-control-profile: rate_limit_pf1 native-vlan-id: 1001 no-local-switching: true
show configuration
コマンドを使用したcRPDインターフェイスの設定は、以下のようになります(簡潔にするために出力はトリミングされています)。
interfaces { bond0 { unit 0 { family bridge interface-mode trunk; vlan-id-list 1001-1100; } } }
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: 1001-1100 RX packets:8108366000 bytes:486501960000 errors:4234 TX packets:65083776 bytes:4949969408 errors:0 Drops:8108370394
DPDK L2ポッドインターフェイス(Virtioトランク)
トランク インターフェイスは、タグ付きパケットのみを受け入れます。タグなしタグなしパケットはすべて破棄されます。これらのインターフェイスは、特定の VLAN パケットのみを許可する VLAN フィルターを受け入れることができます。トランク インターフェイスは、複数のブリッジ ドメイン(BD)の一部になることができます。ブリッジ ドメインは、同じフラッディングまたはブロードキャスト特性を共有する一連の論理ポートです。VLAN と同様に、ブリッジ ドメインは複数のデバイスの 1 つ以上のポートにまたがります。Virtio インターフェースは、DPDK データプレーンで virtio を使用する Pod インターフェースに関連付けられています。
show configuration
コマンドを使用したcRPDインターフェイスの設定は、以下のようになります(簡潔にするために出力は省略されています)。
interfaces { vhost242ip-93883f16-9ebb-4acf-b { unit 0 { family bridge { interface-mode trunk; vlan-id-list 1001-1003; } } } }
vRouter CLI で vif --list
コマンドを発行すると、virtio with DPDK データプレーンインターフェイスは以下のようになります。
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
L2ポッドカーネルインターフェイス(アクセス)
アクセス インターフェイスは、タグ付きパケットとタグなしタグなしパケットの両方を受け入れます。タグなしパケットには、アクセスVLANまたはアクセスBDのタグが付けられます。アクセスVLANを持つパケット以外のタグ付きパケットはすべて破棄されます。アクセス インターフェイスは、単一のブリッジ ドメインの一部です。親インターフェースはありません。
show configuration
コマンドを使用したcRPDインターフェイスの設定は、以下のようになります(簡潔にするために出力は省略されています)。
routing-instances { switch { instance-type virtual-switch; bridge-domains { bd1001 { vlan-id 1001; interface jvknet1-eed79ff; } } } }
vRouter CLI で vif --list
コマンドを発行すると、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: 1001 OVlan Id: 1001 RX packets:9 bytes:802 errors:515 TX packets:0 bytes:0 errors:0 Drops: 525
L2ポッドVLANサブインターフェイス(DPDK)
レイヤー2 VLANサブインターフェイスを使用してユーザーポッドを構成し、Cloud-Native Routerインスタンスにアタッチできます。VLAN サブインターフェイスは、物理スイッチやルーター上の論理インターフェイスのようなものです。設定されたVLANタグに一致するタグ付きパケットのみにアクセスします。サブインターフェイスには親インターフェイスがあります。親インターフェイスは、それぞれが VLAN ID を持つ複数のサブインターフェイスを持つことができます。Cloud-Native Routerを実行する場合は、各サブインターフェイスを特定のVLANに関連付ける必要があります。
show configuration
コマンドを使用して表示したcRPDインターフェイス設定は、以下の通りです(簡潔にするために出力は省略されています)。
L2 の場合:
routing-instances { switch { instance-type virtual-switch; bridge-domains { bd3003 { vlan-id 3003; interface vhostnet1-71cd7db1-1a5e-49.3003; } } } }
vRouterでは、VLANサブインターフェイスの設定は次のとおりです。
vif0/4 PMD: vhostnet1-71cd7db1-1a5e-49 MTU: 9160 Type:Virtual HWaddr:02:00:00:84:dc:42 DDP: OFF SwLB: ON Vrf:65535 Flags:L2 QOS:-1 Ref:14 RX queue errors to lcore 0 0 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 TX port packets:0 errors:293 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