Usando o comando Ping com VLAN IP's

1

Eu criei um novo IP de VLAN para uma máquina usando

vconfig add eth0 22

Então eu fiz um:

ifconfig eth0.22 192.168.3.2 netmask 255.255.255.0 up'.

Depois disso, quando eu faço um ping 192.168.3.2 , ele é bem sucedido.

Depois disso, quando eu refazer esse processo para criar outro IP de VLAN em outra máquina na mesma rede local ( 192.168.3.1 ), e executar ping dele, ele não terá êxito. No entanto, é bem sucedido se eu pingar com o comando ping 192.168.3.1 -I eth0 .

Minha pergunta é: o que está acontecendo internamente, o que faz com que:

  1. VLAN IP da mesma máquina é bem-sucedido.
  2. VLAN IP de outra máquina com comando ping geral falha.
  3. VLAN IP de outra máquina com comando ping com o eth0 especificado é bem-sucedido.
por sbhatla 02.03.2015 / 02:45

1 resposta

3

Você está criando uma VLAN, o que significa (neste caso) que quaisquer pacotes emitidos do pacote eth0.22 são prefixados com um cabeçalho 802.1Q (uma tag) dizendo que o pacote é destinado à VLAN 22. O switch aceita este pacote em uma interface troncalizada e encaminha o pacote para fora de qualquer porta que esteja definida como permitindo a VLAN 22 (ou definida como permitindo qualquer VLAN).

Se a interface de saída for um switchport de acesso (ou seja, não um tronco), o cabeçalho do 802.1Q será removido e o pacote será encaminhado. Se a porta é um tronco, a tag 802.1Q é deixada no lugar.

Para que tudo isso funcione, você precisa de um switch gerenciado - um que entenda as VLANs. No seu caso, você não tem um, ou as portas que você está conectando não estão configuradas como troncos.

Com um switch não gerenciado, um pacote marcado não é compreendido e, portanto, é descartado.

O que está acontecendo no seu caso é quando você faz um ping, o seu SO irá escolher a interface apropriada - eth0.22 e então enviar o pacote com uma tag 802.1q.

O sistema operacional escolhe a interface apropriada com base na tabela de roteamento. Como 192.168.3.0 está explicitamente conectado à interface eth0.22, todos os pacotes para esta rede são enviados por esse nó por padrão. Veja a tabela de roteamento:

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
[..snip..]
192.168.3.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0.22

Isso, então, cai no switch, pois não sabe como lidar com isso.

Quando você força o ping para fora da interface eth0, ele está saindo de uma interface não marcada e, assim, o switch entende o pacote e o encaminha. A máquina receptora a vê, e por um capricho da maneira como o ping funciona, responderá pela interface em que o ping chegou, em vez da interface eth0.22 mais apropriada.

Pode ser que, embora o ping funcione, outros serviços podem não funcionar.

Se você quiser usar VLANs, então você precisa de um switch com capacidade de VLAN, caso contrário, você pode usar o endereçamento secundário na interface eth0 se você não tiver um.

A razão pela qual isso funciona quando você está fazendo ping é que a marcação 802.1q não acontece até a saída. Portanto, se 192.168.3.1 estiver pingando 192.168.3.1 , ele não emitirá o pacote para a rede e, portanto, não o marcará.

    
por 02.03.2015 / 03:04