JCNR 인터페이스 개요
요약 이 주제에서는 JCNR-Controller에서 제공하는 네트워크 통신 인터페이스에 대한 정보를 제공합니다. 패브릭 인터페이스는 여러 인터페이스로부터 트래픽을 수신하는 어그리게이션 인터페이스입니다. 서로 다른 워크로드가 연결된 인터페이스를 워크로드 인터페이스라고 합니다.
JCNR-Controller에서 제공하는 네트워크 통신 인터페이스를 이해하려면 이 주제를 읽으십시오. 인터페이스 이름, 인터페이스 연결 대상, 통신 방법을 다룹니다. 그리고 그들이 제공하는 서비스.
주니퍼 클라우드 네이티브 라우터 인터페이스 유형
주니퍼 클라우드 네이티브 라우터는 두 가지 유형의 인터페이스를 지원합니다.
-
패브릭 인터페이스 - 여러 인터페이스에서 트래픽을 수신하는 어그리게이션 인터페이스. 패브릭 인터페이스는 항상 물리적 인터페이스입니다. 물리적 기능(PF) 또는 가상 기능(VF)일 수 있습니다. 이러한 인터페이스에 대한 처리량 요구 사항은 더 높기 때문에 여러 하드웨어 대기열이 할당됩니다. 각 하드웨어 대기열에는 전용 CPU 코어가 할당됩니다. 인터페이스는 배포자 helmcharts에서 적절한
values.yaml
파일을 사용하여 클라우드 네이티브 라우터에 대해 구성됩니다. 명령을 사용하여 인터페이스 매핑을 볼 수 있습니다dpdkinfo -c
. 자세한 내용은 배포 가이드의 vRouter CLI를 통한 문제 해결 항목을 참조하십시오. 또한 처리량 요구 사항이 낮은 패브릭 워크로드 인터페이스도 있습니다. 인터페이스에 하나의 하드웨어 대기열만 할당되므로 귀중한 CPU 리소스를 절약할 수 있습니다. 이러한 인터페이스는 배포자 helmcharts에서 적절한values.yaml
파일을 사용하여 구성할 수 있습니다. -
워크로드 인터페이스 - 다양한 워크로드가 연결된 인터페이스입니다. 소프트웨어 기반 또는 하드웨어 기반 인터페이스일 수 있습니다. 소프트웨어 기반 인터페이스는 DPDK(Data Plane Development Kit) 폴 모드 드라이버(PMD)를 사용하는 고성능 인터페이스 또는 커널 드라이버를 사용하는 저성능 인터페이스입니다. 일반적으로 DPDK 인터페이스는 사용자 데이터용 GPRS 터널링 프로토콜(GTP-U) 트래픽과 같은 데이터 트래픽에 사용되며 커널 기반 인터페이스는 TCP와 같은 컨트롤 플레인 데이터 트래픽에 사용됩니다. 커널 Pod 인터페이스는 일반적으로 OAM(운영, 관리 및 유지 관리) 트래픽용입니다. 인터페이스는 인터페이스의 한쪽 끝이 Pod에 있고 다른 쪽 끝은 호스트의 Linux 커널에 있는 veth-pair로 구성됩니다. JCNR은 링크 본딩 PMD를 통해 본딩된 인터페이스도 지원합니다. 이러한 인터페이스는 배포자 helmcharts에서 적절한
values.yaml
파일을 사용하여 구성할 수 있습니다.JCNR은 패브릭 및 워크로드 인터페이스 전반에서 트렁크, 액세스 및 하위 인터페이스를 비롯한 다양한 유형의 VLAN 인터페이스를 지원합니다.
JCNR 인터페이스 세부사항
다양한 JCNR 인터페이스는 아래에 자세히 나와 있습니다.
-
에이전트 인터페이스
vRouter에는 에이전트 인터페이스가 하나만 있습니다. 에이전트 인터페이스를 통해 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: 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(Bridge-Domain)의 일부가 될 수 있습니다. 브리지 도메인은 동일한 플러딩 또는 브로드캐스트 특성을 공유하는 논리적 포트 집합입니다. VLAN과 마찬가지로 브리지 도메인은 여러 디바이스의 하나 이상의 포트에 걸쳐 있습니다. 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
때 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
- 커널 인터페이스를 사용하는 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
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 하위 인터페이스를 사용하여 사용자 Pod를 구성하고 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에서 L2 VLAN 하위 인터페이스 구성은 다음과 같습니다.
vif0/5 Virtual: vhostnet1-71cd7db1-1a5e-49.100 Vlan(o/i)(,S): 100/100 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: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 하위 인터페이스
주니퍼 클라우드 네이티브 라우터 릴리스 23.2부터 클라우드 네이티브 라우터는 L3 모드에서 VLAN 하위 인터페이스 사용을 지원합니다.
참고:특히 L3 모드에서 지원되는 VLAN 하위 인터페이스는 주니퍼 클라우드 네이티브 라우터 릴리스 23.2의 기술 프리뷰 기능입니다.
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