Wir haben Probleme beim Erstellen des langen TXT-Datensatzes für den DKIM-Schlüssel auf der Weboberfläche unseres Hosters.
Jede Zeile kann nur 256 Zeichen aufnehmen.
Wir haben mehrere Zeilen ausprobiert und dann versucht, ("
die erste und ")
die letzte Zeile hinzuzufügen, wie einige vorschlagen. Beides funktioniert nicht.
Dann haben wir versucht, einen C-Namen für einen Datensatz auf einem anderen Hoster zu erstellen, wo wir die DKIM TXT-Datensätze erstellen können .
Aber jetzt beschwert sich das Webinterface über illegale Namen in der CNAME
Aufzeichnung.
mail._domainkey.example.com TXT
ist ok
mail._domainkey.example.com CNAME
ist nicht ok
mail.domainkey.example.com CNAME
ist ok, aber nicht was wir wollen.
Ist das Webinterface nur entschlossen, uns verrückt zu machen, oder ist es wirklich "illegal", Unterstriche zu haben CNAME
?
quelle
Antworten:
Ja, DNS-Namen (dies schließt auch A / AAAA ein) dürfen nur enthalten
[0-9], [a-z], -
, daher ist der Unterstrich nicht gültig. Beachten Sie, dass ein TXT-Datensatz kein Hostname ist und diese Einschränkung für ihn nicht gilt. Und noch eine letzte Änderung:-
Kann auch nicht als erstes Zeichen verwendet werden,mail.-domainkey.our.dom
wäre also nicht gültig.https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames
Endgültige Bearbeitung: Ich habe mich teilweise geirrt. Wenn ein CNAME als Hostname verwendet wird, gelten die oben genannten Einschränkungen. Es scheint, dass ein CNAME im DKIM-Kontext nicht als Hostname betrachtet wird und in diesem Fall
_
ein gültiger Teil eines CNAME-Eintrags sein sollte. Siehe /programming/13650233/underscore-in-cname-required-by-ses-not-allowed-by-registrar/26692491#26692491quelle
_foo CNAME _bar
ist völlig legitim, können Sie mit testennamed-checkzone
.Alle gültigen Zeichen sind in DNS zulässig. Siehe https://tools.ietf.org/html/rfc2181#section-11
"DNS selbst legt nur eine Einschränkung für die bestimmten Labels fest, mit denen Ressourceneinträge identifiziert werden können. Diese eine Einschränkung bezieht sich auf die Länge des Labels und den vollständigen Namen. Die Länge eines Labels ist auf 1 bis 63 Oktette begrenzt. ""
Der Client muss Namenswerte validieren. EG Ein MX-Datensatz enthält möglicherweise den Wert "Alice". Nach der Suche sollte dieser Wert jedoch abgelehnt werden, da "Alice" keine gültige E-Mail-Adresse ist.
In diesem Fall sieht es so aus, als würde Ihr Hoster Ihre Eingabe "validieren" und er sollte sie manuell für Sie eingeben können.
quelle
_
oder was auch immer Sie möchten. Für einige Datensätze können Sie jedoch nur Hostnamen und keine Domänennamen verwenden. Hostnamen sind nur Buchstaben, Ziffern und Bindestriche, sonst nichts. Beispielsweise ist der Eigentümer einesA
oder einesAAAA
Datensatzes ein Hostname und kein Domänenname. Das RDATA (Ziel) einesNS
Datensatzes ist ebenfalls ein Hostname, kein Domänenname.RFC 1034: Die Labels müssen den Regeln für ARPANET-Hostnamen entsprechen. Sie müssen mit einem Buchstaben beginnen, mit einem Buchstaben oder einer Ziffer enden und als innere Zeichen nur Buchstaben, Ziffern und Bindestriche enthalten. Es gibt auch einige Einschränkungen hinsichtlich der Länge. Beschriftungen dürfen maximal 63 Zeichen lang sein.
quelle
_
.3com.com
um beispielsweise dieser Regel Rechnung zu tragen , siehe locks.ietf.org/html/rfc1123#page-13 "Ein Aspekt der Syntax von Hostnamen wird hiermit geändert: die Einschränkung des ersten Zeichens ist entspannt, um entweder einen Buchstaben oder eine Ziffer zuzulassen. "esp_245537
als Hostname verwendet wird, muss das DNS-Update abgelehnt werden, da es kein gültiger Hostname ist. Wenn dies als Domänenname verwendet wird, sollte das DNS-Update erfolgreich sein (andernfalls handelt es sich um einen Fehler), da es sich um eine gültige DNS-Bezeichnung handelt.@ Svens Antwort mit der Bearbeitung ist bereits richtig, aber nur um die Dinge direkt zu formulieren.
TL; DR Ja Unterstrich ist in einem
CNAME
Datensatz auf beiden Seiten gültig. Lesen Sie unten, warum.RFC 1034 und andere definieren Datensätze basierend auf "Domänennamen", die Bezeichnungen mit einem beliebigen Zeichen sind, einschließlich
_
.Aber einige Datensätze haben strengere Regeln für den Eigentümer als Namen und / oder die Ressourcendaten (RDATA). Dort wird nur ein Hostname akzeptiert, und tatsächlich gelten jetzt (sie wurden in der Vergangenheit gelockert, als ein Hostname nicht mit einer Ziffer beginnen konnte), dass Sie einen beliebigen ASCII-Buchstaben (ohne Berücksichtigung der Groß- und Kleinschreibung), beliebige ASCII-Ziffern und die Bindestriche verwenden können , plus einige zusätzliche Positionsregeln: kein Bindestrich am Anfang oder Ende und keine doppelten Bindestriche an Position 3 und 4 (wegen "Reservierung" für IDNs in der Form,
xn--
die nur in Groß- und Kleinschreibung zulässig ist).Beispielsweise ist der Eigentümername eines
A
oder einesAAAA
Datensatzes ein Hostname und kein Domänenname. Estest.example.com A 192.0.2.1
gilt also, warum all dies nicht der Fall ist:Es ist einfach, Dinge mit dem
named-checkzone
Programm zu testen (Teil derbind
Nameserver-Software, kann jedoch separat verwendet und installiert werden, und andere Nameserver verfügen möglicherweise über ähnliche Überprüfungswerkzeuge, und wahrscheinlich gibt es auch dafür Online-Schnittstellen). Fügen Sie einfach Datensätze in eine Datei ein und führen Sie sie aus es auf:(Die Zahl vor dem
IN
ist die TTL. Dies hängt nicht mit unserem Problem hier zusammen, sondern muss nur die Syntaxvalidierung eines Datensatzes bestehen.)Bei anderen Datensätzen ist das Gegenteil der Fall:
NS
Es gibt keine Einschränkungen für den Eigentümer, sondern Einschränkungen für das "Ziel", das die Daten sind. Die Daten können nur ein Hostname sein, kein Domänenname, da Sie auf autorisierende Nameserver verweisen müssen, die physische Hosts sind, die auf DNS-Abfragen antworten.Nun zu
CNAME
, hier sind die entsprechenden Zitate aus RFC 1034, in Abschnitt 3.6:Sowohl der Eigentümer von a
CNAME
(was sich links davon befindet) als auch die damit verbundenen Ressourcendaten, sein Ziel / Ziel (was sich rechts davon befindet) sind Domänennamen und nicht nur Hostnamen. Grundsätzlich ist jedes Zeichen, also einschließlich_
, auf beiden Seiten erlaubt.Wieder einfach zu testen mit
named-checkzone
:Keine Fehler bezüglich der
CNAME
(die anderen Fehler werden erwartet, da ich in meiner gefälschten Zone keineSOA
oderNS
Aufzeichnungen wie eine echte Zone platziert habe)quelle