[Script] Local ID de VPN HA IPsec no MikroTik

Introdução

Em ambientes corporativos é comum encontrarmos roteadores MikroTik conectados a múltiplos links de internet, seja para alta disponibilidade (HA), contingência ou balanceamento de carga.

Quando utilizamos VPNs IPsec com autenticação baseada em identidade (Identity), alguns fabricantes exigem que o equipamento remoto apresente um identificador específico durante a negociação da VPN. Normalmente, o MikroTik consegue selecionar automaticamente o endereço correto através da opção padrão “auto” no campo My ID.

Entretanto, em alguns cenários, especialmente quando há troca frequente da rota padrão (default route) entre links distintos, o mecanismo automático pode não selecionar o identificador esperado pelo equipamento remoto, causando falhas de autenticação ou impedindo o estabelecimento da VPN.

Neste artigo apresento uma solução simples utilizando scripts no MikroTik para detectar automaticamente qual link está ativo e ajustar dinamicamente o campo My ID da VPN IPsec.

O Problema

Imagine um ambiente com dois links de internet:

  • Link Principal
    • Gateway: 192.168.1.254
    • IP Público: 200.200.200.10
  • Link Secundário
    • Gateway: 192.168.2.254
    • IP Público: 202.202.202.10

Quando a VPN IPsec inicia sua negociação, o equipamento remoto espera receber um identificador correspondente ao IP público atualmente em uso.

Em condições normais, o MikroTik deveria selecionar automaticamente o identificador correto. Porém, em alguns cenários de failover, NAT complexo ou múltiplas tabelas de roteamento, isso nem sempre acontece.

O resultado pode ser:

  • VPN não estabelece.
  • Erros de autenticação IKE.
  • Necessidade de intervenção manual após um failover.
  • Indisponibilidade de serviços críticos.

A Solução

A ideia é simples:

  1. Identificar qual rota default está ativa.
  2. Descobrir qual gateway está sendo utilizado.
  3. Alterar automaticamente o campo My ID da VPN.
  4. Opcionalmente forçar uma renegociação do túnel.

Dessa forma, sempre que ocorrer uma mudança de link, a identidade apresentada durante a negociação IPsec será atualizada automaticamente.

Script de Exemplo

# Obtém a rota default ativa
:local rotaAtiva [/ip route find where dst-address="0.0.0.0/0" and active]

# Obtém o gateway da rota ativa
:local gatewayAtual [/ip route get $rotaAtiva gateway]

:log info ("VPN - Gateway ativo detectado: " . $gatewayAtual)

# Busca o my-id atual
:local myidAtual [/ip ipsec identity get [find peer="VPN-PEER"] my-id]

# Link principal
:if ($gatewayAtual = "192.168.1.254") do={

    :if ($myidAtual != "address:200.200.200.10") do={

        :log warning "VPN - Alterando My ID para 200.200.200.10"

        /ip ipsec identity set [find peer="VPN-PEER"] \
            my-id="address:200.200.200.10"

        /ip ipsec installed-sa flush
    }
}

# Link secundário
:if ($gatewayAtual = "192.168.2.254") do={

    :if ($myidAtual != "address:186.208.119.86") do={

        :log warning "VPN - Alterando My ID para 202.202.202.10"

        /ip ipsec identity set [find peer="VPN-PEER"] \
            my-id="address:202.202.202.10"

        /ip ipsec installed-sa flush
    }
}

Automatizando com Scheduler

Para que a verificação ocorra continuamente, basta criar um agendamento:

/system scheduler
add interval=30s name=Monitora-VPN on-event=Monitora-VPN

O script será executado a cada 30 segundos, garantindo que qualquer alteração de rota seja rapidamente identificada.

Vantagens da Solução

Maior disponibilidade

A VPN se adapta automaticamente às mudanças de link sem necessidade de intervenção manual.

Redução de chamados

Elimina situações em que o failover ocorre corretamente, mas a VPN permanece indisponível devido ao identificador incorreto.

Compatibilidade com diversos fabricantes

A solução funciona independentemente do fabricante remoto, desde que ele utilize autenticação baseada em Identity.

Simplicidade operacional

A implementação utiliza apenas recursos nativos do MikroTik, sem necessidade de integrações externas ou ferramentas adicionais.

Fácil personalização

É possível adicionar novos links, múltiplos peers ou até integrar a lógica com monitoramentos mais avançados.

Considerações Finais

Embora o modo automático de seleção de identidade funcione adequadamente na maioria dos cenários, ambientes com múltiplos links de internet podem apresentar comportamentos inesperados durante eventos de failover.

Utilizar um script para detectar a rota ativa e ajustar dinamicamente o campo My ID oferece uma solução simples, eficiente e altamente confiável para manter VPNs IPsec operacionais mesmo durante mudanças de conectividade.

Para ambientes que dependem de alta disponibilidade e conectividade contínua entre filiais, datacenters ou parceiros de negócio, essa abordagem pode reduzir significativamente indisponibilidades e simplificar a operação da infraestrutura.

Documentação Oficial MikroTik

Referências sobre IKE e IPsec

Artigos Técnicos e Comunidade

CATEGORIES:

Network

Comments are closed