Cisco Catalyst 스위치의 트렁크 포트에 Ubuntu 22.04가 설치된 Dell R440을 설정하고 있습니다. 문제는 기본 VLAN 트래픽만 시스템에서 캡처된다는 것입니다.
포트 구성은 다음과 같습니다.
interface GigabitEthernet1/0/44
switchport access vlan 201
switchport trunk native vlan 201
switchport trunk allowed vlan 10,201
switchport mode trunk
!
show interfaces GigabitEthernet 1/0/44 trunk
Port Mode Encapsulation Status Native vlan
Gi1/0/44 on 802.1q trunking 201
Port Vlans allowed on trunk
Gi1/0/44 10,201
Port Vlans allowed and active in management domain
Gi1/0/44 10,201
Port Vlans in spanning tree forwarding state and not pruned
Gi1/0/44 10,201
이 정확한 구성은 태그된 VLAN 트래픽을 다른 포트로 전송하며, 이는 Debian 및 BSD 시스템에서 캡처할 수 있습니다.
서버의 인터페이스 구성은 다음과 같습니다.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
altname enp4s0f0
inet 192.168.201.20/24 brd 192.168.201.255 scope global eno1
valid_lft forever preferred_lft forever
inet6 fe80::d294:66ff:feaa:aaaa/64 scope link
valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether bb:bb:bb:bb:bb:bb brd ff:ff:ff:ff:ff:ff
altname enp4s0f1
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:d1:36:8a brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: eno1.10@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
inet 192.168.10.199/24 scope global eno1.10
valid_lft forever preferred_lft forever
inet6 fe80::d294:66ff:feaa:aaaa/64 scope link
valid_lft forever preferred_lft forever
6: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 500
link/ether 50:50:50:50:50:50 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fe6e:5932/64 scope link
valid_lft forever preferred_lft forever
보시다시피 VLAN 인터페이스와 macvtap이 있습니다. 태그가 지정되지 않은 트래픽을 VLAN 인터페이스(192.168.10.172에서)로 보내는 가상 머신이 있습니다. 인터페이스 에서 eno1
스니핑된 트래픽은 시스템에서 올바르게 태그 지정됩니다.
# tcpdump -nvei eno1 vlan 10
tcpdump: listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:38:26.204155 50:50:50:50:50:50 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 10, p 0, ethertype ARP (0x0806), Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.4 tell 192.168.10.172, length 28
13:38:27.204132 50:50:50:50:50:50 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 10, p 0, ethertype ARP (0x0806), Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.4 tell 192.168.10.172, length 28
13:38:28.222031 50:50:50:50:50:50 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 10, p 0, ethertype ARP (0x0806), Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.4 tell 192.168.10.172, length 28
13:38:29.220143 50:50:50:50:50:50 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 10, p 0, ethertype ARP (0x0806), Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.4 tell 192.168.10.172, length 28
호스트 자체의 트래픽에도 태그가 지정됩니다.
# tcpdump -nvei eno1 vlan 10
tcpdump: listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
14:21:21.254534 aa:aa:aa:aa:aa:aa > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 10, p 0, ethertype ARP (0x0806), Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.1 tell 192.168.10.199, length 28
14:21:22.278725 aa:aa:aa:aa:aa:aa > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 10, p 0, ethertype ARP (0x0806), Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.1 tell 192.168.10.199, length 28
14:21:23.302507 aa:aa:aa:aa:aa:aa > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 10, p 0, ethertype ARP (0x0806), Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.1 tell 192.168.10.199, length 28
기본 VLAN(태그 없음) 및 기타 호스트의 트래픽을 기본 인터페이스에서 관찰할 수 있습니다(통신은 원활하게 작동함).
# tcpdump -nvei eno1 not vlan 10
tcpdump: listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
14:21:12.669286 aa:aa:aa:aa:aa:aa > 00:00:5e:00:01:c9, ethertype IPv4 (0x0800), length 190: (tos 0x10, ttl 64, id 61852, offset 0, flags [DF], proto TCP (6), length 176)
192.168.201.20.22 > 172.16.20.10.51758: Flags [P.], cksum 0x4a7a (incorrect -> 0x92f4), seq 967793068:967793192, ack 3024530972, win 501, options [nop,nop,TS val 3219014539 ecr 3285414951], length 124
14:21:12.682517 ab:ab:ab:ab:ab:ab > aa:aa:aa:aa:aa:aa, ethertype IPv4 (0x0800), length 66: (tos 0x10, ttl 63, id 31043, offset 0, flags [none], proto TCP (6), length 52)
172.16.20.10.51758 > 192.168.201.20.22: Flags [.], cksum 0x2ef4 (correct), ack 124, win 501, options [nop,nop,TS val 3285414975 ecr 3219014539], length 0
14:21:12.720108 22:22:22:22:22:22 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.201.134 tell 192.168.201.102, length 46
이 구성은 다음을 통해 수동으로 적용되었습니다.
sudo ip link add link eno1 name eno1.10 type vlan id 10
sudo ip link set dev eno1.10 up
sudo ip addr add 192.168.10.199/24 dev eno1.10
또한 다른 테스트 중에서 netplan을 통과했습니다.
network:
ethernets:
eno1:
addresses:
- 192.168.201.20/24
gateway4: 192.168.201.1
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
dhcp4: false
dhcp6: false
vlans:
eno1.10:
id: 10
link: eno1
dhcp4: false
dhcp6: false
version: 2
이 호스트에서 생성된 태그가 지정된 트래픽은 다른 호스트에 도달하지 않습니다. 또한 태그가 지정된 다른 호스트의 트래픽은 이 호스트에 도달하지 않습니다. 실제로 정확히 동일한 방식(잘못)으로 작동하는 두 번째 서버와 두 번째 스위치(모두 동일)가 있으므로 단일 하드웨어에 결함이 있다고 비난하는 것은 거의 불가능합니다.
이는 마이그레이션에 사용되는 KVM 호스트가 되지만 VM은 이 트렁크에서 제공하는 VLAN에서 통신할 수 있어야 합니다(다른 많은 호스트가 있으므로 이제 문제 해결을 위해 이 설정이 단순화되었습니다). 여기에 무엇이 빠졌는지에 대한 아이디어가 있나요?
답변1
케이블을 랙에 연결하기 위해 데이터 센터에서 q in q가 활성화되지 않은 추가 스위치를 사용했다는 점을 제외하면 문제가 없는 것으로 나타났습니다. 이로 인해 표시된 패킷이 전송 중에 손실됩니다.