Verbindungsabbrüche bei OpenVPN via CARP hinter FritzBox

Started by antimon, June 07, 2021, 11:57:55 PM

Previous topic - Next topic
Hallo zusammen,

seit ich meine OPNsense um ein zusätzliches System zwecks Redundanz erweitert habe, spinnen meine OpenVPN Tunnel.

Meine WAN-Verbindung wird über eine FritzBox aufgebaut, deren IP-Adresse die 10.10.9.3 ist. Die beiden OPNsenses haben die 1 und die 2 und teilen sich die 10 als CARP-IP.
In der FritzBox ist die 10.10.9.10 als Exposed Host eingetragen und sollte somit den ganzen eingehenden Traffic abbekommen.

Es gibt eine Firewall-Regel, die eingehenden Traffic per UDP an die 10.10.9.10 auf dem OpenVPN-Port akzeptiert. Der OpenVPN-Server ist auf die CARP-IP eingestellt und baut auch Verbindungen auf. Das Kuriose ist, dass der Tunnel immer wieder abreisst und neu verbunden wird. Im Log erscheinen dann Einträge wie:
Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #87 / time = (1623102752) Mon Jun 7 23:52:32 2021 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings

Wenn ich über den Tunnel pinge, gehen manche durch, dann gibts wieder Zeitüberschreitung, dann gehts wieder mal...

Ich habe schon versucht, herauszufinden, was diese "replay"-Warnung aussagen soll. Meinem Verständnis nach werden Pakete mehrmals empfangen und dann gibt es eben diese Warnung, die vielleicht auch den Fehler verursacht. Wenn ich auf dem WAN-Interface (also in Richtung FritzBox) einen WireShark-Mitschnitt mache, sehe ich aber keine Auffälligkeiten (wie doppelte Pakete oder so).

Kann mir jemand einen Tip geben, wo ich suchen könnte oder was ich ausprobieren kann, um den Fehler zu lokalisieren? Oder, noch besser, kennt jemand das Problem und hat eine Lösung parat? ;)

Des Spaßes halber: konfiguriere mal den OpenVPN auf localhost und mach auf dem WAN statt einer Allow Regel ein Port Forwarding (mit entsprechender Regel) auf der WAN VIP (.10) / 1194udp auf localhost/1194 damit der Traffic wieder beim Server ankommt. Würde mich interessieren, ob sich das anders verhält.

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.

Sorry, hab erst jetzt gesehen, dass du geantwortet hast... irgendwie gabs keine Benachrichtung.

Ich habs ausprobiert - das funktioniert super!

Allerdings kann die Backup-Firewall dann nicht mehr feststellen, ob sie Slave ist, oder nicht? Oder täusche ich mich da?

> Allerdings kann die Backup-Firewall dann nicht mehr feststellen, ob sie Slave ist, oder nicht? Oder täusche ich mich da?

Das funktioniert nicht via OpenVPN. Sprich es ist egal. Die Feststellung ob CARP Primary oder Backup findet im CARP Stack statt, nicht bei den Diensten. Da mit Binding an localhost der OVPN aber nicht mehr an einem IF lauscht, das on/off gehen kann, ist er einfach durchgehend gestartet - auch auf dem Standby - egal ob er gebraucht wird oder nicht. Was kein großes Brot frisst. Sobald die IPs schwenken und die Standby aktiv wird, läuft der Dienst schon und muss nicht extra gestartet werden. Und da er dann über die IP entsprechend Pakete bekommt, kann er auch gleich übernehmen. Wenn wieder zurückgeschwenkt wird, bekommt er nach 30-60s dann seine Timeouts, verliert alle Clients und lauscht wieder "arbeitssuchend" bis er wieder Traffic abbekommt.
"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.