92 votes

Une chaîne de CNAME à CNAME est-elle autorisée ?

Est-il permis dans le DNS d'avoir un enregistrement CNAME qui pointe vers un autre enregistrement CNAME ?

La raison pour laquelle nous en avons besoin est que nous avons un nom d'hôte que nous voulons faire rechercher par l'adresse IP de notre ordinateur serveur web. Nous disposons également d'un autre ordinateur serveur web de réserve qui pourrait être activé si le premier venait à mourir. Dans un tel cas, nous aurions rapidement besoin de faire pointer le nom d'hôte vers l'adresse IP de l'ordinateur serveur web de réserve.

Malheureusement, le nom d'hôte réside dans un domaine DNS où tout changement prendrait beaucoup de temps en raison d'une opération manuelle dépendant d'autres sysadmins. Mais nous avons un autre domaine DNS où nous pouvons effectuer les changements nous-mêmes rapidement. Une chaîne de CNAME à CNAME semble être une solution possible. Mais est-elle autorisée ? Les navigateurs web le comprendront-ils ?

101voto

Paweł Brodacki Points 6411

Desde RFC 1034 - Noms de domaine - concepts et fonctionnalités :

Les noms de domaine dans les RR qui pointent sur un autre nom doivent toujours pointer sur le nom primaire et non l'alias. Cela évite les indirections supplémentaires dans l'accès aux informations. Par exemple, l'adresse du nom RR pour l'hôte ci-dessus devrait être :

52.0.0.10.IN-ADDR.ARPA  IN      PTR     C.ISI.EDU

plutôt que de pointer sur USC-ISIC.ARPA. Bien sûr, selon le principe de robustesse le logiciel de domaine ne devrait pas échouer lorsqu'on lui présente des chaînes CNAME ou des boucles CNAME ; les chaînes CNAME doivent être suivies et les boucles CNAME signalées comme un problème. signalées comme une erreur.

Donc oui, c'est autorisé et un logiciel correctement écrit le gérera très bien. Les chaînes CNAME ne sont cependant pas considérées comme une bonne pratique et imposent une surcharge à l'infrastructure.

5 votes

+1 pour la référence RFC

16 votes

Bien que je fasse cela tout le temps, la citation ci-dessus est hors contexte. Juste au-dessus de ce paragraphe, on peut lire.. Domain names in RRs which point at another name should always point at the primary name and not the alias. This avoids extra indirections in accessing information.

4 votes

Mentionné par le responsable des réseaux Microsoft Azure Le chaînage des CNAME est important pour l'équilibrage de la charge d'AnyCast.

34voto

maclema Points 5959

Bien sûr, c'est possible.

Il est généralement découragé pour la raison évidente qu'il utilise plus de ressources DNS. Par exemple :

foo   IN      CNAME  someserver.somehost.com.
bar   IN      CNAME  foo

La recherche de "bar" donnerait lieu à un CNAME. foo en cours d'interrogation, alors someserver.somehost.com. en cours d'interrogation, ce qui entraîne une interrogation supplémentaire.

Pour chaque élément de la chaîne que vous ajouterez, une autre requête sera nécessaire.

Une autre raison est déconseillée car, en créant des chaînes comme celles-ci, les chances que vous créiez d'une manière ou d'une autre Boucles CNAME sont augmentées ; celles-ci devraient être détectées automatiquement par les serveurs DNS actuels, mais imposeraient néanmoins une charge importante aux serveurs.

8voto

Mike Scott Points 7853

Oui, c'est autorisé et cela fonctionne, mais ce n'est pas considéré comme une bonne pratique. Les recherches multiples consomment plus de ressources, et il y a un risque de créer accidentellement une boucle.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X