Tener múltiples CNAME

11

Tenemos nuestro dominio DNS con CNAME de 5 niveles por razones históricas. Algunas de las cosas se subcontrataron por alta disponibilidad, etc., pero ese no es el punto aquí. Mi pregunta es tener 5 CNAMEs una exageración para el solucionador de DNS? No pude encontrar ningún sitio web famoso con más de 2-3 niveles de CNAME anidados que apuntaran a diferentes dominios DNS.

Nuestros saltos CNAME se ven de la siguiente manera: (estoy usando xyz solo como ejemplo)

www.xyz.com -> xyz.akadns.net -> xyz.worldwide.akadns.net -> xyz.cedexis.net -> xyz.msedge.net -> host1.msedge.net (registro final A \ AAAA)

Veo que muchos clientes se quejan de problemas de resolución de DNS en nuestro sitio web cuando otros sitios funcionan bien para ellos, aunque cuando uso http://check-host.net/check-dns?host=www.xyz.com para probar nuestro DNS resolución.

Parece que siempre funciona bien en todo el mundo. Mi conclusión es que, sobre todo, es que la solución DNS del proveedor de ISP local está fallando cuando uno de los saltos anteriores no se resuelve. nslookup falla en estas computadoras cliente solo para nuestro sitio web y eso también esporádicamente.

¿Es este tipo de CNAME multinivel un mal diseño en general?

Vishal Naidu
fuente
1
Trabajé para Akamai hace unos años, y uno de nuestros clientes informó que cierto enrutador tenía un problema con 5 niveles de anidamiento. Creo que el firmware del enrutador finalmente se solucionó.
Barmar

Respuestas:

15

¿Es este tipo de CNAME multinivel un mal diseño en general?

Las cadenas de CNAME a CNAME no están prohibidas, pero como ya experimentas, no es una solución muy sólida.

Cada CNAME adicional aumenta la profundidad de recursión para el resolutor, y esa profundidad no siempre es ilimitada. También corre el riesgo de crear bucles o activar el algoritmo de detección de bucles.

Para tener una idea de cuántas y qué consultas debe hacer un servidor de nombres de usuarios, ejecute un rastreo de DNS:

dig +trace www.example.com 

o en Windows

nslookup -debug www.example.com
HBruijn
fuente
11

HBrujin es correcto, pero en realidad la profundidad de la recursividad es mucho peor de lo que cualquier cosa te dig +traceva a mostrar. La profundidad de recursión es algo que a menudo se burla y se trivializa en exceso, pero esas personas olvidan que no solo estás resolviendo ~ 5 CNAMEregistros. Esto se debe a que la resolución del objetivo de un CNAMEregistro crea la necesidad de buscar cada servidor de nombres en la ruta, que con frecuencia es mucho más de lo que parece a primera vista.

¿El CNAMEobjetivo vive en otro dominio? Tendrá que recurrir a sus servidores de nombres, lo que requiere no solo NSbúsquedas de registros, sino también A(AAA)búsquedas donde el pegamento no está presente. ¿Los servidores de nombres para esos servidores de nombres viven en un dominio de nivel superior diferente? Si esos TLD no comparten servidores de nombres, lo más probable es que los registros de pegamento no se incluyan y también debe recurrir a través de los servidores de nombres de otros TLD. Y así.

Cada CNAMEregistro agregado a la cadena puede agregar exponencialmente a la cantidad de búsquedas requeridas dependiendo de la cantidad de servidores de nombres que necesitan ser recurridos. Estas cadenas de búsquedas de registros CNAME+ NS+ A(AAA)a su vez pueden volverse increíblemente enrevesadas, alcanzando más de 150 niveles de profundidad en un caché vacío. Aquí es donde los límites de profundidad de recursión pueden volverse extremadamente desagradables, lo que resulta en fallas temporales para buscar su dominio en un caché vacío, y por razones que a menudo no son evidentes de inmediato.

En resumen, puede hacer esto, pero proceda con precaución y tome en serio los comentarios sobre esta naturaleza. No tiene control sobre la frecuencia con la que se reinician o purgan los servidores DNS recursivos en Internet.

Andrew B
fuente
El software de mi cliente se encuentra en un montón de máquinas que realizan llamadas http remotas. ¿Será justo volver a intentar todos los CNAME del cliente reduciendo la profundidad de recursión \ carga en el resolutor? ¿Suena esto un buen enfoque o me estoy perdiendo algo? Sé que los CNAME no cambiarán a través de las geografías.
Vishal Naidu
No es un buen enfoque. Por lo general, el servidor que no pudo buscar los datos almacenará temporalmente la falla en la memoria caché. La consulta podría tener éxito nuevamente en el futuro (por ejemplo, dentro de 5 minutos), pero es poco probable que tenga éxito en un reintento inmediato. Si proporciona el nombre de su registro DNS, puedo hacerle saber si esto es realmente un problema de profundidad de recursión o algo menos obvio. Odiaría que estemos yendo por la madriguera del conejo equivocada.
Andrew B el
0

Los niveles múltiples a CNAMEmenudo son útiles en la práctica. Cada nivel de redireccionamiento proporciona un nivel de control en una zona administrativa potencialmente distinta o en una organización completamente diferente. Si bien esto no es técnicamente necesario, puede solucionar problemas organizativos .

Como otras personas han notado, esto puede causar dificultades, pero se pueden abordar:

  • supervisar todos los servidores DNS. Tal vez uno está funcionando mal. Monitoree servidores externos así como los suyos. Es posible que deba informar un problema a Akamai u otros proveedores.

  • TTLs debe establecerse lo suficientemente alto como para permitir el almacenamiento en caché, pero lo suficientemente bajo como para que pueda cambiar el tráfico lo suficientemente rápido para su aplicación

polluelos
fuente
2
No estoy seguro de entender la recomendación de monitoreo. No solo los límites de profundidad de recursión varían de un producto a otro, ¿cómo propone monitorearlos? No se puede identificar fácilmente la causa de la infracción recursiva de otra persona.
Andrew B