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:
- Identificar qual rota default está ativa.
- Descobrir qual gateway está sendo utilizado.
- Alterar automaticamente o campo My ID da VPN.
- 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
- MikroTik RouterOS IPsec Documentation
- Documentação oficial sobre configuração de IPsec, Peers, Identities e Policies.
- MikroTik Scripting Documentation
- Referência completa da linguagem de scripts do RouterOS.
- MikroTik Scheduler Documentation
- Guia oficial para automação periódica utilizando Scheduler.
Referências sobre IKE e IPsec
- RFC 7296 – Internet Key Exchange Version 2 (IKEv2)
- Especificação oficial do protocolo IKEv2.
- RFC 4301 – Security Architecture for IPsec
- Base conceitual da arquitetura IPsec.
- RFC 8221 – Cryptographic Algorithm Implementation Requirements for ESP and AH
- Requisitos modernos de criptografia para IPsec.
Artigos Técnicos e Comunidade
- MikroTik Forum – IPsec Discussions
- Discussões reais sobre problemas de My ID, NAT, Failover e VPNs.

Comments are closed