Se uma interface ( eth0
no seu caso) for adicionada a uma ponte, por padrão suas subinterfaces de VLAN ( eth0.2
) não receberão mais o tráfego de entrada - todos os pacotes serão passados para a ponte. Antes do Linux 2.6.37, as subinterfaces de VLAN poderiam, às vezes, funcionar dependendo de seu hardware (se o hardware e o driver suportassem a aceleração de RX VLAN ( NETIF_F_HW_VLAN_RX
), as VLANs fossem manipuladas antes de bridging e as subinterfaces de VLAN funcionassem); desde 2.6.37 o comportamento é o mesmo para todos os cartões e drivers.
Existem várias soluções com diferentes desvantagens:
-
Adicione subinterfaces de VLAN à ponte em vez da interface física. Mas neste caso, todas as portas da ponte terão acesso a todas as VLANs, o que provavelmente não é desejado.
-
Use
ebtables
para passar o tráfego marcado 802.1Q para subinterfaces de VLAN:ebtables -t broute -A BROUTING -i eth0 -p 802_1Q -j DROP
(No
BROUTING
chainACCEPT
significa “bridge” eDROP
significa “route” ou, na verdade, “process de acordo com ethertype”, que para o tipo 802_1Q significa “passar para a subinterface VLAN apropriada” .)Nesse caso, a ponte não obterá nenhum tráfego marcado, mas haverá um pouco mais de sobrecarga devido ao processamento de ebtables.
-
Reconfigure a rede para tornar todo o tráfego na interface marcado e evite a necessidade de unir o tráfego sem tag.