web-dev-qa-db-fra.com

Enregistrements SRV publiés pointant vers l'alias CNAME en violation de la RFC 2782?

Au cours de certaines responsabilités de travail, j'ai besoin d'incliner sur les enregistrements SRV, et j'essaie de réconcilier une déclaration de Wikipedia avec ce que je vois dans les fouilles DNS.

Selon entrée SRV Wikipedia ,

la cible des enregistrements SRV doit indiquer au nom d'hôte avec un enregistrement d'adresse (un enregistrement AAAA). Le fait de pointer vers un nom d'hôte avec un enregistrement CName n'est pas une configuration valide.

mais je vois des enregistrements où Dig renvoie un enregistrement SRV pointant vers un nom qui est l'alias dans un enregistrement CName.

C'est-à-dire quelque chose comme ça:

> Dig _https._tcp.alpha.domain.com SRV

;; QUESTION SECTION:
;_https._tcp.alpha.domain.com.    IN    SRV

;; ANSWER SECTION:
_https._tcp.alpha.domain.com 59 IN SRV 30 30 4443 alias.domain.com


> Dig alias.domain.com

;; QUESTION SECTION:
;alias.domain.com.    IN    A

;; ANSWER SECTION:
alias.domain.com.  35  IN  CNAME canonical.name.amazonaws.com.
canonical.name.amazonaws.com. 35 IN A 52.78.234.189
canonical.name.amazonaws.com. 35 IN A 107.21.179.88
canonical.name.amazonaws.com. 35 IN A 52.12.126.92

Il semble que l'enregistrement SRV soit configuré exactement la manière dont l'entrée Wikipedia dit n'est pas autorisée. Qu'est-ce que je suis mal compris? N'est-ce pas montrant que les points d'enregistrement SRV à alias.domain.com, qui dispose d'un enregistrement CNAME, et non d'un enregistrement d'adresse?

15
Scott

L'article Wikipedia que vous citez des rapports sur les rapports pertinents RFC 2782 pour SRV enregistre des États:

Cible

Le nom de domaine de l'hôte cible. Il doit y avoir un ou plusieurs enregistrements d'adresse pour ce nom, le nom ne doit pas être un alias (dans le sens de la RFC 1034 ou de la RFC 2181).

Ce que vous voyez est une violation claire des règles; Cependant, cela peut fonctionner (et elle habituellement , si quoi que ce soit La demande de clients recherche que l'enregistrement SRV est suffisamment intelligent pour gérer correctement un enregistrement CNAME, même s'il ne devrait s'attendre qu'à un enregistrement dans la réponse.

Mais cela pourrait aussi non fonctionne du tout: il est non pris en charge et complètement dépendant de l'application client; Ainsi, cela devrait être évité, car il ne correspond pas aux règles appropriées et pourrait entraîner des résultats erronés et/ou imprévisibles.

Ceci est similaire à la pointe de l'enregistrement MX à un nom de CNAME, qui est défini comme juste mal dans non seulement n , mais - deux RFCS, et pourtant, c'est une pratique assez courante (et aucun serveur de messagerie semble avoir un problème avec elle).

10
Massimo

C'est un exemple du comportement restreint, oui. La restriction elle-même provient de RFC 2781 dans la définition de "cible":

   Target
        The domain name of the target Host.  There MUST be one or more
        address records for this name, the name MUST NOT be an alias (in
        the sense of RFC 1034 or RFC 2181).  Implementors are urged, but
        not required, to return the address record(s) in the Additional
        Data section.  Unless and until permitted by future standards
        action, name compression is not to be used for this field.

        A Target of "." means that the service is decidedly not
        available at this domain.

Le logiciel de serveur DNS permettant aux configurations interdites n'est rien de nouveau, malheureusement. Cela peut et fait-il arriver, comme cela fait avec d'autres types d'enregistrements où des cibles aliasées sont interdites telles que NS et MX. (mentionné ci-dessus)

Ce n'est pas parce que cela peut être trouvé dans la nature que c'est "d'accord", et que se passe-t-il lorsqu'une standard est ignorée varie du produit au produit. Je n'ai pas testé l'interaction avec SRV enregistrements, mais une décision de conception très connue par ISC Bind en ce qui concerne les enregistrements NS enregistrements pointant dans des aliases est à Déposez le disque entièrement si trouvé pendant la récursion. Si tous les enregistrements NS sont supprimés de cette manière, le résultat de toutes les requêtes sera SERVFAIL pour le sous-domaine en question.

En bref, collez-vous à la norme. C'est la seule chose sûre à faire.

1
Andrew B