Por que estou vendo pacotes unicast de uma máquina em outra VLAN?

Por que estou vendo pacotes unicast de uma máquina em outra VLAN?

(Ainda) estou tentando configurar VLANs corretamente em um switch de nível 3 (Netgear GS516TP).

Cenário básico: existem três VLANs: VLAN 10, 11 e 12, com respectivamente três portas e três máquinas.

  • 10.0.10.5, conectado à porta g10 e pertencente à VLAN 10.
  • 10.0.11.5, conectado à porta g11 e pertencente à VLAN 11.
  • 10.0.12.5, conectado à porta g12 e pertencente à VLAN 12.

insira a descrição da imagem aqui

A VLAN 10 possui portas não marcadas g10, g11 e g12.

insira a descrição da imagem aqui

A VLAN 11 possui portas não marcadas g10 e g11. Da mesma forma, a VLAN 12 possui portas g10 e g12 não marcadas.

insira a descrição da imagem aqui

O objetivo é permitir que máquinas pertencentes à VLAN 11 e VLAN 12 se comuniquem com as máquinas da VLAN 10. No entanto, uma máquina da VLAN 11 não deve saber nada sobre as máquinas da VLAN 12 (e vice-versa).

Embora todas as três máquinas estejam usando a máscara de rede 255.255.0.0, a configuração de roteamento é definida assim:

insira a descrição da imagem aqui

Agora, o problema. Quando envio um pacote TCP ou UDP de 10.0.10.5 para 10.0.11.5 (por exemplo, fazendo nc -n 10.0.11.5 100), posso ver esse pacote no Wireshark rodando na máquina que pertence à VLAN 12. Não funciona ao contrário, porém, ou seja, um pacote enviado de 10.0.11.5 não é visível na VLAN 12.

O que devo fazer para que os pacotes direcionados às máquinas da VLAN 11 nunca cheguem às portas pertencentes à VLAN 12?

Responder1

Por padrão, cada porta usa apenas informações L2 para decidir como processar pacotes (L2 == MAC == ponte). Essa decisão não respeita L3, ou seja, não conhece os intervalos de IP das VLANs.

Se você habilitar o roteamento para a VLAN, e o MAC DA [endereço de destino] de um pacote unicast de entrada for o da interface ponte-roteador interna, o pacote será roteado.

O endereço IP que você atribuiu às VLANs (visível na última captura de tela) não "captura" pacotes por si só. Você precisa configurar seus servidores para realmente enviar pacotes para aquela "interface ponte-roteador interna"; normalmente, isso é feito adicionando uma entrada na tabela de rotas em um servidor:

(on 10.0.10.5):
10.0.11.0/24 dev eth0 via 10.0.10.1

Somente esses pacotes destinados a essa "interface ponte-roteador interna" serão movidos para outra VLAN.

No meu exemplo, passo a passo:

  1. em 10.0.10.5 você fazping 10.0.11.5
  2. servidor pergunta "quem tem 10.0.10.1"
  3. switch diz "MAC 10:da:12:34 tem 10.0.10.1"
  4. servidor envia um pacote SOURCE 10.0.10.5 DEST 10.0.11.5 MAC_DEST 10:da:12:34
  5. switch vendo tal MAC_DEST decide alterar a VLAN atribuída a esse pacote
  6. switch também altera MAC_DEST para aquele pertencente a 10.0.11.5

(É assim que funciona qualquer encaminhamento de pacotes na Ethernet - nada específico da Netgear.)

Provavelmente, você não precisa de uma porta para estar em várias VLANs (na verdade, não verifiquei).

Além disso, definaRoteamento -> IP -> Modo de roteamento=Sim

Suporte Netgear:O que é roteamento VLAN

Responder2

Você não pode fazer isso assim, você precisa de recursos especiais de VLAN (isolamento de porta ou algo semelhante) ou precisa fazer isso com um roteador.

O que acontece aqui é que quando um pacote (bem, quadro Ethernet) entra em uma porta, ele obtém seu ID de VLAN do PVID dessa porta. Em seguida, ele é enviado de outras portas que também estão na mesma VLAN. (Exceto que um switch, é claro, apenas o encaminharia para uma porta específica, se ele tivesse uma porta para o MAC de destino armazenado para aquela VLAN específica. Talvez não, já que todas as portas estão em VLANs diferentes, então os destinos não são para ser encontrado nas VLANs das quais os quadros são enviados.)

Isso significa que tudo o que é enviado para o switch pela porta 10 pode aparecer nas portas 11 e 12, mas qualquer coisa enviada pela porta 11 ou 12 só pode ir para a porta 10.


O que o isolamento de portas/portas protegidas/recursos semelhantes fariam é bloquear o encaminhamento de quadros dentro de uma única VLAN, com exceção de algumas portas especiais. Com esse tipo de recurso, você colocaria todas as portas em uma única VLAN e marcaria a porta 10 como especial, para que pudesse enviar/receber tráfego de/para 11 e 12. Mas o recurso isolaria 11 e 12 um do outro. .


A outra opção é trazer a VLAN 11 e a VLAN 12 para a máquina na porta 10 como VLANs marcadas. Então, nessa máquina, você pode fazer interfaces IP distintas para as VLANs, permitindo que ela se comunique com ambas. Sem o roteamento configurado na máquina, 11 e 12 não podem se comunicar entre si. A máquina ainda precisaria ter reconhecimento de VLAN, é claro.

Claro, se o próprio Netgear puder atuar como um roteador entre VLANs, isso também funcionará. Você só precisará configurar VLANs para cada máquina, organizar o roteamento e adicionar filtragem (firewall) entre 11 e 12.

informação relacionada