Christoph Schmidt: Bei Serverausfall umleiten

Hallo Forum,

ich hab mich schon tot-gegoogled, aber dennoch nichts relevantes zu meiner Frage gefunden. Deshalb möchte ich es mal hier versuchen:

Gibt es eine Möglichkeit, das wenn ein Webserver (aus welchen Gründen auch immer) ausfällt, eine Domainanfrage aus dem Internet an diesen Server auf einen Ausweichserver umzuleiten? Der Server, den ich absichern möchte hat eine statische IP.

www.xyz.de -> ausgefallener Webserver = keine Antwort -> Ersatzserver springe ein

Für Antworten bedanke ich mich schon im Voraus.

MfG
Christoph

  1. 你好 Christoph,

    Gibt es eine Möglichkeit, das wenn ein Webserver (aus welchen Gründen
    auch immer) ausfällt, eine Domainanfrage aus dem Internet an diesen
    Server auf einen Ausweichserver umzuleiten? Der Server, den ich absichern
    möchte hat eine statische IP.

    www.xyz.de -> ausgefallener Webserver = keine Antwort -> Ersatzserver
    springe ein

    Nein, das ist ohne vorgeschalteten Proxy nicht möglich. Das einzige, was du
    machen kannst, ist, die DNS-Server bei Server-Ausfall schnell umzustellen.

    再见,
     克里斯蒂安

    --
    Toilettenspruch II. | Toilettenspruch I.
    Mensch zu Mathematiker: "Ich finde Ihre Arbeit ziemlich monoton". Mathematiker: "Mag sein! Dafür ist sie aber stetig und unbeschränkt."
    http://wwwtech.de/
    1. 你好 Christoph,

      Das einzige, was du machen kannst, ist, die DNS-Server bei Server-Ausfall
      schnell umzustellen.

      Ersetze schnell durch automatisch. Z. B. durch ein Cronjob, der alle x
      Minuten prüft, ob der Server noch erreichbar ist.

      再见,
       克里斯蒂安

      --
      Toilettenspruch II. | Toilettenspruch I.
      Echte Hacker benutzen Aexte. (Thomas Walter in de.org.ccc)
      http://wwwtech.de/
      1. Ja, das klingt logisch. Ich müsste also den Server mit einem Skript o.ä. , das ich auf dem Ersatzserver einsetze, intervallmäßig abfragen, ob der Hauptserver noch erreichbar ist. Ist er das nicht, muss die DNS umgestellt werden. Doch wie gesagt: Ich weiß (noch) nicht, wie das gemacht wird.

        MfG
        Christoph

        Ersetze schnell durch automatisch. Z. B. durch ein Cronjob, der alle x
        Minuten prüft, ob der Server noch erreichbar ist.

    2. Hallo Christian,

      vielen Dank für die superschnelle Antwort!

      Ich glaube, ich muss mich noch tiefer einlesen in DNS usw. Ich wüsste nämlich jetzt nicht, wo ich die DNS-Server umstellen könnte. :(

      Hast Du zufällig ein gutes Manual in dieser Richtung, was Du empfehlen könntest?

      MfG
      Christoph

      Nein, das ist ohne vorgeschalteten Proxy nicht möglich. Das einzige, was du
      machen kannst, ist, die DNS-Server bei Server-Ausfall schnell umzustellen.

      1. 你好 Christoph,

        Hast Du zufällig ein gutes Manual in dieser Richtung, was Du empfehlen
        könntest?

        Das DNS-Howto dürfte die erste Anlaufstelle sein; ansonsten würde ich mir
        ein Buch kaufen. Ich war mit dem Buch „DNS und BIND“ von O'Reilley sehr
        zufrieden.

        再见,
         克里斯蒂安

        --
        Toilettenspruch II. | Toilettenspruch I.
        Der Verstand ist der Hausherr, der Koerper sein Gast.
        http://wwwtech.de/
  2. Hi,

    Wenn Du sowieso 2 Server zur Verfuegung hast, koenntest Du Dich ja auch mal ueber load-balancing informieren.
    Da wird entweder der Verkehr auf 2 Server verteilt (active/active), oder einer springt dann ein wenn der andere ausfaellt (active/failover). Fuer Webserver wird in der Regel active/active verwendet.

    Gruss,
    Melanie

    1. Hallo Melanie,

      vielen Dank für Deinen Tipp, aber LoadBalancing hilft nicht weiter, denn zum Einen muss bei einer Softwarelösung der Server erreichbar sein (und immer bleiben) und zum Zweiten könnte ich eine Hardwarelösung, die VOR den Servern hängt, nicht einsetzen, weil ich keinen hardwaremäßigen Zugriff im Rechenzentrum meines Providers hätte. :)

      Trotzdem Danke für Deine Antwort.

      MfG
      Christoph

      Wenn Du sowieso 2 Server zur Verfuegung hast, koenntest Du Dich ja auch mal ueber load-balancing informieren.
      Da wird entweder der Verkehr auf 2 Server verteilt (active/active), oder einer springt dann ein wenn der andere ausfaellt (active/failover). Fuer Webserver wird in der Regel active/active verwendet.

  3. Moin!

    Gibt es eine Möglichkeit, das wenn ein Webserver (aus welchen Gründen auch immer) ausfällt, eine Domainanfrage aus dem Internet an diesen Server auf einen Ausweichserver umzuleiten? Der Server, den ich absichern möchte hat eine statische IP.

    Das Thema Ausfallsicherheit ist komplex und vielfältig. Entscheidend zur Beantwortung der Frage "Wie verhindere ich einen Ausfall?" ist immer, was genau denn bei dem Ausfall konkret passiert. Passend zum jeweiligen Defekt gäbe es dann jeweils eine oder mehrere Lösungen, um diesen Defekt zu vermeiden bzw. seine Auswirkungen auf die Verfügbarkeit zu eliminieren.

    An erster Stelle sollte daher stehen: Auf welche Weisen kann dein Server denn ausfallen?

    Die Lösung, im DNS-System für die Domain einfach eine andere IP einzutragen, hat nämlich gewisse Konsequenzen auch für den allgemeinen Betrieb ohne Ausfall, die man wissen muß, und die ggf. nicht akzeptabel sein können.

    DNS-Antworten werden nämlich immer für eine gewisse Zeit gespeichert. Übliche Werte für die Erlaubnis an fragende DNS-Server und deren Unterserver sind beispielsweise 4 oder 8 Stunden. Das würde bedeuten, dass deine IP-Änderung mit Pech erst nach Ablauf dieser Zeit bei den Usern ankommt - nämlich dann, wenn der User eine Sekunde vor dem Ausfall die DNS-Anfrage gestellt hat und noch die alte, gültige Antwort bekommen hat. Sein DNS-Server (meist steht der beim Provider) wird dann die alte IP für die Zeit des TTL (time to live) speichern und ohne weitere Anfrage bei DEINEM DNS-Server immer wieder herausgeben.

    Die Konsequenz ist, dass der TTL-Wert auf sehr kleine Zeiten gesetzt werden muß. Das wiederum erhöht zwangsläufig den Traffic auf deinem DNS-Server und es erhöht außerdem die Antwortzeiten deines Webservers, wenn der Browser für jeden Seitenaufruf immer wieder auf die DNS-Antwort warten muß.

    Und trotz dieses möglichen Mechanismus wird ein anderes Problem damit beispielsweise nicht gelöst: Session-Daten, die auf dem einen Server angefallen sind, beispielsweise ein Warenkorb, werden durch die DNS-Veränderung natürlich nicht auf den Ersatz-Server mit übertragen.

    Du solltest daher genauer analysieren, welchen Level von Ausfallsicherheit du wirklich benötigst. Wenn ein Shopsystem mit entsprechenden Umsätzen und sehr hoher Verfügbarkeit gesichert werden soll, dann sind DNS-Spielereien keine Lösung - da wird es dann mindestens einen Load-Balancer und ein entsprechend kommunizierendes System dahinter erfordern - wobei als extremere Stufe auch der Load-Balancer redundant ausgeführt werden sollte.

    Wenn hingegen Ausfallzeiten von einer bis zehn Minuten in Ordnung sind, dann könnte die IP-Umschaltung eine mögliche Lösung sein. Sie bringt aber natürlich trotzdem das Problem mit sich, dass erstens auch der Ersatzserver ausfallen könnte, und dass zweitens der Ersatzserver natürlich hinsichtlich des Datenbestandes auch immer aktuell gehalten werden muß - und zwar im Voraus, denn wenn der Hauptserver ausfällt, ist er ja nicht mehr erreichbar. :)

    Alternativ würde ich vorschlagen, einen 24/7-Admin verfügbar zu haben, der den Server im Problemfall einfach wieder aufrichtet. Je nach Ausfallszenario (welche Probleme erwartest du eigentlich genau) sind kleine Probleme innerhalb von 10 Minuten lösbar.

    Und wenn tagsüber auch eine halbe Stunde vergehen darf: Watch-System auf den Server ansetzen und die Alarme mailen lassen.

    Die DNS-Umstellerei hat übrigens noch anderes Problempotential:

    1. Der DNS-Server muß natürlich erreichbar sein, damit die Welt von der Umstellung erfährt. Wenn der DNS-Server hinter der gleichen gekappten Leitung liegt, wie dein Hauptserver, kann das System nicht funktionieren.

    2. Welche Instanz entscheidet, dass das DNS umgeschaltet werden muß? Der Hauptserver scheidet aus. Der Ersatzserver scheidet aber auch aus - es kommt nämlich durchaus vor, dass beispielsweise Haupt- und Ersatzserver beide erreichbar sind, nur die Route von Ersatz- zum Hauptserver fällt wegen eines Defektes kurzzeitig aus. Das Gleiche gilt aber auch für jeden anderen einzelnen Rechner im Netz, der die Erreichbarkeit der zwei Server prüft. Auch der kann komplett vom Netz oder zumindest von einem oder beiden Servern abgeschnitten sein, ohne dass der Grund dafür die Erreichbarkeit insgesamt beeinträchtigen würde.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
    1. Hallo Sven,

      ich bedanke mich für Deine ausführliche Stellungnahme zu meiner Frage. Ich hab in der Zwischenzeit mal über die eine, oder andere Möglichkeit nachgedacht und bin zu dem Ergebnis gekommen, dass es doch das Einfachste wäre, 2 zusätzliche DNS-Server-Adressen eintragen zu lassen, die bei Ausfall der ersten beiden (ausgefallener Server) zum tragen kommen und dann auf den Ersatzserver verweisen.

      Wäre das eine Möglichkeit, oder hab ich da (wiedermal) einen Denkfehler drin?

      MfG
      Chris

      <cut>

      Das Thema Ausfallsicherheit ist komplex und vielfältig. Entscheidend zur Beantwortung der Frage "Wie verhindere ich einen Ausfall?" ist immer, was genau denn bei dem Ausfall konkret passiert. Passend zum jeweiligen Defekt gäbe es dann jeweils eine oder mehrere Lösungen, um diesen Defekt zu vermeiden bzw. seine Auswirkungen auf die Verfügbarkeit zu eliminieren.

      <cut>

      1. Moin!

        ich bedanke mich für Deine ausführliche Stellungnahme zu meiner Frage. Ich hab in der Zwischenzeit mal über die eine, oder andere Möglichkeit nachgedacht und bin zu dem Ergebnis gekommen, dass es doch das Einfachste wäre, 2 zusätzliche DNS-Server-Adressen eintragen zu lassen, die bei Ausfall der ersten beiden (ausgefallener Server) zum tragen kommen und dann auf den Ersatzserver verweisen.

        Wäre das eine Möglichkeit, oder hab ich da (wiedermal) einen Denkfehler drin?

        Ich möchte es am liebsten auf diese Formel bringen: Das DNS-System ist der falsche Ansatzpunkt für Ausfallsicherheit.

        Natürlich kannst du für einen einzigen Domainnamen mehr als eine IP konfigurieren. Der DNS-Server wird dann eine aus der Gruppe auswählen und als Antwort versenden. Vielleicht sogar alle. Aber das bringt deinen Besuchern nichts, denn der Browser muß sich für eine dieser Adressen entscheiden - und wenn die dann ausgefallen ist, gibts eben keine Webseite zu sehen.

        Wenn du Ausfallsicherheit haben willst, solltest du zuallererst mal Ausfallsicherheit für einen einzigen Server erreichen: Stromausfall und Festplattendefekte stehen auf der Liste wohl ganz weit oben. Also redundante Netzteile, USV und ein RAID-Array installieren (lassen).

        Und was darüber hinaus geht, wenn es also um redundante Serverausstattung geht (Failover-Maschinen etc.), dann wird die Geschichte so langsam wirklich interessant - und da wäre ich dann auch die falsche Informationsquelle.

        Ich möchte nur andeuten, dass es für ein komplexes und kompliziertes Problem wie "Ausfallsicherheit eines Webdienstes" keine simple und billige Lösung der Marke "Einfach die IP abändern oder eine passende DNS-Konfiguration wählen, und alles wird gut" gibt. Wenn die Lösung im DNS-System liegen würde, wäre sie bekannt und würde überall benutzt werden.

        Entweder brauchst du die Ausfallsicherheit _wirklich_, weil davon eine Menge Geld (sei es in Form von Shop-Umsatz oder andernfalls nutzlos verbrachter Arbeitsstunden mehrerer (hundert) Mitarbeiter) abhängt, oder zumindest Prestige abhängt. Dann mußt du auch bereit sein, die dafür notwendigen Investitionen in Form von Hardware und Fachwissen zu tätigen.

        Oder du brauchst die Ausfallsicherheit nicht - dann wäre jegliche Installation einer Automatik, die irgendetwas notfallweise umändert, der falsche Weg.

        Natürlich kann es hilfreich sein, trotzdem zusätzlich zu einem Hauptserver ein Backup-System am Start zu haben, welches nach Analyse des Problemfalls und bei zu erwartender längerer Ausfallzeit die Aufgaben übernimmt - das ist dann aber allenfalls eine Arbeitserleichterung und Entlastung vom sonst evtl. vorhandenen Zeitdruck. Es wird damit aber immer zu einer wahrnehmbaren Ausfallzeit kommen.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
    2. Mal nebenbei: eine wirklich schöne und hilfreiche Erklärung, bei der ich mich (wie so oft) gefreut habe, was lernen zu können. Klasse!

      Viele Grüße!
      _ds

      1. Chi Schuer,

        Mal nebenbei: eine wirklich schöne und hilfreiche Erklärung, bei der ich mich (wie so oft) gefreut habe, was lernen zu können. Klasse!

        Dem kann ich mich absolut nur anschließen - ein Klasse Beitrag Sven, sowas kommt bei mir direkt in die Lesenzeichen! Schoen, dass du dir die Muehe machst, so viel zu schreiben.

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        Crypt::PasswdMD5 jetzt auch in PHP
        "Funktioniert nicht" hat exakt den selben Aussagewert wie "husseldiguggeldu" (Cheatah)