Mailserver an MultiWAN Failover Anschluss

Started by heiko3001, September 29, 2021, 09:50:56 AM

Previous topic - Next topic
September 29, 2021, 09:50:56 AM Last Edit: October 01, 2021, 08:34:19 AM by heiko3001
Guten Morgen,

wahrscheinlich habe ich ein Denkfehler, aber ich hab im Moment keinen Plan wie ich das umsetzen soll. Wahrscheinlich ist es eine Einstellung im Provider-DNS.....aber ich fang erstmal an.
Ich habe zwei WAN-Anschlüsse und habe diese auf der opnSense als Failover konfiguriert. Das funktioniert auch einwandfrei und hat sich auch schon bewährt. AM WAN1, dem Hauptanschluss hängt in der DMZ ein Mailserver der vom LAN und vom Internet aus erreichbar ist, und Mails entgegen nimmt und auch versendet.
Fällt WAN1 aus, übernimmt zwar WAN2 den Internetzugang, aber der Mailserver ist logischerweise nicht mehr erreichbar. Beim Provider der Domain habe ich die statische IP vom WAN1 auf den DNS des Mailservers gelegt.
Also 130.x.x.x auf mail.testserver.de
Hat jemand eine Idee wie ich es umsetzen kann, dass der Mailserver im Falle eines Ausfalls von WAN1 auch über die statische WAN2 zu erreichen ist?
Vielen Dank für eure Hilfe.
Anbei noch eine Visio-Zeichnung vom Netzwerk.
Viele Grüße,
Heiko

Blicke da noch nicht ganz durch.

Also Failover generell läuft?
Und du hast auf beiden WAN Schnittellen auch die Portweiterleitung für den Mailserver angelegt?

Hat der Mailserver selbst Internetzugriff wenn du auf WAN 2 wechselst?

Ist im Mailserver oder auf der OPNsense ein DynDNS hinterlegt, welcher die öffentliche IP ändert, sobald von WAN 1 auf WAN 2 gewechselt wird?
(Unoffial Community) OPNsense Telegram Group: https://t.me/joinchat/0o9JuLUXRFpiNmJk

PM for paid support

Quote from: lfirewall1243 on September 29, 2021, 11:09:15 AM
Blicke da noch nicht ganz durch.

Also Failover generell läuft?
Und du hast auf beiden WAN Schnittellen auch die Portweiterleitung für den Mailserver angelegt?
Ja Failover genrell läuft. Sobald ich vom Kablemodem das Netzwerkkabel abziehe, sieht man schon auf dem Dashboard den Pingloss und WAN2 springt ein, ohne das ich etwas merke.
Ab diesem Zeitpunkt ist allerdings auch keine Zugriff mehr von aussen auf den Mailserver (und sämtliche andere von außen erreichbare Maschinen) möglich. Kann ja auch eingetlich nicht, da die Domain mailserver.test.de ja auf die IP von WAN1 zeigt. Aber wo stell ich das ein, dass bei WAN1 Ausfall die Domain auf WAN2 zeigt?

Quote from: lfirewall1243 on September 29, 2021, 11:09:15 AM
Ist im Mailserver oder auf der OPNsense ein DynDNS hinterlegt, welcher die öffentliche IP ändert, sobald von WAN 1 auf WAN 2 gewechselt wird?
Muss ja nicht, sind ja beides statische IPs die ich vom Provider bekommen habe.
Viele Grüße,
Heiko

Quote from: heiko3001 on September 29, 2021, 11:16:51 AM
Kann ja auch eingetlich nicht, da die Domain mailserver.test.de ja auf die IP von WAN1 zeigt. Aber wo stell ich das ein, dass bei WAN1 Ausfall die Domain auf WAN2 zeigt?

Genau da liegt das Problem.
Dein DNS Name mailserver.test.de geht ja weiterhin auf die WAN1 IP.
Entweder unterstützt dein DNS Anbieter dies, du hinterlegst einen DynDNS Namen oder passt es beim wechsel händisch an.

Händisch: Du änderst beim DNS Anbieter einfach die IP von der WAN1 auf die IP der WAN2.

DNS Anbieter: Wenn dein DNS Anbieter bereits DynDNS unterstützt, musst du dies einfach im Dynamic DNS Plugin konfigurieren, dann meldet die OPNsense automatisch die IP an den Anbieter und der DNS Name wird angepasst.
(Unoffial Community) OPNsense Telegram Group: https://t.me/joinchat/0o9JuLUXRFpiNmJk

PM for paid support

> Muss ja nicht, sind ja beides statische IPs die ich vom Provider bekommen habe.

Dann sollte man das Mail per se vielleicht sinnvoller aufziehen? Dazu würde ich erstmal in eingehende Mails, ausgehende Mails und Maildienste splitten.

Eingehende Mails: Laufen via MX Record. Wenn du also eh schon 2 fixe IPs hast, würde ich 2 MX Einträge bei deiner Maildomain hinterlegen mit gleichem oder minimal unterschiedlicher Einstellung. Also beide MX10 oder MX10/MX20. Dazu dann 2 records wie mx1.test.de und mx2.test.de für die IPs der beiden WANs und erledigt.

Ausgehende Mails: Da wirds kniffliger, denn Mailserver müssen erkennen ob das richtig versendet wird. Also am Besten ein Alias (mailout oder smtp.test.de) definieren mit beiden IPs drin (2 A Records für den Namen). Dann im SPF Eintrag für test.de natürlich auch die smtp Domain erfassen und sicherstellen, dass Name und beide IPs somit "OK" sind. Wenns bei den beiden WAN Providern geht: DNS Name setzen lassen für die IP auf smtp.test.de bspw. damit egal welche IP auf den Namen auflöst. Das sollte bei externen Maildiensten am wenigsten Trouble machen.

Maildienste: also IMAPS, POP3S oder Webmail. Da ists mit Failover schwierig, außer man macht es manuell, da die Protokolle nicht wie SMTP über die MXe mehrere Server unterstützen. Man kann aber auch hier wieder einfach mit DNS Round Robin arbeiten und beide WAN IPs als A Records eintragen und diese dann nutzen. Dann sind im Fehlerfall trotzdem die Dienste noch erreichbar, man kann aber nicht mehr einfach beeinflussen, auf welchem WAN die Verbindungen primär reinkommen, es könnten dann immer beide sein.

Andere Alternative: sich irgendwo extern einen Loadbalancer/Proxy anmieten. Bspw. ne kleine Hetzner, XY-Provider, whatever vServer Instanz, dort auch OPNsense raufwerfen und HAproxy draufschieben. Dann trägt man einfach als Backend in HAproxy beide WANs ein und kann dann die (hoffentliche gute) Cloud-Verfügbarkeit nutzen. Der Zugriff läuft dann eben immer extern auf den HAproxy, dann weiter zu deinen WANs die aktiv sind. Vorteil: HAproxy kann via Health Checks rausfinden, welches WAN aktiv ist und welches nicht und die Verbindungen dahin schicken und/oder priorisieren. Damit lässt sich dann auch bestens steuern, über welche Leitung die Requests von außen reinkommen. Und wenn was nicht erreichbar sein sollte (beide WANs down), kann man noch ne schöne Fehlerseite präsentieren.

Ansonsten kann man natürlich statt mit 2 A Records oder externem Proxy auch mit (Dyn)DNS versuchen, das entsprechend zu regeln. DNS Round Robin (multiple A Records) ist leider oft abhängig vom Client wie es umgesetzt wird. Die schönste Variante ist natürlich ein externer LoadBalancer/Reverse Proxy der die Entscheidung fällen kann.

Cheers
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

Danke schonmal für eure Antworten. Sehr hilfreich.  :)
Hab es jetzt bei Strato hinbekommen für die Domain dynamische Einträge setzen zu lassen.
Hab die dann in der opnsense unter Dyndns auch eingetragen.
Geht WAN1 offline merkt Dyndns das und setzt den Reverseeintrag entsprechend um.
Das funktioniert auch gut, allerdings stimmt etwas mit den Regeln nicht. Kann weder Mailserver noch FTP usw. über die WAN2 IP bzw. DNS erreichen.
Schalte ich WAN1 wieder scharf, dauert es kurz bis die DYNDNS Einträge aktualisiert werden und ich kann wieder auf externe Dienste zugreifen.
Viele Grüße,
Heiko

Dann gib uns doch folgende Infos

1. Netzwerkplan
2. Screenshot der Regeln auf Wan1, Wan2, LAN und DMZ
(Unoffial Community) OPNsense Telegram Group: https://t.me/joinchat/0o9JuLUXRFpiNmJk

PM for paid support

October 01, 2021, 08:33:52 AM #7 Last Edit: October 01, 2021, 08:37:10 AM by heiko3001
Guten Morgen,

ich versuche jetzt nochmal auszuholen, aber vermutlich wird die Aktion scheitern, weil es mein Domain-Provider nicht hergibt.
Ich habe zwei statische IP-Adressen, an WAN1 eine Vodafone Business Adresse (statisch), am zweiten WAN-Anschluss ist ein Telekom-DSL Anschluss mit dynamischer IP-Adresse, die aber getunnelt (www.internet-xs.de) zu einer statischen wird. Das ganze funktioniert über OpenVPN. Problem hierbei, es muss eine zweite OpenSense her um die Tunnelgeschichte aufzubauen. Hab ich soweit auch eingerichtet, funktioniert auch, allerdings "doppeltes NAT". Vermutlich wird da schon der Fehler liegen. Hinter der OpenSense ist in der DMZ ein Mailserver (172.23.0.14) der über die WAN1 Adresse empfängt und sendet. Mein Vorhaben: Fällt WAN1 aus, soll die Sense auf WAN2 schalten - Das funktioniert. Gleichzeitig soll das aktiverte Dyndns den Domainnamen nicht mehr auf die statische WAN1-Adresse schalten sondern jetzt auf die noch verbliebene WAN2-Adresse. - Hier ist das größte Problem. Sobald ich bei Strato die entsprechende Domain auf Dyndns setze, sind die MX-Einträge weg und er schaltet automatisch auf den Punkt : "Strato Mailserver verwenden" Schalte ich DYNDNS aus, und setze ganz normal einen A-record funktioniert der Mailempfang wieder, aber die Domain wird nicht auf den zweiten WAN-Anschluss umgestellt. Zusätzlich gibt es Probleme (Firewallregeln / Portfreigaben) zwischen den beiden OPNsensen.
Viele Grüße,
Heiko

Quote from: lfirewall1243 on September 29, 2021, 11:20:59 AM
Quote from: heiko3001 on September 29, 2021, 11:16:51 AM
Kann ja auch eingetlich nicht, da die Domain mailserver.test.de ja auf die IP von WAN1 zeigt. Aber wo stell ich das ein, dass bei WAN1 Ausfall die Domain auf WAN2 zeigt?

Genau da liegt das Problem.
Dein DNS Name mailserver.test.de geht ja weiterhin auf die WAN1 IP.
Entweder unterstützt dein DNS Anbieter dies, du hinterlegst einen DynDNS Namen oder passt es beim wechsel händisch an.

Händisch: Du änderst beim DNS Anbieter einfach die IP von der WAN1 auf die IP der WAN2.

DNS Anbieter: Wenn dein DNS Anbieter bereits DynDNS unterstützt, musst du dies einfach im Dynamic DNS Plugin konfigurieren, dann meldet die OPNsense automatisch die IP an den Anbieter und der DNS Name wird angepasst.
Das habe ich ausprobiert, funktioniert auch soweit gut, allerdings haut er mir dann auch die MX-Einträge raus und stellt auf "Strato-Mailserver um". Ausserdem sind dann sämtliche MX-Einträge grau unterlegt.
Viele Grüße,
Heiko

Um nochmal, wie gewünscht, mein Ziel zu definieren:

Ich möchte gerne sämtliche Server, am wichtigsten der Mailserver, bei einem Ausfall des ersten Internetanschlusses weiter über den Backup-Internetanschluss von außen erreichbar machen.

- Failover von WAN1 auf WAN2 und umgekehrt funktioniert und wurde mehrfach ausprobiert.
- Backup-Internetanschluss hat seine statische IP "nur" über ein Tunnel (www.internet-xs / OpenVPN)
Viele Grüße,
Heiko

Dann solltest du dir für deine Domain vielleicht einen anderen Anbieter als Strato suchen, der ne DNS API hat und man DynDNS anders nutzen kann als nur "entweder DynDNS oder ordentliche DNS Einträge". Das ist dann aber kein direktes Problem auf der OPNsense, dass dein Domain Hoster es dir nicht erlaubt, MX Einträge für nen dynamischen Hostnamen zu nutzen.

Für den Mailempfang hatte ich oben bereits geschrieben ist DynDNS auch nicht notwendig. 2 MX Records und es werden beide Mailpfade auch berücksichtig. Nur für deine anderen Dienste wird es da knifflig. Aber wenn du eh schon ne statische IP via Tunnel/ext. Dienst nutzt, dann würde ich da ernsthaft drüber nachdenken, ggf. die Methode mit dem ext. Loadbalancer/Proxy in Betracht zu ziehen, das minimiert den Aufwand auf lokaler Seite schon deutlich.
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

Quote from: JeGr on October 01, 2021, 10:05:42 AM
Dann solltest du dir für deine Domain vielleicht einen anderen Anbieter als Strato suchen, der ne DNS API hat und man DynDNS anders nutzen kann als nur "entweder DynDNS oder ordentliche DNS Einträge".
Könntest du mir einen solchen empfehlen?
Vielen Dank!
Viele Grüße,
Heiko

Wenn es um DNS allgemein geht, hat sich bislang Cloudflare ganz gut geschlagen und hat auch einige andere positive Nebenfunktionen.

Wenn es um reines DynDNS geht, dann kann man sich ggf. auch mal deSEC mal ansehen, dort kann man im Gegensatz zu anderen DynDNS Providern auch zusätzlich DNS Einträge setzen (MX, TXT, SRV, etc.) was extrem schick ist. Und man kann auch eine eigene Domain für DynDNS nutzen indem man entsprechend die DNS Server von deSEC für seine Domain oder Subdomain einträgt.
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.