Anycast prático

4

Li Como posso enviar visitantes para o servidor mais próximo usando o DNS? post, mas ainda há algo, em um nível prático que eu não entendo.

Digamos que eu tenha dois servidores. Um em NY outro em Paris. Ambas possuem endereços IP diferentes 1.1.1.1 e 1.1.1.2 que foram atribuídos a eles pelo ISP (ou empresas de hospedagem)

Quais etapas eu preciso seguir para que as pessoas na Europa, quando digitarem link , sejam traduzidas para o IP do servidor mais próximo com relação ao cliente?

Meu objetivo final é aumentar a velocidade de um aplicativo TCP-Socket que escrevi, direcionando os usuários para o servidor mais próximo.

ATUALIZAÇÃO: Obrigado pessoal pelas respostas. Eu acho que há muito mais para eu aprender: \ antes que eu possa realmente conseguir isso.

    
por Daniel 20.03.2013 / 23:09

3 respostas

4

O Route53 da Amazon AWS é um balanceador de carga global confiável e com bom preço que utiliza anycast. Esta é de longe a rota mais simples.

Se você quiser configurar o DNS anycast, precisará obter um endereço IP e ter várias localizações de centros de dados para anunciar esse endereço IP em seu BGP. Normalmente, as pessoas compram os intervalos de endereços IP a partir de sua autoridade relevante, no entanto, vi alguns datacentres dispostos a arrendar endereços IP de pessoas e permitir que eles os propagassem de outros datacenters.

A configuração típica é que cada servidor tenha seu próprio endereço IP exclusivo e um endereço anycast. Por exemplo:

Londres tem 1.1.1.1 e 3.3.3.3 NY tem 1.1.1.2 e 3.3.3.3

Um servidor DNS é executado em cada servidor que escuta em 3.3.3.3 e emite o IP exclusivo para esse servidor.

Lembre-se de que anycast está na camada IP e, portanto, abaixo das tecnologias de transporte, como o TCP. Como tal, qualquer transporte que rastreie o estado (por exemplo, TCP) não é adequado para anycast. O DNS é (geralmente) o UDP e é usado como um método de distribuição de clientes para o servidor mais próximo para fazer uma conexão TCP.

    
por 21.03.2013 / 00:52
4

Você precisa usar um serviço que baseará a resposta do DNS em sua localização. Seja terceirizado para uma empresa de DNS ou construa você mesmo. Acho que a tecnologia que você está realmente procurando é o Global Server Load Balancing (GSLB), não o AnyCast.

A maioria das empresas de DNS oferece isso como um serviço.

O PowerDNS parece ser uma solução popular para o GSLB DIY: link

    
por 20.03.2013 / 23:35
0

Se você tiver apenas dois servidores, um na América do Norte e outro na Europa, poderá decidir executar o aplicativo de soquete TCP e o DNS por conta própria.

Com o DNS, você pode usar algo como a abordagem do DNS do Split-Horizon , que poderia ser obtido através da funcionalidade integrada do seu servidor DNS, ou através de um firewall que redirecionaria diferentes intervalos de endereço IP para diferentes instâncias em execução do seu servidor (você poderia executar duas cópias diferentes do servidor em sua máquina local, escute em diferentes endereços IP locais).

Tendo apenas um NA e um host da UE, você provavelmente obterá resultados esperados em ≈90% dos casos respondendo às solicitações de DNS dos endereços IP do RIPE e AfriNIC com um registro A de seu host na Europa e solicitações dos endereços IP dos blocos / 8 administrados por ARIN, APNIC, LACNIC e o restante do espaço de endereço / 8 com um registro A do seu servidor na América do Norte. Isso terá alguns resultados errados em certas situações (alguns / 8 blocos são compartilhados entre Europa e América do Norte, algum espaço de endereçamento é anycast etc), mas o pior que acontecerá é um pouco de latência extra para a parte afetada, então, não deveria ser um grande problema.

(E, sim, deve haver uma maneira de tornar essas coisas mais fáceis, mas, até agora, parece que não há nenhuma.)

    
por 21.03.2013 / 02:24