Transport Load Balancing/Fallback
Hallo,
ich stehe vor folgender Aufgabe und weiss hier leider nicht wie ich diese loesen kann.
Ich habe zwei externe Mailserver (mail1.domain.tld,mail2.domain.tld) diese sind fuer den ein und ausgehenden Mailverkehr zustaendig. Zusaetzlich habe ich ein internes Mailsystem/Mailrelay mit Postfix welches Scans usw. vornimmt und abschliessend einen internen Postfach Server wo alle Mailkonten liegen.
mail1.domain.tld \ <-> postfix-relay.domain.intern <-> postfachsrv.domain.intern mail2.domain.tld /
Auf dem Postfix System ist eine Transport Map vorhanden in folgender Form:
* smtp:mail1.domain.tld sub1.domain.intern smtp:postfachsrv.domain.intern sub2.domain.intern smtp:postfachsrv.domain.intern
Nun gibt es fuer mail1.domain.tld einen A Record der genau eine IP zurueck liefert.
Meine Aufgabe ist es nun das der Postfix Server Mails mit dem Ziel "*" nicht nur an mail1.domain.tld sendet, sondern im Fehlerfall an mail2.domain.tld. Am schoensten waere es natuerlich wenn es nicht nur die Moeglichkeit eines Fallback gibt sondern das der Postfix Server die Mails auf beide Systeme verteilt. Ich wollte hier eigentlich keinen zusaetzlichen Server in die Kette als Loadbalancer aufnehmen. Die Loesung den gleichen A Record mit unterschiedlichen IPs anzulege , um DNS round robin zu ermoeglichen, finde ich nicht wirklich brauchbar. Gibt es hier auch andere Moeglichkeiten, dies realisieren?
Gruss Christian
On 13.04.2015 09:30, Frost, Christian wrote:
Die Loesung den gleichen A Record mit unterschiedlichen IPs anzulege, um DNS round robin zu ermoeglichen, finde ich nicht wirklich brauchbar.
Warum nicht? Das dürfte der vermutlich am einfachsten zu realisierende Lösungsansatz sein - über den sich beispielsweise auch in größeren Setups ein MX-Loadbalancing erreichen lässt.
Mit freundlichen Grüßen Christian Schmidt
Hallo Christian,
On Mo, 13 Apr 2015 at 07:30:53 +0000, Frost, Christian wrote:
Meine Aufgabe ist es nun das der Postfix Server Mails mit dem Ziel "*" nicht nur an mail1.domain.tld sendet, sondern im Fehlerfall an mail2.domain.tld. Am schoensten waere es natuerlich wenn es nicht nur die Moeglichkeit eines Fallback gibt sondern das der Postfix Server die Mails auf beide Systeme verteilt. Ich wollte hier eigentlich keinen zusaetzlichen Server in die Kette als Loadbalancer aufnehmen. Die Loesung den gleichen A Record mit unterschiedlichen IPs anzulege , um DNS round robin zu ermoeglichen, finde ich nicht wirklich brauchbar. Gibt es hier auch andere Moeglichkeiten, dies realisieren?
was genau findest Du am DNS round-robin nicht brauchbar? Ich habe das seit Jahren funktionierend im Einsatz und postfix ist schlau genug beide zu probieren und durch das round robin gibts failover und load balancing gratis dazu.
Grüße, Florian
Hallo Christian,
Hallo Florian,
was genau findest Du am DNS round-robin nicht brauchbar? Ich habe das seit Jahren funktionierend im Einsatz und postfix ist schlau genug beide zu probieren und durch das round robin gibts failover und load balancing gratis dazu.
DNS an sich kann ja nicht erkennen ob ein System erreichbar ist, es ist ja nur fuer die Namensaufloesung da ;-) das bedeutet also das Postfix dieses Problem dann loesen muss in dem es ein anderes Ziel probiert.
Ich gebe zu ich bin von folgendem Sachverhalt ausgegangen: Wenn fuer mail.domain.tld eine dns Aufloesung erfolgt und das System hinter der zurueckgelieferte IP nicht erreichbar ist, das dann diese Mails solange in der queue bleiben bis das System wieder verfuegbar ist (Im Wartungs/Stoerungsfall kann dies schon eine ganze Zeit sein). Ich bin nicht davon ausgegangen, wenn Postfix das genannten System nicht erreichen kann, das er dann eine von den anderen zurueckgelieferten IPs probiert.
Ist dieses letzte genannte Verhalten irgendwo in der Postfix Doku beschrieben? Oder ist dies von dir/euch so getestet.
Vielen Dank.
Grüße, Florian
Gruss, Christian
* Frost, Christian christian@frost.tk:
Meine Aufgabe ist es nun das der Postfix Server Mails mit dem Ziel "*" nicht nur an mail1.domain.tld sendet, sondern im Fehlerfall an mail2.domain.tld. Am schoensten waere es natuerlich wenn es nicht nur die Moeglichkeit eines Fallback gibt sondern das der Postfix Server die Mails auf beide Systeme verteilt. Ich wollte hier eigentlich keinen zusaetzlichen Server in die Kette als Loadbalancer aufnehmen. Die Loesung den gleichen A Record mit unterschiedlichen IPs anzulege , um DNS round robin zu ermoeglichen, finde ich nicht wirklich brauchbar. Gibt es hier auch andere Moeglichkeiten, dies realisieren?
Wir nutzen Loadbalancer aus Prinzip. Sie lassen die Entscheidung, wohin die Last gehen soll, nicht dem Sender/Client. Wäre ich ein Böser und Du hättest Round Robin, ich würde alle Adressen lernen und Deine Server nacheinander 'ausschiessen'. Mit einem LB wird das schwierig.
p@rick
Wir nutzen Loadbalancer aus Prinzip. Sie lassen die Entscheidung, wohin die Last gehen soll, nicht dem Sender/Client. Wäre ich ein Böser und Du hättest Round Robin, ich würde alle Adressen lernen und Deine Server nacheinander 'ausschiessen'. Mit einem LB wird das schwierig.
Ok danke fuer deinen Hinweis zum Thema Load Balancer/DNS, zumindest was das Thema DNS angeht sehe ich dies in meinem Setup nicht so schlimm. Da hierfuer eine interne Domain verwendet wird und dies nach aussen hin nicht bekannt ist. Ja auch im eigenen Netz kann es boese Menschen geben, aber davon gehe ich jetzt mal nicht aus.
p@rick
Gruss Christian
Meine Aufgabe ist es nun das der Postfix Server Mails mit dem Ziel "*" nicht nur an mail1.domain.tld sendet, sondern im Fehlerfall an mail2.domain.tld. Am schoensten waere es natuerlich wenn es nicht nur die Moeglichkeit eines Fallback gibt sondern das der Postfix Server die Mails auf beide Systeme verteilt. Ich wollte hier eigentlich keinen zusaetzlichen Server in die Kette als Loadbalancer aufnehmen. Die Loesung den gleichen A Record mit unterschiedlichen IPs anzulege , um DNS round robin zu ermoeglichen, finde ich nicht wirklich brauchbar. Gibt es hier auch andere Moeglichkeiten, dies realisieren?
Zumindest ein Ansatz ist mir eben eingefallen/aufgefallen. Dieser beruecksichtigt aber nur das Thema Fallback.
In der master.cf einen weitere Eintrag angelegen (fsmtp - Fallback SMTP) mit der Option smtp_fallback_relay:
fsmtp unix - - n - - smtp -o smtp_fallback_relay=[1.1.1.2]
Und in der transport Datei:
statt * smtp:[1.1.1.1]
das * fsmtp:[1.1.1.1]
Dann müsste Postfix, sollte das Ziel [1.1.1.1] nicht erreichbar sein, auf den oben angegebenen Fallback ausweichen.
Gruss Christian
participants (4)
-
Christian Schmidt
-
Florian Streibelt
-
Frost, Christian
-
Patrick Ben Koetter