Dodam otagowany VLAN do eth0:
#ip link add link eth0 name eth0.20 type vlan id 20
To skutkuje:
#ip link
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
....
12: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
#ip -d link show eth0.20
70: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
vlan id 20 <REORDER_HDR>
#cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.234 | 234 | eth0
eth0.20 | 20 | eth0
Teraz uruchamiam dhclient:
#dhclient -d -v -1 eth0.20
To, co widzę w tcpdump, to nieoznakowana ramka wykrywania DHCP:
#tcpdump -i eth0 -XX
0x0000: ffff ffff ffff 9cc7 a695 651c 0800 4500
^^^^
Dlaczego nie jest oznaczony?
Wydaje się, że używany jest moduł 802.1q:
#lsmod | grep 8021q
8021q 28324 0
garp 14311 1 8021q
(OS: jądro SLES11SP2 3.0.13-0.27-domyślne)
BTW inny ruch również nie jest oznaczony (przynajmniej tcpdump go nie pokazuje) ...
Zaktualizuj 16 października
# tcpdump -Uw - | tcpdump -i eth0 -en -r - &
[1] 7310
# tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
# dhclient -d -v -1 eth0.20
Internet Systems Consortium DHCP Client 4.2.3-P2
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0.20/9c:c7:a6:95:65:1c
Sending on LPF/eth0.20/9c:c7:a6:95:65:1c
Sending on Socket/fallback
DHCPDISCOVER on eth0.20 to 255.255.255.255 port 67 interval 3
reading from file -, link-type EN10MB (Ethernet)
18:49:14.437882 9c:c7:a6:95:65:1c > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 347: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 9c:c7:a6:95:65:1c, length 305
^^^^^^
Tak więc nadal nie pokazano tutaj tagu.
Ale rzeczywiście licznik transmisji dla eth0.20 w / proc / net / dev nie zwiększa się przy uruchomieniu dhclient ...
dhcp
linux-networking
vlan
Marki
źródło
źródło
ip link
.Odpowiedzi:
Nie można zobaczyć znacznika VLAN z
tcpdump -i eth0
danych wyjściowych w architekturze i686 / x86_64 z powodu przyspieszenia VLAN. warstwa VLAN będzie filtrowana przez jądro, więc zawsze wygląda nieoznaczona. Proszę odnieść się do błędu 498981 - tcpdump nie radzi sobie ze znacznikiem vlan 802.1qW zależności od przypadku możesz uzyskać tagi VLAN poprzez:
Powinieneś zobaczyć następujące dane wyjściowe:
źródło