CARP Failover Dual-WAN OpenVPN bei unterschiedlichen Providern



  • Servus,
    ich frage mich ja wie das sinnvoll gehen soll, mein Ehrgeiz wurde aber geweckt.

    Ich habe zwei pfS im CARP als VM auf Hyper-V. Sollte das jemand lesen: MAC Spoofing in Hyper-V aktivieren! Sonst geht da nix.

    Jedenfalls hab ich einmal KabelBW und einmal Telekom. Wenn ich nun also OpenVPN über das CARP-Dual-WAN verfügbar haben will, muss ich eigentlich eine VIP aus einem gemeinsamen Subnet nehmen. Hab ich aber nicht. Ich hätte das höchstens bei jeweils einem Provider.

    Bliebe noch DynDNS, nur funktioniert das auch? Zeitlich wäre Ausfall bis zum Aktualisieren des Records. Meine mal gelesen zu haben dass das ohnehin nicht geht.

    Wie macht ihr das also?

    Grüße und Danke!  ;D



  • Eigentlich gibt es genau für diesen Zweck NAPTR im DNS … da kann man mehrere Adressen für einen Namen hinterlegen und einstellen wie die gewichtet sind usw.
    Leider unterstützt das kein mir bekannter Hoster.

    Solange ein Tunnel nicht direkt mit fester IP definiert ist sollte DynDNS aber gehen. Sicher nicht ohne Abbruch natürlich.

    gruß



  • In einer Firmenumgebung hat man dafür meist ein Netzsegment. Dort gibt es dann jeweils eine Feste externe IP Adresse und mind. eine shard IP (CARP).



  • Joar, das Netzsegment hab ich bei einem Provider theoretisch auch. KabelBW bietet ja 5 IPs. Das bringt bei unterschiedlichen Providern aber nix, die haben ja generell unterschiedliche Subnetze und der Trick ist ja eben die unterschiedliche Technik.



  • @bitboy0:

    Solange ein Tunnel nicht direkt mit fester IP definiert ist sollte DynDNS aber gehen. Sicher nicht ohne Abbruch natürlich.

    gruß

    Eben so dachte ich auch. Ich muss das wohl einfach mal testen, derzeit scheitert es schon am Verbinden des Tunnels auf die CARP-VIP. Der Tunnel geht nur auf die eigentliche IP…


  • Moderator

    Was willst du eigentlich ganz genau erreichen? Dein OpenVPN soll per Failover erreichbar sein/bleiben? Oder baust du einen Netz2Netz Tunnel auf? Was ist denn die Ausgangslage bei deinem OpenVPN?

    Ansonsten sollte das eigentlich kein großes Problem sein. Je nach Konstellation eben. Wenn du Einwahl bei dir haben willst, brauchst du theoretisch nur eine Client Konfig, in der IPs beider Netze (KabelBW/Telekom) eingetragen sind und auf die die pfSense hört. Da ist gar keine externe zusätzliche IP nötig, da geht auch die WAN IP der beiden Enden.

    Hängt aber wie gesagt davon ab, wie das aufgebaut ist und wie deine beiden WANs angebunden sind.

    Grüße



  • Ich habe zwei pfS im CARP als VM auf Hyper-V. Sollte das jemand lesen: MAC Spoofing in Hyper-V aktivieren! Sonst geht da nix.

    Und was hält Dich davon ab noch eine VM aufzusetzen die dann einfach einen OpenVPN Server
    enthält und dann auch immer erreichbar ist? Fällt eine pfSense aus kommt die andere dran und
    der OpenVPN Server dahinter ist dann auch gleich wieder erreichbar.


  • Moderator

    @BlueKobold: ist auch eine Variante, aber ich sehe immer noch das Problem nicht. OpenVPN konfigurieren auf der pfSense und auf die jeweilige VIP der WAN Schnittstellen hören lassen. Dann in die Client Config zwei Server Einträge rein (wahlweise RoundRobin oder bevorzugt) und gut ist? ;)



  • @JeGr:

    Was willst du eigentlich ganz genau erreichen? Dein OpenVPN soll per Failover erreichbar sein/bleiben? Oder baust du einen Netz2Netz Tunnel auf? Was ist denn die Ausgangslage bei deinem OpenVPN?

    Ansonsten sollte das eigentlich kein großes Problem sein. Je nach Konstellation eben. Wenn du Einwahl bei dir haben willst, brauchst du theoretisch nur eine Client Konfig, in der IPs beider Netze (KabelBW/Telekom) eingetragen sind und auf die die pfSense hört. Da ist gar keine externe zusätzliche IP nötig, da geht auch die WAN IP der beiden Enden.

    Hängt aber wie gesagt davon ab, wie das aufgebaut ist und wie deine beiden WANs angebunden sind.

    Grüße

    Servus,
    sorry, hatte deine Antwort nicht bemerkt. Ja, der OpenVPN-Server soll auf dem CARP eben auch failover verfügbar sein. Mit einer dritten VM ist mir nicht geholfen, die kann ja auch den Dienst verweigern, außerdem verkompliziert das die Geschichte unnötig. pfSense ist sehr angenehm in der Konfiguration.

    Laufendes Szenario ist site2site und dynamische Einwahl von diversen Geräten. Das ist ja auch kein Problem, will man eben nicht zusätzlich failover von unterschiedlichen Providern nutzen. Aber eben genau das macht es für mich ja interessant. Dass KabelBW und Telekom gleichzeitig offline sind, halte ich für annähernd unwahrscheinlich. Und falls doch, ist irgendwo ne Bombe drauf und wir haben andere Probleme  :(

    Grüße


  • Moderator

    Wie gesagt würde ich hier so vorgehen:

    • OpenVPN Server konfigurieren auf VIP für WAN1 -> muss ja vorhanden sein bei einem CARP Setup?
    • Einstellungen vornehmen und alles konfigurieren wie nötig
    • Dann zweiten OpenVPN Server konfigurieren auf VIP für WAN2, gleicher Port wie der erste Server (da beide auf unterschiedlichen Interfaces sollte das gehen)
    • Einstellungen wie beim ersten Server; das DHCP Subnetz anpassen dass die Clients nach Einwahl bekommen (sonst überschneiden die sich)
    • Einwahl in VPN von extern via VIP1 (WAN1) testen, Einwahl via VIP2 (WAN2) testen. Sollte getrennt problemlos gehen.
    • Client Konfiguration so ändern, dass erst VIPWAN1 und dann VIPWAN2 probiert wird (zwei "remote" Einträge)

    Damit sollten externe Clients -> Server (also typisches Roadwarrior Szenario) erstmal abgedeckt sein.
    Bei einem Tunnel kommt es darauf an, wie der konfiguriert ist (Certificate, Shared Key, etc.) aber auch hier kann man normalerweise problemlos zwei Tunnelenden/-server konfigurieren und so auf beide WANs hören. Dem "Client"-Tunnelende verpasst man dann auch ein zweites "remote" Statement, damit auch dieser sich im Fehlerfalle über das andere Interface versucht zu verbinden.

    Einziges "Problemchen" bei dieser Variante ist, dass die Tunnel nicht automatisch wieder zurückswitchen, wenn bspw. WAN1 wieder da ist, sondern erstmal auf WAN2 verbleiben. Da müsste man dann kurz trennen und wiederaufbauen lassen. Die Roadwarrior Clients erledigen sich ja von selbst beim nächsten Reconnect.

    Für Tunnel gäbe es theoretisch auch noch eine zweite Variante, nämlich beide Tunnel immer aufzubauen und nur einen aktiv zu routen. Da müsste dann aber sowas wie OSPF ins Spiel kommen und ich denke dann wird es recht schnell unübersichtlich. Hängt aber vom Szenario ab.

    Grüße



  • Servus,
    ich bin meinem Zielszenario ein Stück näher gekommen, hab das für Dual-WAN gebraucht. Man kann, wie oben dankenswerterrweise erwähnt, OpenVPN mehrere Remote-Statements angeben. Einfach die zweite IP eins drunter setzen.

    Also:

    remote 123.123.123.1 1194 udp
    remote 155.155.155.1 1194 udp

    Bekommt er im ersten keine Verbindung, versucht er es nach 60 Sekunden beim zweiten. Hat man also zwei Provider mit jeweils drei IPs, nimmt man jeweils die VIP-CARP-WAN. Den OpenVPN-Server muss man wie folgt konfigurieren:

    Server Interface = localhost.

    NAT WAN1 UDP 1194 auf 127.0.0.1 1194
    NAT WAN2 UDP 1194 auf 127.0.0.1 1194

    So läuft das nun bei mir mit Dual-WAN und einer Maschine. Für CARP müsste also folgendes gehen:

    NAT WAN-VIP1 UDP 1194 auf 127.0.0.1 1194
    NAT WAN-VIP2 UDP 1194 auf 127.0.0.1 1194

    Nachdem ich meine beiden GW-Groups 1auf2 und 2auf1 gesetzt habe, schaltet mein statischer Tunnel zurück. Allerdings ist dieser Tunnel auch Client, für den Server scheint das so nicht zu funktionieren. Eventuell lässt man den OpenVPN-Server neustarten, wenn GW 1 wieder verfügbar ist. Dann kommen die Tunnel automatisch wieder auf dem Interface hoch. Vielleicht gibts da aber auch ne schönere Lösung  8)

    Ich werde das mal im Labor aufbauen und berichten. Macht jedenfalls Spaß  ;D


  • Moderator

    Ich bin gespannt was da rauskommt ;)