Site2Site VPN zwischen 3 Standorten – Wireguard vs. IPsec vs. OpenVPN

Started by Marcel_75, January 25, 2024, 10:24:40 AM

Previous topic - Next topic
Hallo zusammen,

über viele Jahre sind hier drei Standorte eines Kollegen per LANCOM IPsec miteinander verbunden – das lief wirklich immer zu 100% stabil und zuverlässig.

Er möchte diese in die Jahre gekommenen LANCOM-Geräte nun gern durch etwas neues ersetzen und mein Vorschlag wäre, dafür dann drei OPNsense-fähige Geräte von Deciso zum Einsatz zu bringen.

Dazu würde ich sehr gern auch Wireguard statt IPsec für die Standortvernetzung nutzen – jetzt wo ab OPNsense release 24.1 ein FreeBSD 13.2 inkl. "wireguard kernel module" zum Einsatz kommt, sollte das doch stabil und zuverlässig seinen Dienst tun?

Oder wäre eine Standortvernetzung per klassischen IPsec-VPN doch noch die zuverlässigere Wahl?

Ich persönlich nutze seit Jahren immer nur OpenVPN (allerdings auch immer nur 'road warrior' da ich Site-2-Site bisher nie benötigte).

Zu Wireguard höre ich sehr viele unterschiedliche Meinungen, manche schwören darauf, aber auch nicht wenige haben bzw. hatten damit so ihre Probleme... deshalb meine Bitte um Eure Einschätzung.
The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)

Ich als Wireguard Fan sage natürlich Wireguard.

Gerade bei s2s. Dort gibt es ja das Argument der fehlenden Features (Verwaltung von Clients) nicht.

Ich habe das seit mehr als einem Jahr stabil für unsere s2s Standortvernetzung (Server) am laufen. Seit Anfang des Jahres sind auch unsere ganzen mobilen Arbeitsplätze umgestellt. Von OpenVPN. Wobei das nicht so viele sind . Ca. 15. Super schnell und superstabil.

PS: Das Kernel Modul gabs ja schon länger. Man musste es eben Installieren.

Danke, na das klingt doch schon mal nicht schlecht.

Im Hardware-Shop von Deciso https://shop.opnsense.com/product-categorie/hardware-appliances/ wird der maximale VPN-Durchsatz leider immer nur für IPsec angegeben.

Mit Wireguard sollte man da dann aber sicher ähnliche (wenn nicht sogar bessere) Werte erreichen, oder?

Zum Beispiel: IPsec VPN Throughput (AES256GCM16) mit 1.2 Gbps

Speziell zum Wireguard-Durchsatz konnte ich leider bisher keinerlei Infos finden...
The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)

Wireguard ist durch chacha20-poly1305 sehr CPU intensiv und dadurch langsamer, da man keine Entscheidung darüber hat wie stark verschlüsselt wird.

IPsec hat sehr viele Möglichkeiten die CPU Last zu senken und trotzdem sicher zu sein.
Mit AES-256 und AES-NI CPU Unterstützung beschleunigt die Verschlüsselung und Entschlüsselung ungemein, das heißt, IPsec ist auf der OPNsense je nach Konfiguration schneller. Das was angepriesen wird, kann auch erreicht werden (meistens sehr viel mehr, die Werte sind konservativ auf der Webseite angegeben)

Ein weiterer Vorteil von IPsec sind eingebaute Dinge wie "MTU Path Discovery", die MTU und MSS Probleme automatisch umgehen. Bei Wireguard muss man das manuell anpassen.

Bei IPsec hat man viel besseres Logging und viel tiefere Möglichkeiten der Problemlösung. Da man mehr Möglichkeiten hat, gibt es aber auch sehr viele mögliche Fehler mehr als in Wireguard.
Hardware:
DEC740

Zum Thema Performance.

https://www.wireguard.com/performance/

Auf schwacher Hardware ist IPSec evtl. schneller.

Zum Thema MTU und MSS. Ich habe bei uns nur global die MSS für die Wireguard Group anpassen müssen.

PS: Das schöne mit einer OPNsense ist ja Du kannst alle VPN Varianten nutzen. Und Dir die beste für deine Bedürfnisse raussuchen. OpenVPN ist bei uns raus wegen der Performance.

Wie sind die die Standorte bei Euch Internetmäßig verbunden?

PPOE mit Opnsense nativ kann da je nach Geschwindigkeit ein Problem darstellen.

Quote from: Monviech on January 25, 2024, 03:21:07 PM
Mit AES-256 und AES-NI CPU Unterstützung beschleunigt die Verschlüsselung und Entschlüsselung ungemein.

Ok, das ist natürlich auch ein Punkt, der neben deinen anderen aufgeführten Punkten dann doch eher für IPsec spricht.

Weiß zufällig jemand, ab wann mit nativer CPU-seitiger ChaCha20-Poly1305 Unterstützung zu rechnen ist?

Gibt es schon CPUs, die das können? Oder sind zumindest Generationen angekündigt, die das dann unterstützen werden?
The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)

Quote from: lewald on January 25, 2024, 04:26:06 PM
Wie sind die die Standorte bei Euch Internetmäßig verbunden?

Zwei sind per Glasfaser angebunden, beim dritten Standort muss ich erst mal nachfragen.

PS: Auch der dritte Standort ist per Glasfaser angebunden. Insoweit also optimale Ausgangsbedingungen.
The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)

Welche Geschwindigkeit?

Nur mal so als Beispiel. Ich kann Wireguard mit 100 Mbit auf einem 10 Jahren alten i5 machen. Bei ca. 50 % Prozessauslastung. 

Quote from: lewald on January 26, 2024, 09:13:34 AM
Welche Geschwindigkeit?

100, 100 und 50 Mbps synchron
The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)


Quote from: lewald on January 25, 2024, 04:12:59 PM
Zum Thema Performance.

https://www.wireguard.com/performance/

Auf schwacher Hardware ist IPSec evtl. schneller.

Zum Thema MTU und MSS. Ich habe bei uns nur global die MSS für die Wireguard Group anpassen müssen.

PS: Das schöne mit einer OPNsense ist ja Du kannst alle VPN Varianten nutzen. Und Dir die beste für deine Bedürfnisse raussuchen. OpenVPN ist bei uns raus wegen der Performance.

Wo hast du die MSS Einstellungen gemacht? Und welche?

Unter

Firewall->Settings->Normalization.
Bei Detailed settings einen Neuen Eintrag erstellen.

Da dann Interface WireGuard (Group). Weiter unten  Max mss. Da habe ich den Wert 1300 drinnen.





Bei den VPN Für und Wider ist Performance aber nur ein Teil der Gleichung.

Ich kenne euren Bedarf natürlich nicht. Wenn das simple Anschlüsse sind und jeweils einzelne Boxen, keine Cluster etc. dann mag das alles kein Problem sein.

Allerdings ist gerade Wireguard immer noch notorisch schlecht in Cluster sowie MultiWAN Umgebungen, weil sich das Ding an kein Interface bindet, sondern einfach "überall" läuft und sich dann auch die WANs raussucht, auf die es Bock hat (bzw. wo eben gerade mal die Default Route hingeht). Gerade wenn man aber eine Konstellation mit MultiWAN hat, bei der es unterschiedliche Leitungen gibt (ne dicke mit wenig Upstream für den meisten Download Kram der User, aber ne nicht ganz so breite mit symmetrischem Upstream für VPN) will man sich das Interface eben aussuchen. Da dann noch HA obendrauf und Wireguard wird im Handling ziemlich haarsträubend, um das so zu bändigen wie man möchte.

IPsec hat da auch seine Problemchen. Zwar kann man mit genug Konfig-Aufwand sich auch hier MultiWAN mäßig Redundanz bauen, ganz einfach und durchsichtig ist das aber nicht. Solang es da nur die eigenen Boxen sind, ist das OK, sobald es aber noch nen Tunnel von einem Drittanbieter ist, wirds schwieriger. Nicht unmöglich, aber man merkt IPsec an, dass da bei der Konzeption Dinge wie MultiWAN/HA etc. eher noch keine Themen waren.

Bleibt das ungeliebte schwarze Schaf OpenVPN. Gerade das hat aber zuletzt in 2.6.x mit OpenVPN DCO ordentlich Bumms auf die Performance Pfanne bekommen. Zwar gabs da leider große Versäumnisse bei OPNsense, das ordentlich in der UI zu integrieren und der Ist-Zustand aktuell ist immer noch nicht toll, weil man lieber zwischen IPsec und Wireguard baumelt, was aber Features angeht gerade bei den Möglichkeiten der Verbindung, ist OpenVPN von den Dreien das Handzahmste, was man findet.

Was man mit OVPN sehr gut bauen kann ist bspw. Site2Site mit diversen Failovern, Redundanzen und Wiedereinwahlen. Setzt man den Server auf einer Site mit MultiWAN auf, kann man die Remote Seite die vllt. nur ein WAN hat dann problemlos auch mit beiden WANs verbinden lassen und darüber dann ein Failover GW kleben. Oder man macht es simpler und konfiguriert den Failover durch mehrere "remote" Einträge in OpenVPN auf der Clientseite. Wenn man viel automagisches haben möchte, geht bspw. auch der Aufbau mehrerer Tunnel via OVPN mit kleinen Transfernetzen und darüber dann OSPF geworfen und automatisch geroutet.

Im Prinzip kann man so runterbrechen:

1) IPsec: am Schnellsten (abhängig von HW aber meistens gegeben) da sehr gute Beschleunigung mit AES-GCM aber beschränkte/komplexe Konfiguration was Sonderfälle wie Redundanz, MultiWAN und Co angeht. Allerdings mit annähernd jeder Gegenstelle kompatibel

2) Wireguard: der neue geile Scheiß, schnell (abhängig von HW oft nah an IPsec) dafür nur minimal konfigurierbar. Bei Clients schwach da keine Client-Auth oder Logins möglich sind, bei S2S gerade bei Clustern und MultiWAN problematisch

3) OpenVPN: Oldie but Goldie, hat durch DCO ENORM Geschwindigkeit zugelegt (oh ja!) und kann extrem vielseitig konfiguriert werden. Mit DCO + AES-GCM konfiguriert kann OVPN 2.6 in Performance Regionen wie Wireguard vorstoßen, dafür muss aber korrekt/sauber konfiguriert werden, da DCO durch einige wenige Optionen automatisch disabled wird. Leider fehlt es hier sehr an der UX/UI in der Sense die sowas anzeigt, wenn man aber die Config sauber baut und hinbekommt hat man schnelle und extrem vielseitig einsetzbare Tunnel die wie Wireguard ebenfalls ordentliche Transfernetze aufspannen, so dass man bspw. auch keine Probleme beim Pingen oder DNS Queries an anderen Standorten hat (IPsec P2 hat keine IPs auf dem Tunnel, daher immer etwas unhandlich zu testen/nutzen).

Cheers
\jens
"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.

Ich schließe mich Jens an, OpenVPN hat vor allem den großen Vorteil, wenn is im Client Mode läuft, du Backup Peers hinterlegen kannst. D.h. du brauchst nicht mal im Tunnel ein Routingprotokoll wenn du HA fahren willst. DCO sollte mit 24.7 kommen da erst ab dann FreeBSD14 im Unterbau ist, das wiederum ist kein Versäumnis von OPNsense sondern .. ach egal :D

Also

IPsec: gut, performant, neue UI noch etwas wackelig, die alte wird aber laaang bleiben, tausendfach getestet mit HA etc.
Wireguard: gut, performant, die MTU Geschichte ist etwas nervig, am besten überall gleiche MTU, HA geht mittlerweile zu 99%, Rest siehe Jens
OpenVPN: langsam derzeit, aber 100Mbit geht mit üblicher Hardware eigentlich problemlos, es gibt eigentlich kein Setup was nicht mit OpenVPN funktioniert