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