Angenommen, das test.example.com
existiert nicht und wird angezeigt, NXDOMAIN
wenn ich dig
darauf laufe, aber ich weiß, dass es subdomain.test.example.com
existiert und wird angezeigt, NOERROR
wenn ich dasselbe mache. Gibt es eine Möglichkeit zu prüfen, ob eine tiefe Subdomäne existiert, obwohl die Zwischen-Subdomäne nicht unbedingt vorhanden sein muss? Insbesondere suche ich beim Prüfen oder Abfragen nach Hinweisen, subdomain.test.example.com
die auf die Existenz der tiefen Subdomäne hinweisen?
Antwort1
Angenommen, test.example.com existiert nicht und gibt NXDOMAIN aus, wenn dig darauf ausgeführt wird, aber ich weiß, dass subdomain.test.example.com existiert
Dies ist gemäß den DNS-Spezifikationen nicht möglich. Oder anders gesagt: Es bedeutet, dass der autoritative Nameserver für diese Zone defekt ist.
SehenRFC 8020: NXDOMAIN: Da ist wirklich nichts darunter
Wenn ein iterativer DNS-Resolver mit Cache eine NXDOMAIN-Antwort empfängt, SOLLTE er diese in seinem Cache speichern und dann SOLLTEN alle Namen und Ressourcendatensätze (RRsets) an oder unter diesem Knoten als nicht erreichbar betrachtet werden. Nachfolgende Abfragen für solche Namen SOLLTEN eine NXDOMAIN-Antwort hervorrufen.
Antwort2
Ich stimme mit Patrick überein, möchte aber etwas mehr Klarheit darüber schaffen, was die tatsächlichen Erwartungen sind:
Wenn Sie Datensätze bei haben, subdomain.test.example.com
aber keine bei test.example.com
, bedeutet das nicht, dass test.example.com
"nicht existiert", der Begriff für diesen leeren Knotentyp istleeres Nichtterminal(manchmal HNO).
Wenn Sie einen Namen abfragen, der ein leeres Nichtterminal ist, lautet die richtige Art der Antwortnicht NXDOMAIN
(was bedeuten würde „es gibt keinen solchen Namen“), sondern eher NODATA
(was bedeutet „es gibt keine Aufzeichnungen für den angeforderten Typ“, im ENT-Fall unabhängig davon, nach welchem Typ Sie fragen).
Der Übersichtlichkeit halber lautet der Antworttyp im Abschnitt NODATA
„Antwortcode NOERROR
“ .SOA
AUTHORITY
Der Hinweis darauf, dass eskönnteDass weitere Subdomänen existieren, ist, dass die Antwort, die Sie erhalten haben, nicht lautete NXDOMAIN
. Wenn Sie außerdem feststellen, dass es unter diesem Namen keine Datensätze gibt (d. h. es handelt sich um ein leeres Nichtterminal), muss es eine Subdomäne (eine oder mehrere Ebenen tiefer) geben, in der tatsächlich etwas steht.
Der andere Aspekt, der in der Frage impliziert ist und den Patrick behandelt hat, ist, dass einige Nameserver-Implementierungen fehlerhaft sind und NXDOMAIN
sogar in Situationen senden, in denen dies nicht die richtige Antwort ist.
Diese Art von Implementierungsfehler führt dazu, dass inkonsistente Daten ausgegeben werden, bei denen das, was eine Baumstruktur sein sollte, tatsächlich in Teile zerlegt wird, die nicht miteinander verbunden sind. Dieses Verhalten ist insbesondere aus Sicht eines Resolvers, der sich darauf verlässt, dass zuvor beobachtete NXDOMAIN
Antworten tatsächlich etwas bedeuten, fehlerhaft und kann nicht in DNSSEC dargestellt werden.