Juniper

VLAN no Juniper EX: access, trunk e interface IRB

Blocos coloridos empilhados representando VLANs sobre um switch Juniper EX com a interface IRB no topo

Configurar VLAN no Juniper EX parece diferente de tudo que você viu no Cisco ou no Huawei, mas a lógica é a mesma: a VLAN existe com um nome e um número, cada porta entra nela como access ou trunk, e o gateway da sub-rede mora numa interface lógica. No Junos essa interface se chama IRB (integrated routing and bridging), o equivalente da SVI do Cisco e da Vlanif do Huawei.

Este guia usa a CLI ELS (Enhanced Layer 2 Software), que é a sintaxe dos switches EX atuais, como EX2300, EX3400 e EX4300, e também dos QFX. Os comandos foram conferidos na documentação da Juniper sobre bridging e VLANs e montados como cenário de laboratório, com as mesmas VLANs do post de VLAN e trunk no switch Cisco, para que os dois lados conversem.

Resposta rápida: VLAN no Juniper EX em cinco passos

  1. Crie as VLANs em [edit vlans] com nome e vlan-id.
  2. Porta de cliente: family ethernet-switching interface-mode access e vlan members com uma VLAN só.
  3. Uplink: interface-mode trunk e vlan members com a lista entre colchetes.
  4. VLAN sem tag no trunk: native-vlan-id na interface física e a mesma VLAN em vlan members.
  5. Gateway: endereço em irb unit N e l3-interface irb.N na VLAN. Aplique com commit confirmed e confira com show vlans.

O cenário do laboratório

Um switch EX com quatro VLANs. A porta ge-0/0/5 atende um cliente na VLAN 20. A ge-0/0/47 é o trunk para um Catalyst e a xe-0/1/0 é o trunk para um switch Huawei. O próprio EX faz o roteamento entre as VLANs pelas interfaces IRB, uma por sub-rede.

VLANIDGatewayPortas
GERENCIA10irb.10, 192.0.2.1/26trunk ge-0/0/47 e xe-0/1/0
CLIENTES20irb.20, 198.51.100.1/24access ge-0/0/5 e os dois trunks
VOIP30irb.30, 203.0.113.1/26os dois trunks
NATIVA999sem IRBnative dos trunks, sem tráfego de usuário
Switch Juniper EX com as VLANs 10, 20 e 30, porta access, trunk para o Cisco e gateways irb.10, irb.20 e irb.30
Cada VLAN aponta para uma unidade da IRB. A porta access entra numa VLAN só; o trunk leva as três marcadas e a 999 sem tag.

A VLAN 999 existe só para ser a nativa dos trunks. Deixar a VLAN 1 ou uma VLAN de produção como nativa é a receita para tráfego aparecer onde não devia quando alguém pluga um equipamento sem tag.

ELS ou CLI antiga: confira antes de copiar

A Juniper mudou a sintaxe de L2 dos switches EX. Os modelos e versões mais antigos usam a CLI anterior, que a documentação chama de non-ELS, e muito material na internet ainda mostra port-mode e a interface vlan.10 (chamada de RVI). Se o commit recusa os comandos deste guia, provavelmente o seu switch é dessa geração. A tabela resume as diferenças:

ItemELS (este guia)CLI antiga
Modo da portainterface-mode access|trunkport-mode access|trunk
VLAN na portavlan members dentro da portavlan members ou vlans X interface
VLAN nativanative-vlan-id na interface físicanative-vlan-id dentro de ethernet-switching
Gateway L3irb.N e l3-interfacevlan.N e l3-interface

O resto deste passo a passo de VLAN no Juniper assume ELS. Se o modo de configuração ainda é novidade, o guia de comandos Junos básicos explica configure, set, delete e o commit.

Criar cada VLAN no Juniper

No Junos a VLAN é um objeto com nome. O número 802.1Q é um atributo dele, o vlan-id. Em modo de configuração:

set vlans GERENCIA vlan-id 10
set vlans CLIENTES vlan-id 20
set vlans VOIP vlan-id 30
set vlans NATIVA vlan-id 999

Os nomes aparecem em toda saída de show, então escolha nomes que digam para que a VLAN serve. Um detalhe que pega quem vem do Huawei: vlan batch não existe aqui, cada VLAN no Juniper é criada com o próprio nome. Existe também a VLAN default, com ID 1, onde as portas de fábrica ficam.

Porta access: uma VLAN, quadros sem tag

A porta access recebe e envia quadros sem tag e coloca tudo numa VLAN só. É a porta de cliente, de servidor, de impressora:

set interfaces ge-0/0/5 description CLIENTE-LAB-05
set interfaces ge-0/0/5 unit 0 family ethernet-switching interface-mode access
set interfaces ge-0/0/5 unit 0 family ethernet-switching vlan members CLIENTES

Linha a linha: a description registra o que está ligado ali. A family ethernet-switching na unit 0 transforma a porta em porta de switch; sem ela a porta é de roteamento. O interface-mode access deixa o modo explícito. Segundo a documentação, uma porta associada a uma única VLAN já funciona como access, mas escrever o modo evita dúvida para quem lê a configuração depois. O vlan members CLIENTES coloca a porta na VLAN 20; você pode usar o nome ou o número.

Porta que já estava em outra VLAN

Uma porta access aceita uma VLAN só. Se ela já tinha outro membro, o commit falha. Veja o que existe e apague a lista antes de definir a nova:

show configuration interfaces ge-0/0/5 | display set
delete interfaces ge-0/0/5 unit 0 family ethernet-switching vlan members

O | display set mostra a configuração da porta no formato de comandos set, pronto para comparar. Depois do delete, aplique de novo o vlan members.

Porta trunk: várias VLANs marcadas

O trunk leva várias VLANs no mesmo cabo, cada quadro com a tag 802.1Q. É o uplink entre switches, a ligação com o roteador de borda e a subida da OLT. A configuração da VLAN no Juniper em trunk fica assim:

set interfaces ge-0/0/47 description TRUNK-SW-CISCO
set interfaces ge-0/0/47 unit 0 family ethernet-switching interface-mode trunk
set interfaces ge-0/0/47 unit 0 family ethernet-switching vlan members [ GERENCIA CLIENTES VOIP ]

A lista entre colchetes aceita nomes ou IDs. Só passam as VLANs listadas: ao contrário do Cisco, o trunk não libera tudo por padrão. Existe vlan members all, mas listar as VLANs deixa o trunk sob controle. Para acrescentar uma VLAN depois, rode outro set com o nome dela: o Junos soma ao que já existe, sem apagar os outros membros.

native-vlan-id: a VLAN sem tag no trunk

No ELS, o trunk aceita quadros de controle sem tag, mas descarta quadros de dados sem tag. Para receber tráfego sem tag numa VLAN, a documentação pede duas coisas: o native-vlan-id na interface física e a porta como membro dessa VLAN.

set interfaces ge-0/0/47 native-vlan-id 999
set interfaces ge-0/0/47 unit 0 family ethernet-switching vlan members NATIVA

Repare que o native-vlan-id fica em set interfaces ge-0/0/47, fora da unit 0. Esquecer a segunda linha é o erro mais comum: a VLAN nativa fica configurada, mas a porta não pertence a ela e o tráfego sem tag continua sendo descartado.

Para o Huawei, o trunk xe-0/1/0 segue o mesmo modelo, agora com IDs no lugar dos nomes:

set interfaces xe-0/1/0 description TRUNK-SW-HUAWEI
set interfaces xe-0/1/0 native-vlan-id 999
set interfaces xe-0/1/0 unit 0 family ethernet-switching interface-mode trunk
set interfaces xe-0/1/0 unit 0 family ethernet-switching vlan members [ 10 20 30 999 ]

Interface IRB: o gateway da VLAN no Juniper

A IRB é uma interface lógica com uma unidade por VLAN. Cada unidade recebe o endereço do gateway, e o l3-interface amarra a VLAN à unidade:

set interfaces irb unit 10 family inet address 192.0.2.1/26
set interfaces irb unit 20 family inet address 198.51.100.1/24
set interfaces irb unit 30 family inet address 203.0.113.1/26
set vlans GERENCIA l3-interface irb.10
set vlans CLIENTES l3-interface irb.20
set vlans VOIP l3-interface irb.30

O número da unidade não precisa ser igual ao ID da VLAN, mas usar o mesmo número poupa muito tempo na hora de ler a configuração: irb.10 é o gateway da VLAN 10, e pronto. Com as três IRB configuradas, cada VLAN no Juniper ganha seu gateway e o switch roteia entre as sub-redes sem precisar de roteador externo. Os hosts da VLAN 20 usam 198.51.100.1 como gateway padrão.

A IRB só fica up quando a VLAN tem pelo menos uma porta ativa. Se o show interfaces irb terse mostra a unidade em down, olhe primeiro as portas da VLAN, não a IRB.

Aplicar sem perder o acesso

Se você acessa o switch pela VLAN de gerência e mexe no trunk que a transporta, um erro corta a sessão. Revise, valide e aplique com retorno automático:

show | compare
commit check
commit confirmed 5
commit

O show | compare mostra só o que mudou. O commit check valida sem aplicar. O commit confirmed 5 aplica e desfaz sozinho em 5 minutos se você não confirmar com outro commit. O post de commit confirmed e rollback no Junos detalha esse mecanismo.

Verificação: show vlans e tabela de MAC

Depois do commit, os comandos de conferência da VLAN no Juniper, todos no modo operacional:

show vlans
show ethernet-switching interfaces
show ethernet-switching table
show interfaces irb terse
show arp

O show vlans lista cada VLAN com o ID e as portas. O asterisco indica porta ativa. Saída de exemplo do laboratório:

Routing instance        VLAN name             Tag          Interfaces
default-switch          CLIENTES              20
                                                           ge-0/0/5.0*
                                                           ge-0/0/47.0*
default-switch          GERENCIA              10
                                                           ge-0/0/47.0*
default-switch          NATIVA                999
                                                           ge-0/0/47.0*
default-switch          VOIP                  30
                                                           ge-0/0/47.0*
default-switch          default               1

O show ethernet-switching interfaces mostra, por porta lógica, as VLANs, o estado do STP e a coluna Tagging: untagged na porta access e tagged nas VLANs do trunk. O show ethernet-switching table é a tabela de MAC aprendidos (D indica MAC dinâmico; omiti a legenda e as últimas colunas):

Ethernet switching table : 3 entries, 3 learned
Routing instance : default-switch
   Vlan          MAC                 MAC      Age    Logical
   name          address             flags           interface
   CLIENTES      00:00:5e:00:53:05   D          -    ge-0/0/5.0
   CLIENTES      00:00:5e:00:53:21   D          -    ge-0/0/47.0
   GERENCIA      00:00:5e:00:53:0a   D          -    ge-0/0/47.0

Se o MAC do cliente aparece na VLAN certa e na porta certa, o L2 está bom. Daí para cima é IRB e roteamento: show interfaces irb terse mostra as unidades com endereço e estado, e show arp confirma que o switch resolveu o endereço dos hosts.

Trunk do Juniper com Cisco e Huawei

Um trunk só funciona quando os dois lados concordam em três coisas: quais VLANs passam, qual VLAN vai sem tag e o tipo de porta. Do lado Cisco, o Gi1/0/48 fica assim:

SW1# configure terminal
SW1(config)# interface GigabitEthernet1/0/48
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport nonegotiate
SW1(config-if)# switchport trunk native vlan 999
SW1(config-if)# switchport trunk allowed vlan 10,20,30,999
SW1(config-if)# end
SW1# show interfaces trunk

O switchport nonegotiate desliga o DTP, que o Junos não fala. A native 999 casa com o native-vlan-id 999 do EX. Do lado Huawei, o equivalente é o pvid do trunk, e a VLAN 1 sai da lista:

system-view
vlan batch 10 20 30 999
interface XGigabitEthernet0/0/1
 port link-type trunk
 port trunk pvid vlan 999
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 10 20 30 999
 quit
display port vlan XGigabitEthernet0/0/1

A tabela de equivalência ajuda quando você alterna entre os três fabricantes no mesmo dia:

ItemJunos (ELS)Cisco IOSHuawei VRP
Criar VLANset vlans NOME vlan-id 20vlan 20vlan batch 20
Porta accessinterface-mode accessswitchport mode accessport link-type access
VLAN da accessvlan membersswitchport access vlanport default vlan
Trunkinterface-mode trunkswitchport mode trunkport link-type trunk
VLANs do trunkvlan members [ ... ]switchport trunk allowed vlanport trunk allow-pass vlan
VLAN nativanative-vlan-id + membroswitchport trunk native vlanport trunk pvid vlan
Gatewayirb.Ninterface Vlan Ninterface Vlanif N

Se o uplink tiver mais de um cabo, monte primeiro o agregado (veja LACP no Juniper) e aplique o trunk na interface ae, não nas portas membro. Quando as VLANs de dois clientes colidem no mesmo trunk, a saída é encapsular ou traduzir, assunto do post de QinQ e VLAN translation.

Erros comuns com VLAN no Juniper

  • Commit recusado na porta access: a porta já tem outra VLAN em vlan members. Apague a lista e defina de novo.
  • Tráfego sem tag some no trunk: o native-vlan-id foi configurado, mas a porta não é membro da VLAN nativa.
  • Comandos não existem: o switch usa a CLI antiga. Procure port-mode e vlan.N na documentação do modelo.
  • irb.20 down: nenhuma porta ativa na VLAN 20, ou faltou o l3-interface na VLAN.
  • MAC aparece, ping no gateway falha: host com máscara ou gateway errados, ou a IRB com endereço de outra sub-rede.
  • Native diferente nos dois lados: o quadro sem tag cai em VLANs diferentes em cada switch. Confira native vlan no Cisco e pvid no Huawei.
  • VLAN some do trunk depois de editar: alguém usou delete em vlan members inteiro. Para tirar uma VLAN, apague só aquele membro.

Perguntas frequentes

Qual a diferença entre IRB e Vlanif?

Nenhuma na função: as duas são a interface L3 de uma VLAN, onde fica o gateway. No Junos ela se chama irb.N e é ligada à VLAN pelo l3-interface; no Huawei é a Vlanif N, e no Cisco, a interface Vlan N.

Posso usar o ID em vez do nome em vlan members?

Pode. A documentação mostra os dois formatos, inclusive listas entre colchetes. O show vlans sempre exibe o nome, então nomes claros facilitam a leitura.

O trunk do Juniper passa todas as VLANs por padrão?

Não. Só passam as VLANs listadas em vlan members. Isso é diferente do Cisco, onde o trunk libera todas até você restringir com allowed vlan.

Preciso de native VLAN no trunk?

Só se o equipamento do outro lado manda tráfego sem tag que precisa ser aceito. Entre switches de provedor, o normal é cada VLAN passar marcada no trunk, com uma nativa vazia, como a 999 deste guia.

Como configurar VLAN no Juniper que ainda usa a CLI antiga?

A lógica é a mesma, mas a sintaxe muda: port-mode no lugar de interface-mode e vlan.N no lugar de irb.N. Consulte o guia do seu modelo antes de aplicar.

Conclusão

Montar VLAN no Juniper EX com ELS segue sempre a mesma ordem: criar a VLAN com nome e ID, colocar as portas como access ou trunk em family ethernet-switching, tratar a nativa com native-vlan-id e membro, e subir o gateway numa unidade da IRB. A conferência cabe em dois comandos: show vlans e show ethernet-switching table.

Na integração com Cisco e Huawei, o que mais quebra é a VLAN nativa diferente entre os lados e a VLAN esquecida na lista do trunk. Feche esses dois pontos e a VLAN no Juniper conversa com qualquer switch 802.1Q.

Compartilhar:

Sobre o autor

Ivan Alves

Especialista em redes de provedores (ISP)

Ivan Alves trabalha há mais de 15 anos com redes de provedores de internet, do NOC ao backbone e à borda BGP. Coordena infraestrutura e tecnologia em um provedor regional e escreve aqui os tutoriais que gostaria de ter encontrado quando começou: comandos testados, cenário explicado e o porquê de cada linha.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *