Acho que você está usando a ferramenta errada para ser honesto - o tcpdump está mais ligado ao IP (L3), enquanto as VLANs são um recurso do L2 - tente usar o wireshark.
Estou tentando descobrir os pacotes marcados com vlan que meu host recebe ou envia para outros hosts. Eu tentei
tcpdump -i eth1 vlan 0x0070
Mas não funcionou. Alguém já tentou ver os pacotes vlan através do tcpdump antes? Não foi possível encontrar muita ajuda para pesquisar na Web!
Acho que você está usando a ferramenta errada para ser honesto - o tcpdump está mais ligado ao IP (L3), enquanto as VLANs são um recurso do L2 - tente usar o wireshark.
Se o seu host estiver conectado a uma porta de acesso, o switch provavelmente removerá a tag de VLAN antes de chegar ao seu host. Como resultado, a execução do TCPDump no host em questão nunca verá as tags da VLAN.
Você precisaria configurar uma porta SPAN e / ou introduzir um toque de rede em sua rede em algum lugar para capturar o tráfego antes que as tags sejam retiradas dos pacotes para vê-las em um dump / trace de rede.
você pode realmente usar o linux para "decodificar" o 802.1q (tagging vlan). você pode efetivamente transformar o linux em um "roteador em um bastão" e rotear entre vlans, com uma única porta ethernet, em um sofisticado switch cisco layer 2 (que tem muitas vlans).
a principal ethernet tem "subinterfaces" que correspõem com o id da vlan. você pode então rotear e iptables (firewall) as subinterfaces individualmente.
esta é uma maneira fácil de ter um firewall de linux de perímetro conectado ao isp e 10 vlans atrás dele, mas usando apenas uma única interface ethernet.
ponto q é o padrão, mesmo que o cisco ache que ele foi feito, então ele funciona muito bem no linux.
EDIT: para ativar isso
modprobe 8021q
você pode então executar o tcpdump para escutar as subinterfaces
Tags networking tcpdump vlan