Primeiro de tudo, o VRRP não depende de DNS de forma alguma. Para redundância em um único site, você pode executar servidores DNS em um endereço VRRP compartilhado.
Mas, como outros mencionaram nos comentários, os serviços também usam o roteamento anycast , o que significa essencialmente que o mesmo endereço IP existe em vários lugares do mundo. Quando um site inteiro fica inoperante, as rotas em todo o mundo são recalculadas para que seus pacotes acabem indo para outro site em funcionamento.
Um exemplo melhor do que o DNS público do Google seria a raiz servidores DNS - aqueles que servem os .
ponteiros zona e segure para com
, org
, eu
e assim por diante -, porque eles têm um mapa de todas as instâncias dos endereços lógicos 13. O "L" da ICANN é exibido em 160 sites diferentes!
Observe que o anycast não tem nada a ver com round-robins baseados em DNS (onde o mesmo nome tem vários endereços). Anycast é feito essencialmente mentindo para o protocolo de roteamento.
A Internet usa o BGP para trocar informações de roteamento entre organizações.
BGP suporta inerentemente a seleção do melhor de várias rotas para a mesma rede, com base em vários critérios. Por exemplo, o mesmo cliente pode ter uplinks redundantes para o mesmo ISP (anunciando duas rotas que diferem apenas em peso / preferência). Ou o cliente pode ter uplinks através de vários ISPs, e todos selecionarão sua rota preferida (principalmente o caminho AS mais curto) - essa é a essência da multi-WAN "verdadeira".
Multihoming
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter--+ │
¦ │ ¦--DNSserver │
client 2 ---ISP---│--BGProuter--+ │
└──────────────────────────┘
No entanto, o BGP apenas direciona o tráfego para as portas de entrada, mas não se importa com o que acontece além disso. Portanto, se você configurar internamente as duas rotas para o mesmo servidor, obterá o multihoming. Mas se cada "entrada" leva a um servidor diferente (configurado para o mesmo IP), você obtém o anycast.
Anycast... kind of?
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
¦ │ │
client 2 ---ISP---│--BGProuter-----DNSserver │
└──────────────────────────┘
Importante, isso também significa que o BGP não se importa se o AS não é contíguo. Para obter redundância em todo o mundo, basta anunciar a mesma rede a partir de vários locais físicos - se você conectar esses locais (para que eles direcionem essa rede para um local), você terá o multihoming; se são ilhas, você obtém anycast.
Anycast
┌────────[AS 65535]────────┐
client 1 ---ISP---│--BGProuter-----DNSserver │
¦ └──────────────────────────┘
¦
¦ ┌────────[AS 65535]────────┐
client 2 ---ISP---│--BGProuter-----DNSserver │
└──────────────────────────┘
(Na verdade, ele nem precisa ser o mesmo AS - por exemplo, os relés 6to4 são executados por várias organizações independentes, cada uma anunciando seu próprio caminho 192.88.99.0/24
.)
Ressalvas:
O Anycast fornece redundância, mas não balanceamento de carga. Depois que o BGP converge, cada roteador escolhe uma única rota preferida (ou ocasionalmente algumas) e continua a usá-la até que a rede mude.
No entanto, você não pode prever quanto tempo as rotas permanecerão estáveis; portanto, qualquer serviço de transmissão de estado pode ser complicado. O DNS se livra disso devido ao estado sem estado e ao uso principalmente de UDP (o EDNS reduziu a necessidade de conexões TCP).
Deve haver coordenação entre o serviço real e o roteador BGP, para que a rota seja retirada se o serviço travar.
Veja também "História do 4.2.2.2. Qual é a história?" na lista de discussão NANOG: postagem 1 , publicação 2 .