Im Zuge des (fiktiven) Projekts “Unser Intranet soll schöner werden”, habe ich mir mal Gedanken über die Konfiguration unseres DNS gemacht. Ich würde ganz gerne Subdomains verwenden, um die einzelnen Websites anzusprechen. Meine Lösung dazu sieht wie folgt aus:
- Das Intranet und alle anderen Webseiten (Blogs, Galerie etc.) liegen auf einem Server, der beispielhaft WS1 (für Webserver) genannt wird und einen normalen A-Eintrag sowie den zugehörigen PTR-Eintrag im DNS hat. Seine IP-Adresse sei 10.0.0.1, die Domäne domain.
- Nun möchte ich das Intranet in der URL-Leiste der Browser (u.a. um es für die Benutzer einfacher zu machen) nicht über http://ws1 erreichen, sondern über http://intranet. Dazu kann einfach ein CNAME-Eintrag intranet im DNS erzeugt werden, der auf WS1.domain zeigt.
- Nun möchte ich wie gesagt, die einzelnen Webseiten über Subdomains der Form http://blogs.intranet erreichen. Lege ich einen CNAME-Eintrag blogs.intranet im DNS an (es handelt sich um einen Windows 2003-Server), wird automatisch eine Unterzone intranet angelegt, da der Punkt im Namen dies impliziert. Zunächst dachte ich auch, dass das so in Ordnung sei, stellte aber fest, dass Anfragen an blogs.intranet (z.B. via ping) recht lange dauerten. Das lag daran, dass der DNS-Server die Anfrage an externe DNS-Server weiterleitete. Warum? Nun, da ein Punkt im abgefragten Host enthalten war, interpretierte der Server den Teil nach dem Punkt als Domäne (intranet), die er logischerweise nicht auflösen konnte, da er für die Domäne domain zuständig ist. Somit leitete er die Anfrage weiter. Nachdem er jedoch auch von den externen DNS-Servern keine Auflösung erhielt, versuchte er, die eigene Domäne an den Hostnamen anzuhängen und löste ihn schließlich als blogs.intranet.domain auf. Das konnte dauern… und witzigerweise war das Intranet nicht erreichbar, als wir unsere Firewall umkonfigurierten, weil die externen DNS-Abfragen zu der Zeit nicht möglich waren.
- Meine Lösung sieht nun wie folgt aus: Ich habe eine zusätzliche Domäne intranet neben domain im DNS konfiguriert und die einzelnen Subdomains als A-Einträge (z.B. blogs) in dieser angelegt, die logischerweise alle auf dieselbe IP-Adresse zeigen (die des Webservers). Dadurch löst der DNS-Server nun Anfragen an *.intranet selbst aus der neuen Domäne intranet auf. Die Anfragen an intranet selbst lasse ich dann mittels eines CNAME-Eintrags in der Domäne domain auflösen. Somit sind sowohl die URLs http://intranet (vom Server interpretiert als Host in domain) als auch http://blogs.intranet (interpretiert als Hosts in der Domäne intranet) erreichbar.
Hat jemand Vorschläge, wie es auch einfacher bzw. sauberer geht? Ich habe dazu wenig gefunden…
Insgesamt bin ich aber mit der Lösung sehr zufrieden, da die DNS-Auflösung nun nur noch intern vonstatten geht und die Antwortzeiten dementsprechend gut sind 🙂