¿Cómo hacer DNS regional como lo hace un CDN?

15

Supongo que esta pregunta podría tener derecho, ¿cómo funcionan los CDN a nivel de DNS? Pero el verdadero problema que tengo es que mi empresa tiene centros de datos en tres continentes y tenemos que tener europe.example.com us.example.com y asia.example .com

Los CDN generalmente lo envían al centro de datos local que imagino dependiendo de su dirección IP. Esto debe ser una cuestión de DNS en la que el servidor DNS de EE. UU. Lo envía a un centro de datos de EE. UU. Para la misma búsqueda de DNS de example.com.

¿Me equivoco? Si me equivoco al respecto, ¿cómo lo haría de manera efectiva y, si es posible, sin servidores centrales (que no sean DNS)?

Stewart Robinson
fuente
55
No debe: queue.acm.org/detail.cfm?id=1647302
Etienne Dechamps el

Respuestas:

12

El problema con los CDN es que no lo dirigen según su propia dirección IP, sino que lo dirigen según la dirección IP de su servidor DNS ... Eso podría estar completamente equivocado. Y lea el artículo de ACM de Paul Vixie , es una explosión de dinero.

De todos modos, si ya region.example.comestá configurado y en ejecución, podría considerar hacer una redirección HTTP desde example.comel servidor web relevante, en función de la dirección IP del cliente.

Eso es más o menos lo que hace Google, así es como termino google.co.ukescribiendo google.com.

Sin embargo, asegúrese de proporcionar un medio para que los clientes lleguen a las otras variaciones. A los clientes no les gusta cuando se ven obligados a un sitio en particular, ya sea por errores en las bases de datos Geo o simplemente porque realmente necesitan ver el sitio desde otra región.

Alnitak
fuente
5

Los CDN más nuevos (Cloudflare, MaxCDN, fast.ly) usan anycast para servidores de contenido DNS y reales. Esto es algo mejor que tratar de usar la IP de origen de una consulta DNS y una base de datos de mapeo siempre cambiante.

En teoría, el uso de anycast para los servidores de contenido y DNS permite que la red misma encuentre los servidores "más cercanos" al cliente. En la práctica, esto es cierto en su mayoría, pero surgen algunos casos extraños en los que las personas en Singapur llegan a los servidores de borde en California en lugar de Hong Kong debido a las relaciones de intercambio entre ISP que cambian constantemente.

Anycast es difícil de hacer bien .

Los CDN más antiguos, como Akamai y Limelight, generalmente usan anycast para llevarlo al servidor DNS más cercano, pero luego adoptan el enfoque de IP basado en conjeturas basado en la fuente. En mi experiencia, esto no funciona tan bien, especialmente si un cliente está utilizando servidores DNS que no están realmente cerca en términos de topología de red. Sin embargo, una gran CDN establecida como Akamai tiene cientos de ubicaciones de servidores de contenido, por lo que devolver una respuesta "lo suficientemente cercana" da como resultado una experiencia decente para el usuario. Obviamente, tener cientos de sitios es muy costoso, razón por la cual ninguno de los CDN de difusión única eligió esa ruta. En consecuencia, tampoco cobran tanto por un servicio en su mayoría equivalente.

rmalayter
fuente
1

Hay varias formas de manejar esto, pero todas se reducen a averiguar dónde está una dirección IP y señalarla en consecuencia. Por ejemplo, puede especificar un rango de IP para Norteamérica y uno para Europa. Si la IP que solicita la información (de DNS, su servidor web, su servidor de contenido, etc.) se encuentra en el rango europeo, entonces sus servidores europeos deben recibir las solicitudes.

Ben Doom
fuente
Ben, a que te refieres? ¿Quiere decir que tengo un servidor DNS en los Estados Unidos y uno, por ejemplo, en el Reino Unido? Cuando pienso en DNS, simplemente establezco mi registro A y listo. ¿Cómo puedo especificar estos servidores DNS a nivel regional?
Stewart Robinson el
Creo que a lo que se refiere es a algo así como puntos de vista vinculados. Puede configurar diferentes vistas dentro de DNS que coincidan en función de la dirección IP del cliente, que puede identificarse aproximadamente como perteneciente a una región geográfica. Hay muchos servicios disponibles que puede canalizar una solicitud a una API y obtener una ubicación. Mirando a su alrededor brevemente, puede probar hostip.info/dl/index.html para obtener una opción más barata / sin costo.
Greeblesnort el
Me
topé
@Stewart: no, no ejecutarías un servidor DNS por región. Bueno, podría, pero eso sería por redundancia, ya que el sistema DNS en sí mismo es ubicación-línea. La respuesta de @ greeblesnort es casi tan buena como su nombre. :-)
Ben Doom
0

Puede configurar una página principal predeterminada en example.com. La primera vez que alguien visita, selecciona a qué región quiere que se le dirija. Esta es la misma forma en que funciona www.ups.com.

El usuario puede seleccionar una casilla de verificación para hacer su elección predeterminada a partir de ese momento, almacenando la selección en una cookie.

Esto le brinda el beneficio de usar DNS de la manera en que fue diseñado de acuerdo con Paul Vixie, mientras le permite a su usuario tomar la decisión más precisa sobre el centro de datos al que debe dirigirse.

Richard West
fuente
0

Si tiene un sitio web alojado en varias regiones, entonces no necesita hacer nada a nivel DNS. Puede usar una API como http://ipinfo.io para obtener el país del visitante y luego redirigirlo a la URL adecuada.

Si no estamos hablando de un sitio web, o de cualquier protocolo que maneje redirecciones, entonces hay algunas opciones a nivel de DNS. Podría hacer la misma búsqueda de país IP y luego devolver un registro que coincida con la región (DNS basado en geolocalización), o podría tener un mapa de la latencia entre diferentes redes y devolver un registro que represente la latencia más baja para el usuario (latencia DNS basado). El servicio DNS Route53 de Amazon ofrece ambos.

Ben Dowling
fuente