Kaique Mitsuo Silva Yamamoto
Redes isp

Failover e Load Balance para ISPs

Configuração de failover automático e load balance com múltiplos uplinks em provedores de internet: MikroTik PCC, ECMP, BGP multihoming e monitoramento de links.

Alta disponibilidade de link é o requisito mais crítico para um provedor de internet. Um ISP com um único uplink está a uma falha de cabo ou de equipamento de ficar completamente offline. Com dois ou mais uplinks configurados corretamente, o provedor pode perder um link e manter a operação sem que os clientes percebam.


Estratégias de failover

1. Failover simples (rota padrão com prioridade)

A abordagem mais básica: duas rotas padrão, uma com distância menor (ativa) e outra com distância maior (backup):

# MikroTik — Failover com check de gateway
/ip route
add dst-address=0.0.0.0/0 gateway=200.X.X.1 distance=1 \
    check-gateway=ping comment="Uplink primário"
add dst-address=0.0.0.0/0 gateway=201.X.X.1 distance=2 \
    check-gateway=ping comment="Uplink backup"

O check-gateway=ping monitora o gateway e remove a rota automaticamente se o ping falhar. Limitação: failover leva de 30 a 60 segundos.

2. Failover com Netwatch (mais rápido)

# Netwatch monitora a conectividade e executa scripts
/tool netwatch
add host=8.8.8.8 interval=10s timeout=5s \
    up-script="/ip route set [find comment=\"Uplink primário\"] disabled=no" \
    down-script="/ip route set [find comment=\"Uplink primário\"] disabled=yes" \
    comment="Monitor uplink primário"

Load Balance — PCC (Per Connection Classifier)

O PCC distribui conexões entre múltiplos links de forma que cada fluxo TCP/UDP sempre use o mesmo link (evitando problemas de assimetria de rota):

# Marcar conexões por cliente — divide entre 2 links
/ip firewall mangle

# Upload — divide saída dos clientes entre uplink1 e uplink2
add action=mark-connection chain=prerouting \
    dst-address-type=!local \
    in-interface-list=CLIENTES \
    new-connection-mark=link1-conn \
    passthrough=yes \
    per-connection-classifier=both-addresses-and-ports:2/0

add action=mark-connection chain=prerouting \
    dst-address-type=!local \
    in-interface-list=CLIENTES \
    new-connection-mark=link2-conn \
    passthrough=yes \
    per-connection-classifier=both-addresses-and-ports:2/1

# Marcar rota para cada conexão
add action=mark-routing chain=prerouting \
    connection-mark=link1-conn \
    new-routing-mark=rota-link1 passthrough=no
add action=mark-routing chain=prerouting \
    connection-mark=link2-conn \
    new-routing-mark=rota-link2 passthrough=no

# Rotas específicas por routing mark
/ip route
add dst-address=0.0.0.0/0 gateway=200.X.X.1 \
    routing-table=rota-link1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=201.X.X.1 \
    routing-table=rota-link2 check-gateway=ping

Load Balance com BGP — Multihoming

Para provedores com ASN próprio e dois ou mais upstreams, o BGP multihoming é a forma mais robusta de failover e load balance:

AS 65001 (ISP)
    ├── BGP Session → AS 1111 (Uplink primário, 10 Gbps)
    └── BGP Session → AS 2222 (Uplink backup, 5 Gbps)

Controle de entrada (Inbound) — AS Path Prepending

Para fazer o uplink secundário receber menos tráfego inbound:

# Anunciar prefixo com AS path mais longo para o uplink backup
/routing filter rule
add chain=filter-out-backup disabled=no \
    rule="if (dst == 177.X.X.0/22) {
        set bgp-prepend-count 3;
        accept
    }" \
    comment="Prepend 3x para uplink backup → menos tráfego inbound"

Controle de saída (Outbound) — Local Preference

Para forçar o tráfego de saída a preferir o uplink primário:

/routing filter rule
add chain=filter-in-primary disabled=no \
    rule="set bgp-local-pref 200; accept" \
    comment="Uplink primário — Local Pref alto"

add chain=filter-in-backup disabled=no \
    rule="set bgp-local-pref 100; accept" \
    comment="Uplink backup — Local Pref menor"

ECMP — Equal-Cost Multi-Path

O ECMP distribui rotas de igual custo entre múltiplos caminhos. No MikroTik v7:

/ip route
add dst-address=0.0.0.0/0 gateway=200.X.X.1,201.X.X.1 \
    comment="ECMP entre dois uplinks de igual capacidade"

Atenção: ECMP por fluxo funciona bem. ECMP por pacote pode causar reordenação e degradação de TCP — evite.


# Triggers recomendados para links ISP:
# 1. Interface down → PROBLEM
# 2. Interface utilization > 90% por 5 min → WARNING
# 3. Packet loss > 5% → WARNING
# 4. RTT > 50ms para gateway → AVERAGE
# 5. BGP session down → HIGH

Precisa configurar failover no seu provedor? → Consultoria gratuita

On this page