Anycast é uma técnica de rede em que o mesmo prefixo IP é anunciado em vários locais. A rede decide então para qual local encaminhar uma solicitação de usuário, com base nos custos do protocolo de roteamento e possivelmente na "integridade" dos servidores de publicidade.
Existem vários benefícios para o anycast. Primeiro, em estado estacionário, os usuários de um serviço anycast (o DNS é um excelente exemplo) sempre se conectam ao servidor DNS 'mais próximo' (de uma perspectiva de protocolo de roteamento). Isso reduz a latência, além de fornecer um nível de balanceamento de carga (supondo que seus consumidores estejam distribuídos uniformemente pela rede).
Outra vantagem é a facilidade de gerenciamento de configurações. Em vez de precisar configurar servidores DNS diferentes, dependendo de onde um servidor / estação de trabalho é implantado (Ásia, América, Europa), você tem um endereço IP configurado em cada local.
Dependendo de como o anycast é implementado, ele também pode fornecer um nível de alta disponibilidade. Se o anúncio da rota anycast estiver condicionado a algum tipo de verificação de integridade (por exemplo, uma consulta DNS para um domínio conhecido, neste exemplo), assim que um servidor falhar, sua rota poderá ser removida. Depois que a rede reconvergir, as solicitações do usuário serão encaminhadas diretamente para a próxima instância mais próxima do DNS, sem a necessidade de qualquer intervenção ou reconfiguração manual.
Uma vantagem final é a do dimensionamento horizontal; se você achar que um servidor está sendo carregado demais, basta implantar outro em um local que permita que ele atenda uma parte das solicitações do servidor sobrecarregado. Novamente, como nenhuma configuração de cliente é necessária, isso pode ser feito muito rapidamente.
Uma das coisas que muitas vezes me confundiu na compreensão de "anycast" é que, embora seja um termo de alto nível, na implementação prática, geralmente se resume a dois exemplos:
Roteadores que usam BGP para anunciar o mesmo bloco IP por vários caminhos AS como uma maneira aproximada de direcionar os usuários para um site "mais próximo". Ao mesmo tempo, fornece failover quase transparente para os outros sites, apenas retirando as rotas de um site problemático. Isso pode ser útil para praticamente qualquer protocolo, embora obviamente suscite muitas preocupações de sincronização de dados de back-end.
Anunciar o mesmo IP de serviço de vários pontos em sua própria rede (via roteamento estático , OSPF , EIGRP ou qualquer outra coisa). Se as rotas tiverem um peso diferente, elas atuam como um mecanismo de failover. Se as rotas forem ponderadas de maneira uniforme, ele poderá tirar proveito dos recursos de balanceamento de carga por pacote ou por fluxo da maioria dos roteadores de fornecedores de marcas. Você deve ter cuidado para que o protocolo da camada de aplicação seja confortável com isso, é por isso que você quase sempre ouve falar dele usado com DNSonde uma solicitação é sempre um pacote e tudo é sem estado. Pessoalmente, vejo isso como uma intrusão hacky de preocupações da camada de aplicativos na camada de rede quando uma combinação de DNS e balanceadores de carga adequados quase sempre será uma solução melhor.
fonte
Usado principalmente para serviços baseados em UDP, como DNS. Basicamente, você anuncia a mesma rota de vários datacenters em todo o mundo. Dessa forma, seus clientes serão enviados ao data center "melhor" e "mais próximo", com base nas rotas BGP. Coloquei "melhor" e "mais próximo" entre aspas, porque os provedores de rede podem jogar e rotear o tráfego de determinadas redes de maneira diferente. Geralmente, as coisas funcionam melhor com o anycast, mas não é uma garantia.
Um exemplo disso seria listar seus servidores DNS como 1.2.3.4 e 1.2.3.5. Seus roteadores anunciam uma rota para 1.2.3 / 24 de vários datacenters. Se você estiver no Japão e tiver um datacenter lá, é provável que você acabe lá. Se você estiver nos EUA, você será enviado ao seu datacenter dos EUA. Novamente, é baseado no roteamento BGP e não no roteamento geográfico real, mas é geralmente assim que as coisas acontecem.
fonte
De acordo com a minha resposta original, acabei de publicar mais dois artigos no meu blog intitulados: Anycast DNS - Parte 3, Usando RIP e Anycast DNS - Parte 3, Usando RIP (continuação). O último entra em mais detalhes, mas em www.netlinxinc.com/netlinx-blog.html, você encontrará receitas reais sobre como configurar roteadores Cisco e software de roteamento baseado em host Quagga de código aberto para Anycast DNS usando RIP.
Atualmente, estou trabalhando para escrever o quarto artigo da série. Isso fornecerá receitas sobre como implantar o DNS Anycast usando o OSPF. Por último na série, mostrarei receitas para implantar o DNS do Anycast usando o BGP.
Anycast DNS - Parte 1, Visão geral
Anycast DNS - Parte 2, Usando rotas estáticas
Anycast DNS - Parte 3, Usando RIP
Anycast DNS - Parte 3, Usando RIP (continuação)
fonte
Dado que isso é principalmente DNS no momento ...
Informalmente, torna seu serviço mais resiliente e com melhor acesso / latência / velocidade à rede, permitindo que você configure o mesmo serviço em vários locais do mundo, todos usando o mesmo endereço. Quando alguém consulta esse endereço, recebe o caminho mais próximo / melhor.
Da perspectiva do servidor:
Se o unicast vai para uma única pessoa, e o multicast para várias e a transmissão é para todas as pessoas, o anycast está sendo esquizofrênico e tem várias personalidades, onde a personalidade mais adequada para cada pessoa se conecta a elas. Hmm. Não é a melhor analogia.
fonte
Um uso realmente interessante de anycast é o DNS. Você pode colocar 5 servidores DNS diferentes em vários locais físicos e de rede, mas compartilhar um único endereço (ou às vezes o DNS primário e o secundário). Dependendo de onde a fonte está, eles são roteados para o nó mais próximo. Isso faz algum balanceamento de tráfego e fornece redundância se um servidor DNS morrer.
fonte
De acordo com um de meus colegas, também é útil como uma técnica de mitigação de ataques de DoS, já que as pessoas só podem atacar o endereço IP anycast "mais próximo"; portanto, se houver muitos zumbis nos EUA, por exemplo, seu site Euro será principalmente não afetados, pois eles não podem realmente enviar pacotes para ele.
Além disso, pode ser possível usá-lo como uma maneira (de maneira um tanto ingênua) de filtrar pacotes falsificados, se eles obviamente vierem de algum lugar improvável de ser anunciado no BGP como a rota correta (por exemplo, pacotes chegando na Europa quando o ASN indica um N Americano). quadra).
fonte
Também é bom observar que o Anycast não é bom ou confiável para algumas conexões TCP que não podem sobreviver a redefinições ou conversas longas.
Os IPs do Anycast, usando BGP, informam à Internet que existem 2, 3 ou mais caminhos para um HOST específico ; no entanto, na realidade, esses NÃO são o mesmo host , são réplicas exatas dos hosts anunciados em vários datacenters para obter conexões de menor latência.
Por exemplo, eu tenho 3 servidores fazendo o redirecionamento 301 não www para 198.251.86.133; se você executar ping neste host, poderá obter respostas DUPLICATE às vezes ou até cair dependendo da sua localização, pois meus servidores são leste dos EUA e EUA -Oeste e EUR. para conexões temporizadas (como as 301, que são armazenadas em cache no navegador), isso fornece uma resposta rápida de um servidor local no datacenter mais próximo.
Do ponto de vista da redundância, não há nenhum incorporado no anycast, você ainda precisaria de redundância independente em cada site, pois esse IP (em cenários típicos) sempre aponta para esses datacenters.
fonte