Como fazer DNS regional como uma CDN?


15

Eu acho que essa pergunta pode ser entendida, como o CDN funciona no nível DNS, mas o verdadeiro problema que tenho é que minha empresa possui datacenters em três continentes e temos que ter europe.example.com us.example.com e asia.example .com

As CDN normalmente o enviam para o datacenter local que imagino, dependendo do seu endereço IP. Deve ser uma coisa de DNS em que o servidor DNS nos EUA o envia para um datacenter dos EUA para a mesma pesquisa de DNS example.com?

Estou errado? Se eu estiver errado sobre isso, como eu faria isso de forma eficaz e, se possível, sem servidores centrais (não DNS)?


Respostas:


12

O problema com as CDNs é que elas não o direcionam com base no seu próprio endereço IP - elas o direcionam com base no endereço IP do seu servidor DNS ... Isso pode estar completamente errado. E leia o artigo de Paul Vixie no ACM , é uma questão de dinheiro.

De qualquer forma, se você já tem region.example.comconfigurado e funcionando, você pode considerar fazer um redirecionamento HTTP a partir example.comdo servidor web relevante, com base no endereço IP do cliente.

Isso é basicamente o que o Google faz, é como acabo google.co.ukdigitando google.com.

Além disso, garanta que você forneça meios para que os clientes cheguem às outras variações. Os clientes não gostam quando são forçados a um site específico, seja por erros nos bancos de dados geográficos ou simplesmente porque precisam realmente ver o site de outra região.


5

CDNs mais recentes (Cloudflare, MaxCDN, fast.ly) usam anycast para servidores de conteúdo DNS e reais. Isso é um pouco melhor do que tentar usar o IP de origem de uma consulta DNS e um banco de dados de mapeamento em constante mudança.

Em teoria, o uso de anycast para os servidores DNS e de conteúdo permite que a própria rede encontre os servidores "mais próximos" do cliente. Na prática, isso é verdade, mas existem casos estranhos em que as pessoas em Cingapura atingem servidores de ponta na Califórnia, em vez de Hong Kong, devido às constantes mudanças nos relacionamentos entre os ISPs.

Anycast é difícil de fazer bem .

CDNs mais antigos, como Akamai e Limelight, geralmente usam anycast para levá-lo ao servidor DNS mais próximo, mas depois adotam a abordagem de IP baseada em suposição. Isso não funciona tão bem na minha experiência, especialmente se um cliente estiver usando servidores de DNS que não estão realmente próximos em termos de topologia de rede. No entanto, uma enorme CDN estabelecida como a Akamai possui centenas de locais de servidores de conteúdo, portanto, retornar uma resposta "suficientemente próxima" resulta em uma experiência decente para o usuário. Obviamente, ter centenas de sites é muito caro, e é por isso que nenhum dos CDNs all-anycast escolheu essa rota. Consequentemente, eles também não cobram muito pelo serviço equivalente.


1

Existem várias maneiras de lidar com isso, mas todas se resumem a descobrir onde está um endereço IP e apontá-lo de acordo. Por exemplo, você pode especificar um intervalo de IPs para a América do Norte e um para a Europa. Se o IP que está solicitando as informações (do DNS, do servidor da web, do servidor de conteúdo etc.) cai no intervalo europeu, seus servidores europeus devem receber os pedidos.


Ben, como assim? Você quer dizer que eu tenho um servidor DNS nos EUA e um, por exemplo, no Reino Unido. Quando penso em DNS, basta definir meu registro A e pronto. Como posso especificar esses servidores DNS em uma base regional?
Stewart Robinson

Acredito que ele está se referindo a algo como pontos de vista em ligação. Você pode configurar diferentes visualizações dentro do DNS que correspondam com base no endereço IP do cliente, que pode ser aproximadamente identificado como pertencente a uma região geográfica. Existem muitos serviços disponíveis nos quais você pode canalizar uma solicitação para uma API e obter um local. Examinando brevemente, você pode tentar hostip.info/dl/index.html para obter uma opção de baixo / nenhum custo.
Greeblesnort 30/11/2009

só passou a funcionar em toda esta na minha navegação noite: blogs.techrepublic.com.com/networking/...
Greeblesnort

@ Stewart - não, você não executaria um servidor DNS por região. Bem, você poderia, mas isso seria redundante, pois o sistema DNS em si é um local de localização. A resposta de @ greeblesnort é quase tão boa quanto o nome dele. :-)
Ben Doom

0

Você pode configurar uma página principal padrão em example.com. Na primeira vez que alguém visita, seleciona para qual região deseja ser direcionada. É da mesma maneira que www.ups.com funciona.

O usuário pode marcar uma caixa de seleção para fazer sua escolha padrão a partir desse momento, armazenando a seleção em um cookie.

Isso permite que você se beneficie do uso do DNS da maneira como foi projetado de acordo com Paul Vixie, enquanto permite que o usuário tome a decisão mais precisa em qual data center ele deve ser direcionado.


0

Se você tem um site hospedado em várias regiões, não precisa fazer nada no nível DNS. Você pode usar uma API como http://ipinfo.io para obter o país do visitante e, em seguida, redirecioná-lo para o URL apropriado.

Se não estamos falando de um site ou de qualquer protocolo que lida com redirecionamentos, existem algumas opções no nível do DNS. Você pode fazer a mesma pesquisa de país IP e retornar um registro que corresponda à região (DNS baseado em localização geográfica) ou pode ter um mapa da latência entre redes diferentes e retornar um registro que represente a menor latência para o usuário (latência baseado em DNS). O serviço DNS Route53 da Amazon oferece ambos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.