Schnelle IP-Weiterleitung an WAN, fällt jedoch zwischen den LAN-Subnetzen ab
432
Huckle
Ich habe meinen kabellosen Consumer-Router durch eine Linux-Box ersetzt, die über eine Quad-Gigabit-NIC-PCIe-Karte und eine einzelne Gigabit-NIC auf dem Motherboard (für das WAN) verfügt. Nach dem Einschalten der IP-Weiterleitung, dem Masquerading (Via iptables) und dem Einrichten von Subnetzen auf jeder der vier LAN-Schnittstellen führte ich einige Geschwindigkeitstests durch.
$ ip route default dev ppp0 scope link 10.0.0.0/16 dev enp3s0f0 proto kernel scope link src 10.0.0.1 10.64.0.0/16 dev enp3s0f1 proto kernel scope link src 10.64.0.1 10.192.0.0/16 dev enp4s0f1 proto kernel scope link src 10.192.0.1 aaa.bbb.ccc.ddd dev ppp0 proto kernel scope link src www.xxx.yyy.zzz
Von einem drahtlosen Gerät in einem der LAN-Subnetze zu einem Speedtest-Server im WAN bekomme ich die vollen 40 Mbps / 5 Mbps, für die ich meinen ISP bezahle.
Vom Router-Host zu einem kabelgebundenen LAN-Host iperf3kann ich über mehrere Minuten konstant 930+ Mbps verwalten.
Von einem kabelgebundenen Gerät in einem der LAN-Subnetze zu einem kabelgebundenen Gerät in einem anderen LAN-Subnetz iperf3bekomme ich zunächst 80 bis 95 Mbps für die ersten Sekunden, aber es fällt schnell auf null.
Von einem kabelgebundenen Gerät in einem der LAN-Subnetze zu einem kabelgebundenen Gerät in einem anderen LAN-Subnetz iperf3mit einer Ziel-Bitrate von 20 MBit / s sehe ich ähnliche Ergebnisse (siehe Update am Ende), kann jedoch etwa 10 MBit / s aufrechterhalten
Dies deutet auf ein Problem bei der Weiterleitung von Paketen zwischen den Subnetzen hin. Ich habe zuerst dafür gesorgt, dass meine iptablesRegeln so gering wie möglich sind:
-t nat -A POSTROUTING -o ppp0 -j MASQUERADE # WAN connection is PPPoE and VLAN tagged -t filter -A FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Dumping des iptablesStatus Ich sehe niedrige Paketzahlen für beide Regeln.
Als nächstes habe ich nach Paketverlust gesucht. Es scheint eine kleine, aber gleichbleibende Menge an Paketverlust / Neuübertragungen zu geben.
Ich dachte dann, dass es vielleicht einen Puffer oder eine Warteschlange gab, die sich füllten und Pakete verworfen wurden. Ich habe das durchschnittliche Bandbreitenverzögerungsprodukt berechnet und das mit dem reservierten Speicher verglichen.
Das scheint ausreichend zu sein. Also bin ich jetzt etwas festgefahren. Ich bin tcpdumpauf dem iperf3Client gelaufen und kann sehen, wie sich die Dinge ein wenig bewegen. Dann sehe ich eine lange Pause (fast 250ms) vor vielen Neuübertragungen und doppelten Bestätigungen.
Da ich ausreichende Download-Geschwindigkeiten aus dem WAN abrufen kann, habe ich nicht den Verdacht, dass die integrierte Netzwerkkarte fehlerhaft ist. Ich suche Hilfe bei der Diagnose dieser Quad-NIC (Details unten) und möglicherweise eines dummen Layer-2-Gigabit-Switches (Netgear GS-108) und anderer Kernelkonfigurationen, die möglicherweise in die Quere kommen. Ich bezweifle, dass es sich um den Switch handelt, da er noch nie ein Problem war und ich die Geschwindigkeit vom Router bis zu diesem Subnetz beibehalten kann. Es scheint nur die Leistung zwischen den Subnetzen betroffen zu sein.
Was meinen Sie mit "Einrichten von Subnetzen auf jeder der vier LAN-Schnittstellen"? Haben Sie vier LANs oder eines erstellt? Wenn eine, dann mit vier Schnittstellen in demselben LAN, sollten Sie nur eine IP-Adresse und ein Subnetz einrichten.
David Schwartz vor 6 Jahren
0
@DavidSchwartz Vier Subnetze, deren Schnittstellen als 10.0.0.1, 10.64.0.1, 10.128.0.1 und 10.192.0.1 konfiguriert sind.
Huckle vor 6 Jahren
0
Bitte geben Sie ein "ifconfig -a" oder "ip addr" an. Suchen nach MAC-Adressen auf der Quad-NIC.
Pedro vor 6 Jahren
0
@Huckle Gibt es einen Grund, warum Sie vier separate LANs erstellt haben? Brauchen Sie aus irgendeinem Grund Isolation? Dies bedeutet, dass Funktionen, die in einem LAN funktionieren (z. B. Erkennung von Broadcast-Diensten und Namensauflösung), für Geräte in verschiedenen LANs nicht funktionieren.
David Schwartz vor 6 Jahren
0
Woher kommt auch das Wireless? Könnten Sie eine "iperf3" zwischen verdrahteten Hosts durchführen, die an verschiedene Schnittstellen angeschlossen sind?
Pedro vor 6 Jahren
0
@Pedro - erneuter Test von zwei verdrahteten Geräten, die beide direkt an verschiedenen Subnetzen angeschlossen sind (diesmal ist kein Layer-2-Switch in einem Subnetz möglich). Im Wesentlichen identische Ergebnisse
Huckle vor 6 Jahren
1
@DavidSchwartz Ja, die Idee ist, schließlich eines der Subnetze für den WAN-Zugriff zu Firewall und dann einen der anderen für die Firewall zuzulassen, um nur den Zugriff auf bestimmte Ports zuzulassen. Dieser Punkt "iptables" ist jedoch so knapp wie möglich, um Variablen zu reduzieren. und ich bin mir sicher, dass ich die Konfiguration neu geladen habe.
Huckle vor 6 Jahren
0
Könnten Sie die `iperf3` mit - Bandbreite an einigen Punkten wie 20m, 40m und 80m ausführen und sehen, ob sich diese schließlich verlangsamen? Dies wird angezeigt, wenn ein Puffer im Router überläuft.
Pedro vor 6 Jahren
0
@Pedro OUI einer der Quad-NICs befindet sich im `lshw'-Ausgang. Die Karte ist ein HP NC364T
Huckle vor 6 Jahren
0
@Pedro 20 Mbps und 10 Mbps Tests gepostet. 20 ist ein No-Go. Scheint zu halten 10. Bricht um 12 herum ein.
Huckle vor 6 Jahren
1
Können Sie bitte eine volle Bandbreite iperf von einem Host auf enp3s0f0 bis zu einer auf enp3s0f1, enp3s0f1 / enp4s0f1 und enp3s0f0 / enp4s0f1 ausführen, um festzustellen, ob einer der Ports fehlerhaft ist?
Pedro vor 6 Jahren
0
Können Sie beim NC364T nur überprüfen, ob die MAC-Adressen für jeden Port unterschiedlich sind? Anscheinend verwenden Sie nur zwei der Ports enp3s0f0 und enp3s0f1, richtig?
Pedro vor 6 Jahren
0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/73650/discussion-between-pedro-and-huckle).
Pedro vor 6 Jahren
0
1 Antwort auf die Frage
0
Huckle
Danke an @Pedro für die Hilfe bei der Suche. Ursprünglich dachte ich, das wäre eine schlechte Hardware, aber nachdem ich sie durch eine andere ersetzt habe, bin ich sicher, dass es ein Treiberproblem ist. Ich bin immer noch dabei, herauszufinden, ob es sich um einen Fehler handelt, der bereits gemeldet wurde oder nicht (und ob ein Fix vorhanden ist). In der Zwischenzeit habe ich eine Serverfault-Frage gefunden, die mit einem Fehlerbericht verknüpft war, in dem vorgeschlagen wurde, mehrere Offloading-Funktionen zu deaktivieren . Dies brachte mich zumindest stabil von 0 bps auf ~ 270 Mbps. Weit hinter den ~ 940 MBit / s ist sie in der Lage, aber besser als nichts, während ich weiterforsche.