Como gerenciar ISPs redundantes com DNS dinâmico

2

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:

  1. 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.

  2. 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?

    
por Dominic P 08.06.2017 / 23:06

2 respostas

1

Depende dos recursos do seu roteador WAN duplo, mas acredito que a solução mais simples poderia ser fazer com que o roteador use o ISP / WAN 2 somente quando detectar que o ISP / WAN 1 está inoperante. Dessa forma, você poderia ter o servidor e seu script DNS dinâmico como estão; ele atualizará o mesmo registro para resolver o IP público de WAN2 quando a WAN1 falhar.

É claro que isso levará até TTL segundos até que seja efetivo, mas com um curto TTL como 300 que não deve causar um tempo de inatividade muito longo em porcentagem.

    
por 08.06.2017 / 23:21
2

Eu uso as verificações de integridade do AWS Route53 para a resolução de DNS de entrada e o failover da Internet.

Crie uma verificação de integridade.

CrieumaentradadeDNSpúblicoparacadaserviço.

AssocieaverificaçãodesaúdeàentradadeDNS.

    
por 08.06.2017 / 23:25