Como o servidor identifica quadros no caso de várias subinterfaces da VLAN?

2

Quando eu crio uma subinterface de VLAN no Linux, ele obtém o mesmo endereço MAC que sua interface pai. Por exemplo, com o comando ip link add link eth0 name eth0.333 type vlan id 333 , o eth0.333 obtém o mesmo MAC que eth0 . Estou certo de que o servidor identifica os quadros recebidos com base na tag de VLAN ou, se a tag de VLAN estiver ausente, o quadro do switch será eth0 ?

    
por Martin 18.03.2015 / 18:17

1 resposta

1

O comportamento padrão é adicionar uma interface que aceita somente pacotes em que o campo 802.1q é o mesmo que o vlan id para essa interface determinada.

De uma forma muito simplificada , o endereço Mac será o mesmo que o pai, então o pacote é entregue à interface phy e processado pelo kernel, procurando por um campo Tag 802.1q isso é logo após o campo de endereço MAC de origem. Este campo será identificado com o 0x8100 EtherType . Os últimos 12 bits definem o id da vlan.

Esse quadro Ethernet terá a tag removida e entregue na interface vlan. Você pode verificar isso usando tcpdump em ambas as interfaces e pingando um endereço IP de eth0.333 . Você verá a saída apenas em eth0 :

# tcpdump -ni eth0 vlan 333
# tcpdump -ni eth0.333 vlan 333

O comportamento padrão na direção de tráfego oposta será tag e deliver (pode ser configurado).

Se você deseja criar interfaces virtuais com um endereço Mac que seja diferente do pai, você terá que usar a opção macvlan de iputils2. Lembre-se de que seus switches podem ter algumas restrições relacionadas ao Mac e bloquear o tráfego dessa interface recém-criada.

E sim, você está correto. Se não houver tag, o tráfego será entregue à sua interface física. Suas configurações definirão se o pacote será aceito.

    
por 18.03.2015 / 18:43

Tags