Como posso enviar visitantes para o servidor mais próximo usando DNS?

20

Existe uma maneira de localizar entradas de DNS? Ou seja, os usuários da Ásia resolvem o meu domínio.com com outro IP que não os usuários dos EUA ou da Europa. Isso seria útil para fornecer aos usuários o servidor próximo. O DNS é a única técnica usada até o momento, o que significa que não posso colocar algum sistema de controle de velocidade ou sistema central substituindo o DNS para resolver isso.

kcode
fonte

Respostas:

20

Sim, atualmente existem duas soluções populares para esse problema.

O primeiro é chamado Anycast, onde o mesmo bloco IP está literalmente em uso em vários locais ao redor do mundo. Ou seja, os servidores de nome para o seu domínio sempre retornam o mesmo endereço IP, mas esse endereço IP é realmente atribuído a mais de um conjunto de servidores físicos.

Você pode ler mais sobre isso aqui http://en.wikipedia.org/wiki/Anycast

A segunda técnica envolve novamente o AnyCast; entretanto, desta vez, o intervalo de endereços IP que está sendo transmitido refere-se aos nossos próprios servidores de nomes. Como os servidores de nomes solicitam apenas aos clientes quem eles são mais próximos também (conforme determinado pela mágica do BGP), eles próprios podem retornar endereços IP que são logicamente locais para o cliente.

Um exemplo disso é o domínio l.google.com do google

De um host na Austrália

crimson:~ dave$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-notmumbai.l.google.com.
www-notmumbai.l.google.com has address 66.249.89.99
www-notmumbai.l.google.com has address 66.249.89.147
www-notmumbai.l.google.com has address 66.249.89.103
www-notmumbai.l.google.com has address 66.249.89.104

De um host nos EUA

[dave@odessa ~]$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.95.99
www.l.google.com has address 74.125.95.147
www.l.google.com has address 74.125.95.104
www.l.google.com has address 74.125.95.106
www.l.google.com has address 74.125.95.105
www.l.google.com has address 74.125.95.103

Portanto, o CNAME para www.google.comresolve www.l.google.com, mas quando você decide que, dependendo da sua localização, seu cliente recebe um conjunto diferente de endereços IP. Isso ocorre porque o servidor de nomes que recebeu a solicitação www.l.google.comera o servidor de nomes local , relativo ao cliente.

Dave Cheney
fonte
5
Esta resposta aborda tecnicamente a pergunta, mas acho que é bastante inútil em termos de ser uma resposta real para um problema real: a maioria das partes não possui transmissão, portanto sua resposta está fora do alcance de todas essas partes.
CNST
então, qual registrante oferece essa solução?
dynamic
Também é importante notar que o DNS tem esse recurso nativamente. Coloque um servidor DNS em uma região com um registro apontando para um servidor da Web nessa região. Repita em outras regiões. Lucro.
dmourati
@dmourati: isso não propagaria e atualizaria outros servidores DNS? Sempre presumi que os servidores DNS sempre propagam informações até que todos estejam sincronizados.
Guru Prasad
@GuruPrasad Vários hosts (geralmente em diferentes áreas geográficas) recebem o mesmo endereço IP unicast e diferentes rotas para o endereço são anunciadas por meio do BGP. Os roteadores consideram que essas são rotas alternativas para o mesmo destino, embora na verdade sejam rotas para destinos diferentes com o mesmo endereço. Como de costume, os roteadores selecionam uma rota de acordo com a métrica de distância em uso (o menor custo, o menor congestionado, o menor). Selecionar uma rota nesta configuração equivale a selecionar um destino. == wikipedia / anycast ---- mas funciona melhor em IPv6 do que essa descrição
Garet Claborn
2

Se você deseja localizar apenas servidores para Ásia, América do Norte e Europa, pode decidir executar o seu aplicativo da web e o seu DNS.

Com o DNS, você pode usar algo como a abordagem DNS Split-Horizon , que pode ser alcançada através da funcionalidade integrada do seu servidor DNS (pode ser chamado de GeoDNS ) ou através de um firewall que redireciona diferentes intervalos de endereços IP para diferentes execuções . instâncias do seu servidor DNS (você pode executar várias cópias diferentes do servidor na sua máquina local, que escutam em diferentes endereços IP locais).

Provavelmente, é possível obter resultados esperados em 90% dos casos, respondendo às solicitações de DNS dos endereços IP RIPE e AfriNIC com um Aregistro do seu host na Europa, solicitações do APNIC - host na Ásia e solicitações dos endereços IP do / 8 blocos administrados por ARIN , LACNIC e o restante do espaço de endereço / 8 com um Aregistro do seu servidor na América do Norte. Isso terá resultados errados em determinadas situações (alguns blocos de 8 são compartilhados entre a Europa e a América do Norte, algum espaço de endereçamento é anycast etc.), mas o pior que poderia acontecer seria uma latência extra para a parte afetada, portanto, não deveria ' Não é grande coisa.

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

cnst
fonte
2

Eu tive o mesmo problema. Nossa empresa tem clientes na Rússia e na China e todos eles precisam de uma conexão muito rápida com o nosso serviço. Usamos o Amazon Route 53 Geo dns e acabamos de criar dois registros, um encaminhará clientes da China para o cluster da região de Tóquio e clientes da Rússia para Londres.

amanbolat
fonte