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?
fuente
Respuestas:
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:
o en Windows
fuente
HBrujin es correcto, pero en realidad la profundidad de la recursividad es mucho peor de lo que cualquier cosa te
dig +trace
va 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 ~ 5CNAME
registros. Esto se debe a que la resolución del objetivo de unCNAME
registro 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
CNAME
objetivo vive en otro dominio? Tendrá que recurrir a sus servidores de nombres, lo que requiere no soloNS
búsquedas de registros, sino tambiénA(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
CNAME
registro 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 registrosCNAME
+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.
fuente
Los niveles múltiples a
CNAME
menudo 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.
TTL
s 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ónfuente