JCNR インターフェイスの概要
概要 このトピックでは、JCNR コントローラが提供するネットワーク通信インターフェースについて説明します。ファブリック インターフェイスは、複数のインターフェイスからトラフィックを受信する集約されたインターフェイスです。異なるワークロードが接続されているインターフェースは、ワークロード・インターフェースと呼ばれます。
このトピックでは、JCNR コントローラーが提供するネットワーク通信インターフェースについて理解してください。インターフェイス名、それらが何に接続するか、どのように通信するかについて説明します。そして彼らが提供するサービス。
Juniper Cloud-Native Router のインターフェイスタイプ
Juniper Cloud-Native Routerは、2種類のインターフェイスをサポートしています。
-
ファブリックインターフェイス - 複数のインターフェイスからトラフィックを受信する集約されたインターフェイス。ファブリック インターフェイスは常に物理インターフェイスです。これらは、物理関数 (PF) または仮想関数 (VF) のいずれかです。これらのインターフェイスのスループット要件はより高いため、複数のハードウェア キューが割り当てられます。各ハードウェア キューには、専用の CPU コアが割り当てられます。インターフェイスは、デプロイヤーヘルムチャート内の適切な
values.yaml
ファイルを使用して、クラウドネイティブルーター用に構成されます。コマンドを使用して、インターフェイスマッピングdpdkinfo -c
を表示できます。詳細については、導入ガイドの「vRouter CLI を使用したトラブルシューティング」トピックを参照してください。また、低スループット要件のファブリックワークロードインターフェイスもあります。インターフェイスに割り当てられるハードウェア キューは 1 つだけなので、貴重な CPU リソースを節約できます。これらのインターフェイスは、デプロイ機能ヘルムチャートの適切なvalues.yaml
ファイルを使用して構成できます。 -
ワークロードインターフェイス - 異なるワークロードが接続されているインターフェイス。ソフトウェアベースまたはハードウェアベースのインターフェイスのいずれかです。ソフトウェアベースのインターフェイスは、データプレーン開発キット(DPDK)ポールモードドライバ(PMD)を使用した高性能インターフェイス、またはカーネルドライバを使用した低パフォーマンスインターフェイスのいずれかです。通常、DPDKインターフェイスはGPRSトンネリングプロトコルユーザーデータ(GTP-U)トラフィックなどのデータトラフィックに使用され、カーネルベースのインターフェイスはTCPなどのコントロールプレーンデータトラフィックに使用されます。カーネルポッドインターフェイスは、通常、運用、管理、保守(OAM)トラフィック用です。インターフェイスはvethペアとして設定され、インターフェイスの一方の端はポッド内にあり、もう一方の端はホスト上のLinuxカーネル内にあります。JCNRは、リンクボンディングPMDを介したボンディングされたインターフェイスもサポートしています。これらのインターフェイスは、デプロイ機能ヘルムチャートの適切な
values.yaml
ファイルを使用して構成できます。JCNRは、ファブリックインターフェイスとワークロードインターフェイス全体で、トランクインターフェイス、アクセスインターフェイス、サブインターフェイスなど、さまざまな種類のVLANインターフェイスをサポートします。
JCNR インターフェイスの詳細
さまざまなJCNRインターフェイスについて、以下で詳しく説明します。
-
エージェント インターフェイス
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 からのトラフィックを受け入れます。
コマンドを使用した
show configuration
cRPDインターフェイスの設定は次のようになります(出力は簡潔にするためにトリミングされています)。interfaces { ens786f0v0 { unit 0 { family bridge { interface-mode trunk; vlan-id-list 1001-1100; } } } }
コマンドを発行
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)で動作します。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データプレーン(Virtio Trunk)を使用したポッドインターフェイス virtio
トランク インターフェイスは、タグ付きパケットのみを受け入れます。タグなしパケットはすべて破棄されます。これらのインターフェイスは、特定のVLANパケットのみを許可するVLANフィルターを受け入れることができます。トランク インターフェイスは、複数の BD(ブリッジ ドメイン)の一部になることができます。ブリッジ ドメインは、同じフラッディングまたはブロードキャスト特性を共有する論理ポートのセットです。VLAN と同様に、ブリッジ ドメインは複数のデバイスの 1 つ以上のポートにわたります。Virtio インターフェイスは、DPDK データ プレーンで virtio を使用するポッド インターフェイスに関連付けられています。
コマンドを使用した
show configuration
cRPDインターフェイスの設定は次のようになります(出力は簡潔にするためにトリミングされています)。interfaces { vhost242ip-93883f16-9ebb-4acf-b { unit 0 { family bridge { interface-mode trunk; vlan-id-list 1001-1003; } } } }
コマンドを発行
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
- カーネルインターフェイスを使用したポッドインターフェイス
アクセス インターフェイスは、タグ付きパケットとタグなしパケットの両方を受け入れます。タグなしパケットには、アクセスVLANまたはアクセスBDのタグが付けられます。アクセス VLAN を持つパケット以外のタグ付きパケットは破棄されます。アクセス インターフェイスは、単一のブリッジ ドメインの一部です。親インターフェイスはありません。
コマンドを使用した
show configuration
cRPDインターフェイスの設定は次のようになります(出力は簡潔にするためにトリミングされています)。routing-instances { switch { instance-type virtual-switch; bridge-domains { bd1001 { vlan-id 1001; interface jvknet1-eed79ff; } } } }
コマンドを発行
vif --list
すると、vRouter CLI では、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 サブインターフェイス
レイヤー2 VLANサブインターフェイスを使用してユーザーポッドを設定し、JCNRインスタンスにアタッチできます。VLANサブインターフェイスは、物理スイッチまたはルーター上の論理インターフェイスのようなものです。設定されたVLANタグに一致するタグ付きパケットにのみアクセスします。サブインターフェイスには親インターフェイスがあります。親インターフェイスは複数のサブインターフェイスを持つことができ、それぞれにVLAN IDが付けられます。クラウドネイティブ ルーターを実行する場合、各サブインターフェイスを特定の 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 サブインターフェイスを表示するには、 コマンドを実行して vRouter エージェントに接続し、 コマンドを実行
kubectl exec -it -n contrail contrail-vrouter-<agent container> -- bash
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: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
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
L3ボンドインターフェース
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
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
-
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:0
cRPDの対応するインターフェイスの状態:
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 カーネル インターフェイス
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
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
-
L3 VLAN サブインターフェイス
Juniper Cloud-Native Router Release 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: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
cRPDの対応するインターフェイス状態:
show interfaces routing ens1f0v1.201 Interface State Addresses ens1f0v1.201 Up MPLS enabled ISO enabled INET6 fe80::b89c:fff:feab:e2c9