Langsamer Upload opnsense wireguard zu Ubuntu Server 20.04 (0,26 mb s)
Hallo liebes Forum,
ich benötige bitte Hilfe bevor mir meine restlichen Haare ausfallen. Seit einer Woche versuche ich nun den Internetraffic meiner Netzwerkclients (inkl. upnp) mittels opnsense und wireguard über einen Ubuntu 20.04 Server zu routen, um die feste IP für meine Clients bei mir zu Hause zu nutzen. Meine Clients haben bereits die externe IP, der Downlaod funktioniert auch. Jedoch bekomme ich im Upload nur 0,26 mb/s hin. Ich habe keine Ahnung was mein Upload so behindert.
Auf opnsense Seite habe ich folgende Schritte befolgt:
https://docs.opnsense.org/manual/how-tos/wireguard-selective-routing.htm ...
Auf Ubuntu Server Seite habe ich folgende Schritte unternommen:
https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard ...
- Mein Troubleshooting hat ergeben dass bereits die Wireguard Vebindung sehr langsam ist. iperf3 von opnsense zu Ubuntu ergab auch nur 0,26 mb/s.
- Traceroute vom Client führt über den VPS
- Mein client kann 10.0.0.1 anpingen.
Mein Client 192.168.2.11
Peer opnsense 10.0.0.2
Gateway opnsense 10.0.0.99
Ip VPS 10.0.0.1
External IP VPS
Irgendwas stimmt hier nicht. Aber ich finde es einfach nicht heraus. Ich habe schon X mal mit einer neuen Installation von opnsense begonnen und bin immer zum gleichen Ergebnis gekommen.
Bitte um Hilfe
Gruß Eddie
ich benötige bitte Hilfe bevor mir meine restlichen Haare ausfallen. Seit einer Woche versuche ich nun den Internetraffic meiner Netzwerkclients (inkl. upnp) mittels opnsense und wireguard über einen Ubuntu 20.04 Server zu routen, um die feste IP für meine Clients bei mir zu Hause zu nutzen. Meine Clients haben bereits die externe IP, der Downlaod funktioniert auch. Jedoch bekomme ich im Upload nur 0,26 mb/s hin. Ich habe keine Ahnung was mein Upload so behindert.
Auf opnsense Seite habe ich folgende Schritte befolgt:
https://docs.opnsense.org/manual/how-tos/wireguard-selective-routing.htm ...
Auf Ubuntu Server Seite habe ich folgende Schritte unternommen:
https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard ...
- Mein Troubleshooting hat ergeben dass bereits die Wireguard Vebindung sehr langsam ist. iperf3 von opnsense zu Ubuntu ergab auch nur 0,26 mb/s.
- Traceroute vom Client führt über den VPS
- Mein client kann 10.0.0.1 anpingen.
Mein Client 192.168.2.11
Peer opnsense 10.0.0.2
Gateway opnsense 10.0.0.99
Ip VPS 10.0.0.1
External IP VPS
Irgendwas stimmt hier nicht. Aber ich finde es einfach nicht heraus. Ich habe schon X mal mit einer neuen Installation von opnsense begonnen und bin immer zum gleichen Ergebnis gekommen.
Bitte um Hilfe
Gruß Eddie
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3430741277
Url: https://administrator.de/contentid/3430741277
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
36 Kommentare
Neuester Kommentar
Zitat von @itsed99:
Jedoch bekomme ich im Upload nur 0,26 mb/s hin. Ich habe keine Ahnung was mein Upload so behindert.
Moin,Jedoch bekomme ich im Upload nur 0,26 mb/s hin. Ich habe keine Ahnung was mein Upload so behindert.
dein DSL 16.000 hat nur 2 MBit/s Upload, das sind genau deine 250KB/s.
VG
(inkl. upnp)
Oha... für eine Firewall ein absolutes NoGo! UPnP gehört in jedem Falle aus guten Gründen immer deaktiviert auf NAT Routern und Firewall! Solltest du als Netzwerk Profi eigentlich wissen.Deine Fehler:
- Keine besonders intelligente VPN IP Adressierung. Guckst du dazu HIER.
- Kardinalsfehler ist ein PEBKAC Problem nämlich das du ein Gateway Redirect Konzept umgesetzt hast!! Deutlich sinnvoller wäre ein Split Tunneling Konzept. Bei Gateway Redirect wird sämtlicher Client Traffic in den VPN Tunnel geroutet so das auch lokaler Traffic, der eigentlich nicht ins VPN soll, den Tunnel massiv belastet. Besser ist in jedem Falle hier Split Tunneling zu verwenden. Siehe Wireguard Tutorial.
warum ist es für dich wichtig, die feste IP des Servers zuhause zu nutzen?
Vermutlich (geraten) ein DS-Lite Opfer der kein IPv4 VPN realisieren kann und mit IPv6 nicht leben kann oder will?!
Hallo,
Auf welcher Hardware "rennt" denn OPNSense bei Dir?
Wie viele VPN Verbindungen hast Du denn da genau? 10, 20 oder 50?
Dobby
Ohne Wireguard habe ich 50 Mbit/s. Download sind ca. 200 Mbit/s.
Ist das Deine (Heim)Internetanbindung? 200DL/50UL?Auf welcher Hardware "rennt" denn OPNSense bei Dir?
Wie viele VPN Verbindungen hast Du denn da genau? 10, 20 oder 50?
Dobby
Leider gibt es derzeit keine Alternative.
Die gibt es immer wenn man nachdenkt... Irgendjemand nen Tipp wo das Problem liegen könnte?
Ja, in deinem fehlerhaften (und überflüssigen) NAT (Masquerading) in der Tunnelverbindung! Damit ist kein transparentes Routing möglich und frisst zudem unnötig Performance.Siehe auch Wireguard Tutorial!
Einen max. MTU Check solltest du auch mal machen welche MTU noch durch den Tunnel geht und das ggf. anpassen um nicht fragmentieren zu müssen.
https://kb.netgear.com/19863/Ping-Test-to-determine-Optimal-MTU-Size-on- ...
https://portal.nutanix.com/page/documents/kbs/details?targetId=kA0320000 ...
usw.
P.S.: 5 Einzel Antwortthreads kann man auch intelligent und übersichtlich zu einem zusammenfassen mit einem @... vor den Nicks!
Mehrere unübersichtliche Einzel Antwortthreads im 3 Minuten Takt kann man auch intelligent und übersichtlich zu einem zusammenfassen!!!
Dann liegt es vermutlich an deinem Server oder dem WG Client.
So ein WG Setup rennt mit einem Raspberry Pi 4 hier in Wirespeed. Wohlgemerkt ohne das überflüssige NAT im Tunnel.
Allerdings versteht man deinen Speedtest nicht wirklich ohne eine Information wie beide Tunnelenden physisch angebunden sind. Gute 100 Mbit/s ist doch ein durchaus akzeptabler Wert.
Zudem hast du ja auch ein MTU Problem. Das Pings mit so kleiner MTU wie 1392 nicht durch den Tunnel gehen ist de facto nicht normal. Hast du das testweise mal auf 1300 gesetzt?
Dann liegt es vermutlich an deinem Server oder dem WG Client.
So ein WG Setup rennt mit einem Raspberry Pi 4 hier in Wirespeed. Wohlgemerkt ohne das überflüssige NAT im Tunnel.
Allerdings versteht man deinen Speedtest nicht wirklich ohne eine Information wie beide Tunnelenden physisch angebunden sind. Gute 100 Mbit/s ist doch ein durchaus akzeptabler Wert.
Zudem hast du ja auch ein MTU Problem. Das Pings mit so kleiner MTU wie 1392 nicht durch den Tunnel gehen ist de facto nicht normal. Hast du das testweise mal auf 1300 gesetzt?
Servus @itsed99,
als erstes, stelle sicher das ICMP am Ubuntu-Server in der Firewall am WG Interface für alle Client-Subnetze freigeschaltet ist damit die PMTU Ermittlung auch reibungslos funktioniert. Jetzt startest du mal eine Wireshark-Session am Client und sendest Daten. Schaue dir nun die Pakete in Wireshark an, wenn du eine erhebliche Anzahl an Retransmissions siehst dann liegt der Fehler zu 99% an der MTU und fragmentierter Übertragung und damit einer erheblich reduzierten Übertragungsrate, in dem Fall reduziere die Wireguard MTU am Server/Client mal auf 1400.
Des weiteren musst du natürlich auch am Ubuntu-Server sicherstellen das dir hier nicht die Upload-Rate durch den Provider beschränkt wurde bzw. du Opfer einer Fair-Use-Policy bist => Vertrag studieren.
Und bitte bitte bitte, Speedtests doch erst mal lokal innerhalb des Tunnels z.B. mittels iperf3 machen und nicht über irgendwelche externen Dienste die einem oft was vom Pferd erzählen! Erst wenn die Datenrate im Tunnel stimmt gehst du einen Schritt weiter und testest nach extern.
Grüße Uwe
als erstes, stelle sicher das ICMP am Ubuntu-Server in der Firewall am WG Interface für alle Client-Subnetze freigeschaltet ist damit die PMTU Ermittlung auch reibungslos funktioniert. Jetzt startest du mal eine Wireshark-Session am Client und sendest Daten. Schaue dir nun die Pakete in Wireshark an, wenn du eine erhebliche Anzahl an Retransmissions siehst dann liegt der Fehler zu 99% an der MTU und fragmentierter Übertragung und damit einer erheblich reduzierten Übertragungsrate, in dem Fall reduziere die Wireguard MTU am Server/Client mal auf 1400.
Des weiteren musst du natürlich auch am Ubuntu-Server sicherstellen das dir hier nicht die Upload-Rate durch den Provider beschränkt wurde bzw. du Opfer einer Fair-Use-Policy bist => Vertrag studieren.
Und bitte bitte bitte, Speedtests doch erst mal lokal innerhalb des Tunnels z.B. mittels iperf3 machen und nicht über irgendwelche externen Dienste die einem oft was vom Pferd erzählen! Erst wenn die Datenrate im Tunnel stimmt gehst du einen Schritt weiter und testest nach extern.
Grüße Uwe
Bitte erst nochmal meinen Post aufmerksam lesen und uns die Hinweise mit Fakten belegen . Vor allem was sagt der Wireshark Trace? Wenn du Wireshark nicht interpretieren kannst, kannst du mir auch einen Trace per PN zum Download bereitstellen und ich schaue mir ihn an (persönliche Daten im Trace werden selbstverständlich vertraulich behandelt), daran lässt sich zu 90% die Ursache ermitteln. Des weiteren, ist ICMP tatsächlich durchgängig freigeschaltet und im Test funktionsfähig? Wenn das nämlich nicht stimmt brauchst du gar nicht erst weiter testen. Und bitte keine externen Speedtests!! Mach als erstes einen iperf3 Test zwischen den WG Tunnel-Endpunkten damit keine externen Parteien zusätzlich beteiligt sind !!!
Merci, wie ich vermutet hatte, der Trace ist voller Retransmissions mit viel zu großen TCP-Window-Werten vom Client. Das kann so also niemals ordentlich funktionieren, deine PMTU funktioniert hier also überhaupt nicht und ICMP wird an irgendeiner deiner Firewalls gefiltert und dann wundert der magere Speed nicht.
Himmel Herr Gott lass ... regnen, Interface natürlich anpassen
Des weiteren natürlich auch an der OpnSense.
Wir kennen dein Firewall-Regelwerk hier nicht, wenn du da also irgendwas in der Richtung in der Forward oder Input-Chain blockst ohne zu wissen was das für Auswirkungen hast du dir damit selbst ein Bein gestellt.
Wo kann ich nachlesen, wie ich ICMP testen bzw. freischalten kann?
Öhm, du betreibst einen Ubuntu Server am öffentlichen Internet und weist nicht wie du ICMP in deiner Firewall auf deinem Wireguard Interface freischaltest??Himmel Herr Gott lass ... regnen, Interface natürlich anpassen
iptables -I INPUT -i wg0 -p icmp -j ACCEPT
iptables -I FORWARD -i wg0 -p icmp -j ACCEPT
Wir kennen dein Firewall-Regelwerk hier nicht, wenn du da also irgendwas in der Richtung in der Forward oder Input-Chain blockst ohne zu wissen was das für Auswirkungen hast du dir damit selbst ein Bein gestellt.
ufw sollte auch nichts blocken, richtig?
Hellsehen können wir leider noch nicht...dann geht doch icmp durch oder?
Jein. Dann geht lediglich ICMP Typ 8 und 0 durch aber ob die anderen ICMP Typen (insbesondere Typ 3) auch korrekt bedient werden besagt das leider nicht.https://de.wikipedia.org/wiki/Internet_Control_Message_Protocol
Deine o.a. Regel lässt lediglich TCP passieren (Protocol). TCP ist bekanntlich kein ICMP und auch kein UDP usw.
P.S.: Wenn du einmal die FAQs lesen würdest und das "+" bei eingebetten Bildern richtig klickst, würde man die auch in einem vernünftigen Kontext sehen statt zusammenhangslos am Ende des Threads.
Die Settings der OPNSense sehen wir da rum geht es uns hier primär nicht sondern die Firewall-Einstellungen des Ubuntu Servers!
PMTU wird des weiteren nicht überall angewendet. Hier ist dann MSS Clamping gefragt, dass lässt sich in den OPNSense Einstellungen unter Firewall > Settings > Normalization konfigurieren. Eine Regel die auf das Wireguard Interface angewendet wird dessen MSS du auf 1380 setzt sollte Ruhe schaffen, evt. auch etwas geringer einstellen je nach dem was über den Tunnel gefahren werden soll. MSS 1380 passt hier zur Default WG MTU 1420 bei reiner IPv4 Nutzung, ist die WG MTU auf 1400 sollte die MSS auch auf 1360 stehen (IP und TCP Header jeweils 20 Bytes).
MSS Clamping sorgt dafür das beim TCP SYN Handshake die MSS Option entsprechend von Anfang an geringer angesetzt wird und es so zu keiner Fragmentierung auf dem Pfad zwischen Client und Server komt.
Die Anpassung der MSS sieht man dann schön im TCP Handshake in den TCP Optionen. Einfach mal etwas mehr mit TCP und Wirehark befassen dann musst du nicht mehr rum raten wieso und weshalb .
So long, das war es von meiner Seite.
Viel Erfolg
Grüße Uwe
PMTU wird des weiteren nicht überall angewendet. Hier ist dann MSS Clamping gefragt, dass lässt sich in den OPNSense Einstellungen unter Firewall > Settings > Normalization konfigurieren. Eine Regel die auf das Wireguard Interface angewendet wird dessen MSS du auf 1380 setzt sollte Ruhe schaffen, evt. auch etwas geringer einstellen je nach dem was über den Tunnel gefahren werden soll. MSS 1380 passt hier zur Default WG MTU 1420 bei reiner IPv4 Nutzung, ist die WG MTU auf 1400 sollte die MSS auch auf 1360 stehen (IP und TCP Header jeweils 20 Bytes).
MSS Clamping sorgt dafür das beim TCP SYN Handshake die MSS Option entsprechend von Anfang an geringer angesetzt wird und es so zu keiner Fragmentierung auf dem Pfad zwischen Client und Server komt.
Die Anpassung der MSS sieht man dann schön im TCP Handshake in den TCP Optionen. Einfach mal etwas mehr mit TCP und Wirehark befassen dann musst du nicht mehr rum raten wieso und weshalb .
So long, das war es von meiner Seite.
Viel Erfolg
Grüße Uwe
Tja ich bin es jetzt leid raten zu müssen wir haben jetzt schon x mal um die Einstellungen des Ubuntu-Systems gebeten und du ignorierst das einfach, du machst immer nur das was du gerade machen willst der Rest fällt hinten runter ist aber essentiell wichtig! Auch was für maximale TCP Window-Werte (net.core.rmem_max / net.core.wmem_max) auf dem Ubuntu-System konfiguriert sind usw. fehlt hier alles. Daher bin ich jetzt raus.
Viel Erfolg
Grüße Uwe
Viel Erfolg
Grüße Uwe
Piece of cake, oder was meinst du?? 🤔
https://dict.tu-chemnitz.de/dings.cgi?service=deen&opterrors=0&o ...
https://dict.tu-chemnitz.de/dings.cgi?service=deen&opterrors=0&o ...