[Problem] UDP-Drosselung bei 1&1 (z.B. VPN)?

glycoknob

Neuer User
Mitglied seit
18 Nov 2008
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
UPDATE: Problem war MTU beim Tunnel - es wird nicht gedrosselt - siehe weitere Posts

Hallo,

hat jemand Informationen darüber ob UDP bei 1und1 gedrosselt wird?

Ich sehe nachvollziehbar eine Drosselung wenn ich mich über UDP mit einem VPN verbinde - sowohl vtun als auch L2PTv3 UDP Tunnel zeigen die gleichen Charakteristiken. Außer der VPN-Server läuft auf Port 53, dann ist alles in Ordnung.

Anfänglich ist die volle Datenrate möglich, nach einigen Sekunden sind die Datenrate auf 300-500kByte/s und bleibt dort. Dies ist nur nicht so, wenn der VPN-Server auf Port 53 läuft.

Leider kann ich auf Anhieb keinen einfachen Test anbieten um das zu überprüfen. Könnte mir aber vorstellen, dass alle UDP VPNs auch betroffen sind also z.B. auch OpenVPN.

Sehr gut sieht man es, wenn man mit curl einen Testdownload über das UDP-VPN laufen lässt:

Für Linux/OSX-Nutzer:

Code:
curl http://speedtest.netcologne.de/test_1gb.bin > /dev/null

Ohne VPN bekomme ich immer gute 2.5Mbyte/s, über ein UDP-VPN sinkt der Wert ständig bis er sich nach einigen Sekunden auf 300-500kbyte/s einpendelt.

Kann das ein Problem der Fritzbox sein? Oder wird hier systematisch UDP gedrosselt?

FRITZ!Box 7412 - 1&1 VDSL 25
 
Zuletzt bearbeitet:
VPN zur fritzbox? Oder zu einem VPN Anbieter?
 
Wo steht das andere Ende vom VPN?
Von welchen Anschlüssen hast du das VPN sonst getestet?

Damit würde es auch Telekom-Anschlüsse betreffen und das wäre bekannt
 
Wo steht das andere Ende vom VPN?

Ist ein Digitalocean Droplet was in FFM steht - mit iperf UDP test bekomme ich etwa 800Mbit zu einem anderen Server bei Hetzner und auch an meine Workstation im DFN-Netz. TCP-Download vom Server über 1&1 gibt auch volle 25MBit her.

Von welchen Anschlüssen hast du das VPN sonst getestet?

Telekom Hotspot (hier etwa 10Mbit, die kommen auch auf allen Ports durch). Ich teste morgen nochmal via DFN von der Uni, seltsam ist das es bei 1und1 auf Port 53 einwandfrei die Bandbreite liefert sonst nicht.

Damit würde es auch Telekom-Anschlüsse betreffen und das wäre bekannt

Ja... darum frage ich ja - meine Konfiguration ist ziemlich Vanilla, die Fritzbox hat noch IPV6 aktiviert - das wird aber nicht vom VPN genutzt und sollte wegen Dual-Stack auch unabhängig davon sein. Ich kann mir nur grad nicht erklären warum das passiert.
 
VPN zur fritzbox? Oder zu einem VPN Anbieter?

Fritzbox macht kein VPN. Teste gerade UDP Tunnel für Freifunk - ich sehe das Problem bei vtun und L2TPv3 - hab Zugang zu den jeweiligen Servern und sind beide sind gut angebunden und liefern auch sonst entsprechende Bandbreite - z.B. via HTTP-Download ohne VPN.

Kann natürlich nicht auschließen das es irgendwo ein Konfigurationsproblem gibt - aber die Port 53 anomalie macht mich schon stutzig.
 
Ich würde ja eher darauf tippen, daß da bei den UDP-Paketen unterwegs immer wieder mal ein Paket verloren geht oder sogar von Routern mit AQM absichtlich verworfen wird (schon ab 50% Füllstand einer Queue), was dann erst in der getunnelten TCP-Verbindung bemerkt wird und dort zu einer Retransmission führt und daß dann die Steuerungsmechanismen auf L4 die TCP-Verbindungen, die über das UDP-VPN getunnelt werden, so weit "runterfahren", daß es fast kein "congestion window" mehr gibt (bzw. dieses gegen "1" geht) und für jedes gesendete TCP-Paket auf das passende "ACK" gewartet wird, womit dann die RTT für die Pakete automatisch zu einer Limitierung des Durchsatzes führt.

Für DNS ist dann u.U. eine höhere "reliability" der Paketzustellung konfiguriert und daher treten die angesprochenen Verluste dann vielleicht nicht auf. Jedenfalls klingt die Beschreibung der "Verkehrskurve" für mich verdächtig nach "flow control" und/oder "congestion control/avoidance", wo dann eben nicht mehr "auf Verdacht" unbestätigte Pakete unterwegs sind, sondern immer brav auf die jeweilige Quittung gewartet wird, bevor das nächste auf die Reise geht. Wenn der Test immer in einem HTTP-Download besteht, ist das ja auch immer TCP.

Aber das läßt sich ja auch leicht testen ... sind den UDP-Verbindungen über so einen Tunnel genauso betroffen? Schon ein iperf-Test auf UDP-Basis könnte das ja klären ... auch würde ich noch einmal einen Blick auf MTU und MSS werfen, damit nicht am Ende durch sehr ungünstige Paketgrößen aus einem maximal großen unverschlüsselten Paket ständig zwei UDP-Pakete im VPN werden wegen des Overheads der zusätzlichen Daten für das VPN. Da bringt ggf. eine Verringerung der MTU durch den VPN-Tunnel schon eine Besserung, wenn dann jedes unverschlüsselte Paket auch definitiv in ein einzelnes VPN-Paket paßt.

Auch ein Packet-Dump (sind sicherlich viele Daten, so sieht man aber nach dem Einpendeln wenigstens auch, wie die Parameter der Verbindung zu diesem Zeitpunkt dann aussehen) könnte hier wieder (wie so oft bei Netzwerkfragen) Anhaltspunkte liefern ...
 
Ich würde ja eher darauf tippen, daß da bei den UDP-Paketen unterwegs immer wieder mal ein Paket verloren geht oder sogar von Routern mit AQM absichtlich verworfen wird (schon ab 50% Füllstand einer Queue), was dann erst in der getunnelten TCP-Verbindung bemerkt wird und dort zu einer Retransmission führt und daß dann die Steuerungsmechanismen auf L4 die TCP-Verbindungen, die über das UDP-VPN getunnelt werden, so weit "runterfahren", daß es fast kein "congestion window" mehr gibt (bzw. dieses gegen "1" geht) und für jedes gesendete TCP-Paket auf das passende "ACK" gewartet wird, womit dann die RTT für die Pakete automatisch zu einer Limitierung des Durchsatzes führt.

Gut möglich, dass das irgendeine AQM-Magic in der Fritzbox ist - aber würde das alles erklären? Siehe Tests weiter unten. Fritz OS ist 6.30 - habe keine Knöpfe gefunden das abzuschalten - die Ports sind auch nicht priorisiert, das könnte ich noch testen. Wäre aber auch kacke, wenn es so ist - weil es um Tunnel für Freifunk-Knoten geht - die sollten relativ stressfrei überall gut laufen.

Für DNS ist dann u.U. eine höhere "reliability" der Paketzustellung konfiguriert und daher treten die angesprochenen Verluste dann vielleicht nicht auf. Jedenfalls klingt die Beschreibung der "Verkehrskurve" für mich verdächtig nach "flow control" und/oder "congestion control/avoidance", wo dann eben nicht mehr "auf Verdacht" unbestätigte Pakete unterwegs sind, sondern immer brav auf die jeweilige Quittung gewartet wird, bevor das nächste auf die Reise geht. Wenn der Test immer in einem HTTP-Download besteht, ist das ja auch immer TCP.

Ja, an sowas hab ich auch gedacht - aber UDP ist UDP da gibt es ja keine Bestätigung - wie schnell man das durchbläst sollte der Fritzbox egal sein - außer da wird halt geschaut, dass es nicht zu viele werden und irgendwo gedrosselt (oder eben halt direkt bei 1und1).

Aber das läßt sich ja auch leicht testen ... sind den UDP-Verbindungen über so einen Tunnel genauso betroffen? Schon ein iperf-Test auf UDP-Basis könnte das ja klären ... auch würde ich noch einmal einen Blick auf MTU und MSS werfen, damit nicht am Ende durch sehr ungünstige Paketgrößen aus einem maximal großen unverschlüsselten Paket ständig zwei UDP-Pakete im VPN werden wegen des Overheads der zusätzlichen Daten für das VPN. Da bringt ggf. eine Verringerung der MTU durch den VPN-Tunnel schon eine Besserung, wenn dann jedes unverschlüsselte Paket auch definitiv in ein einzelnes VPN-Paket paßt.

Siehe die iperf Daten weiter unten. Tunnel MTU ist 1446 - gut möglich, dass es da ein Problem mit der MTU gibt - aber das erklärt nicht die Port 53 Ausnahme. Hatte Anfangs MTU Probleme, da ging gar nichts. Will das nicht auschließen, halte es aber u.A. wegen Port 53 für unwarscheinlich.

Auch ein Packet-Dump (sind sicherlich viele Daten, so sieht man aber nach dem Einpendeln wenigstens auch, wie die Parameter der Verbindung zu diesem Zeitpunkt dann aussehen) könnte hier wieder (wie so oft bei Netzwerkfragen) Anhaltspunkte liefern ...

Last Resort... mein Leben hängt auch nich davon ab, aber ich wundere mich halt warum es da diesen Effekt gibt.

Hier die Daten:

iperf mit 20mbit UDP bandbreite (Leitung ist 25MBit - sollte also passen) - für 60 Sekunden:

10.254.0.2 ist Digigitalocean und 10.254.254.254 ist mein Endpunkt hinter der 1und1 Fritzbox:

Hier mit Port 8942 und L2TPv3 VPN:

Code:
root@do-fra1:/srv/tunneldigger/tunneldigger/broker# iperf -c 10.254.254.254 -b 20m -t 60
WARNING: option -b implies udp testing
------------------------------------------------------------
Client connecting to 10.254.254.254, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 10.254.0.2 port 44212 connected with 10.254.254.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-60.0 sec   143 MBytes  20.0 Mbits/sec
[  3] Sent 101911 datagrams
[  3] Server Report:
[  3]  0.0-60.0 sec  59.9 MBytes  8.37 Mbits/sec   0.717 ms 59194/101910 (58%)
[  3]  0.0-60.0 sec  1 datagrams received out-of-order
root@do-fra1:/srv/tunneldigger/tunneldigger/broker# iperf -c 10.254.254.254 -b 20m -t 60

Wie man sieht kommen über UDP nur etwa 8Mbit über 60s rein. Ist ein wenig mehr als die etwa 4Mbit beim HTTP Download... habe iperf auch mehrmals laufen lassen, alles im ähnlichen Bereich.

Hier die Werte wenn ich das L2TPv3 VPN auf Port 53 verbinden lasse:

Code:
root@do-fra1:/srv/tunneldigger/tunneldigger/broker# iperf -u -c 10.254.254.254 -b 20m -t 60
------------------------------------------------------------
Client connecting to 10.254.254.254, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 10.254.0.2 port 38146 connected with 10.254.254.254 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-60.0 sec   143 MBytes  20.0 Mbits/sec
[  3] Sent 102038 datagrams
[  3] Server Report:
[  3]  0.0-60.0 sec   143 MBytes  20.0 Mbits/sec   0.149 ms  140/102037 (0.14%)
[  3]  0.0-60.0 sec  1 datagrams received out-of-order
root@do-fra1:/srv/tunneldigger/tunneldigger/broker#

Volle 20Mbit kommen durch - entscheidend ist immer "Server Report" - also da was bei der Gegenseite auch angekommen ist. In dem Fall blase ich mit 20Mbit UDP Pakete downstream zur Box hinter dem 1und1 Router - einmal kommen 20Mbit durch, einmal nur zwischen 6-8Mbit...

Was ist denn da los?

Edit: Wenn ich den Port in der Fritzbox priorisiere ändert sich nichts - die Fritzbox macht nur Shaping ausgehend - oder? Hab leider keine andere Hardware um das zu testen...
 
Zuletzt bearbeitet:
Ich meinte nicht, daß die FRITZ!Box da irgendwie "active queue management" macht ... da sie kein Core-Router ist, halte ich das auch für unwahrscheinlich.

Zu "UDP ist UDP":
Das meinte ich auch nicht wirklich ... ich dachte/denke eher daran, daß die Mechanismen einer über das UDP getunnelten TCP-Verbindung dort zum Tragen kommen und die FRITZ!Box ist ja - wenn ich das richtig verstehe - an der ganzen Sache nicht beteiligt, ausschließlich als Router. Das Ein- und Auspacken übernimmt ein Client hinter der FRITZ!Box, oder?

Außerdem lasse doch mal den iperf-Test für UDP-Pakete mit voller Bandbreite laufen bzw. gib eine Rate an, die weit über der theoretischen Kapazität des Tunnels liegt (sagen wir mal 200%), damit man auch eine Regelwirkung des Tunnels erkennen kann. Bisher begrenzt Du ja selbst auf 20 MBit/s, da wäre dann u.a. auch die Frage, wie schnell die VPN-Endpoints mit Ver- und Entschlüsseln sind (auch wenn sie bei Tunnel über UDP 53 die Rate schaffen, das nehme ich zur Kenntnis). Mach doch einfach mal (wenn Du das 60 Sekunden laufen läßt) auch alle 2 Sekunden ein Reporting, damit man das geschilderte Phänomen des abnehmenden Durchsatzes auch sieht. Wenn das bei UDP auch auftritt, muß es ja von außen kommen, da gibt es die Mechanismen von TCP ja nicht. Wenn das bei UDP einheitlich derselbe Durchsatz ist, begrenzt ein anderer Faktor den Durchsatz, was dann mit einiger Wahrscheinlichkeit aber auch auf zwei unterschiedliche Ursachen zurückzuführen ist. Auch für TCP wäre mal ein iperf-Test mit Reporting in Intervallen interessant, einfach damit man sieht, ob das ein plötzlicher Abriß ist oder ob das schleichend bis zu dem von Dir beobachtenen Wert heruntergeregelt wird.

Die Ausgabe des ersten Kommandos verstehe ich ohnehin nicht ... bist Du da event. nur mit dem Kopieren in den Beitrag durcheinander gekommen? Das erste Kommando macht ja TCP (-u fehlt, oder hast Du einen iperf-Client, der auch ohne -u UDP verwendet?) und der Report dahinter sagt eindeutig UDP Port 5001.

Irre ich mich oder ist der letzte Wert (bzw. die zwei letzten und damit die "58%") bei der ersten Ausgabe die Paketverlust-Rate? Ich habe die iperf-Ausgabe gerade nicht im Kopf und bin auch zu faul, da jetzt nachzusehen (bzw. das habe ich gemacht, aber nur Beispiele für TCP gefunden, wo es keine Verluste gibt, weil eben Retransmissions erfolgen) oder selbst mit UDP zu testen ... aber die andere Verbindung hätte dann (wenn meine Interpretation stimmt) nur geringe Paketverluste, was mit anderen DSCP-Tags ja ohne weiteres zu erklären wäre.

Die FRITZ!Box kann ja nur ausgehenden Traffic regulieren (und im Rahmen von TCP über L4 in gewissen Grenzen den Downstream, aber auch nur dann, wenn sie selbst Endpoint ist), auch wenn sie intern (meiner Erinnerung nach und eine 7412 zum Nachsehen habe ich jetzt nicht) UDP 53 schon priorisiert bzw. zumindest eine gesonderte Queue dafür benutzt. Das findest Du in den Support-Daten oder über Telnet irgendwo über das proc-Interface des kdsdl (cat /proc/kdsld/dslifaces/internet und irgendeine dort vorhandene Pseudo-Datei). Wenn es tatsächlich die FRITZ!Box wäre, die da (dann eher unabsichtlich) "bremst", dann könnte man mal versuchen, eine identische Rule wie für "normales DNS" testweise per ar7.cfg für den vom Tunnel verwendeten Port zu setzen und sich das Ergebnis dann ansehen (geht über GUI nicht, bleibt dann immer noch anders, wenn ich mich richtig erinnere). Glaube ich aber auch eher nicht ... solange es nicht an anderen TOS-Werten in den IP-Paketen liegt, die dann von der Infrastruktur zwischen (VPN-)Server und (VPN-)Client so ausgelegt werden, daß der beobachtete Effekt auftritt.

Spannend wäre ja auch noch, wie sich denn nun der Tunnel verhält, wenn man die MTU (die derzeit eine resultierende Paketgröße von 1470 (lt. iperf) ergibt) einfach mal um 100 Byte heruntersetzt ... zwar verschenkt man dann vielleicht Kapazität, aber es sollte dann definitiv 1:1 eine Umsetzung eines unverschlüsselten in ein verschlüsseltes Paket ermöglichen. Wenn nämlich bei Deiner Messung die Pakete so groß sind, daß aus einem unverschlüsselten iperf-Paket immer zwei (fragmentierte) VPN-Pakete entstehen, dann hast Du die doppelte Anzahl von Paketen für den Tunnel und - da die auf Empfängerseite ja wieder defragmentiert werden müssen - auch eine entsprechende Verzögerung.

Das erklärt zwar die Abhängigkeit vom UDP-Port des Tunnels auch noch nicht, aber da gedroppte UDP-Pakete für DNS-Abfragen bei den Kunden ja extreme Phänomene hervorrufen (das braucht dann erst einmal ein Timeout und eine zweite Anfrage seitens des Clients, bis da z.B. irgendeine HTTP-Seite aufgerufen werden kann und das stößt den Kunden als "bemerkte Reaktionszeit" natürlich sauer auf), könnte ich mir vorstellen (nicht mit wissen verwechseln), daß seitens des Providers eben doch andere Vorkehrungen getroffen werden bzw. auch, daß die FRITZ!Box ihrerseits bereits ausgehenden DNS-Traffic (also die IP-Pakete) mit anderen DSCP-Werten taggt. Auch da hilft wieder der Packet-Dump ... sehe ich auch nicht als letzten Ausweg/letzte Lösung, weil es eben viele Aspekte aus dem Bereich der Spekulation und der "Annahme" in die Kategorie "gesicherte (empirische) Erkenntnisse" befördern kann.

Die ganze Rechnung bzgl. der MTU des Tunnels kann man auch nur nachvollziehen bzw. überprüfen, wenn man das eingesetzte VPN kennt (damit den dort verursachten Overhead) und auch die verwendete Technologie beim Anschluß der FRITZ!Box, weil natürlich das PPPoE beim 1&1-DSL-Anschluß auch noch einmal 8 Byte für den entsprechenden Header braucht. Wäre also schön, wenn das noch einmal explizit "aufgeklärt" wird, bisher ist das alles nur als deduktiver Schluß aus der Box in der Signatur möglich und auf welcher Basis ein "Freifunk-Tunnel" arbeitet, muß man auch erst selbst nachsehen. Das macht es (den anderen Lesern des Threads, ggf. auch erst in 5 Jahren, wenn beim Freifunk vielleicht schon ein ganz anderes Projekt das VPN macht) nur unnötig schwer, die Zusammenhänge zu recherchieren.

EDIT: Um das noch einmal deutlicher zu schreiben ... wenn das mit den Paketverlusten tatsächlich stimmt (einmal 58% und nur 0,14% über den DNS-Port), dann treten die eigentlichen Verluste natürlich nicht in der getunnelten Verbindung auf. Die verlorenen Pakete gehören dann zum Tunnel und während eben eine über den Tunnel aufgebaute TCP-Verbindung dann wegen der TCP-Sicherungsschicht zu erneuten Übertragungen (mit entsprechenden Auswirkungen auf den Durchsatz) greifen wird, hat UDP solche Mechanismen nicht und deshalb ist ein verlorenes Paket eben verloren - was sich dann auch in der getunnelten UDP-"Verbindung" manifestiert. Die Verlustrate wird m.E. errechnet, indem am Ende des Tests der Server befragt wird, wieviele Pakete er gesendet hat und das mit den am Client eingetroffenen Paketen verglichen wird.
 
Zuletzt bearbeitet:
Falls es hilft, hier mal ein Auszug aus der ar7.cfg von der FB7412:
Code:
        } {
                enabled = yes;
                name = "dns";
                type = qos_cfg_hidden;
                iface = qos_lan;
                rule = "udp.dport 53";
                result {
                        tos = -1;
                        vlan_prio = -1;
                        queueref = "hprio";
                }
 
@PeterPawn: Danke für die Ausführliche Antwort.

Zu "UDP ist UDP":
Das meinte ich auch nicht wirklich ... ich dachte/denke eher daran, daß die Mechanismen einer über das UDP getunnelten TCP-Verbindung dort zum Tragen kommen und die FRITZ!Box ist ja - wenn ich das richtig verstehe - an der ganzen Sache nicht beteiligt, ausschließlich als Router. Das Ein- und Auspacken übernimmt ein Client hinter der FRITZ!Box, oder?

Korrekt. Die Box selbst macht nichts.


Außerdem lasse doch mal den iperf-Test für UDP-Pakete mit voller Bandbreite laufen bzw. gib eine Rate an, die weit über der theoretischen Kapazität des Tunnels liegt (sagen wir mal 200%), damit man auch eine Regelwirkung des Tunnels erkennen kann. Bisher begrenzt Du ja selbst auf 20 MBit/s, da wäre dann u.a. auch die Frage, wie schnell die VPN-Endpoints mit Ver- und Entschlüsseln sind (auch wenn sie bei Tunnel über UDP 53 die Rate schaffen, das nehme ich zur Kenntnis). Mach doch einfach mal (wenn Du das 60 Sekunden laufen läßt) auch alle 2 Sekunden ein Reporting, damit man das geschilderte Phänomen des abnehmenden Durchsatzes auch sieht. Wenn das bei UDP auch auftritt, muß es ja von außen kommen, da gibt es die Mechanismen von TCP ja nicht. Wenn das bei UDP einheitlich derselbe Durchsatz ist, begrenzt ein anderer Faktor den Durchsatz, was dann mit einiger Wahrscheinlichkeit aber auch auf zwei unterschiedliche Ursachen zurückzuführen ist. Auch für TCP wäre mal ein iperf-Test mit Reporting in Intervallen interessant, einfach damit man sieht, ob das ein plötzlicher Abriß ist oder ob das schleichend bis zu dem von Dir beobachtenen Wert heruntergeregelt wird.

Ich hab jetzt meinen Rechner auf der Fritzbox als "Exposed Host" für IPv4 und den Firewall für IPv6 ausgeschaltet. Ich teste mal mal direkt TCP und UDP via iperf vom Server (hab auch noch einen 2. Server) - die Probleme müssten auch ohne Tunnel auftreten, da der iperf UDP Stream ja auch eben ein UDP ist.

Die Ausgabe des ersten Kommandos verstehe ich ohnehin nicht ... bist Du da event. nur mit dem Kopieren in den Beitrag durcheinander gekommen? Das erste Kommando macht ja TCP (-u fehlt, oder hast Du einen iperf-Client, der auch ohne -u UDP verwendet?) und der Report dahinter sagt eindeutig UDP Port 5001.

Ja, da fehlt das -u - der Client nimmt dennoch UDP - ich mach es jetzt explizit. Danke für den Hinweis!

Irre ich mich oder ist der letzte Wert (bzw. die zwei letzten und damit die "58%") bei der ersten Ausgabe die Paketverlust-Rate? Ich habe die iperf-Ausgabe gerade nicht im Kopf und bin auch zu faul, da jetzt nachzusehen (bzw. das habe ich gemacht, aber nur Beispiele für TCP gefunden, wo es keine Verluste gibt, weil eben Retransmissions erfolgen) oder selbst mit UDP zu testen ... aber die andere Verbindung hätte dann (wenn meine Interpretation stimmt) nur geringe Paketverluste, was mit anderen DSCP-Tags ja ohne weiteres zu erklären wäre.

Ja, das ist Jitter und Lost/Total Datagrams - also die Paketverlustrate - das würde auch das langsame Absinken des TCP-Downloads im Tunnel erklären, weil es durch die vielen verlorenen Pakete eben Retransmissions gibt - wie du in der ersten Antwort schon gemutmasst hattest. Interessant.

Die FRITZ!Box kann ja nur ausgehenden Traffic regulieren (und im Rahmen von TCP über L4 in gewissen Grenzen den Downstream, aber auch nur dann, wenn sie selbst Endpoint ist), auch wenn sie intern (meiner Erinnerung nach und eine 7412 zum Nachsehen habe ich jetzt nicht) UDP 53 schon priorisiert bzw. zumindest eine gesonderte Queue dafür benutzt. Das findest Du in den Support-Daten oder über Telnet irgendwo über das proc-Interface des kdsdl (cat /proc/kdsld/dslifaces/internet und irgendeine dort vorhandene Pseudo-Datei). Wenn es tatsächlich die FRITZ!Box wäre, die da (dann eher unabsichtlich) "bremst", dann könnte man mal versuchen, eine identische Rule wie für "normales DNS" testweise per ar7.cfg für den vom Tunnel verwendeten Port zu setzen und sich das Ergebnis dann ansehen (geht über GUI nicht, bleibt dann immer noch anders, wenn ich mich richtig erinnere). Glaube ich aber auch eher nicht ... solange es nicht an anderen TOS-Werten in den IP-Paketen liegt, die dann von der Infrastruktur zwischen (VPN-)Server und (VPN-)Client so ausgelegt werden, daß der beobachtete Effekt auftritt.

Ich kann auf dem Server die TOS/DiffServ Werte anpassen, werde ich später mal testen.

Spannend wäre ja auch noch, wie sich denn nun der Tunnel verhält, wenn man die MTU (die derzeit eine resultierende Paketgröße von 1470 (lt. iperf) ergibt) einfach mal um 100 Byte heruntersetzt ... zwar verschenkt man dann vielleicht Kapazität, aber es sollte dann definitiv 1:1 eine Umsetzung eines unverschlüsselten in ein verschlüsseltes Paket ermöglichen. Wenn nämlich bei Deiner Messung die Pakete so groß sind, daß aus einem unverschlüsselten iperf-Paket immer zwei (fragmentierte) VPN-Pakete entstehen, dann hast Du die doppelte Anzahl von Paketen für den Tunnel und - da die auf Empfängerseite ja wieder defragmentiert werden müssen - auch eine entsprechende Verzögerung.

Ja. Gute Idee, der Tunnel selbst mach PMTU Path Discovery - da bin ich mir aber nicht sicher ob das auch einwandfrei funktioniert. Ich würde erstmal nur mit iperf ohne Tunnel testen um den Tunnel als Problem auszuschließen.

Das erklärt zwar die Abhängigkeit vom UDP-Port des Tunnels auch noch nicht, aber da gedroppte UDP-Pakete für DNS-Abfragen bei den Kunden ja extreme Phänomene hervorrufen (das braucht dann erst einmal ein Timeout und eine zweite Anfrage seitens des Clients, bis da z.B. irgendeine HTTP-Seite aufgerufen werden kann und das stößt den Kunden als "bemerkte Reaktionszeit" natürlich sauer auf), könnte ich mir vorstellen (nicht mit wissen verwechseln), daß seitens des Providers eben doch andere Vorkehrungen getroffen werden bzw. auch, daß die FRITZ!Box ihrerseits bereits ausgehenden DNS-Traffic (also die IP-Pakete) mit anderen DSCP-Werten taggt. Auch da hilft wieder der Packet-Dump ... sehe ich auch nicht als letzten Ausweg/letzte Lösung, weil es eben viele Aspekte aus dem Bereich der Spekulation und der "Annahme" in die Kategorie "gesicherte (empirische) Erkenntnisse" befördern kann.

Ok, gute Idee. Ich versuche später einen Dump anzulegen - also einmal für Port 53 und einmal für einen anderen Port auf dem Server? Ich könnte auch noch probieren sowohl beim Client als auch beim Server DSCP-Bits zu setzen... aber ich muss erstmal verstehen wie ich genau vorgehen muss um eventuelle Fehler auszuschließen.

Die ganze Rechnung bzgl. der MTU des Tunnels kann man auch nur nachvollziehen bzw. überprüfen, wenn man das eingesetzte VPN kennt (damit den dort verursachten Overhead) und auch die verwendete Technologie beim Anschluß der FRITZ!Box, weil natürlich das PPPoE beim 1&1-DSL-Anschluß auch noch einmal 8 Byte für den entsprechenden Header braucht. Wäre also schön, wenn das noch einmal explizit "aufgeklärt" wird, bisher ist das alles nur als deduktiver Schluß aus der Box in der Signatur möglich und auf welcher Basis ein "Freifunk-Tunnel" arbeitet, muß man auch erst selbst nachsehen. Das macht es (den anderen Lesern des Threads, ggf. auch erst in 5 Jahren, wenn beim Freifunk vielleicht schon ein ganz anderes Projekt das VPN macht) nur unnötig schwer, die Zusammenhänge zu recherchieren.

Der Tunnel ist ein L2TPv3 Ethernet Pseudowire - https://www.kernel.org/doc/Documentation/networking/l2tp.txt - also quasi Ethernet über UDP - Die konkrete Implementierung ermöglich noch NAT - siehe hier: https://dev.wlan-si.net/wiki/Tunneldigger und hier https://wlan-si.net/en/blog/2012/10/29/tunneldigger-the-new-vpn-solution/

Aber die UDP Probleme müsste unabhängig vom Tunnel sein und sich ggf. mit iperf auch zeigen lassen oder?

EDIT: Um das noch einmal deutlicher zu schreiben ... wenn das mit den Paketverlusten tatsächlich stimmt (einmal 58% und nur 0,14% über den DNS-Port), dann treten die eigentlichen Verluste natürlich nicht in der getunnelten Verbindung auf. Die verlorenen Pakete gehören dann zum Tunnel und während eben eine über den Tunnel aufgebaute TCP-Verbindung dann wegen der TCP-Sicherungsschicht zu erneuten Übertragungen (mit entsprechenden Auswirkungen auf den Durchsatz) greifen wird, hat UDP solche Mechanismen nicht und deshalb ist ein verlorenes Paket eben verloren - was sich dann auch in der getunnelten UDP-"Verbindung" manifestiert. Die Verlustrate wird m.E. errechnet, indem am Ende des Tests der Server befragt wird, wieviele Pakete er gesendet hat und das mit den am Client eingetroffenen Paketen verglichen wird.

Genau - das klingt sinnvoll. Ich kann im Moment nicht gut testen, weil die Leitung noch von anderen genutzt wird. Melde mich später mit vielen iPerf werten.

Danke dir! Das hilft mir schon ziemlich viel weiter! Melde mich später mit Daten!
 
Hallo,

Danke nochmal für deine Antwort - ich hab das Problem gefunden - kurz und knapp: 1&1 drosselt nicht. Das Problem hängt wohl mit der Tunnel MTU bzw. mit MTU und MSS zusammen. Ich mach mir jetzt nen Kaffee und versuch das zu verstehen... hier die Tests mit iperf:


Wie man sieht kommt die ganze Bandbreite durch (der Loss ist wohl Tunnel-Overhead):

Mit einer Tunnel MTU von 1450 kommt auch per UDP alles durch, allerdings zeigen die TCP-Downloads die langsamer werdende Geschwindigkeit - wenn ich die MTU testweise auf 1280 setze, dann verschwinden die TCP-Download Probleme im Tunnel. Sorry für die Aufregung - ich denke es liegt an der MTU.


Server:

Code:
# iperf -u -c 10.255.0.2 -b 25m -t 60

Client (hinter der Fritzbox)

Code:
$ iperf -s -u -i 1

Test im UDP-Tunnel mit vtun:

Code:
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 10.255.0.2 port 5001 connected with 10.255.0.1 port 43170
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0- 1.0 sec  2.41 MBytes  20.2 Mbits/sec   0.157 ms  378/ 2097 (18%)
[  3]  1.0- 2.0 sec  2.38 MBytes  20.0 Mbits/sec   0.166 ms  382/ 2080 (18%)
[  3]  2.0- 3.0 sec  2.38 MBytes  20.0 Mbits/sec   0.197 ms  390/ 2087 (19%)
[  3]  3.0- 4.0 sec  2.38 MBytes  20.0 Mbits/sec   0.213 ms  377/ 2074 (18%)
[  3]  4.0- 5.0 sec  2.40 MBytes  20.1 Mbits/sec   0.125 ms  385/ 2094 (18%)
[  3]  5.0- 6.0 sec  2.38 MBytes  19.9 Mbits/sec   0.174 ms  390/ 2085 (19%)
[  3]  6.0- 7.0 sec  2.37 MBytes  19.9 Mbits/sec   0.161 ms  383/ 2077 (18%)
[  3]  7.0- 8.0 sec  2.37 MBytes  19.9 Mbits/sec   0.153 ms  388/ 2080 (19%)
[  3]  8.0- 9.0 sec  2.40 MBytes  20.1 Mbits/sec   0.180 ms  381/ 2092 (18%)
[  3]  9.0-10.0 sec  2.39 MBytes  20.1 Mbits/sec   0.199 ms  375/ 2083 (18%)
[  3] 10.0-11.0 sec  2.40 MBytes  20.1 Mbits/sec   0.172 ms  369/ 2082 (18%)
[  3] 11.0-12.0 sec  2.39 MBytes  20.1 Mbits/sec   0.181 ms  379/ 2084 (18%)
[  3] 12.0-13.0 sec  2.37 MBytes  19.9 Mbits/sec   0.163 ms  389/ 2083 (19%)
[  3] 13.0-14.0 sec  2.41 MBytes  20.2 Mbits/sec   0.207 ms  361/ 2082 (17%)
[  3] 14.0-15.0 sec  2.38 MBytes  19.9 Mbits/sec   0.180 ms  384/ 2079 (18%)
[  3] 15.0-16.0 sec  2.40 MBytes  20.1 Mbits/sec   0.243 ms  358/ 2071 (17%)
[  3] 16.0-17.0 sec  2.40 MBytes  20.2 Mbits/sec   0.176 ms  377/ 2092 (18%)
[  3] 17.0-18.0 sec  2.41 MBytes  20.2 Mbits/sec   0.153 ms  360/ 2078 (17%)
[  3] 18.0-19.0 sec  2.40 MBytes  20.1 Mbits/sec   0.187 ms  383/ 2092 (18%)
[  3] 19.0-20.0 sec  2.39 MBytes  20.1 Mbits/sec   0.158 ms  359/ 2067 (17%)
[  3] 20.0-21.0 sec  2.40 MBytes  20.1 Mbits/sec   0.216 ms  387/ 2099 (18%)
[  3] 21.0-22.0 sec  2.38 MBytes  19.9 Mbits/sec   0.222 ms  388/ 2084 (19%)
[  3] 22.0-23.0 sec  2.40 MBytes  20.1 Mbits/sec   0.175 ms  369/ 2079 (18%)
[  3] 23.0-24.0 sec  2.39 MBytes  20.0 Mbits/sec   0.185 ms  373/ 2076 (18%)
[  3] 24.0-25.0 sec  2.41 MBytes  20.3 Mbits/sec   0.154 ms  362/ 2084 (17%)
[  3] 25.0-26.0 sec  2.42 MBytes  20.3 Mbits/sec   0.156 ms  368/ 2093 (18%)
[  3] 26.0-27.0 sec  2.39 MBytes  20.0 Mbits/sec   0.219 ms  382/ 2085 (18%)
[  3] 27.0-28.0 sec  2.39 MBytes  20.1 Mbits/sec   0.119 ms  366/ 2072 (18%)
[  3] 28.0-29.0 sec  2.40 MBytes  20.1 Mbits/sec   0.252 ms  380/ 2089 (18%)
[  3] 29.0-30.0 sec  2.43 MBytes  20.4 Mbits/sec   0.340 ms  325/ 2056 (16%)
[  3] 30.0-31.0 sec  2.43 MBytes  20.4 Mbits/sec   0.180 ms  296/ 2032 (15%)
[  3] 31.0-32.0 sec  2.44 MBytes  20.4 Mbits/sec   0.180 ms  294/ 2031 (14%)
[  3] 32.0-33.0 sec  2.38 MBytes  19.9 Mbits/sec   0.176 ms  393/ 2088 (19%)
[  3] 33.0-34.0 sec  2.39 MBytes  20.0 Mbits/sec   0.145 ms  373/ 2077 (18%)
[  3] 34.0-35.0 sec  2.37 MBytes  19.9 Mbits/sec   0.162 ms  397/ 2091 (19%)
[  3] 35.0-36.0 sec  2.38 MBytes  20.0 Mbits/sec   0.155 ms  378/ 2076 (18%)
[  3] 36.0-37.0 sec  2.38 MBytes  20.0 Mbits/sec   0.173 ms  379/ 2080 (18%)
[  3] 37.0-38.0 sec  2.40 MBytes  20.1 Mbits/sec   0.155 ms  381/ 2092 (18%)
[  3] 38.0-39.0 sec  2.39 MBytes  20.1 Mbits/sec   0.136 ms  372/ 2079 (18%)
[  3] 39.0-40.0 sec  2.37 MBytes  19.8 Mbits/sec   0.162 ms  400/ 2087 (19%)
[  3]  0.0-40.4 sec  96.7 MBytes  20.1 Mbits/sec   0.236 ms 15053/84016 (18%)
[  3]  0.0-40.4 sec  1 datagrams received out-of-order

Teste ich nur UDP per iperf mit der Standardgröße von 1470, dann habe ich gewaltigen Packetloss - setzte ich die Paketgroße runter dann klappt es ohne Probleme:


Paketgröße 1470 (iperf default entspricht parameter -l1470


Code:
[  3] local 192.168.2.100 port 5001 connected with XXX port 49735
[  3]  0.0- 1.0 sec  2.39 MBytes  20.1 Mbits/sec   0.135 ms  342/ 2047 (17%)
[  3]  1.0- 2.0 sec  1.65 MBytes  13.8 Mbits/sec   0.194 ms  943/ 2118 (45%)
[  3]  2.0- 3.0 sec  1.47 MBytes  12.3 Mbits/sec   0.179 ms 1083/ 2129 (51%)
[  3]  3.0- 4.0 sec  1.67 MBytes  14.0 Mbits/sec   0.177 ms  933/ 2123 (44%)
[  3]  4.0- 5.0 sec  1.45 MBytes  12.2 Mbits/sec   0.192 ms 1096/ 2132 (51%)
[  3]  5.0- 6.0 sec  1.41 MBytes  11.8 Mbits/sec   0.181 ms 1112/ 2119 (52%)
[  3]  6.0- 7.0 sec  1.44 MBytes  12.1 Mbits/sec   0.168 ms 1106/ 2132 (52%)
[  3]  7.0- 8.0 sec  1.40 MBytes  11.8 Mbits/sec   0.156 ms 1122/ 2124 (53%)
[  3]  8.0- 9.0 sec  1.17 MBytes  9.85 Mbits/sec   0.166 ms 1288/ 2126 (61%)
[  3]  9.0-10.0 sec  1.22 MBytes  10.2 Mbits/sec   0.187 ms 1256/ 2127 (59%)
[  3] 10.0-11.0 sec  1.37 MBytes  11.5 Mbits/sec   0.165 ms 1154/ 2131 (54%)
[  3] 11.0-12.0 sec  1.26 MBytes  10.6 Mbits/sec   0.207 ms 1222/ 2124 (58%)
[  3] 12.0-13.0 sec  1.24 MBytes  10.4 Mbits/sec   0.131 ms 1250/ 2136 (59%)
[  3] 13.0-14.0 sec  1.34 MBytes  11.3 Mbits/sec   0.206 ms 1165/ 2124 (55%)
[  3] 14.0-15.0 sec  1.23 MBytes  10.3 Mbits/sec   0.164 ms 1252/ 2127 (59%)
[  3] 15.0-16.0 sec  1.35 MBytes  11.3 Mbits/sec   0.165 ms 1165/ 2126 (55%)
[  3] 16.0-17.0 sec  1.35 MBytes  11.3 Mbits/sec   0.216 ms 1161/ 2126 (55%)
[  3] 17.0-18.0 sec  1.51 MBytes  12.7 Mbits/sec   0.166 ms 1059/ 2137 (50%)
[  3] 18.0-19.0 sec  1.56 MBytes  13.1 Mbits/sec   0.160 ms 1010/ 2123 (48%)
[  3] 19.0-20.0 sec  1.21 MBytes  10.1 Mbits/sec   0.161 ms 1256/ 2117 (59%)
[  3] 20.0-21.0 sec  1.39 MBytes  11.7 Mbits/sec   0.149 ms 1146/ 2137 (54%)
[  3] 21.0-22.0 sec  1.34 MBytes  11.3 Mbits/sec   0.166 ms 1170/ 2129 (55%)
[  3] 22.0-23.0 sec  1.43 MBytes  12.0 Mbits/sec   0.152 ms 1107/ 2125 (52%)
[  3] 23.0-24.0 sec  1.43 MBytes  12.0 Mbits/sec   0.170 ms 1115/ 2134 (52%)
[  3]  0.0-24.6 sec  34.8 MBytes  11.9 Mbits/sec  13.049 ms 26933/51773 (52%)

Wie man sieht, massiver Packetloss... setzt man die Paketgröße runter z.B. auf 1280 klappt es alles prima:

Code:
[  4] local 192.168.2.100 port 5001 connected with XXX port 34904
[  4]  0.0- 1.0 sec  2.78 MBytes  23.4 Mbits/sec   0.123 ms   25/ 2306 (1.1%)
[  4]  1.0- 2.0 sec  2.78 MBytes  23.3 Mbits/sec   0.115 ms  168/ 2447 (6.9%)
[  4]  2.0- 3.0 sec  2.78 MBytes  23.3 Mbits/sec   0.107 ms  164/ 2444 (6.7%)
[  4]  3.0- 4.0 sec  2.78 MBytes  23.3 Mbits/sec   0.113 ms  166/ 2445 (6.8%)
[  4]  4.0- 5.0 sec  2.78 MBytes  23.3 Mbits/sec   0.115 ms  168/ 2445 (6.9%)
[  4]  5.0- 6.0 sec  2.78 MBytes  23.3 Mbits/sec   0.119 ms  167/ 2446 (6.8%)
[  4]  6.0- 7.0 sec  2.78 MBytes  23.3 Mbits/sec   0.132 ms  167/ 2444 (6.8%)
[  4]  7.0- 8.0 sec  2.78 MBytes  23.3 Mbits/sec   0.119 ms  167/ 2445 (6.8%)
[  4]  8.0- 9.0 sec  2.77 MBytes  23.2 Mbits/sec   0.132 ms  176/ 2446 (7.2%)
[  4]  9.0-10.0 sec  2.77 MBytes  23.3 Mbits/sec   0.122 ms  172/ 2443 (7%)
[  4] 10.0-11.0 sec  2.76 MBytes  23.2 Mbits/sec   0.114 ms  182/ 2447 (7.4%)
[  4] 11.0-12.0 sec  2.78 MBytes  23.3 Mbits/sec   0.111 ms  167/ 2443 (6.8%)
[  4] 12.0-13.0 sec  2.77 MBytes  23.3 Mbits/sec   0.109 ms  173/ 2446 (7.1%)
[  4] 13.0-14.0 sec  2.78 MBytes  23.3 Mbits/sec   0.135 ms  170/ 2445 (7%)
[  4] 14.0-15.0 sec  2.77 MBytes  23.3 Mbits/sec   0.137 ms  173/ 2446 (7.1%)
[  4] 15.0-16.0 sec  2.78 MBytes  23.3 Mbits/sec   0.118 ms  167/ 2444 (6.8%)
[  4] 16.0-17.0 sec  2.78 MBytes  23.3 Mbits/sec   0.126 ms  168/ 2445 (6.9%)
[  4] 17.0-18.0 sec  2.78 MBytes  23.3 Mbits/sec   0.166 ms  169/ 2448 (6.9%)
[  4] 18.0-19.0 sec  2.78 MBytes  23.3 Mbits/sec   0.128 ms  166/ 2442 (6.8%)
[  4] 19.0-20.0 sec  2.78 MBytes  23.3 Mbits/sec   0.127 ms  167/ 2445 (6.8%)
[  4] 20.0-21.0 sec  2.78 MBytes  23.3 Mbits/sec   0.121 ms  166/ 2445 (6.8%)
[  4] 21.0-22.0 sec  2.77 MBytes  23.2 Mbits/sec   0.116 ms  175/ 2445 (7.2%)
[  4] 22.0-23.0 sec  2.78 MBytes  23.3 Mbits/sec   0.138 ms  169/ 2446 (6.9%)
[  4] 23.0-24.0 sec  2.77 MBytes  23.3 Mbits/sec   0.104 ms  170/ 2443 (7%)
[  4] 24.0-25.0 sec  2.77 MBytes  23.2 Mbits/sec   0.121 ms  178/ 2446 (7.3%)
[  4] 25.0-26.0 sec  2.76 MBytes  23.2 Mbits/sec   0.121 ms  183/ 2446 (7.5%)
[  4] 26.0-27.0 sec  2.78 MBytes  23.3 Mbits/sec   0.110 ms  168/ 2445 (6.9%)
[  4]  0.0-27.5 sec  75.9 MBytes  23.1 Mbits/sec  12.251 ms 4503/66653 (6.8%)
[  4]  0.0-27.5 sec  1 datagrams received out-of-order

Sorry für den alamarstischen Ton und Danke für die Hilfe. Ich versuch mal in Ruhe die ganze MTU und MSS Problematik aufzudröseln.
 
Ich versuch mal in Ruhe die ganze MTU und MSS Problematik aufzudröseln.
Viel Erfolg ... und das meinte ich auch, als ich von zwei verschiedenen Faktoren/Problemen schrieb, denn das MTU/MSS-Thema (MSS gibt es auch nur bei TCP) erklärt ja das Phänomen mit dem DNS-Port noch nicht.
 
Das mit dem DNS-Port ist mir immer noch ein Rätsel - aber sowohl vtun als auch der L2TPv3 Tunnel haben Probleme mit der Fragmentierung - Danke für den Tip mit Packetdump - hier ist es ganz gut ersichtlich, dass die IP-Pakete 6 Byte zu groß sind bei einer Tunnel MTU von 1446.

vtun-mtu1.jpg
 

Anhänge

  • fragmented.png
    fragmented.png
    122.9 KB · Aufrufe: 12
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.