Nous avons du mal à créer le long enregistrement TXT pour la clé DKIM sur l'interface Web de notre hébergeur.
Chaque ligne ne peut accepter que 256 caractères.
Nous avons essayé plusieurs lignes, puis essayé d'ajouter ("
au premier et ")
après le dernier comme certains le suggèrent. Ni l'un ni l'autre ne fonctionne.
Ensuite, nous avons essayé de créer un cname pour un enregistrement sur un autre hébergeur, où nous pouvons créer les enregistrements DKIM TXT.
Mais maintenant, l'interface Web se plaint du nom illégal dans l' CNAME
enregistrement.
mail._domainkey.example.com TXT
est ok
mail._domainkey.example.com CNAME
n'est pas ok
mail.domainkey.example.com CNAME
est ok, mais pas ce que nous voulons.
L'interface Web est-elle juste déterminée à nous rendre fous, ou est-ce vraiment «illégal» d'avoir des soulignés CNAME
?
Réponses:
Oui, les noms DNS (cela inclut également A / AAAA) peuvent uniquement contenir
[0-9], [a-z], -
, le trait de soulignement n'est donc pas valide. Notez qu'un enregistrement TXT n'est pas un nom d'hôte et que cette restriction ne s'applique pas. Et une dernière modification:-
ne peut pas non plus être utilisé comme premier caractère, doncmail.-domainkey.our.dom
ne serait pas valide.https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames
Édition finale: je me suis trompé en partie. Lorsqu'un CNAME est utilisé comme nom d'hôte, les restrictions ci-dessus s'appliquent. Il semble qu'un CNAME ne soit pas considéré comme un nom d'hôte dans le contexte DKIM et dans ce cas,
_
devrait être une partie valide d'une entrée CNAME. Voir /programming/13650233/underscore-in-cname-required-by-ses-not-allowed-by-registrar/26692491#26692491la source
_foo CNAME _bar
est complètement légitime, vous pouvez tester avecnamed-checkzone
.Tous les caractères valides sont autorisés dans DNS. Voir https://tools.ietf.org/html/rfc2181#section-11
"DNS lui-même ne place qu'une seule restriction sur les étiquettes particulières qui peuvent être utilisées pour identifier les enregistrements de ressources. Cette restriction concerne la longueur de l'étiquette et le nom complet. La longueur d'une étiquette est limitée entre 1 et 63 octets. "
Le client doit valider les valeurs de nom EG, un enregistrement MX peut contenir la valeur "Alice" mais après la recherche, cette valeur doit être rejetée car "Alice" n'est pas une adresse e-mail valide.
Dans ce cas, il semble que votre hébergeur "valide" votre entrée, et il devrait pouvoir l'entrer manuellement pour vous.
la source
_
ou quoi que vous vouliez aussi. Mais, pour certains enregistrements, vous ne pouvez utiliser que des noms d'hôtes et non des noms de domaine. Les noms d'hôtes ne sont que des lettres, des chiffres et des tirets, rien d'autre. Par exemple, le propriétaire d'unA
ou d' unAAAA
enregistrement est un nom d'hôte, pas un nom de domaine. Le RDATA (cible) d'unNS
enregistrement est également un nom d'hôte, pas un nom de domaine.RFC 1034: Les étiquettes doivent suivre les règles des noms d'hôte ARPANET. Ils doivent commencer par une lettre, se terminer par une lettre ou un chiffre et avoir comme caractères intérieurs uniquement des lettres, des chiffres et un trait d'union. Il existe également des restrictions sur la longueur. Les étiquettes doivent contenir 63 caractères ou moins.
la source
_
.3com.com
par exemple cette règle a été assouplie, voir tools.ietf.org/html/rfc1123#page-13 "Un aspect de la syntaxe du nom d'hôte est par la présente changé: la restriction sur le premier caractère est détendu pour autoriser une lettre ou un chiffre. "esp_245537
est utilisé comme nom d'hôte, la mise à jour DNS doit être refusée car ce n'est pas un nom d'hôte valide. Si celui-ci est utilisé comme nom de domaine, la mise à jour DNS doit réussir (sinon c'est un bogue), car il s'agit d'une étiquette DNS valide.La réponse de @ Sven, avec la modification, est déjà juste, mais juste pour exprimer les choses directement.
TL; DR oui le soulignement est valide dans un
CNAME
enregistrement des deux côtés, lisez ci-dessous pour savoir pourquoi.La RFC 1034 et d'autres définissent des enregistrements basés sur des "noms de domaine" qui sont des étiquettes avec n'importe quel caractère, donc y compris
_
.Mais certains enregistrements ont des règles plus strictes pour le nom du propriétaire et / ou les données de ressource (RDATA). Là, seul un nom d'hôte sera accepté et en effet, les règles sont maintenant (elles étaient assouplies dans le passé où un nom d'hôte ne pouvait pas commencer par un chiffre) que vous pouvez utiliser n'importe quelle lettre ASCII (pas de respect de la casse), tous les chiffres ASCII et les tirets , plus quelques règles de position supplémentaires: pas de trait d'union au début ou à la fin et pas de double trait d'union aux positions 3 et 4 (en raison de la "réservation" pour les IDN qui sont de la forme
xn--
qui est uniquement autorisée par la casse).Par exemple, le nom du propriétaire d'un
A
ou d' unAAAA
enregistrement est un nom d'hôte, pas un nom de domaine. Iltest.example.com A 192.0.2.1
est donc valable pourquoi tous ces éléments ne sont pas:Il est facile de tester des choses avec le
named-checkzone
programme (une partie dubind
logiciel du serveur de noms mais peut être utilisée et installée séparément et d'autres serveurs de noms peuvent avoir des outils de vérification similaires et il y a probablement des interfaces en ligne pour cela aussi de toute façon), il suffit de mettre des enregistrements dans un fichier et de l'exécuter sur:(le nombre avant le
IN
est le TTL, ceci n'est pas lié à notre problème ici, mais il suffit de passer la validation de la syntaxe d'un enregistrement).Pour les autres enregistrements, c'est l'inverse: car
NS
il n'y a pas de restrictions sur le propriétaire, mais des restrictions sur la "cible" que sont les données. Les données ne peuvent être qu'un nom d'hôte, pas un nom de domaine, car vous devez pointer vers des serveurs de noms faisant autorité qui sont des hôtes physiques qui répondent aux requêtes DNS.Maintenant
CNAME
, voici les citations pertinentes de la RFC 1034, dans la section 3.6:Ainsi, à la fois le propriétaire d'un
CNAME
(ce qui est à gauche) et les données de ressource qui lui sont attachées, sa destination / cible (ce qui est à droite) sont des noms de domaine, et pas seulement des noms d'hôte. Fondamentalement, n'importe quel caractère, donc l'inclusion_
est autorisée des deux côtés.Encore une fois, facile à tester avec
named-checkzone
:Aucune erreur sur le
CNAME
(les autres erreurs sont attendues car dans ma fausse zone je n'en ai pas misSOA
ou desNS
enregistrements comme une vraie zone l'aurait fait)la source