Configure VLAN no MikroTik RouterOS 7 com bridge VLAN filtering: portas trunk e access, VLAN de gerência, roteamento entre VLANs e uso no CHR.
Para que serve
Separar a rede em VLANs (administrativo, visitantes, câmeras, telefonia, servidores) limita o estrago de uma máquina infectada e permite aplicar regras diferentes para cada grupo. No RouterOS 7, a forma recomendada de configurar VLAN no MikroTik é o bridge VLAN filtering: uma única bridge com todas as portas, uma tabela dizendo qual VLAN passa em qual porta e interfaces VLAN para o roteador participar de cada rede. Este artigo monta um exemplo completo e mostra como aplicar o mesmo conceito a um CHR rodando no Proxmox.
Pré-requisitos
- RouterOS 7 e acesso ao equipamento por uma porta que não será alterada, ou por MAC-Winbox/console.
- Plano de VLANs. Exemplo deste artigo:
VLAN Nome Rede Portas 10 Administrativo 192.168.10.0/24 ether2 (access) 20 Visitantes 192.168.20.0/24 ether3 (access) 30 Telefonia 192.168.30.0/24 ether4 (access) 99 Gerência 192.168.99.0/24 ether5 (trunk para switch/AP) ether1é a WAN e fica fora da bridge.
vlan-filtering pode derrubar o seu acesso. No instante em que a filtragem é ativada, só o tráfego permitido pela tabela de VLANs passa, inclusive para o próprio roteador. Faça tudo com o Safe Mode ligado e deixe a ativação do filtering para o último passo. Rota de recuperação: MAC-Winbox numa porta fora da bridge, cabo serial/console, ou o console da VM no Proxmox (CHR). Para desfazer: /interface bridge set bridge vlan-filtering=no.Passo 1: criar a bridge e adicionar as portas
/interface bridge add name=bridge vlan-filtering=no
/interface bridge port
add bridge=bridge interface=ether2 pvid=10 frame-types=admit-only-untagged-and-priority-tagged
add bridge=bridge interface=ether3 pvid=20 frame-types=admit-only-untagged-and-priority-tagged
add bridge=bridge interface=ether4 pvid=30 frame-types=admit-only-untagged-and-priority-tagged
add bridge=bridge interface=ether5 frame-types=admit-only-vlan-tagged
- pvid: a VLAN atribuída a quadros sem tag que entram numa porta access. Um PC em ether2 cai na VLAN 10 sem configurar nada.
- frame-types: portas access só aceitam quadros sem tag; a porta trunk só aceita quadros com tag. Isso impede que alguém "pule" de VLAN mandando quadros marcados.
Passo 2: preencher a tabela de VLANs da bridge
Para cada VLAN, diga em quais portas ela passa com tag (trunk) e em quais sem tag (access). A própria bridge entra como tagged em todas as VLANs que o roteador precisa rotear:
/interface bridge vlan
add bridge=bridge vlan-ids=10 tagged=bridge,ether5 untagged=ether2
add bridge=bridge vlan-ids=20 tagged=bridge,ether5 untagged=ether3
add bridge=bridge vlan-ids=30 tagged=bridge,ether5 untagged=ether4
add bridge=bridge vlan-ids=99 tagged=bridge,ether5
Esquecer a bridge no tagged é o erro mais comum: os computadores se enxergam, mas não alcançam o gateway.
Passo 3: criar as interfaces VLAN e os endereços (roteamento entre VLANs)
/interface vlan
add name=vlan10-adm interface=bridge vlan-id=10
add name=vlan20-visit interface=bridge vlan-id=20
add name=vlan30-voz interface=bridge vlan-id=30
add name=vlan99-ger interface=bridge vlan-id=99
/ip address
add address=192.168.10.1/24 interface=vlan10-adm
add address=192.168.20.1/24 interface=vlan20-visit
add address=192.168.30.1/24 interface=vlan30-voz
add address=192.168.99.1/24 interface=vlan99-ger
Para cada rede de usuários, crie um servidor DHCP com o assistente (/ip dhcp-server setup, escolhendo a interface VLAN). Coloque as interfaces VLAN nas listas do firewall:
/interface list member
add list=LAN interface=vlan10-adm
add list=LAN interface=vlan30-voz
add list=LAN interface=vlan99-ger
/interface list add name=VISITANTES
/interface list member add list=VISITANTES interface=vlan20-visit
Passo 4: isolar as VLANs no firewall
Com o roteamento ativo, por padrão todas as VLANs se falam. Defina o que é permitido, antes do drop final do forward:
/ip firewall filter
add chain=forward action=accept in-interface-list=VISITANTES out-interface-list=WAN comment="visitantes so internet" \
place-before=[find comment="FWD: descarta o resto"]
add chain=forward action=drop in-interface-list=VISITANTES comment="visitantes nao acessam redes internas" \
place-before=[find comment="FWD: descarta o resto"]
add chain=input action=accept in-interface-list=VISITANTES protocol=udp dst-port=53,67 comment="DNS e DHCP para visitantes" \
place-before=[find comment="IN: descarta o resto"]
Como VISITANTES não está na lista LAN, o firewall base já bloqueia o acesso deles ao Winbox e ao SSH. Restrinja também o gerenciamento à VLAN 99: /ip service set winbox address=192.168.99.0/24,10.8.0.0/24.
Passo 5: ativar o bridge VLAN filtering
Com o Safe Mode ligado, conecte-se por uma porta access de uma VLAN que já tem IP (por exemplo, ether2, VLAN 10) e ative:
/interface bridge set bridge vlan-filtering=yes
Se a sessão continuar ativa, desligue o Safe Mode para gravar. Se cair, o roteador volta ao estado anterior sozinho em alguns segundos.
VLANs em um CHR no Proxmox
Num CHR, a lógica é mais simples, porque não há portas físicas para fazer papel de switch. Duas opções:
- Uma placa por rede: crie bridges separadas no Proxmox (ou use a tag de VLAN na placa da VM) e adicione uma placa virtio por rede no CHR. Cada placa aparece como
etherNe recebe o IP diretamente. - Trunk numa placa só: deixe a bridge do Proxmox como VLAN aware (opção na edição da
vmbr1), conecte a placa do CHR sem tag e crie no CHR as interfaces VLAN diretamente sobre ela:/interface vlan add name=vlan10 interface=ether2 vlan-id=10. As VMs recebem a tag desejada no campo VLAN Tag da placa de rede. Aqui não é preciso bridge nem vlan-filtering no CHR.
Como saber se funcionou
/interface bridge vlan printmostra, em current-tagged e current-untagged, as portas efetivamente aplicadas.- Um PC na ether3 recebe IP
192.168.20.xe navega, masping 192.168.10.1e o acesso às máquinas do administrativo falham. - No switch ou AP ligado à ether5, a gerência responde em
192.168.99.x. /interface bridge host printmostra os MACs aprendidos com a VLAN correta.
Problemas comuns
- Perdi o acesso ao ativar o filtering: você estava numa porta cuja VLAN não tinha a
bridgecomo tagged ou não tinha IP. Aguarde o Safe Mode reverter ou desative pelo MAC-Winbox/console. - Cliente não pega DHCP: o servidor DHCP está na
bridgeem vez da interface VLAN, ou opvidda porta está errado. - Desempenho caiu: em alguns modelos com switch chip, o offload de hardware com VLAN filtering depende do chip. Verifique a coluna H (hardware offload) em
/interface bridge port printe a documentação do seu modelo. - Telefones IP não sobem: se o telefone recebe a VLAN por LLDP ou DHCP com tag, a porta precisa ser híbrida: VLAN de dados sem tag (pvid) e VLAN de voz com tag na mesma porta.
Perguntas frequentes
Ainda posso criar VLAN direto na interface ether, como no RouterOS 6?
Pode, para casos simples (por exemplo, a VLAN da operadora na WAN). Para um equipamento fazendo papel de switch, o bridge VLAN filtering é o método recomendado.
O que é pvid no MikroTik?
É a VLAN aplicada aos quadros que entram sem tag em uma porta. Em porta access, é a VLAN daquela porta.
A VLAN 1 precisa ser configurada?
Por padrão, as portas têm pvid=1. Evite usar a VLAN 1 para dados ou gerência e defina explicitamente o pvid de cada porta.
Leitura complementar
Precisa de ajuda?
Se precisar de VLANs entre VMs no Proxmox do seu servidor e tiver dúvida sobre a bridge do host, abra um ticket na Área do Cliente descrevendo o desenho de rede desejado.
