# ISPConfig3 DNS Server Mirroring + Backup MX



## daben (21. Juni 2010)

Hallo,

ich möchte gerne auf einem zweiten Host (ISPConfig3) einen Secondary DNS und einen Backup MX aufsetzen. Das mit Secondary DNS funktioniert ja einfach, indem ich die Mirroring-Funktion für den DNS-Server verwende. Sobald die Mirroring-Funktion aktiviert wurde, kann ich aber kein "email routing" auf dem zweiten Hostsystem anlegen.
Wenn ich das Mirroring auch für den Mailserver setze, dann hilft das auch nicht wirklich weiter, da dann bei einem Ausfall des Mailservers 1 die eMails in das Postfach auf dem Mailserver 2 kommen und selbst wenn Mailserver 1 wieder erreichbar ist, nicht auf Mailserver 1 kopiert/weitergeleitet werden oder?
Gibt es eine Möglichkeit das schön zu lösen?


----------



## Till (21. Juni 2010)

> Wenn ich das Mirroring auch für den Mailserver setze, dann hilft das  auch nicht wirklich weiter, da dann bei einem Ausfall des Mailservers 1  die eMails in das Postfach auf dem Mailserver 2 kommen und selbst wenn  Mailserver 1 wieder erreichbar ist, nicht auf Mailserver 1  kopiert/weitergeleitet werden oder?
> Gibt es eine Möglichkeit das schön zu lösen?


Mit dem Mirroring liegst Du schon ganz richtig. Du hast nur einen Punkt bei der konfiguration vergessen wenn Du ein email HA Setup haben möchtest, das Verzeichnis /var/vmail beider Server muss auf einen shared network drive verweisen, also ein Dateisystem das von beiden Servern aus verfügbar ist. das kann man mittels eines SAN oder NFS Servers lösen. Oder aber Du benutzt ein Clusterfilesystem wie glusterfs. Ich würde das ganze über glusterfs lösen, schau einfach mal auf howtoforge.com, da gibt es eine ganze Reihe an Tutorials dazu.


----------



## daben (21. Juni 2010)

Danke für die Antwort!
Das Problem an glusterfs, dass die Systeme VPS sind. Glusterfs in einem VPS aufzusetzen ist glaub ich nicht möglich, werde aber mal suchen ob ich dazu was Schlaues finde.
Im Grunde würde mir auch ein klassischer Backup MX genügen, der die Mails queued, bis der Mailserver wieder erreichbar ist. Mal sehen, also entweder ein dritter Server als Backup MX oder ein verteiltes Dateisystem.


----------



## daben (21. Juni 2010)

spricht etwas dagegen, das Verzeichnis /var/vmail mit einem cronjob z.B. jede Minute beidseitig mit rsync "abzugleichen".
Also so etwas in der Art:


> rsync -auz -e ssh remote:/var/vmail/ /var/vmail/ && rsync -auz -e ssh /var/vmail/ remote:/var/vmail


Oder ist da mit Konflikten zu rechnen?


----------



## Till (22. Juni 2010)

Könnte auch gehen, müsstest Du einfach mal ausprobieren, wie dovecot bzw. courier damit klarkommen.


----------



## daben (9. Juli 2010)

also mit dem courier funktioniert das mit rsync leider nicht.

bezüglich des dns mirroring ist mir aufgefallen, dass auf dem zweiten server standardmäßig der zonen-transfer offen ist. abhilfe: tcp port 53 sperren


----------



## Till (10. Juli 2010)

Soweit ich weiß haben es einige Leute bereits mit glusterfs gemacht.



> bezüglich des dns mirroring ist mir aufgefallen, dass auf dem zweiten  server standardmäßig der zonen-transfer offen ist. abhilfe: tcp port 53  sperren


Du kannst das auch einfach in der named.conf einstellen:

http://www.howtoforge.com/forums/showpost.php?p=233239&postcount=2


----------



## daben (13. Juli 2010)

ich hätte jetzt versucht, die Funktionalität eines BackupMX mit der Email-Routing-Funktion zu erlangen.

Bin dabei wie hier beschrieben vorgegangen.

Server 1 hat eine Mailbox für die Domain abc.de
Auf Server 3 habe ich nun eine Transportroute angelegt:

Server: server3.xyz.de
Domain: abc.de
Typ: SMTP
Kein MX Lookup
Ziel: server1.xyz.de

MX Records: 
0 server1.xyz.de
20 server2.xyz.de

Eigentlich sollte doch nun wenn Server 1 ausfällt Server 3 die emails annehmen? 
Ist Server 1 inaktiv, dann kommt von Server 3 ein "Undeliverable Mail" zurück:


> Recipient address rejected: User unknown in relay recipient


Laufen beide Server, dann kann die Mail mit der Route auch nicht mehr zugestellt werden:




> mail for <IP Server 1> loops back to myself


==> Der Server 3 (BackupMX) weiß nicht, dass er die emails annehmen soll und Server 1 versucht die emails immer sich selbst zuzustellen???

Ich denke ich habe da irgend einen Fehler beim Anlegen der Transportroute. Jemand eine Idee?


----------



## Till (13. Juli 2010)

Du musst noch die Email adressen bzw. domain in ispconfig unter relay recipients hinzufügen.


----------



## daben (14. Juli 2010)

Super, vielen Dank!
Der Fehler 



> The mail system <cxc@abc.de>: mail for <IP Server 1> loops back to myself


 besteht leider weiterhin.
Was mich wundert, ich habe die Route auf Server 3 angelegt, die Fehlermeldung kommt aber von Server 1

merkwürdig ist auch diese Warnung:


> Jul 14 02:45:15 server1 postfix/trivial-rewrite[4652]: warning: do not list domain abc.de in BOTH virtual_mailbox_domains and relay_domains


----------



## Till (14. Juli 2010)

Du scheinst die Domain auf server1 auch enteweder als route angelegt zu haben oder aber manuell in der main.cf als relaydomain. Du must also auf server1 entweder die route oder relaydomain in der main.cf entfernen und postfix neu starten. Beachte bitte auch, dass Du in postfix keine Domain für die Einstellungen mydomain oder myhostname nehmen kannst, die Du auch als Mailbox benutzt. Du musst stattdessen eine subdomian wie mail.deinedomain.de nehmen.


----------



## daben (14. Juli 2010)

in der main.cf scheint alles zu passen. Habe darin auch nie irgend etwas geändert. Was jedoch auffällig ist, dass es in der Datei 


> /etc/postfix/mysql-virtual_relaydomains.cf


keinen Server-Parameter als Bedingung gibt.



> user = ispconfig
> password = test
> dbname = dbispconfig
> table = mail_transport
> ...


in der Datenbank gibt es in der Tabelle mail_transport noch ein Attribut server_id. Diese Condition wird aber nicht überprüft, oder sehe ich das falsch? Das würde dann bedeuten, im Multiserver-Setup werden alle Routen die ich auf einem Server anlege auch auf dem primären Server angelegt. Das würde dann auch das Loop-Back erklären.


----------



## Till (15. Juli 2010)

Füge bitte mal das: server_id = 1 zur Condition hinzu. Wir haben das schon im Bugtracker drin.


----------



## daben (18. Juli 2010)

super, funktioniert nun, thx!!!
wichtig ist noch, die Condition server_id=1 auch in der Datei 



> /etc/postfix/mysql-virtual_transports.cf


 hinzuzufügen.


----------

