Ich glaube, dass die einfachste Antwort auf die erste Frage "Nein, Sie haben" A "dafür" ist, aber ich habe versehentlich eine Subdomain mit CNAME eingerichtet, die auf die IP-Adresse zeigt, und es hat auf wenigen Computern in meinem Büro funktioniert. Ich frage mich, wie es möglich war?
Jetzt, wenn ich es von zu Hause aus überprüfe, habe ich folgenden Fehler:
beast:~ viroos$ host somesubdomain.somedomain.com
Host somesubdomain.somedomain.com not found: 3(NXDOMAIN)
Ich bin zu 100% damit beschäftigt, in meinem Büro zu arbeiten (derzeit sieht es nicht so aus, aber ich überprüfe es auf einem anderen Computer). Daher bin ich nicht zu 100% zufrieden, wenn es aufgrund einer speziellen Netzwerkkonfiguration funktioniert hat oder weil ich es direkt nach dem Hinzufügen eines DNS-Eintrags getestet habe.
Ich weiß, dass diese Geschichte ein bisschen verrückt / unglaublich klingt, aber kann mir jemand helfen, dieses Rätsel zu lösen.
// edit: Ich füge dig output hinzu
; <<>> DiG 9.6-ESV-R4-P3 <<>> somesubdomain.somedomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 60224
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;somesubdomain.somedomain.com. IN A
;; ANSWER SECTION:
somesubdomain.somedomain.com. 67 IN CNAME xxx.xxx.xxx.xx1.
;; AUTHORITY SECTION:
. 1800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2012040901 1800 900 604800 86400
;; Query time: 72 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 10 00:11:01 2012
;; MSG SIZE rcvd: 136
quelle
dig
?Antworten:
Die Daten in einem
CNAME
Datensatz müssen immer einen anderen DNS-Namen haben - das ist der springende Punkt von aCNAME
.Wie in RFC 1034 formuliert, sollten die Daten in a wie
CNAME
folgt lauten:Wenn Sie auf eine IP-Adresse verweisen möchten, lautet Ihr Ticket:
CNAME
ist als DNS-Alias konzipiert und implementiert. Es hat keine Vorstellung davon, eine IP-Adresse in diesem Datenfeld zu haben. Als solches wird es wie vorgesehen als Alias für einen anderen DNS-Namen interpretiert. Schließlich passt eine IP-Adresse zur Syntax eines DNS-Namens.Nehmen wir zum Beispiel an, Ihre DNS-Daten lauten:
Der rekursive DNS-Server, den Sie abfragen, erkennt, dass es sich bei dem Datensatz um einen handelt
CNAME
, und gibt an, dass Sie die tatsächlichen darin enthaltenen Daten benötigen. Es wurde kein anderer Datensatz als derCNAME
gefunden, sodass dem Kunden keine Antwort zu geben ist.Es wird versucht, einen Datensatz
192
innerhalb der Domäne nach einem Hostnamen abzufragen0.2.1
. Für diesen Namen ist nichts zwischengespeichert, daher werden die Stammserver gefragt. Sie bedienen Anfragen für TLDs wie.com
und.net
, aber diese Anfrage ist eine Anfrage für.1
. Sie antworten umgehend, dass es keine solche gibt, und das sendet der Rekursor an Sie.Die Antwort, die Sie sehen,
dig
ist Ihr rekursiver Nameserver, der sagt: "Nun, der Name, den Sie gesucht haben, deutete auf einen anderen Ort und dieser Ort existierte nicht - fragen Sie den Root-Server, ob Sie mir nicht glauben."Ja, das Einfügen einer IP-Adresse in einen
CNAME
Datensatz ist niemals gültig, und ich vermute, dass die Systeme, die funktionieren, über einen anderen Mechanismus wie eine Hostdatei oder eine lokale Namensauflösung ordnungsgemäß funktionieren.quelle
cname ist ein kanonischer Name, der nur ein Alias eines anderen Namens ist, normalerweise der A-Datensatz oder ein anderer cname usw. Wenn Sie cname so einrichten, dass er auf eine IP verweist, ist er nur ein Alias dieser IP. Ich glaube nicht, dass Ihr DNS-Server überprüft, ob das Ziel legitim ist oder nicht, da der Standard-RFC nicht wirklich angibt, wie das Datenformat / die Validierung für das Ziel von cname lautet. Dies ist keine übliche Verwendung, aber wenn es für Sie funktioniert, dann funktioniert es. Die Tatsache, dass es manchmal nicht funktioniert, sollte ausreichen, um das zu verwenden, was es üblicherweise verwendet wird, denke ich.
quelle
Du kannst haben:
Dabei ist 1.2.3.4 eine funktionierende IP-Adresse. Beachten Sie jedoch den abschließenden Punkt im CNAME. Die Tatsache, dass einige Computer in Ihrem Büro damit arbeiten, während andere nicht der Meinung sind, dass die Computer, für die die Unterdomäne in der Datei
lmhosts
oder festgelegt ist, dies tun/etc/hosts
.quelle
4
?host -a
) Abfrage durchgeführt.