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

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
- Crie os dispositivos ae com
set chassis aggregated-devices ethernet device-count. - Limpe as portas membro e associe-as ao ae0 com
gigether-options 802.3ad ae0(MX) ouether-options 802.3ad ae0(EX e QFX). - Ligue o LACP no ae0 com
aggregated-ether-options lacp activeeperiodic fast. - Configure as unidades e VLANs no ae0, nunca nos membros.
- Aplique com
commit confirmede confira comshow 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.
| Equipamento | Portas físicas | Interface lógica | Serviço |
|---|---|---|---|
| Roteador r1 (Junos, MX) | xe-0/0/0 e xe-0/0/1 | ae0 | unit 100 e unit 200, IPv4 de documentação |
| Switch sw1 (Huawei S) | XGigabitEthernet0/0/1 e 0/0/2 | Eth-Trunk1 | trunk com VLANs 100 e 200 |
| Enlace | 2 x 10G | LACP fast nos dois lados | banda agregada de 20G, por fluxo até 10G |

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:
| Lado | Comando | Efeito | Alternativa |
|---|---|---|---|
| Junos | lacp active | Envia LACPDU por conta própria | lacp passive só responde |
| Junos | lacp periodic fast | LACPDU a cada 1 s | slow: a cada 30 s |
| Huawei | mode lacp | Eth-Trunk negocia por LACP | Sem ele o trunk fica em modo manual |
| Huawei | lacp timeout fast | Par envia a cada 1 s, timeout de 3 s | slow: 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| Campo | Significado | Valor esperado |
|---|---|---|
| Exp | Yes: o timeout venceu uma vez sem LACPDU do parceiro | No |
| Def | Yes: o roteador está usando dados padrão do parceiro, porque não recebeu LACPDU | No |
| Dist / Col | Distribuição e coleta de quadros no membro | Yes / Yes |
| Syn | O link é considerado sincronizado | Yes |
| Timeout | Ritmo de LACPDU pedido (Fast ou Slow) | Igual nos dois lados |
| Activity | Active ou Passive | Pelo menos um lado Active |
| Mux State | Estado do membro no agregado | Collecting 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-linksestá 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-passdo Huawei precisam ter a mesma VLAN. - ae0 não existe: faltou o
device-countno 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.
