Um IP, um servidor, ou um IP, vários
Unicast
Um IP corresponde a exatamente um servidor
Anycast
Um IP, anunciado de vários locais
Anycast DNS: como funciona e por que é rápido
Normalmente, um endereço IP identifica uma máquina específica, alcançável por um caminho de rede específico. O anycast quebra essa suposição de propósito: o mesmo endereço IP é anunciado, ao mesmo tempo, a partir de vários locais fisicamente separados ao redor do mundo. O roteamento da internet então entrega cada requisição ao local anunciante que estiver topologicamente mais próximo de quem a enviou, não necessariamente o mais próximo em distância física, mas o mais próximo pelo caminho de rede.
Por que a infraestrutura de DNS depende tanto disso
Resolvedores públicos como 1.1.1.1 e 8.8.8.8 são endereços anycast. Quando você consulta 1.1.1.1 de Tóquio e outra pessoa consulta o mesmo endereço de Berlim, cada um de vocês está, na prática, acessando um servidor físico diferente, o mais próximo na rede, embora os dois digitem exatamente o mesmo endereço IP na configuração. É isso que permite a um único IP fácil de memorizar entregar latência consistentemente baixa no mundo todo, em vez de todo mundo ser roteado para um único data center físico, independentemente de onde esteja.
| Unicast | Anycast | |
|---|---|---|
| Um IP corresponde a | Exatamente um servidor físico | Vários servidores físicos ao mesmo tempo |
| O roteamento decide | Um único caminho fixo | O local anunciante topologicamente mais próximo |
| Um local fica offline | O serviço se torna inacessível | O tráfego passa para o próximo local mais próximo |
| Exposição a DDoS | O tráfego do ataque se concentra em um único alvo | O tráfego do ataque se distribui naturalmente por todos os locais |
- Resiliência: se um local anycast ficar offline, o roteamento simplesmente passa para o próximo mais próximo, muitas vezes sem que o cliente perceba.
- Não é exclusivo do DNS: CDNs e alguns outros serviços sensíveis à latência usam a mesma técnica.
O que isso muda na prática
Você não precisa configurar nada de diferente para aproveitar o anycast: ele acontece inteiramente na camada de roteamento da rede, de forma invisível para a aplicação que faz a consulta. Vale conhecê-lo principalmente porque ele explica por que um grande resolvedor público consegue se manter rápido e disponível no mundo todo sem que você precise escolher um endpoint de uma região específica, como talvez faça com um banco de dados na nuvem ou uma instância de computação.
O BGP é o mecanismo por trás do “topologicamente mais próximo”
O “mais próximo pelo caminho de rede” não é decidido por nada que meça a distância física em tempo real. Toda rede que anuncia um endereço anycast faz isso via BGP, o protocolo de roteamento que une as redes individuais da internet, e cada roteador ao longo do trajeto escolhe o caminho que, naquele momento, parece o mais curto segundo as métricas do próprio BGP, normalmente o menor número de saltos de rede, e não o menor número de quilômetros. Na prática, isso costuma coincidir com a proximidade física, mas não perfeitamente: uma requisição pode ocasionalmente ser roteada para um local um pouco mais distante se esse caminho parecer mais curto em termos de BGP, principalmente em torno de quedas de rede ou de acordos de peering incomuns.
Por que o anycast não funciona bem para tudo
O anycast é uma ótima opção para trocas curtas e sem estado, como uma única consulta DNS com a sua resposta: não há nada a perder se um pacote seguinte for roteado para um servidor físico diferente do primeiro. Ele é uma má opção para conexões longas e com estado: se o caminho de rede mudar no meio da conexão (uma oscilação de rota, uma mudança de peering), uma sessão TCP anycast que passe a chegar a um endpoint físico diferente daquele que a iniciou simplesmente quebra, porque o novo servidor não sabe que a conexão chegou a existir. Essa é uma das razões pelas quais o anycast é tão associado ao DNS e a outros protocolos de requisição e resposta baseados em UDP, e muito menos usado em coisas como uma conexão longa com banco de dados ou uma transmissão de vídeo.
Precisa conferir os endereços DNS públicos de um domínio? Use a ferramenta Domain IP Lookup.
Leitura relacionada
Por que uma consulta mostra a CDN, e não a origem
Visitante
consulta o domínio
Borda da CDN
104.21.x.x
é isto que o DNS retorna
Servidor de origem
IP real, nunca exposto
Como as CDNs usam o DNS para rotear o tráfego
A mágica de uma rede de distribuição de conteúdo acontece na camada de DNS, antes de um único byte de conteúdo ser solicitado.
Um hostname, vários registros A
1ª resposta
93.184.216.34
2ª resposta
93.184.216.35
3ª resposta
93.184.216.36
O resolvedor devolve todos os registros, geralmente em ordem rotativa
DNS round-robin explicado: dividindo o tráfego entre IPs
Veja como o DNS round-robin retorna vários endereços, o que ele pode e não pode fazer pela distribuição de carga e como o cache afeta os resultados observados.
Um hostname, vários registros A
1ª resposta
93.184.216.34
2ª resposta
93.184.216.35
3ª resposta
93.184.216.36
O resolvedor devolve todos os registros, geralmente em ordem rotativa
Balanceamento de carga por DNS: métodos e limitações
Compare a distribuição de tráfego por DNS com balanceadores de carga de aplicação e veja como TTLs, health checks e respostas regionais afetam a disponibilidade.