¿Cómo puedo enviar visitantes al servidor más cercano usando DNS?

20

¿Hay alguna manera de localizar entradas de DNS? Lo que significa que los usuarios de Asia resuelven mydomain.com a otra dirección IP diferente a los usuarios de EE. UU. O Europa. Esto sería útil para dar a los usuarios el servidor cercano. DNS es la única técnica utilizada hasta ahora, lo que significa que no puedo colocar algún enrutamiento de software o sistema central que reemplace el dns para resolver esto.

kcode
fuente

Respuestas:

20

Sí, actualmente hay dos soluciones populares para este problema.

El primero se llama Anycast, donde el mismo bloque de IP está literalmente en uso en múltiples ubicaciones en todo el mundo. Es decir, los servidores de nombres para su dominio siempre devuelven la misma dirección IP, pero esa dirección IP está asignada a más de un conjunto de servidores físicos.

Puede leer más sobre esto aquí http://en.wikipedia.org/wiki/Anycast

La segunda técnica nuevamente involucra a AnyCast, sin embargo, esta vez, el rango de direcciones IP que se está transmitiendo se refiere a nuestros propios servidores de nombres. Como los servidores de nombres solo solicitarán a los clientes con quienes están más cercanos también (según lo determine la magia de BGP), ellos mismos pueden devolver direcciones IP que son lógicamente locales para el cliente.

Un ejemplo de esto es el dominio l.google.com de google

De un anfitrión en Australia

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 un anfitrión en los Estados Unidos

[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

Entonces, el CNAME para se www.google.comresuelve www.l.google.com, pero cuando lo resuelve, dependiendo de su ubicación, su cliente recibe un conjunto diferente de direcciones IP. Esto se debe a que el servidor de nombres que recibió la solicitud www.l.google.comfue el servidor de nombres local , en relación con el cliente.

Dave Cheney
fuente
55
Esta respuesta técnicamente aborda la pregunta, pero creo que es bastante inútil en términos de ser una respuesta real para un problema real: la mayoría de las partes no tienen ninguna difusión, por lo que su respuesta está fuera del alcance de todas esas partes.
Cnst
Entonces, ¿qué solicitante de registro ofrece esta solución?
dinámico
También vale la pena señalar que DNS tiene esta característica de forma nativa. Coloque un servidor DNS en una región con un registro que apunte a un servidor web en esa región. Repita en otras regiones. Lucro.
dmourati
@dmourati: ¿no se propagaría y actualizaría otros servidores DNS? Siempre supuse que los servidores DNS siempre propagan información hasta que todos estén sincronizados.
Guru Prasad
@GuruPrasad Varios hosts (generalmente en diferentes áreas geográficas) reciben la misma dirección IP de unidifusión y se anuncian diferentes rutas a la dirección a través de BGP. Los enrutadores consideran que se trata de rutas alternativas al mismo destino, aunque en realidad son rutas a diferentes destinos con la misma dirección. Como de costumbre, los enrutadores seleccionan una ruta por cualquier distancia que se use la métrica (el menor costo, menos congestionado, el más corto). Seleccionar una ruta en esta configuración equivale a seleccionar un destino. == wikipedia / anycast ---- pero funciona mejor en IPv6 que esta descripción
Garet Claborn
2

Si solo desea localizar servidores para Asia, América del Norte y Europa, puede decidir ejecutar su aplicación web y su DNS usted mismo.

Con DNS, podría usar algo como el enfoque DNS de Split-Horizon , que podría lograrse mediante la funcionalidad integrada de su servidor DNS (pueden llamarlo GeoDNS ) o mediante un firewall que redirigiría diferentes rangos de direcciones IP a diferentes ejecuciones instancias de su servidor DNS (puede ejecutar varias copias diferentes del servidor en su máquina local, que escuchará en diferentes direcciones IP locales).

Probablemente podría obtener los resultados esperados en aproximadamente el 90% de los casos respondiendo a las solicitudes de DNS de las direcciones IP de RIPE y AfriNIC con un Aregistro de su host en Europa, las solicitudes de APNIC - host en Asia y las solicitudes de las direcciones IP del / 8 bloques administrados por ARIN , LACNIC y el resto del espacio de direcciones / 8 con un Aregistro de su servidor en Norteamérica. Esto tendrá algunos resultados incorrectos en ciertas situaciones (algunos bloques / 8 se comparten entre Europa y América del Norte, parte del espacio de direcciones está emitido, etc.), pero lo peor que sucedería es una latencia adicional para la parte afectada, por lo que no debería No será un gran problema.

(Y sí, debería haber una manera de facilitar estas cosas, pero, hasta ahora, parece que no hay ninguna).

cnst
fuente
2

Tuve el mismo problema Nuestra empresa tiene clientes en Rusia y China y todos necesitan una conexión muy rápida a nuestro servicio. Utilizamos Amazon Route 53 Geo dns y acabamos de crear dos registros, uno dirigirá a los clientes de China a nuestro grupo de regiones de Tokio y los clientes de Rusia a Londres.

amanbolat
fuente