Anycast vs Unicast: o que é melhor escolher em cada caso

Muitos provavelmente já ouviram falar do Anycast. Com este método de endereçamento e roteamento de rede, um único endereço IP é atribuído a vários servidores na rede. Esses servidores podem até mesmo estar localizados em data centers remotos uns dos outros. A ideia do Anycast é que, dependendo da localização da origem das requisições, os dados sejam enviados para o servidor mais próximo (de acordo com a topologia da rede, mais precisamente, o protocolo de roteamento BGP). Assim, é possível reduzir o número de saltos e a latência.



Basicamente, a mesma rota está sendo anunciada em vários data centers em todo o mundo. Assim, os clientes serão encaminhados para os “melhores” e “mais próximos” com base nas rotas BGP, data center. Por que Anycast? Por que usar Anycast em vez de Unicast?





Unicast é realmente bom para um site com um servidor web e tráfego moderado. No entanto, se um serviço tem milhões de assinantes, ele geralmente usa muitos servidores da web, cada um com o mesmo endereço IP. Esses servidores são distribuídos geograficamente para atender às solicitações de maneira ideal.



Nesse cenário, o Anycast vai melhorar o desempenho (o tráfego é direcionado ao usuário com latência mínima), garantir a confiabilidade do serviço (graças aos servidores redundantes) e balanceamento de carga - o roteamento para vários servidores distribuirá efetivamente a carga entre eles, melhorando a velocidade do site.



As operadoras oferecem aos clientes vários tipos de balanceamento de carga com base em Anycast e DNS. Os clientes podem especificar endereços IP para os quais as solicitações serão enviadas, dependendo da localização geográfica do site. Isso torna possível distribuir as solicitações do usuário com mais flexibilidade.



Suponha que existam vários sites entre os quais você precisa distribuir a carga (usuários), por exemplo, uma loja online com 100.000 solicitações por dia ou um blog popular. Para restringir a região de onde os usuários entram em um site específico, você pode usar a opção Comunidade Geo. Ele permite que você limite a região dentro da qual a operadora anunciará a rota.









Anycast vs. Unicast: Diferenças



Anycast é freqüentemente usado em aplicativos como DNS (Domain Name System) e CDN (Content Delivery Networks), permitindo que decisões de roteamento sejam feitas para melhorar o desempenho da rede. As redes de distribuição de conteúdo usam Anycast, uma vez que lidam com grandes volumes de tráfego, e o Anycast oferece uma série de vantagens neste caso (mais sobre eles abaixo). No DNS, o Anycast pode aumentar significativamente o nível de confiabilidade e tolerância a falhas do serviço.





No Anycast IP, ao usar BGP, existem várias rotas para um host específico. Na verdade, são cópias de hosts em vários datacenters usados ​​para estabelecer conexões de baixa latência.



Assim, na rede Anycast, o mesmo endereço IP é anunciado em diferentes locais, e a rede decide para onde direcionar a solicitação do usuário com base no "custo" da rota. Por exemplo, o BGP é freqüentemente usado para determinar a rota mais curta para transmissão de dados. Quando um usuário envia uma solicitação Anycast, o BGP determina a melhor rota para os servidores Anycast disponíveis na rede.



Benefícios Anycast

Reduzindo a latência Anycast , . «» ( ) DNS-. Anycast . , .


, , , , .



IP, . Anycast //. 



, , , Anycast, , DNS. DNS - . Anycast , . 



Anycast . , , . , , . .

DoS- 

Anycast – DDoS. DDoS- Anycast, . 



DDoS- , , . Anycast , «» , . « », , .



Anycast . , Anycast, , . . 



, . , . , . , , , . . 



, 10 25 /. 100 IP- .



, Anycast — DNS. DNS-, DNS-. , , . DNS-. , , DNS- , , DNS- .



Anycast , , , . .



Nenhum servidor, rede ou componente especial é necessário para usar a tecnologia Anycast do lado do cliente. Mas o Anycast tem suas desvantagens. Acredita-se que sua implementação seja uma tarefa complexa que requer equipamentos adicionais, provedores confiáveis ​​e roteamento de tráfego adequado.



De uma fonte pura a um belo distante



Embora o Anycast roteie os usuários com base no mínimo de saltos, não significa necessariamente a menor latência. Latência é uma métrica mais complexa, pois uma transição pode ter mais de dez.





Exemplo: as comunicações intercontinentais podem envolver um salto de latência muito alta.



Anycast é usado principalmente para serviços baseados em UDP, como DNS. As solicitações do usuário são direcionadas aos "melhores" e "mais próximos" data centers com base nas rotas BGP.





Exemplo: uma estação de trabalho cliente DNS com endereço IP Anycast DNS 123.10.10.10, executa a resolução DNS para o mais próximo dos três servidores de nome DNS implantados usando o mesmo endereço IP Anycast. Se o roteador R1 ou o servidor A falhar, os pacotes do cliente DNS serão encaminhados automaticamente para o próximo servidor DNS mais próximo via R2 e R3. Além disso, a rota para nosso servidor A será removida das tabelas de roteamento, evitando o uso futuro deste servidor de nomes.



Scripts de implantação



Existem dois esquemas gerais que são usados ​​para determinar a qual servidor um usuário está se conectando:



  • Camada de rede Anycast . Conecta o usuário ao servidor mais próximo. O caminho de rede do usuário ao servidor é importante aqui.
  • Anycast . , , , . . , .


CDN Anycast



Vamos voltar agora ao uso do Anycast em redes de entrega de conteúdo. Anycast é certamente um conceito de rede interessante e está ganhando aceitação cada vez maior dos provedores de CDN da próxima geração.



CDN é uma rede distribuída de servidores que entrega conteúdo aos usuários finais com alta disponibilidade e baixa latência. As redes de distribuição de conteúdo desempenham um papel importante hoje como a espinha dorsal de vários serviços de multimídia online, e os consumidores estão cada vez menos tolerantes com velocidades lentas de download. Os aplicativos de vídeo e voz são especialmente sensíveis a jitter e latência da rede.



O CDN reúne todos os servidores em uma rede e fornece carregamento de conteúdo mais rápido. Às vezes, é possível reduzir o tempo de espera do usuário em 5 a 6 segundos. O objetivo de um CDN é otimizar a entrega, servindo conteúdo do servidor mais próximo do usuário final. Isso é muito semelhante ao Anycast, onde o servidor mais próximo é selecionado com base na localização do usuário final. Parece que todos os provedores de CDN usarão o Anycast por padrão, mas na realidade não é.



Os aplicativos que usam protocolos como HTTP / TCP dependem da conexão estabelecida. Se um novo nó Anycast for selecionado (por exemplo, se o servidor falhar), o serviço pode ser interrompido. É por isso que o Anycast foi recomendado anteriormente para serviços sem conexão, como UDP e DNS. No entanto, Anycast também funciona bem para protocolos orientados a conexão, por exemplo, o TCP funciona bem no modo Anycast.



Alguns provedores de CDN usam roteamento baseado em Anycast, outros preferem roteamento baseado em DNS: o servidor mais próximo é escolhido dependendo de onde o servidor DNS do usuário está localizado.



As infraestruturas híbridas e de multi-data center são outro caso de uso para Anycast. O endereço IP de balanceamento de carga recebido do provedor permite que você distribua a carga entre os endereços IP de diferentes serviços de cliente no data center do provedor. Com qualquer tecnologia de endereçamento de dispositivo, ele oferece melhor desempenho para alto tráfego, resiliência e ajuda a otimizar os tempos de resposta para um grande número de usuários.



Em infraestruturas híbridas de vários datacenters, você pode distribuir o tráfego entre servidores ou até mesmo máquinas virtuais em servidores dedicados.



Assim, existe uma grande seleção de soluções técnicas para a construção de infraestrutura. Você também pode configurar o balanceamento de carga de IP em vários datacenters, usando qualquer dispositivo do grupo para otimizar o desempenho do site.



Você pode distribuir o tráfego de acordo com suas próprias regras, definindo o "peso" de cada um dos servidores distribuídos em cada data center. Esta configuração é especialmente útil quando você tem um parque de servidores distribuído e o desempenho dos serviços não é uniforme. Isso permite distribuir o tráfego com mais frequência para melhorar o desempenho do servidor.



Para criar um sistema de monitoramento usando o comando ping, é possível configurar probes. Isso permite que o administrador defina seus próprios procedimentos de monitoramento e obtenha uma visão mais clara do funcionamento de cada componente da infraestrutura. Desta forma, os critérios de acessibilidade podem ser definidos.



Existe a possibilidade de construir uma infraestrutura híbrida: às vezes é conveniente deixar o back office na rede corporativa e transferir a parte do front-end para a terceirização para o provedor.



É possível adicionar certificados SSL para balanceamento de carga, criptografia de dados transmitidos e segurança de comunicação entre visitantes do site e infraestrutura corporativa. No caso de balanceamento de carga entre datacenters, SSL também pode ser usado.



O serviço de balanceamento de carga de endereço Anycast está disponível em seu ISP. Esse recurso ajudará a melhorar a maneira como os usuários interagem com os aplicativos com base na localização. Basta declarar quais serviços estão disponíveis no data center, e o tráfego será redirecionado para a infraestrutura mais próxima. Se houver servidores dedicados, por exemplo na França ou na América do Norte, os clientes serão direcionados para o servidor mais próximo na rede.



Um caso de uso para Anycast é a escolha ideal do ponto de presença do operador (PoP). Vamos dar um exemplo... O LinkedIn (bloqueado na Rússia) se esforça não apenas para melhorar o desempenho e a velocidade de seus produtos - aplicativos móveis e da web, mas também para melhorar a infraestrutura de rede para entrega de conteúdo acelerada. Para esta entrega de conteúdo dinâmico, o LinkedIn usa ativamente PoPs - pontos de presença. Anycast é aplicado para direcionar os usuários ao PoP mais próximo.



A razão é que, no caso do Unycast, cada PoP no LinkedIn possui um endereço IP exclusivo. Os usuários recebem PoPs com base em sua localização geográfica usando DNS. O problema é que, ao usar DNS, cerca de 30% dos usuários nos Estados Unidos foram redirecionados para PoP abaixo do ideal. Com a implementação em fases do Anycast, a atribuição de PoP abaixo do ideal caiu de 31% para 10%.





, Y — PoP. «» Anycast PoP.



Anycast



Em teoria, as redes Anycast são simples: vários servidores físicos são atribuídos ao mesmo endereço IP que o BGP usa para determinar a rota. Mas a implementação e o projeto das plataformas Anycast são complexos, e as redes tolerantes a falhas Anycast são especialmente famosas por isso. Ainda mais desafiador é o monitoramento eficaz da rede Anycast para identificar e isolar rapidamente as falhas.



Se os serviços usam um provedor de CDN terceirizado para servir seu conteúdo, é muito importante que monitorem e verifiquem o desempenho da rede. O monitoramento de CDN baseado em Anycast se concentra em medir a latência de ponta a ponta e o desempenho do penúltimo salto para entender qual datacenter está atendendo ao conteúdo. Analisar os cabeçalhos do servidor HTTP é outra maneira de determinar de onde os dados estão vindo.





Exemplo: cabeçalhos de resposta HTTP indicando a localização do servidor CDN.



Por exemplo, CloudFlare usa seu próprio cabeçalho CF-Ray em mensagens de resposta HTTP, que inclui uma indicação do datacenter ao qual a solicitação foi feita. No caso do Zendesk, o cabeçalho CF-Ray para a região de Seattle é CF-RAY: 2a21675e65fd2a3d-SEA e, para Amsterdã, CF-RAY: 2a216896b93a0c71-AMS. Você também pode usar os cabeçalhos HTTP X da resposta HTTP para determinar onde o conteúdo está localizado.



Outros métodos de endereçamento



Existem outros métodos de endereçamento para rotear solicitações do usuário para um endpoint de rede específico:
Unicast

A maior parte da Internet hoje usa esse método. Unicast - transmissão unicast, o endereço IP está associado a apenas um nó específico na rede. Isso é chamado de correspondência um a um. 

Multicast

Multicast « » « ». . ( ). Multicast Anycast, , Anycast , .

Broadcast

, . , ( ).

Geocast

Geocast Multicast: . , . .



(Geo Router) . , , . .









Unicast, Multicast e Broadcast.



O uso da tecnologia Anycast aumenta o nível de confiabilidade, resiliência e segurança do DNS. Usando essa tecnologia, as operadoras oferecem a seus clientes vários tipos de balanceamento de carga baseado em DNS. No painel de controle, você pode especificar os endereços IP para os quais as solicitações serão enviadas, dependendo da localização geográfica. Isso dará aos clientes a capacidade de distribuir as solicitações do usuário com mais flexibilidade.



Algumas operadoras usam monitoramento de rota POP: o sistema analisa automaticamente as rotas locais e globais mais curtas para pontos de presença e as redireciona através de localizações geográficas com a menor latência com tempo de inatividade zero.



No momento, Anycast é a solução mais estável e confiável para construir serviços DNS altamente carregados, que estão sujeitos a altos requisitos de estabilidade e confiabilidade.



O domínio .ru suporta 35 servidores Anycast DNS, agrupados em 20 nós, distribuídos em cinco nuvens Anycast. Neste caso, é utilizado o princípio da construção de base geográfica, ou seja, Geocast. Ao colocar nós DNS, está planejado movê-los para locais geograficamente dispersos próximos aos usuários mais ativos, a concentração máxima de provedores russos no local do nó, bem como a disponibilidade de capacidades livres e facilidade de interação com o local.



Como faço para construir um CDN?



CDN é uma rede de servidores que acelera a entrega de conteúdo aos usuários. A rede de distribuição de conteúdo conecta todos os servidores em uma rede e fornece carregamento de conteúdo mais rápido. A distância do servidor ao usuário desempenha um papel importante na velocidade de download.



O CDN permite que você use servidores mais próximos do seu público-alvo. Isso reduz o tempo de espera e ajuda a acelerar o carregamento do conteúdo do site para todos os visitantes, o que é especialmente crítico para sites com arquivos grandes ou serviços multimídia. As aplicações CDN típicas são e-commerce e entretenimento.



A rede de servidores adicionais criados na infraestrutura do CDN, localizados o mais próximo possível dos usuários, contribui para uma entrega de dados mais estável e rápida. De acordo com as estatísticas, o uso de um CDN reduz a latência ao acessar um site em mais de 70% em comparação com sites sem CDN.



Como criar um CDN usando DNS? Configurar um CDN usando sua própria solução Anycast pode ser um projeto bastante caro, mas existem opções mais baratas. Por exemplo, você pode usar GeoDNS e servidores regulares com endereços IP exclusivos. Com os serviços GeoDNS, você pode criar um CDN geolocalização no qual as decisões são tomadas com base na localização real do visitante, não na localização do resolvedor DNS. Você pode configurar sua zona DNS para mostrar os endereços IP de servidores americanos aos visitantes dos Estados Unidos, e os visitantes europeus verão o endereço IP da Europa.



Com GeoDNS, é possível retornar diferentes respostas DNS dependendo do endereço IP do usuário. Para fazer isso, o servidor DNS é configurado para retornar endereços IP diferentes com base no endereço IP original da solicitação. Normalmente, o banco de dados GeoIP é usado para determinar a região da qual a solicitação é feita. A geolocalização usando DNS permite que você envie conteúdo para usuários de um site próximo.



O GeoDNS define o endereço IP do cliente que fez a solicitação DNS, ou o IP do servidor DNS recursivo do ISP, que é usado para processar a solicitação do cliente. O país / região é determinado pelo IP do cliente e pela base GeoIP. O cliente obtém então o endereço IP do servidor CDN mais próximo. Você pode ler mais sobre como configurar GeoDNS aqui .



Anycast ou GeoDNS?



Embora o Anycast seja uma ótima maneira de fornecer conteúdo globalmente, ele carece de especificidade. É aqui que entra o GeoDNS. Este serviço permite criar regras que enviam usuários a terminais exclusivos com base em sua localização.





Exemplo: os usuários da Europa são direcionados para um terminal diferente.



Você também pode negar acesso a domínios descartando todas as solicitações. Esta é, em particular, uma maneira rápida de isolar intrusos.



GeoDNS fornece respostas mais precisas do que Anycast. Enquanto no caso do Anycast, a rota mais curta é determinada pelo número de saltos, no GeoDNS, o roteamento para os usuários finais é baseado em sua localização física. Isso reduz a latência e melhora a precisão ao criar regras de roteamento granulares.



Ao mudar para um domínio, o navegador entra em contato com o servidor DNS mais próximo, que, dependendo do domínio, emite um endereço IP para carregar o site. Suponha que uma loja online seja popular nos Estados Unidos e na Europa e os servidores DNS para ela sejam apenas na Europa. Então os usuários dos Estados Unidos que quiserem usar os serviços da loja terão que enviar uma solicitação para o servidor mais próximo e, por estar muito longe, demorará muito para esperar uma resposta - o site não carrega rápido.



Quando um servidor GeoDNS está localizado nos EUA, os usuários já se referem a ele. A resposta será rápida, o que afetará a velocidade de carregamento do site.



Em uma situação com um servidor DNS existente nos Estados Unidos, quando um usuário dos Estados Unidos for para este domínio, ele entrará em contato com o servidor mais próximo que fornecerá o IP desejado. O usuário será direcionado ao servidor que contém o conteúdo do site, mas como os servidores com o conteúdo estão distantes, ele não o receberá rapidamente.



Se hospedarmos servidores CDN com dados em cache nos EUA, ao carregar o navegador do cliente enviará uma solicitação ao servidor DNS mais próximo, que enviará de volta o endereço IP correto. O navegador com os endereços IP obtidos, o servidor CDN mais próximo e o servidor principal, e o servidor CDN envia o conteúdo em cache para o navegador. Enquanto o conteúdo em cache está sendo carregado, os arquivos que faltam para carregar o site completo são recebidos do servidor principal. Como resultado, o tempo de carregamento do site é reduzido, pois há muito menos arquivos enviados do servidor principal.



Determinar a localização exata de um endereço IP específico nem sempre é uma tarefa fácil: há muitos fatores em jogo, e os proprietários do intervalo de endereços IP podem decidir anunciá-lo do outro lado do mundo (então você tem que esperar que o banco de dados seja atualizado para obter a localização correta). Às vezes, os provedores de VPS atribuem endereços que se acredita serem os EUA para um VPS em Cingapura.



Ao contrário do uso de endereços Anycast, a distribuição é feita durante a resolução do nome, não durante a conexão com o servidor de cache. Se o servidor recursivo não suportar sub-redes de clientes EDNS, então a localização desse servidor recursivo é usada, não o usuário que se conectará ao servidor de cache.



Sub-redes de cliente no DNS é uma extensão DNS (RFC7871) que define como os servidores DNS recursivos podem enviar informações do cliente para um servidor DNS, especificamente informações de rede que um servidor GeoDNS pode usar para localizar um cliente com mais precisão.



A maioria usa os servidores DNS de seus ISP ou servidores DNS que estão geograficamente próximos a eles, mas se alguém nos Estados Unidos, por algum motivo, decidir usar um resolvedor DNS localizado na Austrália, provavelmente obterá um IP. endereço do servidor mais próximo da Austrália.



Se você deseja usar o GeoDNS, é importante estar ciente desses recursos, pois em alguns casos pode aumentar a distância entre os servidores de cache e o cliente.



Resumo: se você deseja combinar vários VPSs em um CDN, a melhor opção de implantação é usar um pacote de servidor DNS com a função GeoDNS + Anycast pronta para uso.






All Articles