web-dev-qa-db-fra.com

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

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

La raison pour laquelle nous avons besoin de cela est que nous avons un nom d'hôte que nous voulons rechercher à l'adresse IP de notre ordinateur serveur Web. Nous avons également un autre ordinateur serveur Web qui pourrait être activé au cas où le premier mourrait. Dans un tel cas, nous aurions rapidement besoin de pointer le nom d'hôte vers l'adresse IP de l'ordinateur serveur Web de secours.

Malheureusement, le nom d'hôte réside dans un domaine DNS où toute modification prendrait beaucoup de temps en raison d'une opération manuelle dépendante d'autres administrateurs système. Mais nous avons un autre domaine DNS où nous pouvons effectuer les changements nous-mêmes rapidement. Avoir une chaîne CNAME vers CNAME semble être une solution possible. Mais est-ce permis? Les navigateurs Web le comprendront-ils?

72
Erik Sjölund

De RFC 1034 - Noms de domaine - concepts et équipements :

Les noms de domaine dans les RR qui pointent vers un autre nom doivent toujours pointer vers le nom principal et non l'alias. Cela évite des indirections supplémentaires dans l'accès aux informations. Par exemple, l'adresse pour nommer RR pour l'hôte ci-dessus doit ê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, les logiciels de domaine ne devraient pas échouer lorsqu'ils sont présentés avec des chaînes ou des boucles CNAME; Les chaînes CNAME doivent être suivies et les boucles CNAME signalées comme une erreur.

Alors oui, il est autorisé et un logiciel correctement écrit le traitera tout simplement OK. Les chaînes CNAME ne sont cependant pas considérées comme une bonne pratique et imposent des frais généraux à l'infrastructure.

84
Paweł Brodacki

Bien sûr, c'est possible.

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

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

L'interrogation de 'bar' entraînerait la requête de CNAME foo, puis someserver.somehost.com. étant interrogé, ce qui entraîne une requête supplémentaire.

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

ne autre raison cela est découragé, c'est qu'en créant des chaînes comme celles-ci, les chances que vous créiez en quelque sorte boucles CNAME sont augmentées; ceux-ci devraient être détectés automatiquement par les serveurs DNS actuels, mais imposeraient tout de même une charge importante aux serveurs.

26
Aron Rotteveel

Oui, c'est autorisé et cela fonctionnera, mais ce n'est pas considéré comme une bonne pratique. Les recherches multiples utilisent plus de ressources et il existe un risque de création accidentelle d'une boucle.

5
Mike Scott