Stefan: Domain-Alias, etc.

Hallo,

nachdem ich seit gestern im Netz keine Anwort gefunden habe versuche ich es mal hier im Forum: Ich Bekannter von mir hat eine .com-Adresse reserviert, welche ich nun auf eine schon bestehende Webadresse umleiten soll.

Bsp: www.neuedomain.com soll auf www.altedomain.de landen.

Das Problem dabei: Ich habe nur die Möglichkeiten, mit einem sog. Domain-Alias und/oder auf eine IP-Adresse umzuleiten. Die bestehende Webadresse ist (vermutlich) ein sog. Virtual Host. Da dort natürlich kein Eintrag für www.neuedomain.com besteht, geht die Anfrage ins Leere. Was ich nicht ganz verstehe: Wo genau muss der Eintrag für die Domain www.neuedomain.com vorgenommen werden, damit er auf www.altedomain.de landet? Muss ich die neue Domain als CNAME o.ä. auf dem Server der alten Domain eintragen? Muss ein neuer Virtual Host angelegt werden, wo ich dann eine Umleitung auf die alte Domain vornehme?

Vielen Dank,

Stefan

  1. Hallo Stefan,

    Wenn ein Webbrowser eine URL wie z.B. http://www.selfhtml.org/ aufruft, dann geschieht folgendes: Der Browser fragt das DNS-System nach der IP-Adresse für dem Rechner www.selfhtml.org. Dazu wird im Endeffekt der DNS-Server, der auf selfhtml.org eingetragen ist, gefragt (allerdings gibt es mehrere Zwischenstationen auf dem Web, die das ganze auch zwischenspeichern, damit die Anfragen nicht sehr lange dauern). Dann kennt der Browser die IP des Servers, auf den www.selfhtml.org zeigt.

    Nun geschieht folgendes: Der Browser baut eine TCP/IP-Verbindung zu www.selfhtml.org Port 80 auf. Eine TCP/IP-Verbindung kennt keine Hostnamen etc. Sie kennt nur IP-Adressen und Ports. Das heißt, der kontaktierte Server weiß, dass ein anderer Rechner sich zu ihm verbunden hat, er weiß, welche IP-Adresse dieser Client-Rechner verwendet, und er weiß auch, zu welcher IP-Adresse sich dieser Client-Rechner verbunden hat (der Server könnte ja mehrere IP-Adressen haben). Aber der Server hat *keine* Ahnung, was für ein Hostname in der Adresszeile des Browsers steht. Und der Server *kann* es über TCP/IP *nicht* herausbekommen.

    Um dieses Dilemma jetzt zu lösen - sonst könnte man nämlich nur einen Host pro IP-Adresse betreiben, gibt es ein Feld in HTTP, das der Browser ab HTTP/1.1 mitschicken *muss*. Dieses Feld heißt 'Host' und gibt an, welcher Hostname in der Adressezeile steht.

    Wenn nun im Moment also sowohl www.selfhtml.org als auch de.selfhtml.org auf die IP-Adresse 212.227.118.71 zeigen, dann läuft der Verbindungsaufbau vom Browser zum Webserver erst einmal genau gleich ab. Wenn der Benutzer jedoch die Seite http://www.selfhtml.org/ haben will, wird vereinfacht gesagt folgende Anfrage geschickt:

    GET / HTTP/1.1
    Host: www.selfhtml.org
    Sonstige-Felder: Sonstige Werte

    Wenn nun der Benutzer die Seite http://de.selfhtml.org/ haben will, wird folgende Anfrage geschickt:

    GET / HTTP/1.1
    Host: de.selfhtml.org
    Sonstige-Felder: Sonstige Werte

    So kann der Server also feststellen, welche Seite er dem Benutzer ausliefern soll.

    Damit nun jetzt zwei Domains auf den gleichne Webspace zeigen, gibt es drei Möglichkeiten:

    1. Du lässt beide Domains auf die gleiche IP zeigen (CNAME ist da auch eine Option) *und* konfigurierst zwei virtuelle Hosts in der Webserverkonfiguration, die auf das gleiche Verzeichnis zeigen.

    2. Du machst eine clientseitige Weiterleitung von Domain A zu Domain B: Über HTTP, meta-Tag, JavaScript oder einer Seite mit dem Text 'bitte folgen Sie diesem Link' wird der Browser von Domain A nach Domain B umgeleitet.

    3. Du tunnelst den HTTP-Verkehr auf Domain A: Auf dem Rechner, auf dem Domain A gehostet ist, steht eine Art Proxy-Server zur Verfügung, der für jede Anfrage, die an Domain A gerichtet ist, eine eigene Anfrage an Domain B stellt und die Antwort dann durchgereicht wird. Dies verursacht jedoch den dreifachen Traffic wie die obigen beiden Lösungen.

    Lösung 1 wäre am saubersten; Lösung 2 wäre - falls 1 nicht zur Verfügung steht - diejenige, die am meisten Traffic spart; bei Lösung 3 (falls 1 nicht zur Verfügung steht) würde immerhin noch die Domain A in der Adresszeile stehen, im Gegensatz zu Lösung 2. (Ok, man könnte auch per Frameset 'weiterleiten', aber so etwas ist einfach nur ekelhaft)

    Viele Grüße,
    Christian

    1. Hallo Christian,

      danke für die Antwort.

      Das Problem bei der Sache ist folgendes: Die Adresse www.neuedomain.com ist bei www.register.com (die heissen wirklich so) registriert. Dort hat man die Option, nur die Adresse !ohne! Webspace zu reservieren (War mir neu, wusste nicht das es das gibt). Die Option "Webspace" und Weiterleitung sind alle mit min. 50$ Kosten pro Jahr verbunden, und ich versuche nun ohne grosse Unkosten zu verursachen die Adresse umzuleiten. Die jetzige Option ohne Webspace erlaubt lediglich die Weiterleitung über/auf einen  Domain-Alias oder über eine feste IP-Adresse. Die Option 2 fällt daher leider aus. Die anderen Optionen sind aber auch nicht ganz trivial, da ich dort an die Webserverkonfiguration muss, was ich auch nicht so ohne weiteres machen kann.

      Ich habe nur wenig bis gar keine Ahnung von CNAME´s, DNS-Servern, virtuellen Hosts und Nameservern, habe nur gehofft, dass es eine andere Möglichkeit gibt, von der ich nichts weiss.

      Wen ich es richtig verstanden habe: Das der Server auf eine Adresse, die nicht auf ihm gehostet ist antwortet muss ich in die http.conf (bei Apache zumindest) des Servers einen virtuellen Host oder Domainpointer o.ä. eintragen. Nur habe ich ohne Rootrechte wohl keinen Zugriff auf die Datei...

      Option 3 habe ich nicht ganz verstanden. Was meinst du mit "eine Art Proxyserver"?

      Nun denn, auf jeden Fall weiss ich jetzt, das es so ohne weiteres nicht zu machen ist. Muss mich über DNS-Server und den ganzen Kram wohl noch intensiver informieren. Bei den deutschen Webhostern ist das alles ja in einem "normalen" Webpacket mit enthalten und man muss sich nicht um CNAME-Einträge, Nameserver und so Krams kümmern.

      Vielen Dank!

      Gruss,

      Stefan

      1. Hallo Stefan,

        Wen ich es richtig verstanden habe: Das der Server auf eine Adresse, die nicht auf ihm gehostet ist antwortet muss ich in die http.conf (bei Apache zumindest) des Servers einen virtuellen Host oder Domainpointer o.ä. eintragen.

        Nein, nicht ganz: Die Inhalte sind ja dort gehostet, und wo die Domain registriert ist, ist dem *WEB*-Server egal. Wenn Du Dir eine Domain bei einem Webhoster registrierst, *kann* es sein, dass auf dem gleichen Server auch ein DNS-Server läuft, *muss* aber nicht.

        Der Webserver braucht für *jegliche* Domain einen virtuellen Host, egal, in welchem DNS die eingetragen ist. Web und DNS sind zwei größtenteils unabhängige Dienste.

        Option 3 habe ich nicht ganz verstanden. Was meinst du mit "eine Art Proxyserver"?

        Naja, normalerweise besteht ja eine Direktverbindung zwischen Browser und Server. Bei Option 3 würde das ganze jedoch so aussehen:

        +---------+          +---------------------+          +---------------------+
        | Browser |<-------->| Server für Domain A |<-------->| Server für Domain B |
        +---------+          +---------------------+          +---------------------+

        Aber wenn Du nur DNS modifizieren kannst, fällt die Möglichkeit für Dich auch flach.

        Viele Grüße,
        Christian