Hallo zusammen,
ich habe ein merkwürdiges Performanceproblem an einem Telekom-GPON-Anschluss mit einer originalen OPNsense/Deciso-Appliance DEC7xx. Bin auf 26.7.2
Gebucht sind 600 Mbit/s im Download. Diese Bandbreite erreiche ich mit dem Ookla Speedtest auch nahezu vollständig.
Normale Downloads über einen
einzelnen TCP-Flow sind dagegen deutlich zu langsam. Mit curl/wget erreiche ich nur ca. 30–50 Mbit/s. Auch einzelne iperf3-Verbindungen bleiben deutlich hinter der verfügbaren Bandbreite zurück.
Besonders interessant ist dabei: Ich betreibe selbst einen Ookla-Speedtest-Server im gleichen Netz wie meinen HTTP-/iperf-Testserver. Mit Ookla erreiche ich ca. 600 Mbit/s, während ein einzelner TCP-Download in dasselbe Netz massiv langsamer ist.
Ich habe deshalb einen Ookla-Test mit tcpdump mitgeschnitten. Dabei sieht man, dass Ookla sehr viele parallele TCP-Verbindungen verwendet. Auch die einzelnen Ookla-TCP-Flows sind vergleichsweise langsam und erreichen in dem Capture überwiegend nur ca. 15–35 Mbit/s. Die ca. 600 Mbit/s Gesamtdurchsatz entstehen erst durch die vielen kleinen parallelen Verbindungen.
Zusammengefasst:- Gebuchte Bandbreite: 600 Mbit/s
- Ookla Speedtest: ca. 600 Mbit/s
- Single TCP mit curl/wget: teilweise nur ca. 30–50 Mbit/s
- Einzelne TCP-Flows im Ookla-PCAP: überwiegend ca. 15–35 Mbit/s
- Viele parallele Ookla-Flows zusammen: ca. 600 Mbit/s
Setup:- Original OPNsense/Deciso Appliance DEC7xx
- Telekom GPON
- PPPoE mit MTU 1492
- GPON-SFP direkt in der OPNsense
- GPON-SFP-Link läuft mit 1000Base-SGMII
- Beide SFP-Ports (ax0 und ax1) getestet
Bereits getestet:- Zwei unterschiedliche GPON-ONT-SFPs:
- - Zyxel PMG3000-D20B
- - FS.com GPON-SFP-ONT-MAC-I
- Beide Module zeigen exakt dasselbe Performanceproblem
- Wechsel von ax0 auf ax1: keine Veränderung
- IPv4 und IPv6: beide betroffen
- PPPoE-MTU geprüft und korrekt
- TCP Window Scaling per PCAP geprüft und funktioniert korrekt
- Praktisch keine TCP-Retransmissions bzw. kein relevanter Packet Loss
- ECN testweise deaktiviert: keine Veränderung
- Hardware-TSO testweise aktiviert: keine Veränderung
- curl direkt auf der OPNsense selbst ist ebenfalls langsam. LAN, NAT und Client können damit als Ursache ausgeschlossen werden.
- Parallele iperf3-Streams wurden ebenfalls getestet
- Die verwendeten Testserver liefern über andere Internetanschlüsse normale Performance
Aktuell sieht es für mich danach aus, dass der Anschluss grundsätzlich die vollen 600 Mbit/s übertragen kann, einzelne TCP-Verbindungen aber aus irgendeinem Grund stark ausgebremst werden. :(
Als nächsten Gegencheck habe ich ein Telekom Glasfaser Modem 2 bestellt. Damit möchte ich den GPON-SFP umgehen und die OPNsense über normales Ethernet mit dem ONT verbinden.
Hat jemand ein ähnliches Verhalten mit OPNsense/FreeBSD und einem Telekom-PPPoE-Anschluss beobachtet?
Insbesondere würde mich interessieren, ob jemand schon einmal das Problem hatte, dass einzelne TCP-Verbindungen deutlich zu langsam sind, während mit vielen parallelen Verbindungen die volle Anschlussbandbreite erreicht wird.
Es ist nicht zu verstehen und ich bin gerade wirklich überfragt. Irgendwas ist da krumm.
Diesen Effekt bekommt man, wenn die Single-Thread Performance des Zielrechners zu schlecht ist. Das sollte natürlich in Deinem Fall nicht so sein, und eigentlich auch nicht an der Sensebox haken, zumindest, wenn die nicht der Zielrechner ist. Testen könnte man mal mit einem normalen PC am WAN der Sensebox, um diese auszuschließen. Vielleicht ist irgendwas im Traffic Shaping vergurkt?
Eventuell ein Problem in der Konstellation FreeBSD / axp-Treiber / PPPoE? Ist aber Spekulation.
Ausschließen würde ich, dass es am PMG3000-D20B liegt. Das verwende ich auch und bekomme beim Ookla-Speedtest auch im Single Connection-Modus die volle Geschwindigkeit, ebenso in der Praxis z. B. bei einzelnen Downloads mit fetch oder wget.
Allerdings ist mein Konstellation deutlich anders. Das GPON-SFP sitzt in einem MikroTik-Router, der auch die PPPoE-Verbindung aufbaut. OPNsense (VM) sitzt dahinter als Firewall. Die Faser ist ebenfalls von der Telekom, ISP ist jedoch Telefonica / o2.
Grüße
Maurice
Wenn die Ergebnisse mit curl/wget (30–50 Mbit/s) und Ookla-PCAP (15–35 Mbit/s) nicht so unterschiedlich wären, würde auch eine ISP-seitige Drosselung in Frage kommen. So sieht es (erstmal) nicht danach aus.