Verwenden von CNAME, um auf eine andere Domäne zu verweisen und IP-Adressen zu speichern

39

Ich habe einen Server, auf dem ich eine Handvoll Websites hoste.

Gegenwärtig hat jeder Standort eine Domain, die von einem unabhängigen Anbieter gehostet wird, und jeder hat einen A-Eintrag, der auf die IP-Adresse des Servers verweist.

Aber wenn ich in Zukunft den Server wechseln möchte, muss ich jede IP-Adresse in jedem DNS-Eintrag aktualisieren.

Ist es möglich, einen CNAME-Eintrag für jede Domain zu verwenden, um auf eine andere Domain zu verweisen, die ich direkt kontrolliere?

Ist dies so, dass ich die IP-Adresse an einem Ort selbst aktualisieren kann und nicht alle diese anderen DNS-Anbieter dazu bringen muss, ihre Datensätze separat zu aktualisieren?

wows
quelle

Antworten:

25

Das ist genau der Punkt eines CNAME. Ein CNAME muss nicht auf ein DNS in derselben Zone verweisen, sondern kann auf einen beliebigen DNS-Namen verweisen, der bei einem beliebigen Nameserver registriert ist.

Für Ihre Kunden bedeutet dies eine zusätzliche DNS-Suche auf dem NS für den anderen Host. Für die meisten Websites im Internet ist dies jedoch ein winziger Preis.

Mark Henderson
quelle
Normalerweise führt der rekursive Server diese zusätzliche Suche durch, nicht der Stub-Resolver im Client.
Alnitak
27

Laut Farseekers Antwort ist dies das, wofür CNAMEAufzeichnungen bestimmt sind.

Doch während Sie diese Nummer verwenden können , www.example.netum www.example.com, Sie können nicht verwenden, um Punkt example.netauf seiner eigenen (dh ohne den wwwsonst Präfix) zu etwas.

Dies liegt daran, dass example.netauch ein SOADatensatz und NSDatensätze vorhanden sein müssen und es in DNS nicht zulässig ist, ein CNAMEGeschenk an derselben Stelle im Baum zu haben wie alle anderen Datensätze (mit Ausnahme von DNSSEC-Schlüsseln).

Das "Art" -Qualifikationsmerkmal oben ist, weil der CNAMEDatensatz genau genommen die "linke Seite" als Alias für das Ziel des Datensatzes einführt CNAME, wobei dieses Ziel tatsächlich der "kanonische Name" ist.

Also, wenn Sie zB sehen:

www.example.net IN CNAME www.example.com.

Es heißt nicht , dass www.example.net"umgeleitet" werden soll www.example.com, es heißt, dass das www.example.netein anderer Name für ist www.example.com .

Alnitak
quelle
2
msgstr "example.net muss auch einen SOA - Datensatz haben". Einige Leute betrügen: Schauen Sie sich lrnskls.com an.
bortzmeyer
Es ist ein böser Hack, und sie werden ein riesiges Problem haben, falls sie jemals DNSSEC unterschreiben wollen.
Alnitak,
5
+1 Dies ist ein guter Punkt und einer der größeren Mängel (und der Grund, warum keine meiner Websites ohne WWW verwendet werden kann, da diese Domains auch einen MX-Eintrag benötigen, der dies verbietet).
Oskar Duveborn
3

Ja, es ist möglich.

So mache ich meine experimentellen Webserver, die auch dynamische IPs haben (wenn auch selten geändert).

Oskar Duveborn
quelle
0

Ich muss jede IP-Adresse in jedem DNS-Eintrag aktualisieren.

Nun, CNAMEs sind in der Tat eine mögliche Lösung (siehe Alnitaks Antwort zur Begrenzung der CNAMEs), aber es gibt eine andere: Anstatt Ihre Zonendateien von Hand zu verwalten, erstellen Sie ein Programm mit zehn Zeilen (Perl / Python / Ruby / cpp / m4) / whatever) erzeugt die Zonendateien aus einem Master (eine Textdatei, eine XML-Datei, ein DBMS, was auch immer)

Auf diese Weise kann sich Ihre IP-Adresse nur an einer Stelle befinden. Wenn es sich ändert, führen Sie einfach das Programm erneut aus.

bortzmeyer
quelle