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)トラフィック用です。インターフェイスは veth ペアとして設定され、インターフェイスの一方の端はポッド内にあり、もう一方の端はホスト上の Linux カーネル内にあります。Cloud-Native Routerは、リンクボンディングPMDを介したボンディングされたインターフェイスもサポートしています。これらのインターフェイスは、デプロイヤーのヘルムチャートの適切な
values.yamlファイルを使用して構成できます。Cloud-Native Routerは、ファブリックおよびワークロードインターフェイス全体のトランクインターフェイス、アクセスインターフェイス、サブインターフェイスなど、さまざまなタイプのVLANインターフェイスをサポートします。
Cloud-Native Routerインターフェイスの詳細
さまざまなCloud-Native Routerインターフェイスについて、以下で詳しく説明します。
-
エージェントインターフェイス
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 -
DPDK VF ワークロード インターフェイス
これらのインターフェイスは、無線ユニット(RU)またはミリ波分散ユニット(mmWave-DU)に接続します。vRouter CLI で
vif --listコマンドを発行すると、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 からのトラフィックを受け入れます。
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 -
アクティブまたはスタンバイボンドインターフェイス(ボンドトランク)
ボンディングインターフェイスは、複数の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: trueshow 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 データプレーン (Virtio Trunk) 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 - Kernel インターフェースを使用した Pod インターフェース
アクセス インターフェイスは、タグ付きパケットとタグなしタグなしパケットの両方を受け入れます。タグなしパケットには、アクセス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コマンドを発行すると、vTh ペアのインターフェイスは次のようになります。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 サブインターフェイス
レイヤー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 { bd100 { vlan-id 100; interface vhostnet1-1e555ee1-7d93-40.100; } } } }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手記:vRouterのVLANサブインターフェイスを確認するには、コマンド
kubectl exec -it -n contrail contrail-vrouter-<agent container> -- bashコマンドを実行してvRouterエージェントに接続し、コマンドvif --getを実行します。 L3 物理インターフェイス
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:0vif0/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:0cRPDの対応するインターフェイスの状態:
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:8b58L3 ボンド インターフェイス
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 cRPDの対応するインターフェイスの状態: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:0show 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-
L3ポッドホストユーザーインターフェイス
vif0/8 PMD: vhostnet1-aa0984c7-0c1d-40a4-87 NH: 35 MTU: 9160 <- vhost-user interface of CNF Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:2.51.1.3 <- pod/ workload IP6addr:abcd:2:51:1::3 <- IPv6 address of the pod DDP: OFF SwLB: ON Vrf:3 Mcast Vrf:3 Flags:PL3DProxyEr 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:0cRPDの対応するインターフェイスの状態:
show interfaces routing vhostnet1-aa0984c7-0c1d-40a4-87 Interface State Addresses vhostnet1-aa0984c7-0c1d-40a4-87 Up INET6 enabled INET6 abcd:2:51:1::3 ISO enabled INET enabled INET 2.51.1.3 L3 カーネル インターフェイス
cRPDの対応するインターフェイスの状態: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:47show 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-
L3 VLAN サブインターフェイス
Juniper Cloud-Native Router リリース 23.2 以降、Cloud-Native Router は、L3 モードでの VLAN サブインターフェイスの使用をサポートしています。
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:0vif0/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:0vif0/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:0vif0/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:0cRPDの対応するインターフェイスの状態:
show interfaces routing ens1f0v1.201 Interface State Addresses ens1f0v1.201 Up MPLS enabled ISO enabled INET6 fe80::b89c:fff:feab:e2c9