Wir betreiben ein OpenVPN-VPN über eine BGAN-Satellitenverbindung, bei der die Ping-Zeiten etwa 3 Sekunden betragen. Wir verwenden es in einer Tun- Konfiguration und laufen unter Linux (CentOS). Es ist hauptsächlich eine E-Mail, die über den Link gesendet wird. Sobald die E-Mail jedoch große Anhänge enthält, scheint das VPN zu blockieren.
Das "Ich kann durch den Tunnel pingen, aber jede echte Arbeit führt dazu, dass er blockiert. Ist das ein MTU-Problem?" Die Frage in den OpenVPN-FAQ scheint mein Problem genau zu beschreiben, aber die Verwendung von mssfix
und fragment
scheint immer noch nicht viel zur Verbesserung der Situation beizutragen.
Mein Haupttest besteht darin, eine 2-MB-Datei mit scp über das VPN zu kopieren . Es kopiert ungefähr 192 KB und meldet dann einen blockierten Zustand. Wenn ich ein paar Sekunden warte, beginnt der Kopiervorgang erneut und bleibt nach einigen weiteren KByte wieder stehen.
Dieses Abwürgen tritt auf, unabhängig davon, ob ich die Optionen fragment
oder mssfix
in meiner OpenVPN-Konfiguration festgelegt habe oder nicht (obwohl die Einstellung fragment 1000
das Abwürgen zu verringern schien, es jedoch nicht beseitigte). Das OpenVPN mtu-test
meldete 1542 als MTU-Größe.
Ich habe im Internet gesucht , um weitere Ratschläge, wie und wann zu verwenden mssfix
und fragment
, aber ich Seiten nur finden die gleiche wie die FAQ zu sagen, und nicht mit Angaben darüber, wie und wann welche Parameter zu verwenden.
Meine Fragen sind dann:
- Wann benutze ich
mssfix
undfragment
? - Benutze ich
mssfix
undfragment
in Kombination? - Wenn
mssfix
undfragment
sind die Lösung, was sind dietun-mtu
,link-mtu
undmtu-disc
Parameter für?
Außerdem habe ich das Tool iperf verwendet , um die Bandbreite zu messen. Ohne das VPN misst es ständig in der Größenordnung von 210 Kbit / s.
Wenn iperf über VPN ( $ iperf -c remoteserver -t60 -i5
) verwendet wird, beginnt es mit 10 Kbit / s und steigt dann stetig an, bis 1,2 Mbit / s gemeldet werden. Dann scheint es zu blockieren, wo 0 kbit / s für eine Reihe von Iterationen gemeldet werden (I. Ich denke, die 1,2 Mbit / s sind möglicherweise auf OpenVPN-Pufferung zurückzuführen.
Ist iperf der beste Weg, um die Bandbreite zu messen?
Jede Hilfe in dieser Situation wird sehr geschätzt.
Antworten:
1542 als MTU? Ich habe noch nie davon für eine WAN-Verbindung gehört. Normalerweise ist MTU die maximale Nutzlast, die IP-Paketgröße abzüglich des Headers für IP (20 Byte) und ICMP (8 Byte). Das bedeutet MTU = 1500 für ein herkömmliches Ethernet-LAN. Darüber hinaus führen die meisten VPNs einen Overhead für ihre Paketkapselung ein. Eine typische VPN-MTU ist 1400.
In modernen Netzwerken ist es schwierig zu bestimmen, wie die MTU zu einem bestimmten Zeitpunkt aussehen wird, da die Eingangs- und Ausgangspfade unterschiedlich sein können und sich auch aufgrund der automatischen Pfadumleitung ändern können. In einem solchen Netzwerk ist es möglicherweise effektiver, die MTU auf Ihren Hosts, die sich auf beiden Seiten der VPN-Verbindung befinden, wie z. B. 576, auf niedrig zu setzen.
MSS (maximale Segmentgröße) ist MTU abzüglich der IP + TCP-Header (40 Byte). Dies wird normalerweise vom Netzwerkstapel ausgehandelt und hat normalerweise nicht die gleichen Verhandlungsprobleme wie die MTU, es sei denn, die MTU ist falsch. (Die MTU-Aushandlung wird normalerweise durch blockierte ICMP- oder Black-Hole-Router beeinträchtigt.)
Das erste, was ich tun würde, ist eine Netzwerkpaketerfassung auf Ihrer sendenden Seite durchzuführen und die Anzeige nach Frame-Größe zu sortieren (möglicherweise müssen Sie diese Spalte in Wireshark hinzufügen). Sie sollten sicherstellen, dass Sie keine übergroßen Frames senden, wie Sie es erwarten würden. Es ist nicht ungewöhnlich, dass moderne Netzwerkkarten übergroße Frames senden, wenn Optionen wie Large Send Offload oder Jumbo Frames aktiviert sind. Ich habe mehr als 30.000 Byte-Frames gesehen, wenn diese Optionen aktiviert sind.
quelle
Haben Sie aus Neugier versucht, die MTU der Netzwerkschnittstelle zu senken? Vielleicht vermasselt die Satellitenverbindung die Fragmentierung stark. Als kontraintuitive Anmerkung möchten Sie zur Abwechslung möglicherweise openvpn über TCP ausprobieren. Ich weiß, dass es die Leistung verringern sollte, aber wenn Sie keine Kontrolle über die Fragmentierung entlang der Linie haben, könnte es Ihnen helfen.
quelle
Wenn Sie TCP verwenden, erhöhen Sie die Fenstergröße von TCP. Dies hilft bei der "Anzahl der Pakete in der Luft".
Es ist schon eine Weile her, dass ich mit diesem Zeug spielen musste, aber hier ist ein Link, den Google für mich gefunden hat.
Nachdem ich wieder lesen Ihre Frage , die ich sehen Sie laufen BGAN - ich einen guten Blick haben würde dies (oder nur Google für: „BGAN - Spoofing“).
Was die Bandbreitenmessung angeht, habe ich festgestellt, dass iperf ziemlich anständig ist, solange Sie vernünftige Paketgrößen verwenden.
quelle
Ich denke, Sie bellen vielleicht am falschen Baum. Jedes Mal, wenn ich falsche MTU-Probleme hatte, wurde der Verkehr weit vor 192 KB gestoppt. Ich denke, es hängt eher mit einigen im Fenster "In Flight Packets" zusammen, entweder mit dem TCP-Fenster oder mit einigen Puffern im Satelliten-Uplink selbst.
Auf jeden Fall haben einige lange Paketerfassung (beide ‚innen‘ und ‚außen‘ des VPN) und sehen , ob Sie bekommen alle die
ACK
‚squelle