Kann ein IN NS im DNS auf einen CNAME verweisen?

17

Darf ein NS-Eintrag ein CNAME sein? Z.B:

subdomain.example.com.       IN NS  ns1.example.com.
ns1.example.com.             CNAME  foo.example.com.
foo.example.com.             IN A   10.1.1.1

Dies scheint in bind nicht zu funktionieren, obwohl dies (natürlich) funktioniert:

subdomain.example.com.       IN NS  foo.example.com.
foo.example.com.             IN A   10.1.1.1

Alle Verweise auf RFCs, die dieses Setup verbieten, sind willkommen.

Mark Wagner
quelle

Antworten:

20

Der eigentliche RFC, der die NS-RR definiert ( RFC1035 ), besagt lediglich, dass es sich um einen Domain-Namen handelt, ohne den RR-Typ des Ziels anzugeben (es wird jedoch klargestellt, dass es sich nicht um eine IP handeln kann). In RFC1912 , Abschnitt 2.4, wird dies jedoch ausdrücklich erwähnt :

NS-Einträge, die auf einen CNAME verweisen, sind fehlerhaft und können zu Konflikten mit aktuellen BIND-Servern führen. Tatsächlich ignorieren aktuelle BIND-Implementierungen solche Datensätze, was möglicherweise zu einer lahmen Delegierung führt. In BIND wird eine bestimmte Menge an Sicherheitsüberprüfungen durchgeführt, um zu verhindern, dass DNS-NS-Einträge gefälscht werden. Außerdem werden ältere BIND-Server Berichten zufolge in eine unendliche Abfrageschleife geraten, die versucht, die Adresse für den Alias-Nameserver zu ermitteln, wodurch ein kontinuierlicher Strom von DNS-Anforderungen gesendet wird.

Nicht ganz ein MUSS, aber es passt auf jeden Fall zu dem Verhalten, das Sie sehen

jj33
quelle
5
Und RFC1034 sagt: "Domain-Namen in RRs, die auf einen anderen Namen verweisen, sollten immer auf den primären Namen und nicht auf den Alias ​​verweisen. Dies vermeidet zusätzliche Indirektionen beim Zugriff auf Informationen. Natürlich sollte Domain-Software nach dem Robustheitsprinzip nicht versagen "Wenn CNAME-Ketten oder Schleifen angezeigt werden, sollten CNAME-Ketten befolgt und CNAME-Schleifen als Fehler gemeldet werden."
Larsks
10
Ich fand, dass RFC 2181 10.3 eindeutig besagt, dass es ungültig ist, aber Ihre Antwort war gut genug.
Mark Wagner
1
Für mehr Klarheit: Die MUST NOTAussprache spielt hier keine Rolle, da RFC 1912 informativ ist und keinen Standard definiert. Mark ist richtig, dass RFC 2181 die richtige Referenz ist. (RFC 1034 wurde geschrieben, bevor sich die Sprachstandards verfestigten, daher die Unbestimmtheit)
Andrew B