Por que adicionar uma interface não VLAN a uma bridge quebra as interfaces VLAN?

3

Estou trabalhando com VLANs em briges e descobri que se eu adicionar uma interface não VLAN a qualquer bridge, ela quebra todas as interfaces VLAN - os pacotes saem muito bem, mas os pacotes de retorno (que são apropriadamente marcados com VLAN) estão caindo em algum lugar. No minuto em que solto a interface não-VLAN da bridge, as interfaces da VLAN começam a funcionar novamente.

Qual é o motivo disso? É um bug?

Para esclarecer possíveis dúvidas:

#setup bridges and vlans
vconfig add eth0 2
vconfig add eth0 3
brctl addbr br2
brctl addbr br3
brctl addif br2 eth2.2
brctl addif br3 eth2.3
ip link set dev br2 up
ip link set dev br3 up

#wait for forwarding state and test
arping -I br2 10.10.10.1
#this works - I get replies
arping -I br3 192.168.1.1
#this works - I get replies

brctl addbr br0
brctl addif eth0

arping -I br2 10.10.10.1
#broken - no replies. Wireshark shows reply packets coming in exactly as before.
arping -I br3 192.168.1.1
#also broken

ip link set br0 up
#wait for forwarding mode, then...
arping -I br3 192.168.1.1
#still broken

brctl delif br0 eth0
arping -I br3 192.168.1.1
#working again!
    
por Shawn J. Goff 11.08.2011 / 20:43

1 resposta

3

Em seu exemplo específico, br0 está consumindo os pacotes de eth0 e o código da VLAN não os está obtendo. Esse é provavelmente o comportamento certo.

Se você está adicionando uma porta de tronco a uma ponte, você deve executar as VLANs fora da ponte:

brctl addbr br0
brctl addif br0 eth0
ip link set br0 up

vconfig add br0 2
brctl addbr br2
brctl addif br2 br0.2
ip link set br2 up

vconfig add br0 3
brctl addbr br3
brctl addif br3 br0.3
ip link set br3 up

Eu não tenho minha bridge & vlan configuração acessível, então eu não posso testar isso, mas faz sentido lógico para mim. Ele elimina o conflito entre se a VLAN ou bridge consome pacotes da eth0 e deixa as camadas claras.

    
por 12.08.2011 / 01:45