¿Cuál es el límite práctico para las direcciones IP en DNS round-robin?

8

Actualmente estoy ejecutando un sitio cuyo tráfico se distribuye entre 7 servidores espejo en este momento (usando DNS round robin). Pero pronto serán necesarios más espejos dada la gran cantidad de tráfico que crece permanentemente.

¿Existe algún límite práctico o recomendado para la cantidad de direcciones IP asociadas a un nombre de dominio dado cuando se utiliza DNS round robin?

Además, ¿qué tipo de solución recomendaría cuando el número de espejos sea alto (por ejemplo, más de 10 o 20 espejos)?

Gracias.

Liberarse
fuente

Respuestas:

10

Una cosa a tener en cuenta es que, por defecto, las búsquedas de DNS usan UDP. Si la respuesta es mayor de lo que puede caber en un solo datagrama, se devuelven todos los que quepan y el bit TC (truncado) se establece en el encabezado.

El solicitante puede optar por trabajar con lo que se devolvió o volver a intentar la consulta utilizando TCP.

Se supone que los servidores DNS de almacenamiento en caché no deben almacenar en caché las respuestas truncadas, ya que no saben qué tan completo es el conjunto de registros devueltos (la respuesta no dice "Te estoy dando 12 de 28 registros").

Entonces, el número máximo de registros es un factor de cuánto puede pegar en un datagrama UDP. Recuerde que la respuesta debe incluir la sección de autoridad, que variará en tamaño según el registro SOA de la zona.

Si está utilizando registros CNAME, eso también aumentará el tamaño de la respuesta, a medida que recupere el registro CNAME y A del elemento señalado.

Su mejor opción es jugar con varios números de registros A usando dig o "host -v" para ver cuándo la consulta cruza el tamaño máximo de una respuesta UDP.

James F
fuente
1
en realidad, los servidores de almacenamiento en caché pueden almacenar respuestas en caché si se recibió toda la sección. Si la sección 'respuesta' está bien pero la sección 'adicional' se truncó, estaría bien almacenar esa respuesta en caché.
Alnitak
8

No existe un límite estricto, pero la mayoría de los sitios no tienen más de 5 o 10 réplicas. La duplicación a través de DNS round robin es más útil si los sitios están separados geográficamente para que haya redundancia además de compartir la carga.

A medida que aumenta la cantidad de espejos, la eficiencia del uso de DNS round robin como carga compartida disminuye porque DNS round robin no tiene en cuenta las diferentes solicitudes que requieren más recursos. Es mejor utilizar el equilibrio de carga frontal para distribuir la carga de trabajo por la carga de la CPU y la disponibilidad del servidor, lo que también simplificará el mantenimiento, ya que un servidor puede retirarse inmediatamente sin un cambio de DNS, lo que hace que los clientes intenten acceder a un servidor caído desde los registros DNS en caché .

Miguel
fuente
3

Llego tarde a esta pregunta, pero pensé que sería bueno mencionar los límites reales de lo que puedes hacer. No conozco ningún límite teórico, pero varios ISP no superarán los 36. En realidad, si incluye más que eso, no solo incluirá los servidores adicionales, sino que lo ignorarán por completo. Verizon y Comcast fueron los dos con los que tuve problemas, pero estoy seguro de que otros están afectados.

Dicho esto, si tiene suficiente tráfico para garantizar 36 espejos, no utilice DNS round-robin.

UltimateBrent
fuente
2

Si tiene muchos servidores, quizás la mejor respuesta sea hacer como Akamai y usar servidores DNS de difusión ilimitada y round robin. En otras palabras, los servidores DNS para la zona se distribuyen alrededor de la red, todos con las mismas direcciones IP y puntos de enrutamiento de clientes en los servidores más cercanos a nivel de red. Cada servidor responde en round-robin para un subconjunto de la lista completa de servidores posibles.

Andrew McGregor
fuente
1

Hacemos algo muy similar, pero utilizamos equilibradores de carga de hardware (Cisco ACE por cierto), de esta manera el único límite es el tamaño de la subred (si es así).

Chopper3
fuente