Samba über OpenVPN - schrecklich langsam

7

Ich habe einen Server für die Ausführung von OpenVPN eingerichtet, damit Clients remote auf Samba-Freigaben zugreifen können.

Auf dem Server läuft CentOS 5.6, eine anständige Quad-Core-Xeon-CPU und viel RAM. Der Client, auf dem ich es getestet habe, ist ein Windows 7 x64-Computer, ebenfalls mit recht hohen Spezifikationen.

Das Ergebnis ist, dass Uploads und Downloads auf den Client mit etwa 60 KB / s ausgeführt werden. Ich verstehe, dass Samba in Bezug auf viele Wiederholungsfahrten sehr ineffizient ist, aber trotzdem - der Client hat eine Bandbreite von 50 Mbit / s Downstream und 4 Mbit / s Upstream. Selbst wenn die Upload-Geschwindigkeit des Clients der Engpass war, ist sie immer noch neunmal langsamer.

Die CPU-Auslastung auf dem Server und dem Client während der Übertragung ist vernachlässigbar, sodass Verschlüsselungsgeschwindigkeiten ausgeschlossen werden müssen.

Der entsprechende OpenVPN-Port ist sowohl auf dem Server als auch auf dem Client geöffnet. Die OpenVPN-Verschlüsselung ist AES-128-CBC mit einem 160-Bit-SHA1-HMAC. Es wird auch ein TLS-Schlüssel sowie eine Comp-lzo-Komprimierung verwendet.

Irgendeine Idee, was das sein könnte? Ich weiß, dass Samba langsam ist ... aber das kann doch nicht richtig sein!

Melkamo
quelle
1
Haben Sie eine andere Art der Dateiübertragung über das VPN versucht? Sagen wir scp'ing eine Datei auf einen Linux-Server?
EEAA
Ich habe FTP ausprobiert, das ungefähr dreimal schneller war - aber immer noch langsam. Ich habe gerade einen SCP vom Server zu einem Linux-Client über dieselbe Verbindung wie der Windows-Computer mit derselben OpenVPN-Client-Konfiguration ausprobiert und die 50-Mbit / s-Verbindung maximal genutzt.
Melkamo
1
In diesem Fall haben Sie wahrscheinlich Ihre eigene Frage beantwortet. Ohne eine Art WAN-Beschleuniger (teuer) zu verwenden, müssen Sie sich möglicherweise nur mit den langsamen Geschwindigkeiten auseinandersetzen.
EEAA

Antworten:

3

Stellen Sie sicher, dass Ihr OpenVPN-Tunnel UDP und nicht TCP verwendet. Stellen Sie außerdem sicher, dass der Tunnel die Komprimierung verwendet, indem Sie die Anweisung 'comp-lzo' in Ihrer OpenVPN-Konfigurationsdatei an beiden Enden verwenden.

Schließlich kann es sinnvoll sein, die MTU- und MSS-Clamp-Werte für den Tunnel festzulegen. Dies hängt jedoch von der Art der verwendeten Internetverbindung ab und führt bei falscher Einstellung normalerweise eher zu Zeitüberschreitungen als zu langsamen Übertragungen.

tun-mtu 1500
mssfix 1212

Die MSS-Klemmung müsste für die PPP-Verbindung selbst ebenfalls auf etwa 1300 eine Stufe niedriger als OpenVPN eingestellt werden. Wie ich bereits sagte, habe ich keine Ahnung, welche Art von Konnektivität Sie verwenden. MSS-Clamping ist nur in einem Nicht-Ethernet-Netzwerk wie ADSL usw. nützlich.

Richard Keller
quelle
1

In meinem Fall (OpenMediaVault NAS, debianbasiert) hatte ich das gleiche Problem. Auch mit PPTP VPN auf einem Synology NAS.

Meine Lösung neben der MTU-Einstellung war, dass ich den VPN-Server so konfigurieren musste, dass er die DNS-Serveradresse über DHCP sendet .

Danach konnte ich meine volle Bandbreite nutzen.

Hoffe das hilft dir und anderen!

Freistil
quelle
0

Haben Sie openvpn für die Verwendung von TCP eingestellt? Das kann das Problem verursachen, das Sie sehen. Sie sollten UDP verwenden.

Wie ErikA sagte, sollten Sie zu Vergleichszwecken eine SCP- (oder FTP-) Übertragung (über das Internet und über das VPN) durchführen.

Steven
quelle
Nein, ich verwende UDP, da mir einige Samba-Probleme über TCP bekannt waren. Eine FTP-Übertragung auf dem Windows-Client war immer noch sehr langsam, und ein SCP auf einem Linux-Client war schnell, beide über dieselbe Verbindung. Ich werde versuchen, eine FTP-Übertragung auf dem Linux-Client durchzuführen, um festzustellen, ob Windows das Problem verursacht.
Melkamo
Um einen weiteren Test durchzuführen, können Sie eine Samba-Freigabe auf einem Linux-Computer bereitstellen und prüfen, ob sie auch so langsam ist.
Laurent
0

Ich habe Samba bereits während einer bestimmten Zeit auf einer VPN-Verbindung (OpenVPN) verwendet und fand heraus, dass die einzigartige Möglichkeit, auf Windows-Computern zu arbeiten, darin bestand, die Dateien zu kopieren, zu arbeiten und zurückzusetzen ... während die Linux-Computer mit SSH-Laufwerk oder Samba-Freigaben arbeiteten "ok" auf der gleichen VPN-Verbindung, aber meine Verbindungsgeschwindigkeit war 10-mal geringer als Ihre.

Laurent
quelle
0

Mir ist klar, dass dies eine etwas späte Antwort ist, aber neben dem offensichtlichen Transportproblem (UDP vs. TCP) spielen auch die Verschlüsselung, MSS, MTU und die Fragmentierungsmethode eine Rolle.

Im OpenVPN-Wiki gibt es einen sehr guten Artikel darüber, wie man die meiste Leistung aus einem Gigabit-Netzwerk herausholt. Die Fakten, die dort zu finden sind, sind selbst unterhalb der Gigabit-Geschwindigkeit ziemlich aufschlussreich.

Wichtigste Ergebnisse

  • Die Blowfish-Chiffre ermöglicht insgesamt die beste Geschwindigkeit. Die optimale MTU in einem Gigabit-Netzwerk betrug 48000 .
  • Selbst mit der AES-256-Verschlüsselung können Sie eine bessere Geschwindigkeit erzielen, indem Sie MTU 24000 anstelle der Standardeinstellung verwenden.
0xC0000022L
quelle
-3

Ich hatte auch das Problem> Ich habe versucht, von einem Windows 7-Client über OPENVPN auf eine SAMBA-Freigabe zuzugreifen. Am Anfang konnte ich auf die verschiedenen Verzeichnisse zugreifen, aber als ich versuchte, eine Datei zu öffnen, war dies nur mit 1kb-Textdateien möglich , keine Chance mit pdf oder docx - dann habe ich den Parameter mssfix zur openvpn-Datei hinzugefügt> auch kein Unterschied .. dann habe ich versucht, mit der Menge an MTU und mssfix herumzuspielen, schließlich hatte ich eine MTU von 1500 und habe mssfix auf verringert 500 und Voila> dann konnte ich Dateien öffnen, durch die Verzeichnisse stöbern und der SSH-Tunnel löste sich auch nicht mehr auf ...

Christian
quelle