Temos links de fibra 10G redundantes para nosso provedor de internet upstream em uma configuração ativa/failover. Entre nosso roteador e o roteador upstream, temos um par de firewalls executando o Vyos em modo transparente. Usamos BGP para anúncio de rota e não podemos alterar a maioria dos parâmetros.
Se o link para um dos roteadores cair (por exemplo, aquele com o x
no desenho - esse é o nosso tipo mais comum de falha), toda a rede fica inacessível até o tempo limite do BGP (até 150 segundos). Eu já sei que se forçarmos o link do outro lado da ponte para baixo, nossos roteadores começarão imediatamente a encaminhar o tráfego pelo outro link.
Existe alguma maneira de derrubar automaticamente um lado da ponte no firewall se o outro lado cair?
Existem armadilhas ocultas para essa solução?
Eu executaria um script nas máquinas VyOS que verifica o estado da conexão upstream e depois faz
ifdown
/ifup
no outro lado conforme necessário.A maneira mais simples de fazer isso é colocando scripts
/etc/network/if-down.d
(verifique se a interface que caiu é o lado atualizado e derrube o outro lado) e/etc/network/if-up.d
(verifique se a interface que subiu é o lado atualizado e abra o outro lado dele é).Alternativamente, você pode executar um script de monitoramento uma vez por minuto com cron (ou Systemd Timers, ou qualquer agendador semelhante), ou você pode escrevê-lo como um loop infinito que dorme por alguns segundos para obter uma verificação de subminutos.
Eu escrevi um script que verifica as interfaces
/sys
para determinar se elas são membros da ponte e, em seguida, devolve a ponte. O VyOS usanetplugd
para monitorar interfaces e, por algum motivo, meu script o confunde (provavelmente escreverei uma pergunta separada para isso), mas acho que é uma boa solução geral.