Um switch sem configuração é uma rede só: todas as portas recebem todos os broadcasts, e qualquer equipamento alcança qualquer outro na camada 2. A ( virtual) divide esse switch, ou um campus inteiro de switches, em redes separadas que compartilham o hardware e mais nada. O padrão que define as VLANs é o 802.1Q; a edição atual, a 802.1Q-2022, consta como ativa no IEEE, e o escopo do padrão é "the operation of and VLAN Bridges" (IEEE SA, 802.1Q-2022). É também nele que o bridging vive hoje: o IEEE descreve o padrão de bridging mais antigo, o 802.1D-2004, como "completely subsumed within IEEE 802.1Q" (comunicado do IEEE 802.1, 2020).
O que a VLAN separa
Os fabricantes descrevem a VLAN como um domínio de broadcast. Nas palavras da Juniper: "Each VLAN is a collection of some of the LAN nodes grouped together to form individual broadcast domains" (Juniper, bridging e VLANs). A Cisco explica a consequência para cada tipo de tráfego: "Unicast, broadcast, and multicast packets are forwarded and flooded only to end stations in the VLAN" (Cisco, configuração de VLANs).
Disso saem duas consequências. Um broadcast (Address Resolution Protocol) numa VLAN nunca chega a outra VLAN, então equipamentos em VLANs diferentes não conseguem nem se encontrar na camada 2. E o único caminho entre VLANs é subir de camada: "Traffic between VLANs must be routed" (Cisco, mesma fonte). A VLAN é uma fronteira de segurança e de escala justamente porque, para atravessá-la, é preciso um roteador, um firewall ou um switch de camada 3, que pode aplicar política no meio do caminho.
A tag
Dentro do switch, a VLAN a que um frame (quadro) pertence é só um estado interno. Num link que leva várias VLANs, o frame precisa dizer a qual delas pertence, e faz isso com a tag 802.1Q, de quatro octetos, inserida logo depois do endereço de origem: um tag protocol identifier com o valor 0x8100, três bits de prioridade, um bit drop eligible (que marca o frame como candidato ao descarte) e um identificador de VLAN, o VLAN ID, de doze bits (Cisco, 802.1Q). O próprio modelo de dados do IEEE define que os identificadores utilizáveis vão de 1 a 4094 (tipos YANG do IEEE 802.1Q); o 0 marca um frame que leva tag só para indicar prioridade, e o 4095 é reservado (Juniper, IDs de VLAN; RFC 4363). Os campos da tag, e o quanto ela muda o tamanho do frame, estão detalhados no artigo o frame Ethernet, campo a campo.
Portas de acesso e portas trunk
Os fabricantes dividem as portas de switch em dois tipos. Nas palavras da Juniper, "Access interfaces accept only untagged packets", enquanto "Trunk interfaces usually accept only tagged packets" (Juniper, bridging e VLANs). A porta de acesso (access) é onde se ligam um computador, uma impressora ou um telefone: o equipamento envia frames comuns, sem tag (untagged), e nunca fica sabendo que VLANs existem. O trunk leva muitas VLANs entre switches, ou entre um switch e um roteador ou um hypervisor, e todo frame que passa por ele vai com a tag (tagged) da VLAN a que pertence. (A mesma página da Juniper admite que, na prática, a regra é mais flexível, e a VLAN de voz, que veremos mais abaixo, usa uma porta de acesso que aceita frames com tag.)
O próprio padrão não fala em "acesso" nem em "trunk". O IEEE 802.1Q descreve cada VLAN pelo seu member set, as portas que levam a VLAN, e pelo seu untagged set, as portas-membro que enviam essa VLAN sem tag (YANG de bridge do IEEE 802.1Q). Nesses termos, uma porta de acesso é uma porta que é membro sem tag de uma única VLAN; um trunk é membro com tag de muitas. Mais dois termos do mesmo modelo completam a explicação:
- o PVID (port VLAN identifier), "the primary (default) VID assigned to a specific Bridge Port", que vale 1 se nada for configurado: um frame sem tag que chega à porta é colocado nessa VLAN. A ferramenta bridge do Linux diz isso com todas as letras: "Any untagged frames will be assigned to this VLAN" (bridge(8));
- os acceptable frame types (os tipos de frame aceitos) de uma porta: só frames com tag; só frames sem tag e frames com tag de prioridade; ou todos os frames.
A regra da Cisco para o envio num trunk mostra como as peças se encaixam: "If a packet has a VLAN ID that is the same as the outgoing port ID, the packet is sent untagged; otherwise, the device sends the packet with a tag" (Cisco, configuração de trunks).
A VLAN nativa
Essa VLAN que trafega sem tag num trunk é o que a Cisco chama de VLAN nativa (native VLAN). "The native VLAN is VLAN 1 by default", e o tráfego sem tag que chega num trunk é encaminhado nela (Cisco, configuração de trunks, mesma fonte). Outros fabricantes têm a mesma ideia com outros nomes: o native-vlan-id da Juniper permite que um trunk "accept untagged data packets" (Juniper, VLAN nativa), e no AOS-CX da HPE Aruba, por padrão, "VLAN ID 1 is assigned as the native VLAN ID for all trunk interfaces" (HPE Aruba, VLAN nativa).
A VLAN nativa é uma causa frequente de estragos silenciosos, porque um frame sem tag não guarda nenhum registro da VLAN de onde saiu. Se as duas pontas de um trunk não concordam sobre ela, os frames enviados sem tag numa VLAN chegam sem tag do outro lado e são colocados numa VLAN diferente: duas redes acabam unidas sem que ninguém tenha decidido isso. O alerta da Cisco é duro: "If the native VLAN on one end of the trunk is different from the native VLAN on the other end, spanning-tree loops might result" (Cisco, configuração de trunks). Entre equipamentos Cisco, o CDP (Cisco Discovery Protocol) reporta essa divergência, o chamado native VLAN mismatch, como "mismatched native VLAN IDs (IEEE 802.1Q) on connected ports" (Cisco, CDP); como o CDP é um protocolo da própria Cisco, entre switches de outros fabricantes essa comparação fica por conta do operador.
A solução mais limpa é não ter nenhum tráfego sem tag nos trunks. Na Cisco, o comando global vlan dot1q tag native faz os switches colocarem tag em "all packets going out an IEEE 802.1Q trunk, including the native VLAN" (Cisco, tunelamento 802.1Q); no AOS-CX, o equivalente, configurado em cada trunk, descarta os pacotes sem tag que chegam, "except for BPDUs" (bridge protocol data units, as mensagens do spanning tree), e coloca tag em tudo o que envia (HPE Aruba, VLAN nativa com tag); no SLX-OS da Extreme, o comando é switchport trunk tag native-vlan (Extreme, SLX-OS).
VLAN hopping e as configurações que o impedem
Dois ataques clássicos permitem que um equipamento chegue a uma VLAN na qual nunca foi colocado.
- Switch spoofing. Switches Cisco podem negociar o trunking automaticamente com o DTP (Dynamic Trunking Protocol), um protocolo da Cisco; no Catalyst 9300, "the default switchport mode for all interfaces is dynamic auto" (Cisco, configuração de trunks). Um atacante que imite "802.1Q and DTP messages" consegue convencer a porta a virar trunk e, a partir daí, enviar tráfego para qualquer VLAN que passe por ela (Cisco Networking Academy).
- Double tagging. Um atacante que está na VLAN nativa do trunk envia um frame com duas tags. O guia de design de campus da Cisco descreve o que acontece: "the first or outermost tag is removed when the packet is switched onto the untagged native VLAN. When the packet reaches the target switch, the inner or second tag is then processed and the potentially malicious packet is switched to the target VLAN." O guia chama isso de "a remote possibility", já que o atacante precisa de "specific knowledge of the 802.1Q native VLAN", mas é uma possibilidade que a configuração consegue eliminar (Cisco, guia de design de campus de alta disponibilidade).
O mesmo guia lista as defesas, e elas são configuração, não produto: "disable 802.1Q trunking on any ports that are connected to hosts", "Set trunks to on/on with no " e "Assign the native VLAN to an unused ID or use the Tagged Native VLAN option to avoid VLAN hopping." Na Cisco, o switchport nonegotiate "Prevents the interface from generating DTP frames" (Cisco, configuração de trunks), e a nota de boas práticas da Cisco acrescenta: "You can also remove the default VLAN 1 from trunks" (Cisco, boas práticas). O checklist de hardening da Defense Information Systems Agency (DISA), dos Estados Unidos, para switches Cisco exige uma VLAN nativa "other than the default VLAN for all 802.1q trunk links" (DISA STIG V-220646).
Uma observação honesta: os próprios conselhos da Cisco nem sempre concordaram entre si. A nota de boas práticas, mais antiga, recomenda deixar os trunks entre switches negociarem ("dynamic desirable" nas duas pontas), enquanto o guia de design de campus e o checklist de hardening mandam não negociar de jeito nenhum. A segunda posição é a que vale adotar: uma porta que não pode ser convencida a virar trunk também não pode ser enganada para virar trunk.
A VLAN de voz
O telefone de mesa costuma dividir o mesmo cabo com o computador ligado na parte de trás dele, e os dois devem ficar em VLANs diferentes: a voz precisa de prioridade, de endereçamento próprio e de política própria, e o tráfego do computador não deve compartilhar nada disso. A solução é uma porta de acesso com uma segunda VLAN, com tag, só para a voz. Nas palavras da Cisco: "You can configure an access port with an attached Cisco IP Phone to use one VLAN for voice traffic and another VLAN for data traffic from a device attached to the phone" (Cisco, VLANs de voz).
É o switch que informa ao telefone qual VLAN usar na tag do próprio tráfego. Os telefones Cisco aprendem isso pelo CDP, que precisa estar habilitado "to send the configuration to the phone" (Cisco, VLANs de voz); o caminho que independe de fabricante é o -, a extensão Media Endpoint Discovery do Link Layer Discovery Protocol, "specified in ANSI/TIA-1057-2006", cuja network policy informa ao telefone "the VLAN, priority and DSCP tagging of voice data it transmits" (o DSCP, differentiated services code point, é a marcação de prioridade no header IP) (Allied Telesis, guia de LLDP; Cisco, LLDP-MED). Com isso, o telefone marca os seus frames de voz com essa VLAN e com uma prioridade: "By default, the Cisco IP Phone forwards the voice traffic with an IEEE 802.1Q priority of 5", enquanto "Untagged traffic from the device attached to the Cisco IP Phone passes through the phone unchanged" e cai na VLAN de dados normal da porta (Cisco, VLANs de voz).
Roteamento entre VLANs
Como cada VLAN é uma rede de camada 2 separada, o tráfego entre duas VLANs é roteado, normalmente de uma destas três formas:
- Uma interface roteada por VLAN num switch de camada 3. A Cisco chama essa interface de SVI (switched virtual interface): "An SVI must be explicitly configured and assigned an IP address to route traffic between VLANs" (Cisco, configuração de VLANs). Na Juniper, o nome é IRB, integrated routing and bridging (Juniper, bridging e VLANs).
- Um roteador ligado num trunk. Uma única interface física leva todas as VLANs, com tag, e o roteador cria uma subinterface para cada VLAN: as subinterfaces "provide unique Layer 3 interfaces to each VLAN that is supported by the parent interface" (Cisco, subinterfaces de camada 3). É o que muita gente chama de router-on-a-stick.
- Um firewall com uma interface ou subinterface por VLAN, que é o mesmo arranjo, só que com política entre cada par de VLANs.
Tags dentro de tags
Os provedores de serviço levam as VLANs dos clientes através das suas próprias redes acrescentando uma segunda tag, externa: a S-tag do provider bridging do IEEE 802.1ad, com 0x88A8 (IANA, IEEE 802 Numbers). A emenda foi "approved 8th Dec 2005, published May 26th, 2006" (IEEE 802.1ad) e depois incorporada ao 802.1Q. Alguns equipamentos ainda permitem outros valores na tag externa; o Q-in-Q do aceita 0x8100, 0x9100 e 0x9200 (Cisco, guia de configuração de tunelamento IEEE 802.1Q), e esse é mais um valor em que as duas pontas precisam concordar.
Para lembrar
- A VLAN é um domínio de broadcast; entre VLANs, o tráfego é roteado.
- Porta de acesso: membro sem tag de uma VLAN. Trunk: membro com tag de várias. Frames sem tag que chegam a uma porta vão para o PVID dela.
- A VLAN nativa é a VLAN sem tag de um trunk; as duas pontas precisam concordar, e o mais seguro é colocar tag também nela ou deixá-la sem uso.
- Impeça o VLAN hopping com configuração: nada de negociação, nada de trunk em porta de host, nada de VLAN 1 nos trunks.
- O telefone de mesa coloca a tag da sua própria VLAN de voz, que ele aprende pelo CDP ou pelo LLDP-MED; o computador ligado atrás dele continua sem tag.
Fontes
- IEEE Standards Association, IEEE 802.1Q-2022, padrão ativo: escopo (lida em 2026-10-07)
- Comunicado do IEEE 802.1 Working Group, 10 de novembro de 2020: o 802.1D-2004 incorporado ao 802.1Q (lida em 2026-10-07)
- Juniper Networks, bridging e VLANs: domínios de broadcast, interfaces de acesso e de tronco, faixas de VLAN, IRB (lida em 2026-10-07)
- Cisco, guia de configuração do Catalyst 9300 IOS XE 17.12, configuração de VLANs, 28 de julho de 2023: escopo da VLAN, roteamento entre VLANs, SVIs (lida em 2026-10-07)
- Cisco, o mesmo guia, configuração de troncos de VLAN: a regra de marcação na saída, a VLAN nativa, o alerta de divergência, os padrões do DTP, switchport nonegotiate (lida em 2026-10-07)
- Cisco, formato do quadro 802.1Q, documento 17056: a tag (lida em 2026-10-07)
- IEEE 802.1, módulo YANG ieee802-dot1q-types, revisão de 2023-10-26: faixa de VID, PCP (lida em 2026-10-07)
- IEEE 802.1, módulo YANG ieee802-dot1q-bridge, revisão de 2023-10-26: member set, untagged set, PVID, tipos de quadro aceitáveis (lida em 2026-10-07)
- Juniper Networks, IDs de VLAN por tipo de interface: VLAN 0 e 4095 (lida em 2026-10-07)
- RFC 4363, janeiro de 2006: identificadores de VLAN 0 e 4095 não permitidos (lida em 2026-10-07)
- Página de manual bridge(8) do Linux: quadros sem tag atribuídos ao PVID (lida em 2026-10-07)
- Juniper Networks, configuração de um native VLAN ID, Junos 13.2 (lida em 2026-10-07)
- HPE Aruba Networking, referência de comandos do AOS-CX, VLAN nativa em troncos, e VLAN nativa com tag (lida em 2026-10-07)
- Cisco, Catalyst 9300 IOS XE 17.12, tunelamento IEEE 802.1Q: vlan dot1q tag native (lida em 2026-10-07)
- Extreme Networks, guia de camada 2 do SLX-OS 20.1.1: switchport trunk tag native-vlan (lida em 2026-10-07)
- Cisco, guia de configuração do CDP, 3 de junho de 2016: divergências de VLAN nativa relatadas (lida em 2026-10-07)
- Cisco Networking Academy, switch spoofing (texto do curso, espelho universitário) (lida em 2026-10-07)
- Cisco, Campus Network for High Availability Design Guide, 21 de maio de 2008: double tagging e as mitigações (lida em 2026-10-07)
- Cisco, boas práticas para switches Catalyst, documento 24330, 17 de julho de 2015: VLAN 1, negociação de tronco (lida em 2026-10-07)
- DISA, STIG de camada 2 para switches Cisco IOS, achado V-220646, 6 de junho de 2024, via STIG Viewer (lida em 2026-10-07)
- Cisco, Catalyst 9300 IOS XE 17.12, configuração de VLANs de voz: duas VLANs numa porta de acesso, CDP, prioridade 5 (lida em 2026-10-07)
- Allied Telesis, guia de visão geral e configuração de LLDP, 2018: LLDP-MED, ANSI/TIA-1057-2006, a network policy de voz (lida em 2026-10-07)
- Cisco, Catalyst 9300 IOS XE 17.12, LLDP, LLDP-MED e wired location service (lida em 2026-10-07)
- Cisco, Catalyst 9300 IOS XE 17.12, configuração de subinterfaces de camada 3 (lida em 2026-10-07)
- IANA, IEEE 802 Numbers: C-tag 0x8100 e S-tag 0x88A8 (lida em 2026-10-07)
- IEEE 802.1ad, Provider Bridges: datas de aprovação e de publicação (lida em 2026-10-07)
- Guia de configuração de LAN switching do Cisco IOS, tunelamento IEEE 802.1Q: EtherTypes externos configuráveis (lida em 2026-10-07)