Por que dispositivos em VLANs diferentes, mas na mesma sub-rede, não podem se comunicar?

22

Eu tenho uma pergunta sobre a mudança. Eu tenho dois dispositivos conectados a um switch com endereços IP 192.168.5.20 e 192.168.5.10. Ambos os dispositivos têm o mesmo prefixo, / 24. Isso significa que eles estão na mesma sub-rede.

Se eu dividir esses dispositivos em VLANs diferentes (10 e 20) no comutador, ele não se comunicará, embora estejam na mesma sub-rede. Por que isso acontece?

Jim Pap
fonte
3
Você precisa de um roteador para rotear entre diferentes Vlans. Além disso, ao fazer isso, você não pode ter a mesma sub-rede IP nesses dois Vlans.
5
Olá Jim Pap, seja bem-vindo ... É como se você conectasse seus dois hosts em dois switches diferentes, um rotulado como "LAN 10" e o outro com o nome "LAN 20". A configuração de VLANs no seu switch divide seu switch em vários switches virtuais.
jonathanjo
3
Essa questão é uma espécie de tautologia. Eles não podem porque não podem, por design. A criação de VLANs separadas segmenta logicamente a rede comutada. Agora você precisa usar alguma forma de roteamento entre VLANs para que esses dispositivos se comuniquem.
WakeDemons3 11/04
1
@Cown, não é possível em um roteador Cisco ter endereços da mesma sub-rede em interfaces diferentes, mas isso tem pouco a ver com a própria VLAN, que não se importa com endereços IP (e pode ser usada com, digamos, IPX / SPX). E ... A Cisco ainda é um ator importante, mas longe de ser o único.
JFL 12/04
1
@Cown Como diferentes VRFs ajudariam? Eles não se comunicariam de qualquer maneira, então, e para responder sua pergunta, basta preencher os vlans, tão simples quanto isso. O Bridging está disponível nos roteadores Cisco desde muito antes de eu usar o meu CCIE e isso foi há mais de 20 anos
Matt Douhan

Respostas:

39

Uma das coisas que as VLANs fazem é pegar um comutador físico e dividi-lo em vários comutadores "virtuais" menores.

Significando esta representação física de um switch e duas VLANs:

insira a descrição da imagem aqui

É idêntico em operação a esta representação lógica da mesma topologia:

insira a descrição da imagem aqui

Mesmo se os endereços IP da 2ª imagem estivessem na mesma sub-rede, você notará que não há "link" entre os dois comutadores virtuais (ou seja, VLANs) e, portanto, não há como as Hosts A / B se comunicarem com os Hosts C / D.

Para que os hosts na 2ª imagem se comuniquem, você precisaria de algum tipo de dispositivo para facilitar a comunicação de um "switch" para o outro. O dispositivo que existe para esse fim é um roteador - portanto, é necessário um roteador para que o tráfego ultrapasse os limites da VLAN:

insira a descrição da imagem aqui

E devido ao funcionamento do roteador, cada interface do roteador deve ter sua própria sub-rede IP exclusiva . É por isso que toda VLAN tradicionalmente exige sua própria sub-rede IP exclusiva - porque, se ocorrer alguma comunicação entre essas VLANs, serão necessárias sub-redes exclusivas.


As imagens acima são do meu blog, você pode ler mais sobre VLANs como um conceito aqui e sobre Roteamento entre VLANs aqui .

Eddie
fonte
2
Prenda para os incautos: Não tente realmente dividir um switch dessa maneira, ENTÃO conecte VLANs através de portas não identificadas - a menos que você saiba exatamente como as implementações STP e CAM nesse comutador estão configuradas.
rackandboneman 11/04
1
@rackandboneman Esse é um bom conselho. Mas, um ponto de clareza, as imagens no meu post representam apenas uma opção física . A "imagem de dois comutadores" é a representação lógica de um comutador físico com duas VLANs.
Eddie
2
"cada interface de roteador deve ter sua própria sub-rede IP única.", o que pode ser verdadeiro para algumas implementações de roteadores, não é universalmente verdade. Pelo menos no Linux, você pode atribuir a mesma sub-rede a várias interfaces e usar uma combinação de proxy arp e / 32 rotas para fazer o tráfego fluir entre elas.
Peter Green
As exceções @PeterGreen sempre existem. Só porque algo pode ser feito, não significa que deva ser feito - nem o torna relevante para a questão em questão.
Eddie
29

O objetivo da LAN virtual é criar LANs de camada 2 separadas em um único dispositivo físico.

É como construir uma parede blindada e à prova de som em uma sala para criar 2 salas. As pessoas em cada metade da sala não podem mais se comunicar com as pessoas na outra metade da sala anterior.

Então você tem dois hosts em duas redes L2 distintas, sem nada para permitir que eles se comuniquem.

Observe que, na maioria dos casos, não faz sentido usar a mesma sub-rede em duas VLANs diferentes. O caso padrão é associar uma rede IP a uma VLAN.

JFL
fonte
Estou com dificuldade para pensar em qualquer caso em que usar a mesma sub-rede em duas VLANs diferentes faça sentido. Finja que você é um roteador e obtém um pacote destinado ao 192.168.5.15. Qual VLAN é essa?
Monty Harder
@MontyHarder Depends. De qual rede (virtual ou não) vem?
Deduplicator
1
@ Reduplicador Não sei por que importa qual é o IP de origem do pacote. Como você sabe o que é um VLAN IP se você estiver usando o mesmo intervalo de IP para duas ou mais VLANs? Isso simplesmente não faz sentido.
Monty Harder
@MontyHarder Eu tenho o caso: tenho interconexões com provedores que usam o mesmo endereçamento e são feitas nos mesmos comutadores. Desde que eu converso com ambos (através de roteadores diferentes) e eles não falam um com o outro, tudo bem.
JFL
@MontyHarder Na verdade, é muito comum ter a mesma sub-rede em muitas LANs diferentes (e, portanto, em VLANs). Os endereços privados RFC1918 são reutilizados em milhões de LANs. Você pode muito bem ter várias redes NAT separadas na mesma VLAN. Isso provavelmente acontece ad nauseam em ambientes de hospedagem. Mas essas redes são realmente consideradas completamente independentes.
jcaron 12/04
5

As sub-redes IP agrupam logicamente os hosts - os hosts da mesma sub-rede usam sua conexão de camada 2 para conversar diretamente entre si. Conversar com hosts em outra sub-rede requer o uso de um gateway / roteador.

VLANs agrupam fisicamente hosts - hosts no mesmo domínio VLAN / domínio de broadcast / segmento L2 podem se comunicar diretamente. Hosts em diferentes VLANs não podem. (Não me bata - o grupo fisicamente não está realmente correto, mas isso marca o meu ponto.)

Portanto, quando dois hosts estão na mesma sub-rede IP, mas em diferentes VLANs / domínios de broadcast / redes L2, eles não conseguem se comunicar: o host de origem assume o destino dentro de sua rede L2 local e, portanto, tenta ARP o endereço de destino (ou Resolução NDP para IPv6).

O ARP funciona enviando uma solicitação como broadcast para a rede L2 local e o host com o endereço IP solicitado responde com seu endereço MAC. Como o host de destino está fora da rede local, ele nunca ouve a solicitação e o ARP falha.

Mesmo que a fonte saiba de alguma forma o endereço MAC do destino e construa um quadro endereçado a esse MAC, nunca chegará ao destino, pois ainda está fora da rede L2. Os MACs externos à rede L2 local não têm sentido e são inúteis.

Zac67
fonte
3

Complementares às respostas existentes, que cobrem a questão do ponto de vista do design e da teoria ...

Em vez de perguntar " por que eles não se comunicam? ", Vamos perguntar "o que acontece quando eles tentam se comunicar?"

Primeiro, o que significa configurar uma VLAN em um switch? No nosso exemplo, existem alguns soquetes configurados como VLAN 10 e alguns configurados como VLAN 20. A definição de uma VLAN é que apenas soquetes na mesma VLAN estão conectados. O que isso significa é que um quadro recebido em uma porta em uma determinada VLAN é enviado apenas para as portas da mesma VLAN.

  10  10  20  20  10  20       VLAN of port
   1   2   3   4   5   6       Port number
===+===+===+===+===+===+===
   |   |   |   |   |   |
   A   B   C   D   E   F       Hosts

Neste diagrama, temos seis hosts, as portas 1, 2, 5 estão na VLAN 10, as portas 3, 4, 6 estão na VLAN 20.

Suponha que o host A esteja configurado estaticamente como 192.168.5.10/24 e F esteja configurado estaticamente como 192.168.5.20/24, a partir da pergunta. Suponha que B a E tenham outros endereços de configuração estáticos (não importa o que sejam).

Se A pings 192.168.5.20, determina que está no mesmo / 24, então a primeira coisa que acontece é uma solicitação de ARP: O WHO TEM 192.168.5.20, enviado como uma transmissão Ethernet.

O switch recebe a transmissão na porta 1. Esta é a VLAN 10, por isso envia a transmissão pelas portas 2 e 5, as outras portas na VLAN 10. Os hosts B e E recebem a solicitação ARP e a ignoram, pois não é o endereço deles.

É isso aí.

Não haverá resposta do ARP; a próxima coisa que acontecerá será um tempo limite em A, seguido de solicitações ARP repetidas subsequentes, até que o aplicativo desista.

Um host conectado a outra porta que não a VLAN 10 não verá nada, seja qual for o seu endereço IP. Obviamente, isso inclui F, que é 192.168.5.20.

jonathanjo
fonte
1

Espero que você tenha um bom entendimento sobre o mascaramento de sub-rede. Quando você tem VLANs separadas, precisa ter um intervalo de endereços IP exclusivo com sub-redes. Isso não é essencial.

As VLANs são uma LAN separada, mas é virtual. Adicionalmente, uma LAN virtual para separar redes no mesmo switch. Isso criará um domínio de broadcast separado no seu switch. Mas quando você cria LANs virtuais com o mesmo ip, é inútil.

Além disso, você precisa configurar o roteamento Intervlan no seu switch.

infra
fonte
2
Não, não é impossível ter várias VLANs com a mesma sub-rede. É incomum e um pouco desanimado, mas é totalmente possível.
JFL 11/04
@ JFL True, é possível, usando VRF ou alguma outra forma de separador, mas ainda não vi nenhum caso de uso para isso. Por favor me esclareça.
@JFL mesmo problema para mim também. Eu apenas tentei agora no Cisco Packet Tracer, com roteamento intervlan. Não sei se há problema com o rastreador de pacotes da Cisco. Não é trabalho. Eu concordo com a cown. é possível em VRF.
infra
1
@Cown Eu não disse que era uma boa idéia, nem era possível fazê-los se comunicar juntos (mas ainda é possível com o NAT). Mas eu tenho alguns casos de uso. Por exemplo, tenho interconexão com provedores que passam por algumas redes RFC1918 sobrepostas. Esses estão conectados aos mesmos comutadores em VLANs diferentes e não se comunicam.
JFL
@JFL Desculpe cara, eu apenas não vejo como isso se compara ao que a pergunta inicial era. Sim, é possível usar endereços IP sobrepostos para interlinks ou NAT, mas acho que não reflete um cenário da vida real.
1

Considere o que acontece quando você tem uma LAN em casa e um computador com IP 192.168.2.1. Seu amigo no caminho também possui uma LAN em sua casa e um computador com IP 192.168.2.2. Eles estão na mesma sub-rede, então por que eles não podem conversar um com o outro?

Nesse exemplo, a causa é diferente do que você está perguntando.

Mas uma VLAN alcança o mesmo resultado - segmenta uma rede, na segunda camada.

O que quero dizer é que podemos ver facilmente que o fato de "os endereços IP estarem na mesma sub-rede" não é suficiente para determinar se os pacotes podem rotear entre eles. A topologia subjacente também tem um papel a desempenhar.

Levando isso ao extremo, na camada mais baixa você precisa de algum material físico (bem, ok ou ar: D) para transportar os dados. Seus computadores podem estar na mesma casa na mesma sub-rede, mas não estar fisicamente conectado (ou ter um link sem fio) e você não espera que os pacotes sejam roteados.

Corridas de leveza com Monica
fonte
0

O objetivo das VLANs é ter segmentação de rede. Você também pode conseguir o mesmo (com algumas ressalvas) usando sub-redes. Como sua sub-rede é dividida em 2 VLANs diferentes, seus dispositivos não podem se comunicar na rede L2. Você pode configurar a interface IRB no comutador para permitir a comunicação entre as VLANs. Como alternativa, você pode rotear o tráfego através de um firewall e permitir a comunicação seletiva entre as VLANs. Idealmente, você deve projetar sua rede para ter sub-redes diferentes para cada uma das VLANs e, em seguida, fazer firewall do tráfego entre as VLANs. Espero que isto ajude.

Ricky
fonte
1
Nonononono não usa IRB nessa situação ... o problema é que o switch nunca deveria ter sido configurado com duas vlans na mesma sub-rede. A melhor resposta é colocar todos os hosts em uma sub-rede na mesma vlan.
Mike Pennington
0

Quando uma conexão Ethernet carrega mais de uma única VLAN, todas, exceto uma dessas VLANs, devem ser marcadas . O tag VLAN compatível com IEEE 802.1Q é colocado no quadro Ethernet no local onde normalmente seria o EtherType do quadro. A primeira parte da tag VLAN é um identificador de protocolo de tag , que é um valor constante de 0x8100. Como resultado, um dispositivo que não tem conhecimento das tags IEEE 802.1Q ou configurado para não esperar que elas vejam os quadros marcados e pensará "isso não é IPv4, ARP nem IPv6; esse Ethertype 0x8100, que é algo completamente diferente e eu não sei" acho que não entendo nada. É melhor simplesmente ignorá-lo. "

Um comutador compatível com VLAN pode filtrar pacotes que saem para cada porta por seus tags VLAN e, opcionalmente, pode retirar o tag VLAN de uma VLAN selecionada no tráfego de saída dessa porta (e adicionar reciprocamente a tag VLAN ao tráfego de entrada nessa porta), para que qualquer tráfego da VLAN selecionada apareça como tráfego Ethernet pré-802.1Q simples para o dispositivo conectado a essa porta específica. Essa VLAN selecionada é conhecida como VLAN nativa para essa porta.

O padrão 802.1Q permite que uma porta Ethernet ofereça suporte a uma única VLAN nativa e a qualquer número de VLANs marcadas ao mesmo tempo, mas entendo que uma porta passa os quadros Ethernet marcados e não marcados ao mesmo tempo é uma configuração um pouco desfavorecida: você ' É preciso lembrar que uma das VLANs em uma porta / NIC é diferente de todas as outras e precisa ser configurada de maneira diferente. Propenso a erros.

Na terminologia da Cisco, uma porta de switch pode ser configurada como uma porta de acesso ou uma porta de tronco . Uma porta de acesso fornecerá acesso apenas a uma única VLAN e as tags VLAN serão automaticamente excluídas do tráfego de saída e adicionadas ao tráfego de entrada dessa porta. Uma porta de tronco, por outro lado, transmitirá tráfego para um conjunto configurável de VLANs, mas todo o tráfego será marcado com VLAN.

Portanto, no caso de dois dispositivos em duas VLANs diferentes no mesmo comutador, ambos usando endereços na mesma sub-rede IP. O que acontece dependerá de como as portas do switch (e as interfaces de rede nos dispositivos) estão configuradas em relação às VLANs.

1.) Portas do switch como portas de acesso, dispositivos não compatíveis com VLAN: a porta do switch filtrará o tráfego da VLAN "oposta" e, portanto, os dispositivos nunca verão o tráfego um do outro. Isso levanta a questão de saber se faz ou não pensar neles como "estar no mesmo segmento de rede".

2.) Portas de switch como portas de tronco definidas para passar pelas duas VLANs, dispositivos não compatíveis com VLAN: cada dispositivo pensará "Por que esse outro dispositivo continua me enviando esse material estranho do Ethertype 0x8100 ??? Eu não falo isso".

3.) Portas de switch como portas de tronco definidas para passar apenas uma VLAN cada, dispositivos compatíveis com VLAN: você também precisará especificar os números de VLAN na configuração de rede dos dispositivos, mas o resultado final é essencialmente o mesmo que no caso # 1: os dispositivos não verão o tráfego um do outro.

4.) Portas de switch como portas de tronco definidas para passar ambas as VLANs, dispositivos compatíveis com VLAN, mas configuradas para diferentes VLANs: agora é a camada de suporte de VLAN nos próprios dispositivos que fazem a filtragem, mas o resultado prático é o mesmo dos casos nº 1 e # 3: o tráfego do dispositivo "oposto" nunca alcançará a camada de protocolo IP na pilha de protocolos de rede do dispositivo.

5.) Portas de switch como portas de tronco definidas para passar pelas duas VLANs, dispositivo configurado com reconhecimento de VLAN, ambas as VLANs configuradas no dispositivo. Isso está acima e além do que você pediu. Agora, o dispositivo estará efetivamente presente nas duas VLANs.

Como as duas VLANs fingem ser distintas no nível Ethernet, mas estão usando a mesma sub-rede IP, o que acontecerá dependerá de como o roteamento IP dos dispositivos foi implementado. O principal detalhe importante será se a pilha de IP foi projetada para usar um modelo de host forte ou um modelo de host fraco e exatamente como o conceito de VLANs foi integrado ao sistema.

Por exemplo, o Linux apresentará todas as VLANs marcadas configuradas como NICs virtuais extras, que refletem o estado do link da NIC física subjacente, mas que, de outra forma, agem como independentes quanto tecnicamente possível. Portanto, será como se você tivesse duas NICs conectadas a dois segmentos de rede físicos separados com sub-redes IP sobrepostas 100%: o sistema pode receber muito bem o tráfego de entrada, mas assumirá que qualquer NIC conectada à sub-rede IP de destino é adequada para conversar com qualquer outro host nessa sub-rede IP e usará qualquer NIC (virtual, específica da VLAN) que ocorrer primeiro na tabela de roteamento ... e, portanto, a configuração poderá ou não funcionar, dependendo da ordem em que as várias partes da rede A configuração da NIC e da VLAN foi inicializada. Você precisaria usar o Linux '

Usar a mesma sub-rede IP em dois segmentos distintos é um problema da camada 3, independentemente da separação do segmento na camada 2, seja física (= NICs separadas reais) ou lógica (= criada com VLANs). Um problema da camada 3 precisará de uma solução da camada 3: usar um roteador ou alguma outra caixa para NAT simétrico, uma das sub-redes para remover a sobreposição da sub-rede IP seria muito mais elegante do que tentar lidar com isso nos dispositivos individuais.

telcoM
fonte