Estou tentando tornar minha rede de pequena empresa um pouco mais robusta, adicionando um ISP de fallback. O que não consigo descobrir é como gerenciar o DNS para conexões de entrada. Uma visão simplificada da minha rede é assim:
+-------+ +-------+
| ISP 1 | | ISP 2 |
+-------+ +-------+
| |
+-----------------+
| Dual WAN Router |
+-----------------+
|
+----------+
| Server |
+----------+
Quando eu tinha apenas 1 ISP, eu tinha apenas um endereço IP WAN para me preocupar e eu simplesmente atualizei meu registro DNS A sempre que meu IP dinâmico mudava. Estou usando o AWS (Route 53) para o DNS, por isso é muito fácil escrever um script para obter seu IP atual e, em seguida, usar suas ferramentas CLI para atualizar seus registros DNS de acordo.
Agora que tenho dois endereços IP da WAN, não sei exatamente como proceder. Eu tenho dois problemas principais:
-
Eu quero que o ISP 1 seja o principal (ele tem uma conexão melhor), mas eu quero voltar ao ISP 2 se 1 não estiver disponível. Eu uso o servidor para VoIP, bem como HTTP e SSH. O VoIP precisa ter uma disponibilidade bastante alta (daí o ISP redundante). Mas eu não sei como conseguir um failover como esse.
-
Como posso manter os dois registros DNS atualizados? Com apenas um ISP, posso determinar com segurança o IP da WAN do servidor com um comando como este: dig +short myip.opendns.com @resolver1.opendns.com
. Com dois ISPs, não consigo imaginar como obteria os IPs para ambos do servidor.
Idéias para o nº 1
Eu li sobre DNS round robin com vários registros A, mas em todos os lugares que eu acho mencionado é recomendado contra. Outra opção parece ser o BGP, mas não entendo, e sinto que não tenho o que preciso para implementá-lo ( este post parece ser aplicável).
Outra solução para o número 1 poderia ser ter um balanceador de carga com um único IP para o qual os domínios apontam. Em seguida, esse balanceador de carga escolhe para qual provedor redirecionar o tráfego com base em alguma verificação de integridade. A questão é que isso precisa ser agnóstico em relação ao protocolo (ou seja, trabalhar perfeitamente com tráfego VoIP, HTTP, etc.). É por isso que uma solução de nível de DNS parecia atraente.
Eu tropecei em esta postagem no blog da AWS que parecia promissora, mas minha cabeça explodiu quando tentei descobrir como manteria os IPs dinâmicos atualizados nas verificações de integridade e nos vários registros de DNS correspondentes.
Depois de ler este post , a maneira "certa" de fazer isso no meu nível parece ser um balanceador de links < a href="http://www.elfiq.com/products/lbx400/"> como este , mas o modelo mais barato nessa linha é em torno de $ 1.200, que é um pouco mais do que eu estava procurando. Além disso, ainda estou um pouco confuso sobre como apontar os Servidores de Nomes para meus domínios para meu balanceador de links quando ele estiver obtendo IPs dinâmicos dos ISPs.
Idéias para # 2
Acho que posso configurar o meu Roteador Dual WAN para chamar um webhook quando os IPs mudam, mas isso seria meio complicado de implementar.
Existe alguma solução mágica que estou perdendo?