Linux VLAN dual, o ping funciona apenas na primeira VLAN

1

Eu construí esta configuração simples:

----------------                              ----------------
| Linux host A |  <----- patch cable -------> | Linux host B |
----------------                              ----------------

Então eu configurei 2 VLANs em cada host:

eth1                                           eth1
 |                                              |
 |-- eth1.2 -> 192.168.1.2/24                   |-- eth1.2 -> 192.168.1.4/24
 |-- eth1.3 -> 192.168.1.3/24                   |-- eth1.3 -> 192.168.1.5/24

No host A, quando eu faço:

ping -I eth1.2 192.168.1.4

funciona, mas quando eu faço:

ping -I eth1.3 192.168.1.5

não funciona.

Eu tentei definir em ambos os hosts:

sysctl net.ipv4.conf.enth1.rp_filter=0
sysctl net.ipv4.conf.enth1/2.rp_filter=0
sysctl net.ipv4.conf.enth1/3.rp_filter=0

mas isso não resolveu o problema.

Usando o wireshark no host B, o eth1 mostra que o ping com VLAN id 3 é recebido corretamente, mas o host B não responde.

Claro, eu verifiquei o meu iptables:

  Chain INPUT
  target     prot opt in   out  source   destination
  ACCEPT     all  --  eth1 any  anywhere anywhere

  Chain OUTPUT (policy ACCEPT)

Quando faço no host A, simples:

ping 192.168.1.5

resposta do host B MAS eu vejo com o wireshark que os pacotes são marcados com VLAN id 2, isso obviamente funciona.

Então, acho que algo está errado com o roteamento de pacotes com tags VLAN para o host B, mas não consigo encontrar o que!

    
por k847354 23.09.2017 / 19:07

1 resposta

2

Você está usando o mesmo segmento IP e não tem regras especiais de roteamento. Isso significa que a rota padrão é sempre usada e a rota padrão é definida como VLAN2 no seu caso.

O melhor, se você diferenciar suas VLANs por segmentos IP diferentes. Por exemplo, sua VLAN2 pode usar 192.168.1.1/24 existente uma VLAN3 pode usar 192.168.3.1/24.

    
por 23.09.2017 / 19:19

Tags