VLAN tags not shown in packet capture (Linux) via tcpdump
You can't see VLAN tag from tcpdump -i eth0
output on i686/x86_64 architecture because of VLAN acceleration. the VLAN layer will be filtered by kernel so it always looks untagged. Please refer to Bug 498981 - tcpdump cannot deal with 802.1q vlan tag
According to your case, you can get VLAN tags via:
tcpdump -i eth0 -Uw - | tcpdump -en -r - vlan 20
You should see the following output:
<timestamp> <mac-addr-of-eth0> > Broadcast, ethertype 802.1Q (0x8100), length 346: vlan 20, p 0, ethertype IPv4, 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP