Müssen zwischengeschaltete Subdomains existieren?

27

Wenn ich die Hosts example.comund leaf.intermediate.example.comDNS-Einträge für habe example.com, aber keine Einträge für sich intermediate.example.comselbst habe, verursacht dies in einigen Situationen ein Problem oder ist es aus irgendeinem Grund ein schlechter Stil oder eine schlechte Etikette? Ich habe Webserver so eingerichtet und alles scheint gut zu funktionieren, wollte aber nur prüfen, ob etwas fehlt.

Lassi
quelle
4
Siehe auch: serverfault.com/q/952945/37681
HBruijn
2
Ihr Titel fragt nach existieren , der Körper fragt nach haben keine Aufzeichnung . Für die feinen Unterschiede siehe die Kommentare unten
Hagen von Eitzen

Antworten:

38

TL; DR: Ja, Zwischendomänen müssen vorhanden sein, zumindest wenn sie gemäß der Definition des DNS abgefragt werden. Sie sind jedoch möglicherweise nicht in der Zonendatei vorhanden.

Eine mögliche Verwirrung zuerst zu beseitigen; Definition von "Empty Non-Terminal"

Sie können zwei Dinge verwirren, da andere Antworten ebenfalls zu tun scheinen. Was passiert, wenn Sie nach Namen fragen, und wie konfigurieren Sie Ihren Nameserver und den Inhalt des Zonefiles?

Das DNS ist hierarchisch. Damit ein Blattknoten existiert, MÜSSEN alle zu ihm führenden Komponenten existieren, in dem Sinne, dass der zuständige autorisierende Nameserver auf diese Komponenten ohne Fehler antworten muss, wenn sie abgefragt werden.

Wie in RFC 8020 erläutert (dies ist nur eine Wiederholung der Regel, aber nur einige DNS-Anbieter benötigten eine Erinnerung), antwortet ein autorisierender Nameserver bei jeder Abfrage auf NXDOMAIN (dh, dieser Ressourceneintrag ist nicht vorhanden). dann bedeutet dies, dass auch keine Bezeichnung "unterhalb" dieser Ressource vorhanden ist.

In Ihrem Beispiel, wenn eine Abfrage für intermediate.example.comErträge NXDOMAIN, dann ist jeder richtiger rekursiven Name - Server wird sofort antworten NXDOMAINfürleaf.intermediate.example.com , weil dieser Satz nicht existieren kann , wenn alle Etikett in es existieren nicht als Datensätze.

Dies wurde bereits in der Vergangenheit im RFC 4592 über Wildcards (die hier nicht zusammenhängen) angegeben:

Der Domain Name Space ist eine Baumstruktur. Knoten in der
Struktur besitzen entweder mindestens ein RRSet und / oder Nachkommen, die zusammen
mindestens ein RRSet besitzen. Ein Knoten kann nur dann ohne RRSets existieren, wenn er
Nachkommen hat, die dies tun. Dieser Knoten ist ein leerer Nicht-Terminal.

Ein Knoten ohne Nachkommen ist ein Blattknoten. Leere Blattknoten existieren nicht.

Ein praktisches Beispiel für .US-Domainnamen

Nehmen wir ein funktionierendes Beispiel von einer TLD mit vielen Labels, also historisch gesehen .US. Wenn Sie ein Beispiel online auswählen, verwenden wir eswww.teh.k12.ca.us .

Natürlich, wenn Sie nach diesem Namen fragen, oder sogar teh.k12.ca.usSie können ADatensätze zurückbekommen . Für unseren Zweck hier nichts Bestimmtes (es gibt sogar einen CNAME in der Mitte, aber das interessiert uns nicht):

$ dig www.teh.k12.ca.us A +short
CA02205882.schoolwires.net.
107.21.20.201
35.172.15.22
$ dig teh.k12.ca.us A +short
162.242.146.30
184.72.49.125
54.204.24.19
54.214.44.86

Fragen wir jetzt nach k12.ca.us(Ich frage nicht den autorisierenden Nameserver davon ab, aber das ändert nichts an dem tatsächlichen Ergebnis):

$ dig k12.ca.us A

; <<>> DiG 9.11.5-P1-1ubuntu2.5-Ubuntu <<>> k12.ca.us A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59101
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1480
;; QUESTION SECTION:
;k12.ca.us.         IN  A

;; AUTHORITY SECTION:
us.         3587    IN  SOA a.cctld.us. hostmaster.neustar.biz. 2024847624 900 900 604800 86400

;; Query time: 115 msec
;; SERVER: 127.0.0.10#53(127.0.0.10)
;; WHEN: mer. juil. 03 01:13:20 EST 2019
;; MSG SIZE  rcvd: 104

Was lernen wir aus dieser Antwort?

Erstens ist es ein Erfolg, weil der Status ist NOERROR. Wenn es irgendetwas war anders und speziell NXDOMAINdann teh.k12.ca.us, noch www.teh.k12.ca.usexistieren könnte.

Zweitens ist der Abschnitt ANTWORT leer. Es gibt keine AAufzeichnungen für k12.ca.us. Dies ist kein Fehler. Dieser Typ ( A) existiert nicht für diesen Datensatz. Möglicherweise gibt es jedoch andere Datensatztypen für diesen Datensatz. Oder dieser Datensatz ist eine HNO-Datei, auch bekannt als "Empty Non Terminal": Er ist leer, aber kein Blatt. Es gibt Dinge "darunter" (siehe Definition in RFC 7719) ), wie wir bereits wissen (aber normalerweise ist die Auflösung von oben nach unten, also werden wir diesen Schritt erreichen, bevor wir eine Ebene darunter gehen und nicht das Gegenteil, wie wir es hier zu Demonstrationszwecken tun Zweck).

Aus diesem Grund wird als Abkürzung der Statuscode folgendermaßen angegeben NODATA: Dies ist kein echter Statuscode, sondern bedeutet lediglich NOERROR+ leerer Abschnitt ANTWORT. Dies bedeutet, dass für diesen bestimmten Datensatztyp keine Daten vorhanden sind, für andere möglicherweise jedoch Daten.

Sie können dasselbe Experiment für dasselbe Ergebnis wiederholen, wenn Sie mit der nächsten Beschriftung "up" (d. H. Dem Namen) abfragen ca.us.

Ergebnisse von Abfragen im Vergleich zu Zonefile-Inhalten

Woher kann nun die Verwirrung kommen? Ich glaube, es könnte eine falsche Vorstellung sein, dass jeder Punkt in einem DNS-Namen bedeutet, dass es eine Delegation gibt. Das ist falsch. Anders gesagt, Ihr example.comZonefile kann so aussehen, und es ist absolut gültig und funktioniert:

example.com. IN SOA ....
example.com. IN NS ....
example.com. IN NS ....

leaf.intermediate.example.com IN A 192.0.2.37

Wenn Sie mit einem solchen Zonefile diesen Nameserver abfragen, erhalten Sie genau das oben beschriebene Verhalten: Eine Abfrage für intermediate.example.comgibt NOERROReine leere Antwort zurück. Sie müssen es nicht speziell in der Zonendatei erstellen (wenn Sie es aus anderen Gründen nicht benötigen), der autorisierende Nameserver kümmert sich um die Synthese der "Zwischen" -Antworten, da er feststellt, dass dieses leere Nicht-Terminal (und eines davon) benötigt wird andere "dazwischen", wenn es andere Bezeichnungen gegeben hätte), da sie den Blattnamen sehen leaf.intermediate.example.com.

Beachten Sie, dass dies in einigen Bereichen tatsächlich weit verbreitet ist, Sie es jedoch möglicherweise nicht sehen, da es auf mehr "Infrastruktur" -Datensätze abzielt, denen Personen nicht ausgesetzt sind:

  • in umgekehrten Zonen wie in-addr.arpoder ip6.arpaund speziell der letzten. Sie haben Aufzeichnungen wie 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.a.1.d.e.1.6.8.0.0.0.0.0.0.2.6.2.ip6.arpa. 1h IN PTR text-lb.eqiad.wikimedia.org.und es gibt offensichtlich keine Delegierung an jedem Punkt, noch Ressourcenaufzeichnungen, die an jedem Etikett angehängt sind
  • In SRVDatensätzen kann _nicname._tcp.fr. 12h IN SRV 0 0 43 whois.nic.fr.eine Domain viele _proto._tcp.example.comund _proto._udp.example.com SRVDatensätze haben, da sie von Entwurf her dieses Formular haben müssen, aber gleichzeitig _tcp.example.comund _udp.example.comleer bleiben, da sie nie als Datensätze verwendet werden
  • Sie haben in der Tat viele andere Fälle der spezifischen Konstruktion von Namen, die auf "Unterstrich-Bezeichnungen" für verschiedene Protokolle wie DKIM basieren. DKIM fordert Sie dazu auf, DNS-Einträge wie diese zu haben whatever._domainkey.example.com, diese werden jedoch offensichtlich _domainkey.example.comnie für sich genommen verwendet, sodass sie leer bleiben. Dies ist das gleiche für TLSAAufzeichnungen in DANE (ex: _25._tcp.somehost.example.com. TLSA 3 1 1 BASE64==) oder URIAufzeichnungen (zB: _ftp._tcp IN URI 10 1 "ftp://ftp1.example.com/public")

Nameserver Verhalten und Generierung von Zwischenantworten

Warum synthetisiert der Nameserver solche Zwischenantworten automatisch? Der Kernauflösungsalgorithmus für das DNS, wie in RFC 1034, Abschnitt 4.3.2 beschrieben, ist der Grund dafür. Nehmen wir ihn und fassen ihn in unserem Fall zusammen, wenn wir den oben genannten autorisierenden Nameserver nach dem Namen abfragen intermediate.example.com(dies ist das QNAMEunten stehende In-Protokoll):

  1. Durchsuchen Sie die verfügbaren Zonen nach der Zone, die QNAME am nächsten kommt. Wenn eine solche Zone gefunden wird, fahren Sie mit Schritt 3 fort, andernfalls mit Schritt 4.

Der Nameserver findet zone example.comals nächsten Vorfahren von QNAME, sodass wir mit Schritt 3 fortfahren können.

Wir haben jetzt folgendes:

  1. Beginnen Sie in der Zone mit der Suche nach unten, Etikett für Etikett. [..]

ein. Wenn der gesamte QNAME übereinstimmt, haben wir den Knoten gefunden. [..]

b. Wenn uns eine Übereinstimmung aus den maßgeblichen Daten bringen würde, liegt eine Überweisung vor. Dies geschieht, wenn wir auf einen Knoten mit NS-RRs stoßen, die Schnitte am unteren Rand einer Zone markieren. [..]

c. Wenn bei einem Label eine Übereinstimmung nicht möglich ist (dh das entsprechende Label existiert nicht), prüfen Sie, ob ein "*" - Label existiert. [..]

Wir können die Fälle b und c eliminieren, da unser Zonefile keine Delegierung hat (daher wird es nie eine Verweisung auf andere Nameserver geben, keinen Fall b), noch Platzhalter (also keinen Fall c).

Wir müssen uns hier nur mit Fall a befassen.

Wir fangen an, Label für Label in der Zone zu vergleichen. Selbst wenn wir einen langen sub.sub.sub.sub.sub.sub.sub.sub.example.comNamen hatten, kommen wir irgendwann zu Fall a: Wir haben weder eine Empfehlung noch einen Platzhalter gefunden, aber am Ende haben wir den endgültigen Namen gefunden, für den wir ein Ergebnis wollten.

Dann wenden wir den Rest des Inhalts von Fall a an:

Wenn die Daten am Knoten ein CNAME sind

Nicht unser Fall, das überspringen wir.

Kopieren Sie andernfalls alle RRs, die mit QTYPE übereinstimmen, in den Antwortbereich und fahren Sie mit Schritt 6 fort.

Was auch immer QTYPE wir wählen ( A, AAAA, NS, usw.) wir haben keine RRs für intermediate.example.comda es nicht in der Zonendatei erscheint. Die Kopie hier ist also leer. Jetzt beenden wir bei Schritt 6:

Versuchen Sie, nur lokale Daten zu verwenden, um andere RRs hinzuzufügen, die im zusätzlichen Abschnitt der Abfrage nützlich sein können. Ausgang.

Für uns hier nicht relevant, daher schließen wir mit Erfolg ab.

Dies erklärt genau das beobachtete Verhalten: Solche Abfragen werden zurückgegeben, NOERRORaber auch keine Daten.

Nun fragen Sie sich vielleicht: "Aber wenn ich dann irgendeinen Namen verwende, wie another.example.comdamals durch den obigen Algorithmus, sollte ich die gleiche Antwort bekommen (kein Fehler)", aber Beobachtungen würden NXDOMAINin diesem Fall stattdessen berichten .

Warum?

Da der gesamte Algorithmus wie erklärt mit folgendem beginnt:

Der folgende Algorithmus geht davon aus, dass die RRs in mehreren Baumstrukturen organisiert sind, eine für jede Zone und eine andere für den Cache

Dies bedeutet, dass die obige Zonendatei in diesen Baum umgewandelt wird:

+-----+
| com |  (just to show the delegation, does not exist in this nameserver)
+-----+
   |
   |
   |
+---------+
| example | SOA, NS records
+---------+
   |
   |
   |
+--------------+
| intermediate | no records
+--------------+
   |
   |
   |
+------+
| leaf | A record
+------+

Wenn Sie also dem Algorithmus von oben folgen, können Sie in der Tat einen Pfad finden: com > example > intermediate(weil der Pfad com > example > intermediate > leafexistiert) Aber another.example.comnachdem com > exampleSie die anotherBezeichnung im Baum nicht gefunden haben, als Kinderknoten von example. Daher fallen wir von oben in einen Teil von Wahl c:

Wenn die Bezeichnung "*" nicht vorhanden ist, überprüfen Sie, ob der gesuchte Name der ursprüngliche QNAME in der Abfrage oder ein Name ist, dem wir aufgrund eines CNAME gefolgt sind. Wenn der Name ursprünglich ist, legen Sie einen autorisierenden Namensfehler in der Antwort fest und beenden Sie das Programm. Ansonsten einfach raus.

Label *existiert nicht und wir sind keinem gefolgt CNAME, daher sind wir für den Fall set an authoritative name error in the response and exit:, aka NXDOMAIN.

Beachten Sie, dass all dies in der Vergangenheit zu Verwirrung geführt hat. Dies wird in einigen RFCs gesammelt. Sehen Sie sich zum Beispiel diesen unerwarteten Ort an (die Freude daran, dass DNS-Spezifikationen so undurchdringlich sind), der Platzhalter definiert: RFC 4592 "Die Rolle von Platzhaltern im Domain Name System" und insbesondere Abschnitt 2.2 "Existenzregeln", der ebenfalls teilweise am Anfang von zitiert wurde meine antwort aber hier ist es vollständiger:

Leere Nicht-Terminals [RFC2136, Abschnitt 7.16] sind Domänennamen, die keine Ressourceneinträge besitzen, jedoch über Subdomänen verfügen. In Abschnitt 2.2.1,
"_tcp.host1.example". ist ein Beispiel für einen leeren Nicht-Terminal-Namen.
Mit diesem Text werden leere Nicht-Terminals in Abschnitt 3.1 von RFC 1034 eingeführt:

# The domain name space is a tree structure.  Each node and leaf on
# the tree corresponds to a resource set (which may be empty).  The
# domain system makes no distinctions between the uses of the
# interior nodes and leaves, and this memo uses the term "node" to
# refer to both.

Die Klammer "die leer sein kann" gibt an, dass leere Nicht-
Terminals explizit erkannt werden und dass leere Nicht-Terminals
"existieren".

Das pedantische Lesen des obigen Abschnitts kann zu einer
Interpretation führen, dass alle möglichen Domänen existieren - bis zur vorgeschlagenen
Grenze von 255 Oktetten für einen Domänennamen [RFC1035]. Zum Beispiel
www.example. kann eine A RR haben und ist, soweit es praktisch
geht, ein Blatt des Domänenbaums. Unter der Definition kann jedoch
dieses Beispiel verstanden werden. existiert auch, wenn auch ohne Daten. Durch die Erweiterung existieren alle möglichen Domänen von der Wurzel an abwärts.

Da RFC 1034 in Abschnitt 4.3.1 auch "einen autorisierenden Namensfehler, der angibt, dass der Name nicht vorhanden ist" definiert, ist dies anscheinend nicht die Absicht der ursprünglichen Definition, was die Notwendigkeit einer aktualisierten Definition im nächsten Abschnitt rechtfertigt.

Und dann ist die Definition im nächsten Abschnitt der Absatz, den ich am Anfang zitiert habe.

Beachten Sie, dass RFC 8020 (auf NXDOMAINwirklich bedeutet NXDOMAIN, dass , wenn Sie antworten ist NXDOMAINfür intermediate.example.com, dann leaf.intermediate.example.comnicht existieren kann) teil beauftragt wurde , weil verschiedene DNS - Anbieter diese Interpretation nicht folgen hat und dass erstellt Chaos, oder sie waren nur Bugs, siehe zum Beispiel dieses 2013 in einem autorisierenden OpenSource-Nameserver-Code behoben: https://github.com/PowerDNS/pdns/issues/127

Die Leute mussten dann spezielle Gegenmaßnahmen nur für sie treffen: Das ist kein aggressives Caching, NXDOMAINdenn für diese Anbieter kann NXDOMAINes bedeuten, dass Sie NXDOMAINan einem bestimmten Knoten noch etwas anderes als an einem anderen Knoten darunter erhalten.

Dies machte es unmöglich, eine QNAME-Minimierung (RFC 7816) zu erhalten (weitere Informationen finden Sie unter https://indico.dns-oarc.net/event/21/contributions/298/attachments/267/487/qname-min.pdf ). , während es die Privatsphäre erhöhen wollte. Das Vorhandensein leerer Nicht-Terminals im Falle von DNSSEC hat in der Vergangenheit ebenfalls Probleme hinsichtlich der Behandlung von Nicht-Existenz verursacht (siehe https://indico.dns-oarc.net/event/25/contributions/403/attachments/378/647) /AFNIC_OARC_Dallas.pdf wenn Sie interessiert sind, aber Sie brauchen wirklich ein gutes Verständnis von DNSSEC, bevor Sie).

Die folgenden zwei Meldungen geben ein Beispiel für Probleme, bei denen ein Anbieter in der Lage sein musste, diese Regel für leere Nicht-Terminals ordnungsgemäß durchzusetzen. Sie geben einen Überblick über die Probleme und warum wir dort waren:

Patrick Mevzek
quelle
Hervorragende Antwort. Ist das Synthetisieren von Antworten für Intermediate-Domains von einem RFC vorgeschrieben oder ist es nur eine De-facto-Konvention?
Lassi
1
@Lassi sehe meine bearbeitete Antwort, abgesehen davon, dass ich sie in Abschnitte unterteilt habe, habe ich eine vollständige Erklärung des Resolver-Algorithmus hinzugefügt (also nein, es ist keine Konvention, sondern es kommt wirklich etwas aus den RFCs, auch wenn die Bibel von DNS aka RFC 1034 und 1035 sind voller Ungenauigkeiten und Unklarheiten, weshalb viele andere RFCs benötigt werden, um Sprache und Regeln zu verfeinern. Ich hoffe, dass nützliche Links bei Interesse weitere Informationen liefern.
Patrick Mevzek
1
@Lassi Ich habe mehrere Beispiele für HNO-Eingriffe in Infrastruktureinträgen hinzugefügt: PTR, SRV, TXT für DKIM, TLSA, URI
Patrick Mevzek,
Unglaublich gründliche Arbeit. Vielen Dank für Ihre Bemühungen!
Lassi
11

Es ist möglich, dass ich Khaleds Antwort falsch verstehe, aber das Fehlen von Zwischenaufzeichnungen sollte keinesfalls ein Problem mit der Auflösung des untergeordneten Namens sein. Beachten Sie, dass diese Dig-Ausgabe nicht von einem autorisierenden DNS-Server teaparty.netoder einer Subzone davon stammt oder an diesen gerichtet ist:

[me@nand ~]$ dig very.deep.host.with.no.immediate.parents.teaparty.net
[...]
;; ANSWER SECTION:
very.deep.host.with.no.immediate.parents.teaparty.net. 3600 IN A 198.51.100.200

In der Tat sollten Sie in der Lage sein, dies digselbst zu tun und diese Antwort zu erhalten - dies teaparty.netist eine echte Domäne, die unter meiner Kontrolle steht und diese AAufzeichnung wirklich enthält . Sie können überprüfen, ob für eine dieser Zonen zwischen veryund Datensätze vorhanden sind teaparty.netund ob dies keinen Einfluss auf die Auflösung des oben genannten Hostnamens hat.

MadHatter unterstützt Monica
quelle
1
Ich fange an, hier teaparty.netüberfordert zu sein, aber basierend auf Patricks Antwort funktioniert dies wahrscheinlich, weil Sie alle Datensätze in einem einzigen Zonendatei haben, sodass leere Datensätze für die dazwischenliegenden Domänen synthetisiert werden. Kann jemand erklären, was passieren würde, wenn parents.teaparty.netes sich um eine Delegation handelt und nur very.deep.host.with.no.immediateein Datensatz im Zonefile der Delegierten vorhanden ist?
Lassi
@Lassi genau das gleiche, was Sie oben sehen, weil es genau der gleiche Fall ist : teaparty.netist eine delegierte Unterdomäne von net; Wenn der einzige A-Datensatz in seiner Zonendatei very.deep...wäre, wäre das egal.
MadHatter unterstützt Monica
1
Beispiellinks sollten die RFC-kompatiblen Beispieldomänen verwenden
Metadiskussion
1
Es ist kein Beispiellink. Es funktioniert tatsächlich (haben Sie sich überhaupt die Mühe gemacht, es zu probieren?), Was auf den Punkt gebracht werden kann. Wie Sie in dieser Metadiskussion sehen werden, gibt es viele Domain-Namen, die sowohl in Fragen als auch in Antworten nicht verschleiert werden dürfen.
MadHatter unterstützt Monica
1
Ich war auch verwirrt, habe es aber versucht. Eine Weile war ich mir sicher, dass es sich um eine Art Wildcard oder ähnliches handelte ... Bis ich herausfand, dass Sie der DNS-Administrator dieser Domain sind, konnten Sie also den Datensatz erstellen! Was nicht einfach ist, wenn man nur die Antwort liest, also bin ich im Allgemeinen auf der Seite von @HomoTechsual. Das Problem ist, dass Sie in Zukunft möglicherweise den Datensatz oder die Domain verschieben, usw., und diese Antwort dann nicht mehr funktioniert ... (Sie können dasselbe mit meinen eigenen Beispielen für .US-Namen sagen). Trotzdem ist es keine gute Idee, private IP-Adressen im öffentlichen DNS zu veröffentlichen
;-)
2

Wenn Sie den autorisierenden DNS-Server direkt abfragen, erhalten Sie problemlos Antworten.

Sie erhalten jedoch keine gültige Antwort, wenn Sie über einen anderen DNS-Server abfragen, der keinen gültigen Cache hat. Abfragen nach intermediate.example.comführen zu NXDOMAINFehlern.

Khaled
quelle
4
Es sollte nicht dazu führen NXDOMAIN, es sollte zu einem NOERRORCode und einem leeren Antwortabschnitt führen.
Barmar
4
Ich verstehe den Sinn dieser Antwort nicht. Es gibt keinen Grund, warum jemand nach etwas fragen müsste, intermediate.example.comwenn es für nichts verwendet wird. Welchen Unterschied macht es also, selbst wenn es einen Fehler zurückgibt (nicht)?
Barmar
5
Sie werden nicht bekommen NXDOMAIN, Sie bekommen NOERROR. Dies ist die Antwort für einen Knoten, der in der DNS-Hierarchie vorhanden ist, jedoch keine Datensätze des angeforderten Typs enthält.
Barmar
3
Auch wenn die Domain existiert, erhalten Sie diese Antwort, wenn Sie nach einem anderen Datensatztyp fragen als dem, den die Domain hat. Wenn es beispielsweise NSAufzeichnungen gibt, Sie aber nach AAufzeichnungen fragen , erhalten Sie NOERROReine leere Antwort.
Barmar
4
Das ist falsch. Per RFC 8020 , wenn eine autoritative Nameserver antwortet NXDOMAINfür intermediate.example.comdann bedeutet es , es gibt nichts , „unten“ , und dann leaf.intermediate.example.comkann es nicht geben. Einige aggressive rekursive Resolver können das sogar zwischenspeichern und Dinge von sich ableiten.
Patrick Mevzek
1

Um die Frage direkt zu beantworten, müssen Sie keine Datensätze für Zwischennamen hinzufügen, die Sie nicht tatsächlich verwenden. Dies bedeutet jedoch nicht, dass diese Namen nicht vorhanden sind.

Ob es diese Namen gibt oder nicht, das ist eigentlich eine ganz eigene Frage, auf die ich hoffentlich eine kurze und eher intuitive Antwort geben kann.

Alles läuft darauf hinaus, dass DNS eine Baumstruktur ist, bei der jede Bezeichnung in einem Domänennamen ein Baumknoten ist. Eg www.example.com.hat , die Etiketten www, example, comund `` (Wurzelknoten), die den Baum - Knoten sind, die den Weg den ganzen Weg zur Wurzel bilden.

Was diese grundlegende Natur von DNS möglicherweise nicht offensichtlich macht, ist, dass fast immer beim Verwalten von DNS-Daten kein Baum zu sehen ist und wir im Allgemeinen nicht direkt mit den Baumknoten selbst arbeiten, sondern in der Regel eine abgeflachte Liste mit welchen Datensätzen haben Daten, die unter verschiedenen Domainnamen existieren sollten (effektiv Baumpfade, wie oben).

Was passiert , wenn diese abgeflachte Liste verwendet wird , ist , dass der DNS - Server - Software den Baum auf den vorhandenen Datensätzen basiert konstruiert, und wenn es Lücken zwischen den Knoten , die Datensätze (zB gibt es Aufzeichnungen für foo.bar.example.com.und example.com.aber nicht bar.example.com.) , werden diese einfach leer Baum betrachtet Knoten. Das heißt, dies sind Domänennamen / Knoten, die tatsächlich existieren, der Baum ist nicht beschädigt, diesen Knoten sind lediglich keine Daten zugeordnet.

Wenn Sie einen dieser leeren Knoten abfragen, erhalten Sie folglich eine NODATAAntwort ( NOERRORStatus + SOAim Berechtigungsabschnitt), die besagt, dass der angeforderte Datensatztyp auf diesem Knoten nicht vorhanden war. Wenn Sie stattdessen einen Namen abfragen, der tatsächlich nicht vorhanden ist, erhalten Sie eine NXDOMAINAntwort, dass der angeforderte Domänenname in der Struktur nicht vorhanden ist.

Wenn Sie die Details genau wissen möchten, lesen Sie die sehr gründliche Antwort von Patrick Mevzek.

Håkan Lindqvist
quelle