it-swarm.com.de

Wie überwinde ich die CNAME-Beschränkungen der Root-Domain?

Wir hosten viele Webanwendungen für unsere Kunden. Natürlich möchten sie ihre eigenen Domänen verwenden, um auf diese Anwendungen zu verweisen. Normalerweise möchten sie, dass jeder Benutzer, der entweder http://www.customer1.example Oder http://customer1.example Eingibt, zu seiner Webanwendung wechselt.

Die Situation, mit der wir konfrontiert sind, ist, dass wir die Flexibilität haben müssen, um IP-Adressen in naher Zukunft zu ändern. Wir möchten uns nicht darauf verlassen, dass der Kunde die A-Datensatzänderung in seinen Domains vornimmt. Wir dachten also, dass die Verwendung von CNAME Datensätzen funktionieren wird, aber wie wir herausfinden, funktionieren CNAME Datensätze nicht für die Stammdomäne.

Grundsätzlich gilt:

customer1.example IN CNAME customer1.mycompanydomain.example //this is invalid as the RFC
www.customer1.example IN CNAME customer1.mycompanydomain.example //this is valid and will work

Wir möchten in der Lage sein, die IP-Adresse von customer1.mycompanydomain.example Oder des A -Datensatzes zu ändern, und unsere Kunden werden diesem Datensatz folgen, über den wir die Kontrolle haben.

in unserem DNS wird es so aussehen:

customer1.mycompanydomain.example IN A 192.0.2.1

Irgendwelche Ideen?

111
Geo

Der Grund, warum diese Frage immer noch oft auftaucht, ist, dass, wie Sie bereits erwähnt haben, irgendwo jemand, der als wichtig angenommen wurde, schrieb, dass die RFC-Statements Domain-Namen ohne Subdomain vor ihnen nicht gültig sind. Wenn Sie den RFC jedoch sorgfältig lesen, werden Sie feststellen, dass dies nicht genau der Fall ist. Tatsächlich besagt RFC 1912 :

Gehen Sie mit CNAMEs nicht über Bord. Verwenden Sie sie beim Umbenennen von Hosts, aber planen Sie, sie loszuwerden (und informieren Sie Ihre Benutzer).

Einige DNS-Hosts bieten eine Möglichkeit, mithilfe eines benutzerdefinierten Datensatztyps CNAME-ähnliche Funktionen an der Zonenspitze (der Stammdomänenebene für den nackten Domänennamen) abzurufen. Solche Aufzeichnungen umfassen zum Beispiel:

  • ALIAS bei DNSimple
  • ANAME bei DNS Made Easy
  • ANAME bei easyDNS
  • CNAME bei CloudFlare

Für jeden Anbieter ist das Setup ähnlich: Zeigen Sie mit dem ALIAS- oder ANAME-Eintrag für Ihre Apex-Domain auf example.domain.com, genau wie bei einem CNAME-Eintrag. Je nach DNS-Anbieter gibt ein leerer oder @ Name-Wert den Zonenscheitelpunkt an.

ALIAS oder ANAME oder @ example.domain.com.

Wenn Ihr DNS-Anbieter einen solchen Datensatztyp nicht unterstützt und Sie nicht zu einem anderen wechseln können, müssen Sie die Unterdomänenumleitung verwenden, die je nach dem Protokoll oder der Serversoftware, die dies erfordert, nicht so schwierig ist .

Ich bin absolut nicht einverstanden mit der Aussage, dass dies nur von "Amateur-Admins" oder solchen Ideen gemacht wird. Es ist ein einfaches "Was muss der Name und sein Service tun?" beschäftigen, und dann Ihre DNS-Konfiguration anpassen, um diesen Wünschen zu dienen; Wenn Ihre Hauptdienste Web und E-Mail sind, sehe ich keinen GÜLTIGEN Grund, warum das endgültige Löschen der CNAMEs problematisch wäre. Wer würde @ subdomain.domain.org @ domain.org vorziehen? Wer braucht "www", wenn Sie bereits mit dem Protokoll selbst festgelegt sind? Es ist unlogisch anzunehmen, dass die Verwendung eines Root-Domainnamens ungültig wäre.

58

Das CNAME-Ermitteln eines Stammdatensatzes ist technisch gesehen kein Verstoß gegen RFC, weist jedoch Einschränkungen auf, was bedeutet, dass diese Vorgehensweise nicht empfohlen wird.

Normalerweise enthält Ihr Stammdatensatz mehrere Einträge. Sagen wir, 3 für Ihre Nameserver und dann eine für eine IP-Adresse.

Per RFC:

Wenn ein CNAME RR an einem Knoten vorhanden ist, sollten keine anderen Daten vorhanden sein.

Und gemäß IETF-Dokument "Allgemeine DNS-Betriebs- und Konfigurationsfehler":

Dies wird häufig von unerfahrenen Administratoren versucht, um Ihren Domainnamen auch als Host zuzulassen. DNS-Server wie BIND sehen jedoch den CNAME und lehnen es ab, andere Ressourcen für diesen Namen hinzuzufügen. Da keine anderen Datensätze mit einem CNAME koexistieren dürfen, werden die Einträge NS ignoriert. Daher werden auch alle Hosts in der Domäne podunk.xx ignoriert!

Verweise:

48
bind

Ich weiß nicht, wie sie damit durchkommen oder welche negativen Nebenwirkungen sie haben können, aber ich verwende Hover.com, um einige meiner Domains zu hosten, und erst kürzlich habe ich dort den Scheitelpunkt meiner Domain als CNAME eingerichtet. Das DNS-Bearbeitungstool hat sich überhaupt nicht beschwert und meine Domain wird glücklich über den zugewiesenen CNAME aufgelöst.

Hier ist, was Dig mir für diese Domain zeigt (tatsächliche Domain als mydomain.com verschleiert):

; <<>> Dig 9.8.3-P1 <<>> mydomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2056
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.com.          IN  A

;; ANSWER SECTION:
mydomain.com.       394 IN  CNAME   myapp.parseapp.com.
myapp.parseapp.com. 300 IN  CNAME   parseapp.com.
parseapp.com.       60  IN  A   54.243.93.102
4
Mason G. Zhwiti

Sie müssen einen Punkt am Ende der externen Domain setzen, damit Sie nicht glauben, dass Sie customer1.mycompanydomain.com.localdomain meinen.

Also einfach ändern:

customer1.com IN CNAME customer1.mycompanydomain.com

Zu

customer1.com IN CNAME customer1.mycompanydomain.com.
3
Gwerks

Sipwiz ist korrekt. Die einzige Möglichkeit, dies richtig zu tun, ist der HTTP- und DNS-Hybridansatz. Mein Registrar ist ein Wiederverkäufer für Tucows und bietet die Weiterleitung von Root-Domains als kostenlosen Mehrwertdienst an.

Wenn Ihre Domain blah.com ist, werden Sie gefragt, wohin die Domain weitergeleitet werden soll, und Sie geben www.blah.com ein. Sie weisen ihrem Apache-Server den A-Eintrag zu und fügen blah.com automatisch als DNS-vhost hinzu. Der vhost antwortet mit einem HTTP 302-Fehler und leitet sie an die richtige URL weiter. Es ist einfach zu Skript/Setup und kann von Low-End behandelt werden, sonst wäre Hardware verschrottet.

Führen Sie als Beispiel den folgenden Befehl aus: curl -v eclecticengineers.com

3
MrEvil

Mein Unternehmen macht dasselbe für eine Reihe von Kunden, bei denen wir eine Website für sie hosten, obwohl es sich in unserem Fall eher um xyz.company.com als um www.company.com handelt. Wir veranlassen sie, den A-Datensatz auf xyz.company.com so festzulegen, dass er auf eine IP-Adresse verweist, die wir ihnen zuweisen.

Ich glaube nicht, dass es eine perfekte Lösung dafür gibt, wie Sie mit einer Änderung der IP-Adresse umgehen können. Einige Ideen sind:

  • Verwenden Sie einen NAT oder IP Load Balancer und geben Sie Ihren Kunden eine dazugehörige IP-Adresse. Wenn sich die IP-Adresse des Webservers ändern muss, können Sie ein Update auf dem NAT oder Load Balancer,

  • Bieten Sie auch einen DNS-Hosting-Service an und veranlassen Sie Ihre Kunden, ihre Domain bei Ihnen zu hosten, damit Sie in der Lage sind, die A-Einträge zu aktualisieren.

  • Fordern Sie Ihre Kunden auf, ihren A-Datensatz auf einen Hauptwebserver festzulegen und eine HTTP-Umleitung für die Webanforderungen jedes Kunden zu verwenden.

2
sipwiz