DNS: Trailing Periods

30

Wenn ich meine DNS-Bindungsdatensätze bearbeite, muss ich einen abschließenden Zeitraum hinzufügen, damit dies funktioniert. Was ist der Sinn davon?

Wie kommt es, dass ich bei der Verwendung von everydns.net keine nachfolgende Periode hinzufügen muss?

Ist das eine Implementierungs-Eigenheit?

unbekannte
quelle
Was für eine großartige Frage. Ich habe diesen Punkt nie wirklich beachtet, aber die Antworten hier waren sehr lehrreich (inhaltlich und syntaktisch).
Kara Marfia

Antworten:

21

DNS selbst hat eine Root-Zone. Diese Zone nennt man wörtlich ".". Bind setzt voraus, dass Sie einen DNS-Namen vollständig qualifizieren (dies schließt die .- oder Root-Zone ein). Andere Benutzeroberflächen vereinfachen dies, indem sie die Stammzone für Sie übernehmen.

In Bind können Sie eine Variable definieren ORIGIN, die automatisch angehängt wird, wenn Sie keinen vollqualifizierten Domänennamen (einschließlich des nachfolgenden Domänennamens) angeben. Alnitak verfügt über ein hervorragendes Beispiel für die Syntax und verschiedene Verwendungsmöglichkeiten.

Kevin Colby
quelle
Tatsächlich können Sie die Variable $ ORIGIN definieren, um Ihre Hostnamen vollständig zu qualifizieren. Schauen Sie sich die Kommentare von Russell Heilling und Alnitak an.
Benoit
Sehr guter Punkt. Ich werde bearbeiten, um etwas in Bezug auf diese Tatsache hinzuzufügen.
Kevin Colby
1
Die Root-Zone wird nicht aufgerufen .. Es ist ein leeres Etikett.
bzeaman
17

Das nachgestellte '.' macht den Namen zu einem "vollqualifizierten Domainnamen", dh einem absoluten Domainnamen.

In Standarddateien im "Master-Dateiformat", wenn Sie das abschließende "." Nicht hinzufügen Dann wird angenommen, dass der Name relativ zur aktuellen Zonendatei ist $ORIGIN(die entweder in der Zonendatei wie unten angegeben angegeben oder der zoneAnweisung in entnommen istnamed.conf ansonsten ).

dh

$ORIGIN example.com.
mail    IN A      192.168.1.1
mail2   IN A      192.168.1.2
server  IN A      192.168.1.3
@       IN MX 10  mail                   ; not FQDN - example.com. appended
        IN MX 20  mail2.example.com.     ; FQDN 
        IN MX 30  mail.example.net.      ; FQDN in another domain
        IN MX 40  mail2.example.net      ; ERROR - not FQDN - example.com appended
www     IN CNAME  server                 ; not FQDN - example.com. appended
Alnitak
quelle
3
Denken Sie auch daran, dass ORIGIN, wenn es nicht in der Zonendatei angegeben ist, implizit durch den Namen der bedienten Zone definiert ist.
Bortzmeyer
9

Die . Lässt den Namen relativ zum Stamm sein, ohne ihn wird der Name relativ zur aktuellen Zone sein. Die Standardzone Format wird in definierten RFC1035 und RFC1034 .

Wie kommt es, dass ich bei der Verwendung von everydns.net keine nachfolgende Periode hinzufügen muss?

Ist das eine Implementierungs-Eigenheit?

Ja, es klingt so, als ob easydns.net es ein bisschen schrullig macht.

Zoredache
quelle
2
Genau genommen heißt es "voll qualifiziert", nicht "relativ zur Wurzel".
Alnitak
So ähnlich wie der Unterschied zwischen der Angabe von / var / log und var / log
Matt Simmons
nein, eher wie der Unterschied zwischen / var / log und log, wenn das aktuelle Verzeichnis / var ist
Alnitak
6

Wenn Sie das abschließende "." Nicht eingeben Anschließend fügt der Server den Wert von $ ORIGIN am Ende des Datensatzes hinzu. Dies kann eine sehr nützliche Abkürzung sein und bei guter Verwendung viel Tipparbeit sparen.

Leider ist es auch leicht, das "." Zu vergessen. Dies kann zu schwer zu diagnostizierenden Problemen führen.

Technisch gesehen ist das "." am Ende eines Datensatzes wie www.serverfault.com. Gibt das Trennzeichen zwischen der "" com "gTLD und der" "Root-Zone an.

Russell Heilling
quelle
3

Der nachstehende Punkt teilt dem DNS-Server mit, dass dies ein vollständig qualifizierter Name ist. Der Punkt ist die Wurzel der DNS-Hierarchie. Wenn Sie den Punkt nicht verwenden, geht der DNS-Server davon aus, dass es sich um einen Eintrag in der aktuellen Zone handelt, und hängt ihn für Sie an. Wenn Sie beispielsweise in exmaple.com einen CNAME haben, der auf host.example.org verweist, erhalten Sie bei der Abfrage host.example.org.example.com, was wahrscheinlich nicht Ihren Wünschen entspricht.

Der Grund, warum Sie nicht mit everydns.net mussten, ist, dass sie wahrscheinlich ihre Benutzeroberfläche geschrieben haben, sodass Sie sich nicht um dieses technische Detail kümmern mussten.

David Pashley
quelle
2

In einem fqdn sind die Punkte die tatsächlichen Bezeichner. "com" und "edu", "hp" und "stanford" sind nur willkürliche Trennzeichen. Die Punkte werden durch ihre Drehung eindeutig identifiziert.


quelle
2
Verzeih mir, Serverfault, diese Dummheit kam mir gerade in den Sinn, als ich versuchte, mich mit dem Konzept auf DNS-Root-Ebene zu beschäftigen, von dem ich vor langer Zeit gelesen hatte. Ich denke, eine Möglichkeit ist, dass die DNS-Root-Ebene im Grunde eine Null-Zeichenfolge ist. Wenn Sie also voll qualifiziert sein möchten, müssen Sie einen Punkt hinzufügen. Wenn DNS von einem großen Komitee oder Microsoft entwickelt wurde, wäre die oberste Ebene "top" oder so, und Sie müssten einem FQDN ".top" hinzufügen. Entscheide selbst, welches mehr von PITA wäre.
Was ist mit der Drehung der Punkte? : P Das war so zufällig ...
Shylent
2

Die ursprünglichen Designer wollten in der Lage sein, Hosts in Zonendateien mit einem Minimum an Typisierung anzugeben. Daher wird die Zone standardmäßig an jeden Eintrag angehängt, es sei denn, sie ist vollständig mit einem abschließenden Punkt gekennzeichnet. Dies ist eine Implementierungs-Eigenheit, die bei everydns.net zu Fehlern und Verwirrung bei Neulingen führt. deshalb haben sie es beseitigt.

Mike
quelle