Made4it

MC-LAG em roteadores Huawei

Como configurar MC-LAG na Huawei: E-Trunk, Eth-Trunk, LACP e BFD passo a passo.

Aprenda MC-LAG em Huawei, hoje mostramos o porquê do E-Trunk (multi-chassis), quando usar Eth-Trunk (agregação), como ajustar LACP para portas ativas/backup e como o BFD encurta o MTTR. Incluímos recomendações de hash em cenários MPLS e um roteiro de testes para validar o comportamento em falhas.

  • aumento de banda (somatório dos links),
  • redundância,
  • e convergência rápida em falhas de interfaces/links.

 O LAG tradicional é sempre entre dois dispositivos, ponto a ponto:

Tipos de LAG para Huawei

De forma bem simples, na Huawei temos três jeitos principais de usar Eth-Trunk:

  • Manual (load-balancing manual)
  • Static LACP (LACP estático)
  • Manual 1:1 master/backup

No contexto de MC-LAG, o que importa pra nós são basicamente:

  • Eth-Trunk manual
  • Eth-Trunk em static LACP

Vamos simplificar:

 Manual

  • Você cria o Eth-Trunk, adiciona as interfaces e pronto.
  • Todas as interfaces do trunk ficam ativas e encaminhando tráfego.
  • Não há negociação com o outro lado, então o “critério” é só a configuração bater (mesmo número de portas, velocidade, duplex etc.).

Static LACP

  • Você também cria o Eth-Trunk e adiciona as interfaces, mas o estado delas (ativa ou backup) é decidido pelo LACP.
  • O LACP troca mensagens (LACPDUs) entre os dois lados, decide quais links podem fazer parte do LAG e quais serão ativos ou backup.
  • Permite M:N (M links ativos, N em backup), limiar mínimo e máximo de links ativos etc.

Como o Trunk balanceia o tráfego

O Eth-Trunk não “soma portas” como uma porta gigante. O equipamento decide por qual membro mandar cada fluxo usando algoritmos de balanceamento. Isso define dois comportamentos principais:

Load-balance baseado em hash

É o padrão na maioria dos roteadores/switches. Funciona assim:

  1. O equipamento pega campos do pacote (MAC, IP, portas, MPLS etc.).
  2. Calcula um hash.
  3. Usa o resultado para escolher um dos links do LAG.

O hash pode usar vários critérios, por exemplo:

  • src-macdst-macsrc-dst-mac
  • src-ipdst-ipsrc-dst-ip
  • versões “enhanced” que adicionam mais entropia
  • (em cenários MPLS) labels MPLS

Com hash, o modo padrão é per-flow:

  • Per-flow: todos os pacotes de um mesmo fluxo vão pelo mesmo link → garante ordem.
  • Per-packet: cada pacote pode ir por links diferentes → usa mais banda, mas quebra ordenação (raríssimo em redes SP).

 Hash tem uma consequência importante:

Nem sempre distribui banda de forma uniforme.
Dependendo da distribuição dos fluxos (hash), um membro pode ficar no gargalo enquanto outro quase sem tráfego. Isso é normal.

Load-balance dinâmico

Alguns equipamentos suportam o modo dynamic, que monitora a carga instantânea de cada membro e realoca fluxos entre links que estejam subutilizados ou sobrecarregados.

  • Mantém ordem dos fluxos,
  • Corrige situações onde o hash sozinho deixaria um link “lotado” e outro ocioso,
  • É mais eficiente em cenários com poucos fluxos pesados.

Um equipamento que usa esse tipo de balanceamento são os switches da Datacom.

E o que os chips conseguem usar para o hash?

Esse ponto quase ninguém fala, mas é crucial.

Dependendo do ASIC, o roteador pode olhar:

  • somente camada 2 + camada 3 (MAC + IP + portas),
  • e/ou labels MPLS.

No caso de MPLS:

  • Alguns ASICs só conseguem ler o primeiro label do stack.
  • Outros conseguem ler os primeiros 3 labels.
  • ASICs mais modernos (NPs/NPUs recentes) chegam a ler até o 7º label para gerar entropia no hash.

Isso importa porque:

  • Em túneis MPLS, quando todo mundo usa o mesmo label de topo, o hash perde entropia.
  • Quando o ASIC não lê profundamente o stack MPLS, vários fluxos podem cair no mesmo link do LAG.
  • Hardwares mais modernos conseguem enxergar labels internos (VPN, PW, etc.), dando muito mais diversidade ao hash.

Exemplos práticos:

  • VPLS/PWE3 → usar o PW label como entropia (se o chip tiver profundidade suficiente).
  • L3VPN → usar o VPN label.
  • Tráfego LDP simples → quase sempre hash pobre, pois muitos fluxos compartilham o mesmo label de transporte.
  • Utilizar outras técnicas, como o flow-label em serviços.

 Em resumo:

Quanto maior a profundidade MPLS que o ASIC enxerga, melhor será a distribuição dos fluxos MPLS no LAG.

O que o LACP faz

  • Negocia se um conjunto de interfaces pode ou não formar um LAG;
  • Decide quais interfaces do grupo serão ativas e quais ficam em backup;
  • Mantém o estado do LAG: se um link cai, ele pode ativar outro link que estava em standby;
  • Detecta problemas de configuração/mismatch (velocidade, duplex, modo etc.) e evita agregar links incompatíveis.

Na Huawei, quando o Eth-Trunk está em static LACP, as interfaces membros:

  • Trocando LACPDUs, informam:
    • System priority (prioridade do dispositivo),
    • System ID (normalmente o MAC do sistema),
    • Interface priority,
    • Interface number,
    • Key (identificador lógico do LAG).

O lado com maior prioridade de sistema (menor valor numérico) vira o Actor. A partir daí:

  • O Actor decide quais portas serão ativas (com base na prioridade e nas políticas / limiares);
  • O outro lado segue essa decisão para manter consistência.

O que precisa estar “OK” para o LAG subir direito

Pra um Eth-Trunk com LACP funcionar como esperado, alguns pontos precisam estar alinhados entre os dois lados:

  • Mesma ideia de LAG/Key (as portas que vão formar o mesmo Eth-Trunk de cada lado);
  • Mesma velocidade e duplex nas portas físicas;
  • Mesmo tipo de modo LACP (static LACP em ambos os lados);
  • Limites coerentes de:
    • número mínimo de links ativos (lower threshold),
    • número máximo de links ativos (upper threshold), se usados;
  • Mínimo de compatibilidade nos timers LACP (rápido/devagar) e modo active/passive (os dois lados em passive não negociam).

O que o LACP faz é usar system priority + system ID + interface priority + interface number para:

  • Decidir quem é o Actor;
  • Escolher quais portas viram ativas e quais ficam backup.

Entrando no MC-LAG

Até aqui falamos de LAG “normal”, ou seja, entre dois dispositivos apenas.

MC-LAG (Multi-Chassis LAG) entra quando você quer ter:

  • Um único LAG do ponto de vista do cliente (CE),
  • Mas na verdade terminando em dois equipamentos diferentes (por exemplo, dois PEs/roteadores de borda).

A ideia é simples:

  • Do lado do CE, você enxerga um Eth-Trunk só, com várias portas;
  • Fisicamente, essas portas vão para dois PEs diferentes;
  • Do lado da operadora, esses dois PEs “se combinam” para parecer um dispositivo único em termos de LACP.

Objetivo principal do MC-LAG:

  • Se um PE inteiro morrer (falha de equipamento, reload, etc.),
  • outro PE assume e o CE continua com o mesmo LAG, sem mudar IP, MAC, gateway etc.

É basicamente levar a ideia de redundância do nível de porta/link para o nível de dispositivo.

Ativo/ativo vs ativo/backup

Em muitos vendors você encontra MC-LAG em dois sabores:

  • Ativo/ativo: os dois dispositivos encaminham tráfego ao mesmo tempo;
  • Ativo/backup: apenas um dispositivo é o “dono” do LAG em determinado momento; o outro fica de backup.

Na Huawei, para esse cenário específico com E-Trunk/mLACP, o comportamento é ativo/backup:

  • Um lado é o master (ativo),
  • O outro lado é o backup (os links ficam lógicos down do ponto de vista do CE),
  • Em falha, há switchover do papel de master para o outro equipamento.

MC-LAG na Huawei: E-Trunk vs mLACP

Em Huawei, existem duas formas principais de implementar MC-LAG:

  1. E-Trunk (Enhanced Trunk)
  2. mLACP (Multi-chassis LACP)

Ambas têm o mesmo objetivo:

“Enganar” o CE para que ele ache que está falando com um equipamento só, mesmo tendo dois PEs atrás.

A diferença está no mecanismo de controle entre os PEs:

  • E-Trunk
    • Usa um canal próprio (UDP) entre os PEs, com Hello e timeout;
    • Troca informações de estado dos Eth-Trunks que participam daquele E-Trunk;
    • Define quem é master e quem é backup com base em E-Trunk priority (menor valor = maior prioridade);
    • Controla se o Eth-Trunk local fica up ou down de acordo com o papel (master/backup) e estado do peer.
  • mLACP
    • Usa ICCP rodando sobre LDP entre os PEs (RG – Redundancy Group);
    • Sincroniza configuração e estado LACP via ICCP;
    • Define master/backup usando mLACP system prioritysystem ID e port priority;
    • Integra de forma mais “padrão SP” com outras funções de ICCP (VRRP, VPNs redundantes, etc.).

Neste artigo, vamos focar no E-Trunk, que é a forma “clássica” de MC-LAG em muitos cenários de PE–CE.

Como o E-Trunk funciona

Não confundir E-Trunk (a tecnologia de sync entre chassis) com o Eth-Trunk (o link-aggregation em si).

Pense no seguinte cenário:

  • CE dual-homed em dois PEs (PE1 e PE2);
  • No CE, você cria um Eth-Trunk só, com as portas indo para os dois PEs;
  • Nos PEs:
    • Você cria o mesmo Eth-Trunk ID em PE1 e PE2;
    • Coloca as interfaces físicas correspondentes em cada Eth-Trunk;
    • Adiciona esse Eth-Trunk a um E-Trunk com o mesmo E-Trunk ID nos dois lados.

Os PEs então:

  1. Criam um canal E-Trunk (UDP) entre si (usando IPs de loopback, normalmente);
  2. Trocam mensagens E-Trunk com:
    • E-Trunk ID,
    • E-Trunk priority,
    • Informações dos Eth-Trunks membros e seu estado;
  3. Definem quem é master e quem é backup:
    • Menor E-Trunk priority ganha,
    • Se empatar, menor E-Trunk system ID ganha.

Com isso:

  • No master:
    • O Eth-Trunk local que participa do E-Trunk fica up e encaminhando.
  • No backup:
    • O Eth-Trunk equivalente fica em estado de backup (lógico down para o CE ou sem encaminhar tráfego, dependendo do modo);
  • O CE vê só um LAG, mas na prática está pendurado em dois PEs, com um deles ativo.

Quando acontece uma falha:

  • Se o Eth-Trunk master ou o próprio PE master falhar:
    • O backup para de receber Hello ou recebe notificação de falha;
    • O backup muda seu Eth-Trunk para master e sobe o LAG;
    • O tráfego do CE é desviado para o outro PE.

Opcionalmente, você pode:

  • Integrar com BFD entre os PEs pra detecção mais rápida;
  • Usar um switchback delay para evitar “ping-pong” de master/backup.

Conectividade CE ↔ PEs com E-Trunk

Alguns pontos importantes de design:

  • Do ponto de vista do CE, o E-Trunk é invisível:
    • Ele só enxerga um Eth-Trunk LACP normal.
  • Nos PEs, se o Eth-Trunk for L3:
    • Os Eth-Trunks dos dois PEs normalmente usam o mesmo IP e o mesmo MAC;
    • Só o master anuncia rota direta; o backup não anuncia (pra evitar ECMP estranho);
  • Muito mais comum é usar Eth-Trunk L2:
    • Os PEs participam de uma VLAN/L2 domínio comum;
    • O gateway fica em outro equipamento (por exemplo, um core/agg).

Casos de uso

Na topologia abaixo, iremos abordar dois casos de uso para o MC-LAG (existem muitos outros).

  • protegendo uma entrega de VPLS para um cliente final (dupla abordagem com redundancia de POPs) 
  • protegendo um /30 para cliente final (dupla abordagem com redundancia de POPs)

1) MC-LAG protegendo VPLS (camada 2)

No topo do desenho, o CE1 está multihomed em PE1 e PE2 usando MC-LAG, todos na mesma instância VPLS-1.
Do lado da rede, PE1/PE2 fecham a VPLS com o PE3, que entrega o mesmo serviço para o CE2.

  • Do ponto de vista do CE1, existe um único LAG para a VPLS.
  • Na prática, o tráfego pode sair por dois POPs diferentes (PE1 e PE2).
  • Se um POP ou um dos PEs tiver problema, o outro continua entregando a mesma VPLS para o cliente, sem troca de VLAN, MAC ou serviço.

É uma proteção L2 fim-a-fim da VPLS, com redundância de equipamento e de POP.

2) MC-LAG protegendo /30 L3 (camada 3)

Na parte de baixo do desenho, o CE3 recebe um /30 L3 via MC-LAG, dual-homed em PE2 e PE3.

  • O CE3 enxerga um único LAG L3, com o mesmo /30, pendurado em dois POPs.
  • Somente o PE em estado master anuncia a rota direta para esse /30; o outro fica em backup.
  • Em falha de link, PE ou POP, há switchover de master/backup e o /30 continua acessível pelo outro lado.

Configurando o ambiente

Agora que você já conhece todos os conceitos por trás do MC-LAG, vamos para o laboratório. Vamos utilizar o ambiente virtual PNETLAB, com a imagem Huawei NE40 V22.

As portas físicas e ligações entre dispositivos estão descritas na topologia abaixo.

A configuração dos CEs é simples: um mikrotik (ROS 7.6)  usando interfaces bonding, com LACP fast (em 1s). O CE3 é simplesmente uma interface física com VLAN.

CE1

CE2

CE3

A configuração dos PEs compreende as interfaces ponto a ponto, ativas com OSPF, MPLS. Nas interfaces de acesso, as configurações de LAG e de sincronização e-trunk. E na camada de serviços, colocamos o VPLS (VSI) e também o gateway L3 (com o macete do mac-address e mesmo IP).

PE1 – Camada Core

Serviço MLAG e E-trunk

Aqui neste ponto está o grande diferencial do MLAG. Vamos primeiramente criar um Eth-Trunk comum, e depois associamos ele a uma configuração e-trunk, que faz a mágica do MLAG acontecer.

Com o LAG criado, agora precisamos criar a configuração do e-trunk. Para configurá-lo, precisamos:

  • do IP de peer remoto ( a sessão é fechada entre loopbacks)
  • definir a prioridade entre os roteadores (menor é melhor)
  • configurar os timers (em múltiplos de 100ms)
  • configurar a autenticação para segurança
  • adicionar uma descrição ao e-trunk
  • configurar o system-id e prioridade do e-trunk (essas configurações que “enganam” o peer remoto para pensar que é o mesmo dispositivo)

No nosso laboratório, iremos fechar entre a loopback do PE1 com o PE2 – estes fazem parte do MLAG na perspectiva do CE1. A prioridade de master será do PE2, com prioridade 5. Os timers configurados são 9 para hello e 30 para hold-timer.

Por fim, é hora de associar a interface LAG com o e-trunk, criando assim um MLAG na perspectiva do CE1.

Serviços VPLS

PE2 – Camada Core

As configurações CORE e VPLS do PE2 são similares às do PE1

Serviço MLAG e E-trunk

Serviços Gateway redundante

Para o serviço de gateway redundante para o CE3, iremos:

  • estabelecer um LAG entre o PE2xCE3 e um lag entre PE3xCE3
  • ativar o e-trunk entre PE2 x PE3 no lag criado
  • configurar os parâmetros de system-id e priority do e-trunk
  • configurar o mesmo endereço IP e mesmo mac-address na interface Eth-trunk, em ambos os roteadores 
  • adicionar a interface no OSPF

PE3 – Camada Core

As configurações CORE do PE3 são similares às do PE1.

Serviços VPLS

Diferente dos PE1 e PE2 que tem um MLAG com o CE, neste caso a comunicação PE3xCE2 ocorre diretamente na interface física com a vlan 10. As configurações de VPLS permanecem iguais, a diferença está nos peers, que fechamos o VPLS com o PE1 e PE2 ao mesmo tempo.

Serviços Gateway redundante

Validando as configurações e redundância

MC-LAG entre dispositivos

Na visão do CE1, ele tem duas portas ativas no LAG bond2, sendo a porta ether2 – que fala com PE2 – a principal. A outra fica pronta para uso, mas com as flags de não encaminhar tráfego.

No lado do PE1, ele encontra a Eth-Trunk1 com o estado UP, mas o protocol DOWN, com a causa E-TRUNK DOWN.  Isto se deve porque o MLAG é ativo/backup, e com isso o roteador com pior prioridade fica no estado de backup.

Podemos ver que no PE1, o e-trunk está como backup:

Já no PE2, vemos a interface Eth-Trunk 10 como UP. E a interface Eth-trunk10.10 como UP.

Podemos ver que o e-trunk está up, e como master: 

Serviço VPLS 

Para o teste do serviço VPLS, vamos:

  • pingar entre os CEs
  • validar por qual interface o tráfego está passando
  • derrubar a interface principal no PE2
  • verificar que o tráfego imediatamente convergiu para o outro link

Trafego pela ether2, com ping entre os CEs:

Derrubando a interface de acesso no PE2 (simulando um rompimento), e ao mesmo tempo checando a reconvergencia:

Praticamente sem perdas! O LACP/LAG simplesmente chaveou para o link da ether1 com o PE1. Nesse caso, o e-trunk ficou UP no PE1:

Serviço Gateway redundante

O serviço de gateway redundante pode ser checado diretamente no CE3.

A porta ativa no CE3 é a ether2, ligada no PE3:

Temos ping para o gateway e também para a loopback do PE1. Perceba também o traceroute passando por PE3xPE2xPE1 (caminho preferido por conta de custo manipulado no OSPF).

Aqui vamos derrubar a interface física no PE3, ao mesmo tempo que um ping fica rodando no CE2 para a loopback do PE1. E no final vemos a mudança do traceroute.

Mudança do LACP para a porta ether1.

Estado do e-trunk no PE3 e PE2:

E por que desta vez não foi “tão” transparente? Por que não tivemos o mesmo comportamento do serviço VPLS?

A resposta está em um elemento novo: o roteamento interno para o bloco do gateway. Para este cenário, o roteador que está ativo é quem gera a rota no OSPF:

O PE3, que teve a interface colocada em shutdown, não gera a rota:

Então respondendo, o delay se deve porque além de fazer o chaveamento do LACP via e-trunk, toda a rede OSPF teve que recalcular a nova rota para o novo roteador, adicionando alguns segundos na brincadeira (PE3 floodou a rede com o LSA derrubando a rede 10.23.23.0/24, toda a rede processou e recalculou o SPF, e então o PE2 ao reconvergir o e-trunk/lacp, gerou novamente a rede 10.23.23.0/24).

Conclusões

O MC-LAG é muito útil para garantir a alta disponibilidade não só de links, mas também de dispositivos e até mesmo POPs. Ele se mostrou viável para diversos tipos de serviço, tanto de L2 quanto de L3. O protocolo e-trunk da Huawei é muito leve e versátil, e usa mecanismos inteligentes como o BFD para tornar tudo mais rápido. Sua grande desvantagem é que não temos um MLAG Ativo/Ativo, ou seja, sempre um dos circuitos (ou conjunto de circuitos) vai ficar ocioso.

E aí, já conhecia o MC-LAG? Espero que tenha gostado do artigo, e se precisar de ajuda, a Made4it pode te ajudar. Somos especialistas em redes com alta disponibilidade e segurança.

QUERO TER ALTA DISPONIBILIDADE

A Made4it surge para suprir as necessidades do mercado, que vem exigindo cada vez mais soluções personalizadas.