basti_p: 2 Mailserver - bei Ausfall umschalten

Hallo,

ich habe die Websites einiger meiner Kunden auf meinem Rootserver gehostet; als Mailserver benutze ich einen anderen Rootserver, um die beiden Dienste zu trennen. Heute morgen war es wieder mal so weit: der Mailserver war aus technischen Gründen (des Providers) ca. 3 Stunden nicht erreichbar.

Folgende Frage: wenn ich einen 2. Mailserver mit der gleichen Konfiguration hätte (natürlich bei einem anderen Anbieter:-)), wie könnte ich bei Nichterreichbarkeit des 1. auf den 2. umleiten (möglichst schnell)?

Vielen Dank und Grüße Basti

  1. Mahlzeit,

    Folgende Frage: wenn ich einen 2. Mailserver mit der gleichen Konfiguration hätte (natürlich bei einem anderen Anbieter:-)), wie könnte ich bei Nichterreichbarkeit des 1. auf den 2. umleiten (möglichst schnell)?

    Durch entsprechende MX-Einträge im zuständigen Nameserver.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hallo,

      vielen Dank, d.h., wenn ich für Server 1 und Server 2 je einen MX-Record mit einer Priorität von 50 anlegen würde, wäre der gewünschte Effekt erzielt?

      Grüße Basti

      1. Mahlzeit,

        vielen Dank, d.h., wenn ich für Server 1 und Server 2 je einen MX-Record mit einer Priorität von 50 anlegen würde, wäre der gewünschte Effekt erzielt?

        Nein. Dann hättest Du zwei gleichberechtigte Mailserver, von denen mal der eine und mal der andere angesprochen wird.

        Willst Du einen Haupt- und einen Backupserver, so bekommt der primäre Mailserver üblicherweise die Priorität 10, das oder die Backup-System(e) dann eine höhere (z.B. 20, 30 ...). Die Abstände lässt man normalerweise, um für etwaige Umkonfigurationen noch "Platz" zu lassen, ohne wieder alles ändern zu müssen.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Moin!

          Willst Du einen Haupt- und einen Backupserver, so bekommt der primäre Mailserver üblicherweise die Priorität 10, das oder die Backup-System(e) dann eine höhere (z.B. 20, 30 ...). Die Abstände lässt man normalerweise, um für etwaige Umkonfigurationen noch "Platz" zu lassen, ohne wieder alles ändern zu müssen.

          Diese Lösung ist allerdings im Endeffekt doch komplizierter umzusetzen, als man es auf den ersten Blick meinen mag.

          Zuerst mal: Kein Mailsender ist wirklich verpflichtet, sich an die Prioritätenliste der MX zu halten, er kann (unabsichtlich oder absichtlich) auch einfach einen anderen Mailserver kontaktieren, selbst wenn der primäre Server scheinbar erreichbar ist. Kann ja immer mal sein, dass die Route irgendwo unterbrochen ist, oder dass Spammer hoffen, auf dem zweiten MX weniger Spamfilter anzutreffen etc.

          Daraus folgt: Der zweite Mailserver muß tatsächlich identisch konfiguriert sein: Die gleichen Spamfiltermaßnahmen, die gleichen Useraccounts, das gleiche Mailhandling. Ansonsten erhält man über den sekundären MX sehr viel Müll, oder er schickt - was man ja auch unbedingt vermeiden sollte - sehr viele Unzustellbarkeitsmails an unschuldige Mailadresseninhaber, deren Adresse von Spammern mißbraucht wurde.

          Noch ein wichtiger Aspekt: Nur weil jetzt zwei SMTP-Server über MX-Einträge erreichbar sind, bedeutet das noch lange nicht, dass die Kunden dann auch zwei POP3- oder IMAP-Server verfügbar haben. Für dieses Problem gibts nämlich keine einfache Lösung, sondern es wird dann leider richtig komplex, und zwar mit dem vollen Programm zur Ausfallsicherheit.

          Das Grundproblem ist: Eine Mail ist halt nur auf genau einem der beiden Mailserver vorhanden - aber welchen fragt man dann, wenn der Kunde das EINE Postfach abfragt? Es muß also irgendeinen Mechanismus geben, der die Mails der beiden Mailserver in EIN Postfach tut. Dann aber besteht wieder das Problem, dass genau dieser Server ausfallen kann.

          Es ist aber unzumutbar und extrem fehleranfällig, wenn man den Kunden nötigt, in Ausfallzeiten manuell die Adresse seines POP3-Servers zu ändern. Aber wenn irgendein Automatismus im DNS den Servernamen auf die neue IP abändert, und wieder zurück, so funktioniert das leider ja auch nicht in Echtzeit, weil gerade die Serveradressen von Mailservern ja schon mehrmals am Tag abgefragt werden und deshalb lange im Cache der DNS-Server der Provider stehen.

          Selbst eine unvernünftig kurze TTL-Zeit sorgt immer noch für ein Zeitfenster, in dem der Kunde das Umschalten spürt.

          Und obendrein bleibt das Problem, dass es ja durchaus sein kann, dass der erste Mailserver eine Mail empfängt, dann ausfällt, der Kunde sein Postfach auf dem zweiten Server abfragt, keine Mails findet, dann wieder eine Mail reinkommt, dann kommt der erste Server wieder online, es wird zurückgeschaltet, und dann erst fragt der Kunde sein Postfach auf dem ersten Mailserver wieder ab. Er verliert also erstens den Zugriff auf die Mails, die schon auf dem ersten Server lagerten, bevor er ausgefallen ist, und zweitens den Zugriff auf die Mails, die aufgrund widriger Umstände auf dem zweiten Server noch nicht abgerufen wurden. Heißt: Man muß sich um Nachsendemethoden auch noch Gedanken machen.

          In der Summe ist also der Aufwand, Redundanz in eine Mailinfrastruktur hineinzubekommen, deutlich größer, als nur durch das Hinzufügen eines zweiten MX-Eintrags.

          - Sven Rautenberg

          --
          "Love your nation - respect the others."
          1. Mahlzeit,

            Willst Du einen Haupt- und einen Backupserver, so bekommt der primäre Mailserver üblicherweise die Priorität 10, das oder die Backup-System(e) dann eine höhere (z.B. 20, 30 ...). Die Abstände lässt man normalerweise, um für etwaige Umkonfigurationen noch "Platz" zu lassen, ohne wieder alles ändern zu müssen.

            Diese Lösung ist allerdings im Endeffekt doch komplizierter umzusetzen, als man es auf den ersten Blick meinen mag.

            Klar ist es nicht trivial, mehrere Mailserver zu verwalten. :-)

            Ich habe das Problem vor einiger Zeit mal so "gelöst", dass ausschließlich der primäre Mailserver (mit SMTP-Auth, POP3 und IMAP) für das Annehmen von "innen" kommender Mails (egal ob nach innen oder außen) zuständig war - wenn der primäre Mailserver nicht erreichbar war, war es also nicht möglich, Mails von "innen" zu verschicken. Das war aber zu verschmerzen, da diese Ausfallzeiten meist gering gehalten werden konnten (Datensicherung, identisch konfiguriertes Backup-System mit kurzer Anlaufzeit).

            Wichtiger war, dass im Fall eines Ausfalls des primären Mailservers keine Mails von "außen" verloren gehen sollten. Dafür gab es einen sekundären Mailserver, dessen MX-Eintrag mit Priorität 20 versehen war (und der damit *eigentlich* nur angesprochen werden sollte, wenn der primäre nicht erreichbar war). Dieser sekundäre Mailserver befand sich in einem anderen Netzsegment bei einem anderen Hoster und nahm zwar Mails auch ohne Authentifizierung an, jedoch nur für "interne" Domains (für was er zuständig war, wurde bei entsprechenden Konfigurationsänderungen auf dem primären Mailserver mit diesem synchronisiert). Desweiteren war ihm das Versenden nur an den primären Mailserver gestattet (smarthost). Sobald der sekundäre Mailserver also den primären erreichte (egal, ob das normale oder das Backupsystem), wurden die zwischenzeitlich "zwischengelagerten" Mails in die Postfächer einsortiert.

            In der Summe ist also der Aufwand, Redundanz in eine Mailinfrastruktur hineinzubekommen, deutlich größer, als nur durch das Hinzufügen eines zweiten MX-Eintrags.

            In der Tat. Das hängt natürlich auch von den Konditionen bzw. Beschränkungen oder Wünschen des/der Entscheider(s) ab - und auch vom Budget. In dem von mir skizzierten Fall waren sicherlich nicht alle Eventualitäten abgedeckt, aber die hauptsächlichen Anforderungen ("Keine Mails von außen sollen verloren gehen!!!11einseinselfELF") wurden erfüllt.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Moin!

              Wichtiger war, dass im Fall eines Ausfalls des primären Mailservers keine Mails von "außen" verloren gehen sollten.

              Da jeder vernünftige sendende Mailserver eine Warteschlange hat, tritt dieses Problem eigentlich nie auf. Ist der primäre Mailserver unerreichbar, so wird der sendende Mailserver es später erneut versuchen, und im Zweifel seinem Nutzer eine Unzustellbarkeitsnachricht zukommen lassen. Zumindest ist die Mail noch im Herrschaftsbereich des dortigen Mailadmins, der kann also nachgucken, ob die Mail schon ausgeliefert wurde, oder nicht.

              Das alles geht nicht mehr, wenn der sekundäre Mailserver stattdessen die Mail annimmt, aber nicht final ausliefern kann. Dann hängt die Mail dort fest, der Sender muß annehmen, dass sie den Empfänger erreicht hat, aber der Empfänger kann sie noch nicht erhalten.

              Auswirkungen auf "Mailverluste" hat so eine Konstruktion keine. Denn auch der sekundäre Mailserver wird mit seiner Warteschlange irgendwann nach 7 Tagen die Lust verlieren, noch weitere Zustellversuche an den primären Mailserver vorzunehmen, und stattdessen eine Unzustellbarkeitsnachricht an den vermeintlichen Absender zurückschicken.

              Abgesehen davon: Wenn ein Mailserver mehr als einen Tag unerreichbar bleibt und das eine Katastrophe für den Betreiber ist (geschäftliche Nutzung, wichtiges Kommunikationsmedium), ist so ein billiges Sekundär-MX-Konstrukt sowieso nicht das Richtige. Dann braucht man wirkliche Redundanz.

              Wenn man hingegen den Ausfall einfach verschmerzen kann, dann braucht man auch keinen sekundären MX. Denn die Mails kommen eben dann an, wenn der Server wieder online ist.

              In der Tat. Das hängt natürlich auch von den Konditionen bzw. Beschränkungen oder Wünschen des/der Entscheider(s) ab - und auch vom Budget. In dem von mir skizzierten Fall waren sicherlich nicht alle Eventualitäten abgedeckt, aber die hauptsächlichen Anforderungen ("Keine Mails von außen sollen verloren gehen!!!11einseinselfELF") wurden erfüllt.

              Wie dargestellt: Das passiert sowieso nicht.

              - Sven Rautenberg

              --
              "Love your nation - respect the others."