Juniper

LACP no Juniper: aggregated ethernet (ae) passo a passo

Dois cabos de fibra trançados formando um único link ae0 entre um roteador Juniper e um switch

Configurar LACP no Juniper é a forma de juntar duas ou mais portas físicas numa interface lógica só, o ae (aggregated ethernet), com o protocolo conferindo dos dois lados quais links podem carregar tráfego. Em provedor isso aparece em todo lugar: roteador de borda ligado ao switch de agregação, uplink de OLT, enlace entre dois POPs com mais de uma fibra.

Este guia monta o cenário mais comum de interoperabilidade: um roteador Junos da série MX ligado a um switch Huawei por dois links de 10G, com as VLANs 100 e 200 passando por cima do agregado. Os comandos foram conferidos na documentação da Juniper sobre Aggregated Ethernet e LACP e montados como cenário de laboratório. Do lado Huawei, o Eth-Trunk em modo LACP segue o mesmo padrão do post de agregação de link na OLT Huawei MA5800 e no switch Huawei.

Resposta rápida: LACP no Juniper em cinco passos

  1. Crie os dispositivos ae com set chassis aggregated-devices ethernet device-count.
  2. Limpe as portas membro e associe-as ao ae0 com gigether-options 802.3ad ae0 (MX) ou ether-options 802.3ad ae0 (EX e QFX).
  3. Ligue o LACP no ae0 com aggregated-ether-options lacp active e periodic fast.
  4. Configure as unidades e VLANs no ae0, nunca nos membros.
  5. Aplique com commit confirmed e confira com show lacp interfaces ae0: todos os membros precisam aparecer em Collecting distributing.

O cenário do laboratório

Dois links de 10G entre o roteador e o switch. No Junos eles viram o ae0; no Huawei, o Eth-Trunk1. As VLANs chegam marcadas e terminam no roteador como unidades lógicas do ae0, cada uma com seu endereço.

EquipamentoPortas físicasInterface lógicaServiço
Roteador r1 (Junos, MX)xe-0/0/0 e xe-0/0/1ae0unit 100 e unit 200, IPv4 de documentação
Switch sw1 (Huawei S)XGigabitEthernet0/0/1 e 0/0/2Eth-Trunk1trunk com VLANs 100 e 200
Enlace2 x 10GLACP fast nos dois ladosbanda agregada de 20G, por fluxo até 10G
Roteador Juniper com ae0 ligado por dois links de 10G ao Eth-Trunk1 de um switch Huawei
O ae0 do Junos e o Eth-Trunk1 do Huawei negociam por LACP. As VLANs 100 e 200 sobem como unidades do ae0.

Uma observação sobre banda: o agregado soma capacidade, mas cada fluxo segue por um único membro, escolhido por hash de endereços e portas. Um teste de velocidade com uma conexão só nunca passa de 10G nesse enlace, e isso é comportamento esperado de LACP no Juniper ou em qualquer outro fabricante.

Passo 1: criar os dispositivos ae no chassi

O Junos só cria interfaces ae que foram reservadas no chassi. O device-count diz quantas: com 2, você pode usar ae0 e ae1. Sem essa linha, a configuração do ae0 até entra, mas a interface não aparece no show interfaces.

set chassis aggregated-devices ethernet device-count 2

Reserve um número com folga para o que você já planeja, mas não exagere: cada dispositivo reservado vira uma interface no sistema. Se a sintaxe do modo de configuração ainda é novidade, o guia de comandos Junos básicos cobre configure, set e delete.

Passo 2: associar as portas membro ao ae0

Uma porta membro não pode ter unidade nem família própria. Se ela já tinha unit 0 com endereço, o commit falha. Por isso o bloco começa limpando os membros e depois associa cada um ao ae0:

delete interfaces xe-0/0/0 unit 0
delete interfaces xe-0/0/1 unit 0
set interfaces xe-0/0/0 description sw1-XG0/0/1
set interfaces xe-0/0/1 description sw1-XG0/0/2
set interfaces xe-0/0/0 gigether-options 802.3ad ae0
set interfaces xe-0/0/1 gigether-options 802.3ad ae0

Linha a linha: os dois delete removem qualquer unidade antiga das portas. As description registram para onde cada fibra vai, o que ajuda muito quando alguém precisa desligar um link no meio da madrugada. O gigether-options 802.3ad ae0 diz que a porta agora pertence ao agregado e deixa de ser uma interface independente.

Switch EX ou QFX: ether-options

Nos roteadores MX a documentação usa gigether-options. Nos switches EX e QFX a mesma associação fica em ether-options:

set interfaces xe-0/0/10 ether-options 802.3ad ae1
set interfaces xe-0/0/11 ether-options 802.3ad ae1

O resto do LACP no Juniper é igual nas duas famílias. A diferença maior aparece nas unidades, que no switch usam family ethernet-switching em vez de family inet.

Passo 3: ligar o LACP no Juniper (ae0)

Sem a instrução lacp, o ae0 funciona como agregação estática: o Junos manda tráfego em todos os membros com link, sem conferir se do outro lado eles estão no mesmo grupo. É assim que nascem os loops e o tráfego jogado fora quando alguém liga a fibra na porta errada. Com LACP, cada membro só entra depois que os dois lados trocam LACPDUs e concordam.

set interfaces ae0 aggregated-ether-options lacp active
set interfaces ae0 aggregated-ether-options lacp periodic fast

lacp active faz o roteador iniciar a negociação. A documentação diz que o padrão é o modo passivo, que só responde. Se os dois lados ficarem em passivo, ninguém começa e o agregado não sobe. No cenário deste guia, os dois lados ficam ativos, a combinação que não depende de lembrar quem inicia.

periodic fast pede LACPDUs a cada segundo, contra 30 segundos no modo slow. Segundo a documentação da Juniper, o Junos já usa intervalo de 1 segundo por padrão, então essa linha deixa explícito o que ele faria sozinho e evita surpresa se alguém tiver mudado para slow. Com 1 segundo, um membro com problema sai do agregado em cerca de 3 segundos, contra 90 no modo lento. O que importa na interoperabilidade é casar o tempo dos dois lados, e no Huawei isso é o lacp timeout:

LadoComandoEfeitoAlternativa
Junoslacp activeEnvia LACPDU por conta próprialacp passive só responde
Junoslacp periodic fastLACPDU a cada 1 sslow: a cada 30 s
Huaweimode lacpEth-Trunk negocia por LACPSem ele o trunk fica em modo manual
Huaweilacp timeout fastPar envia a cada 1 s, timeout de 3 sslow: 30 s e timeout de 90 s

Passo 4: unidades e VLANs no ae0

Tudo que é lógico mora no ae0, nunca nos membros. Com vlan-tagging, cada unidade representa uma VLAN e recebe o próprio endereço:

set interfaces ae0 description sw1-Eth-Trunk1
set interfaces ae0 vlan-tagging
set interfaces ae0 unit 100 vlan-id 100
set interfaces ae0 unit 100 family inet address 192.0.2.1/29
set interfaces ae0 unit 200 vlan-id 200
set interfaces ae0 unit 200 family inet address 198.51.100.1/29

O número da unidade não precisa ser igual à VLAN, mas usar o mesmo número evita confusão na hora de ler a configuração. Com vlan-tagging ligado, todo tráfego no ae0 precisa chegar marcado. Quadros sem tag, como os da VLAN nativa de um trunk, são descartados. Por isso, no Huawei, a VLAN 1 sai do trunk.

No switch EX ou QFX: ae em modo trunk

Quando o equipamento Juniper é switch e o ae só transporta VLANs, a unidade 0 entra em ethernet-switching como trunk:

set interfaces ae1 aggregated-ether-options lacp active
set interfaces ae1 unit 0 family ethernet-switching interface-mode trunk
set interfaces ae1 unit 0 family ethernet-switching vlan members [ 100 200 ]

As VLANs listadas em vlan members precisam existir na hierarquia vlans do switch. Esse é o formato dos switches com a CLI ELS, como EX4600 e QFX5100.

Passo 5: minimum-links e link-speed

O minimum-links diz quantos membros precisam estar ativos para o ae0 ficar up. O padrão é 1: com um link só, o agregado continua no ar com metade da banda.

set interfaces ae0 aggregated-ether-options minimum-links 1
set interfaces ae0 aggregated-ether-options link-speed 10g

Subir esse número faz sentido quando existe outro caminho. Se o roteador tem uma segunda saída e metade da banda não dá conta do tráfego, minimum-links 2 derruba o ae0 quando um membro cai e o roteamento manda o tráfego pela rota alternativa. Num uplink único, deixe em 1. O link-speed declara a velocidade esperada dos membros, e todos eles precisam operar nela.

Aplicar sem perder o acesso

Mexer em LACP no Juniper pela própria rede é arriscado: se o roteador é acessado por um IP que passa pelo ae0, um erro derruba a sessão. Revise o que mudou, valide e aplique com retorno automático:

show | compare
commit check
commit confirmed 5
commit

O show | compare mostra a diferença para a configuração ativa. O commit check valida sem aplicar. O commit confirmed 5 aplica e desfaz sozinho em 5 minutos se você não confirmar com um novo commit. Os detalhes desse mecanismo estão no post de commit confirmed e rollback no Junos.

Verificação: show lacp interfaces

Depois do commit, estes são os comandos de conferência do LACP no Juniper, todos no modo operacional:

show interfaces ae0 terse
show lacp interfaces ae0
show lacp statistics interfaces ae0
show interfaces ae0 extensive

O show interfaces ae0 terse mostra o ae0 e as unidades com estado e endereço. O show lacp interfaces ae0 é o que diz se o LACP no Juniper negociou de verdade. Saída de exemplo com tudo certo:

Aggregated interface: ae0
  LACP state:   Role  Exp Def Dist Col Syn Aggr Timeout Activity
    xe-0/0/0    Actor  No  No  Yes Yes Yes  Yes    Fast   Active
    xe-0/0/0  Partner  No  No  Yes Yes Yes  Yes    Fast   Active
    xe-0/0/1    Actor  No  No  Yes Yes Yes  Yes    Fast   Active
    xe-0/0/1  Partner  No  No  Yes Yes Yes  Yes    Fast   Active
  LACP protocol:  Receive State  Transmit State       Mux State
    xe-0/0/0          Current  Fast periodic  Collecting distributing
    xe-0/0/1          Current  Fast periodic  Collecting distributing
CampoSignificadoValor esperado
ExpYes: o timeout venceu uma vez sem LACPDU do parceiroNo
DefYes: o roteador está usando dados padrão do parceiro, porque não recebeu LACPDUNo
Dist / ColDistribuição e coleta de quadros no membroYes / Yes
SynO link é considerado sincronizadoYes
TimeoutRitmo de LACPDU pedido (Fast ou Slow)Igual nos dois lados
ActivityActive ou PassivePelo menos um lado Active
Mux StateEstado do membro no agregadoCollecting distributing

O show lacp statistics interfaces ae0 conta LACPDUs enviados e recebidos por membro. Contador de recebidos parado num membro aponta para o lado de lá ou para a fibra. O show interfaces ae0 extensive traz erros, tráfego e a lista de membros, útil para ver se a carga está se dividindo.

O lado Huawei: Eth-Trunk em modo LACP

Para fechar o LACP no Juniper com o switch Huawei, o Eth-Trunk precisa estar em modo LACP antes de receber os membros, e as portas físicas precisam estar sem configuração própria. Bloco para um switch da linha S com VRP5:

system-view
vlan batch 100 200
interface Eth-Trunk1
 description r1-ae0
 mode lacp
 lacp timeout fast
 port link-type trunk
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 100 200
quit
interface XGigabitEthernet0/0/1
 eth-trunk 1
quit
interface XGigabitEthernet0/0/2
 eth-trunk 1
quit
return
save

mode lacp tira o Eth-Trunk do modo manual. Em versões antigas do VRP o mesmo comando se chama mode lacp-static; confira com mode ? dentro da interface. lacp timeout fast casa com o periodic fast do Junos. O trunk libera as VLANs 100 e 200 e retira a VLAN 1, que o ae0 com vlan-tagging descartaria. Nesse switch não existe commit: a configuração vale na hora, e o save grava para o próximo boot.

display eth-trunk 1
display lacp statistics eth-trunk 1

O display eth-trunk 1 lista o modo, os membros e quais estão selecionados. Membro que não aparece como selecionado no Huawei costuma corresponder ao membro que não chega a Collecting distributing no Junos. Quando o outro lado é uma OLT MA5800, a agregação é feita com link-aggregation em workmode lacp-static, como mostra o post de agregação de link na OLT Huawei MA5800 e no switch Huawei; do lado do Junos, a leitura é a mesma.

Problemas comuns com LACP no Juniper

O caso clássico é o parceiro que não fala LACP. A saída fica assim:

  LACP state:   Role  Exp Def Dist Col Syn Aggr Timeout Activity
    xe-0/0/0    Actor  No Yes   No  No  No  Yes    Fast   Active
    xe-0/0/0  Partner  No Yes   No  No  No  Yes    Fast  Passive
  LACP protocol:  Receive State  Transmit State       Mux State
    xe-0/0/0        Defaulted  Fast periodic         Detached
  • Def Yes e Receive State Defaulted: nenhum LACPDU chegou. O Eth-Trunk do outro lado está em modo manual, a porta não foi adicionada ao trunk ou a fibra chega em outra porta.
  • Mux State Waiting ou Attached: o LACPDU chega, mas o membro não sincroniza. Confira se as duas fibras terminam no mesmo Eth-Trunk e se as velocidades são iguais.
  • Membros up e ae0 down: o minimum-links está maior que o número de membros ativos.
  • ae0 up e sem ping: o LACP está bom e o problema é de VLAN. A unidade do ae0 e o allow-pass do Huawei precisam ter a mesma VLAN.
  • ae0 não existe: faltou o device-count no chassi, ou o número é menor que o do ae usado.
  • Commit recusado no membro: a porta ainda tem unit 0. Apague antes de associar ao ae.

Perguntas frequentes

Qual a diferença entre ae e LACP no Juniper?

O ae é a interface lógica que junta as portas. O LACP é o protocolo que negocia quais portas entram no agregado. Dá para ter ae sem LACP, mas aí não há conferência do outro lado.

Preciso de lacp active nos dois lados?

Basta um lado ativo, porque o passivo responde. Deixar os dois ativos é a escolha mais simples, porque não depende de lembrar qual lado inicia.

Quantas portas cabem num ae no Juniper?

Depende da plataforma. A documentação cita até 64 membros por agregado nas séries MX e PTX. Todos os membros precisam ter a mesma velocidade, salvo nos modelos que aceitam agregado de velocidades mistas.

O LACP no Juniper funciona com Eth-Trunk da Huawei?

Funciona, desde que o Eth-Trunk esteja em mode lacp e os tempos combinem. Use periodic fast no Junos e lacp timeout fast no Huawei.

Por que um único download não passa de 10G num ae de 20G?

Porque cada fluxo segue por um membro só, escolhido por hash. A soma aparece com muitos fluxos simultâneos, que é o caso normal do tráfego de um provedor.

Conclusão

Configurar LACP no Juniper é questão de ordem: reservar os ae no chassi, limpar e associar os membros, ligar o LACP no modo ativo, criar as unidades no ae0 e aplicar com retorno automático. A verificação se resume a uma pergunta: todos os membros chegaram a Collecting distributing?

Na interoperabilidade com Huawei, os pontos que mais quebram são o Eth-Trunk esquecido em modo manual, tempos de LACP diferentes e a VLAN 1 sobrando no trunk. Com esses três cuidados, o LACP no Juniper conversa com o Eth-Trunk sem surpresa.

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 *