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.
    • Utilzar 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 conceito 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

    # configura o hostname
    /system identity set name=CE1
    
    # cria o LAG bond2 usando LACP entre as portas ether1 e ether2
    /interface bonding add lacp-rate=1sec mode=802.3ad name=bond2 slaves=ether1,ether2
    
    # adiciona a vlan 10 , utilizada no VPLS, ligada no LAG bond2
    /interface vlan add interface=bond2 mtu=1488 name=vlan10 vlan-id=10
    
    # configura o IP na vlan10
    /ip address add address=10.10.10.1/24 interface=vlan10 network=10.10.10.0

    CE2

    # configura o hostname
    /system identity set name=CE2
    
    # adiciona a vlan 10 , utilizada no VPLS, ligada diretamente na ether1
    /interface vlan add interface=ether1 name=vlan10 vlan-id=10
    
    # configura o IP na vlan10
    /ip address add address=10.10.10.2/24 interface=vlan10 network=10.10.10.0

    CE3

    # configura o hostname
    /system identity set name=CE3
    
    # cria o LAG bond1 usando LACP entre as portas ether1 e ether2
    /interface bonding add lacp-rate=1sec mode=802.3ad name=bond1 slaves=ether1,ether2
    
    # adiciona o IP /30 direto na interface bond1
    /ip address add address=10.23.23.2/30 interface=bond1 network=10.23.23.0
    
    # configura o gateway default
    /ip route add gateway=10.23.23.1

    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

    # configura o hostname
    sysname PE1
    
    # habilita o bfd
    bfd
    
    # configura e ativa o mpls e o l2vpn
    mpls lsr-id 1.1.1.1
    mpls
    mpls l2vpn
    mpls ldp
    
    # configura o ospf e ativa a area 0
    ospf 1 router-id 1.1.1.1
     opaque-capability enable
     area 0.0.0.0
    
    # configura a loopback 
    interface LoopBack1
     ip address 1.1.1.1 255.255.255.255
     ospf enable 1 area 0.0.0.0
     
    # configura as interfaces fisicas com o /30 e ativando ospf/mpls
    interface Ethernet3/0/1
     description to_PE3
     undo shutdown
     ip address 10.1.3.1 255.255.255.0
     ospf cost 1000
     ospf network-type p2p
     ospf enable 1 area 0.0.0.0
     mpls
     mpls ldp
     undo dcn
     undo dcn mode vlan
    #
    interface Ethernet3/0/2
     description to_PE2
     undo shutdown
     ip address 10.1.2.1 255.255.255.0
     ospf network-type p2p
     ospf enable 1 area 0.0.0.0
     mpls
     mpls ldp
     undo dcn mode vlan

    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.

    # cria a Eth-Trunk10
    interface Eth-Trunk10
     mode lacp-static
     lacp timeout fast
    
    # associa a interface ao eth-trunk
    interface Ethernet3/0/3
     description to_CE1
     undo shutdown
     eth-trunk 10

    Com o LAG criado, agora precisamos criar a configuração do e-trunk. Para configura-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 multiplos 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.

    # configura os parametros de system-id e prioridade do e-trunk
    lacp e-trunk system-id 00e0-beba-cafe
    lacp e-trunk priority 1
    
    # cria a sessao BFD entre os peers PE1 e PE2
    bfd hello bind peer-ip 2.2.2.2 source-ip 1.1.1.1
     discriminator local 1
     discriminator remote 2
    
    # cria o etrunk-1
    e-trunk 1
     # a descricao
     description PE1_to_PE2
     
     # configura a prioridade
     priority 10
     
     # diz quais os peers da comunicacao
     peer-address 2.2.2.2 source-address 1.1.1.1
     
     # configura timers
     timer hello 9
     timer hold-on-failure multiplier 30
     
     # autenticacao/senha
     authentication-mode enhanced-hmac-sha256
     security-key cipher %^%#dX@~~;axSXr!.(&d<4PYE)n7:!hcBBD-`2>JeFa!%^%#
    
     # associa a sessao BFD com o e-trunk
     e-trunk track bfd-session session-name hello

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

    # associa o e-trunk ao Eth-Trunk, criando assim o MLAG
    interface Eth-Trunk10
     e-trunk 1

    Serviços VPLS

    # cria o VPLS chamado VPLS-1
    vsi VPLS-1 static
     pwsignal ldp
      vsi-id 1
      mac-withdraw enable
      interface-status-change mac-withdraw enable
      peer 3.3.3.3
     ignore-ac-state
    
    # cria a interface da vlan10 e associa o VPLS
    interface Eth-Trunk10.10
     vlan-type dot1q 10
     l2 binding vsi VPLS-1

    PE2 – Camada Core

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

    Serviço MLAG e E-trunk

    # configura os parametros de system-id e prioridade do e-trunk
    lacp e-trunk system-id 00e0-beba-cafe
    lacp e-trunk priority 1
    
    # cria o lagg e associa a interface fisica de acesso
    interface Eth-Trunk10
     mode lacp-static
     lacp timeout fast
    
    interface Ethernet3/0/3
     description to_CE1
     undo shutdown
     eth-trunk 10
    
    # cria a sessao BFD 
    bfd hello bind peer-ip 1.1.1.1 source-ip 2.2.2.2
     discriminator local 2
     discriminator remote 1
    
    # cria o etrunk1 com o PE1
    e-trunk 1
     priority 5
     peer-address 1.1.1.1 source-address 2.2.2.2
     timer hello 11
     timer hold-on-failure multiplier 33
     security-key cipher %^%#tv.DQ.!Y,C7ga=SnUvtMsT84Xld,eBTM\\6fSq#2%^%#
     e-trunk track bfd-session session-name hello
     authentication-mode enhanced-hmac-sha256
     description PE1_to_PE2
     
    # associa o e-trunk ao LAG
    interface Eth-Trunk10
     e-trunk 1

    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 parametros de system-id e priority do e-trunk
    • configurar o mesmo endereço IP e mesmo mac-address na interface Eth-trunk, em ambos roteadores 
    • adicionar a interface no OSPF
    # configura os parametros de system-id e prioridade do e-trunk
    lacp e-trunk system-id 00e0-beba-cafe
    lacp e-trunk priority 1
    
    # cria o LAG Eth-Trunk23
    interface Eth-Trunk23
     mode lacp-static
     lacp timeout fast
    
    # adiciona a interface ao LAG
    interface Ethernet3/0/4
     description to_CE3
     eth-trunk 23
    
    # cria a sessao BFD entre o PE2 e PE3
    bfd peer_r2_r3 bind peer-ip 3.3.3.3 source-ip 2.2.2.2
     discriminator local 23
     discriminator remote 32
    
    # cria o e-trunk23 entre os roteadores
    e-trunk 23
     priority 5
     peer-address 3.3.3.3 source-address 2.2.2.2
     timer hold-on-failure multiplier 30
     security-key cipher %^%#tv.DQ.!Y,C7ga=SnUvtMsT84Xld,eBTM\\6fSq#2%^%#
     e-trunk track bfd-session session-name peer_r2_r3
     authentication-mode enhanced-hmac-sha256
     description PE2_to_PE3
    
    # associa o e-trunk ao Eth-Trunk, formando assim o MLAG
    interface Eth-Trunk23
     e-trunk 23
    
    # finalmente, configura o endereçamento IP, mac e adiciona no OSPF a interface
    interface Eth-Trunk23
     ip address 10.23.23.1 255.255.255.252
     ospf enable 1 area 0.0.0.0
     mac-address 00e0-beba-cafe

    PE3 – Camada Core

    As configurações CORE do PE3 são similares as 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.

    # cria o VPLS e adiciona os PE1 e PE2
    vsi VPLS-1 static
     pwsignal ldp
      vsi-id 1
      mac-withdraw enable
      interface-status-change mac-withdraw enable
      peer 1.1.1.1
      peer 2.2.2.2
     ignore-ac-state
     
    # habilita a interface com o CE2
    interface Ethernet3/0/3
     description to_CE2
     undo shutdown
    
    # cria a interface vlan 10 e associa ao VPLS
    interface Ethernet3/0/3.10
     vlan-type dot1q 10
     l2 binding vsi VPLS-1

    Serviços Gateway redundante

    # configura os parametros de system-id e prioridade do e-trunk
    lacp e-trunk system-id 00e0-beba-cafe
    lacp e-trunk priority 1
    
    # cria o LAG Eth-Trunk23
    interface Eth-Trunk23
     mode lacp-static
     lacp timeout fast
    
    # adiciona a interface ao LAG
    interface Ethernet3/0/4
     description to_CE3
     eth-trunk 23
    
    # cria a sessao BFD entre o PE2 e PE3
    bfd peer_r3_r2 bind peer-ip 2.2.2.2 source-ip 3.3.3.3
     discriminator local 32
     discriminator remote 23
    
    # cria o e-trunk23 entre os roteadores
    e-trunk 23
     priority 5
     peer-address 2.2.2.2 source-address 3.3.3.3
     timer hold-on-failure multiplier 30
     security-key cipher %^%#tv.DQ.!Y,C7ga=SnUvtMsT84Xld,eBTM\\6fSq#2%^%#
     e-trunk track bfd-session session-name peer_r2_r3
     authentication-mode enhanced-hmac-sha256
     description PE3_to_PE2
    
    # associa o e-trunk ao Eth-Trunk, formando assim o MLAG
    interface Eth-Trunk23
     e-trunk 23
    
    # finalmente, configura o endereçamento IP, mac e adiciona no OSPF a interface
    interface Eth-Trunk23
     ip address 10.23.23.1 255.255.255.252
     ospf enable 1 area 0.0.0.0
     mac-address 00e0-beba-cafe

    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. Percaba 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 quê desta vez não foi “tão” transparente ? Por quê 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.

    Eaí, 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