VMware Netzwerk zwischen Host und Gastsystem langsam

VMware ist eine nette Virtualisierungslösung. Allerdings kann es unter bestimmten Umständen Probleme geben bei der Kommunikation zwischen Host- und Gastbetriebssystem. Ursache sind Probleme mit der TCP-Offload-Funktionalität. Das Symptom dieses Problems ist eine sehr langsame Verbindung zwischen Host- und Gastsystem. Auffallen kann dies, wenn man Dateien zwischen den beiden Systemen überträgt. Komischerweise sind beide Systeme aber nach außen hin (ins Netzwerk) mit voller Geschwindigkeit zu erreichen.

Falsche Netzwerkkarte im virtuellen Gastsystem

Es kann sein, dass die Standard Netzwerkkarte, die von VMware für das Gastsystem gesetzt wird nicht korrekt funktioniert. VMware verwendet die AMD PCnet Netzwerkkarte.
Um dies zu ändern muss man die *.vmx-Datei bearbeiten und den Eintrag der Netzwerkkarte auf z.B. Intels E1000 umstellen:

ethernet0.virtualDev = "e1000"

Problem: Scalable Networking Pack

Wie im Artikel von Microsoft Support unter offene Probleme beschrieben, kann es auch Probleme mit dem Scalable Networking Pack für Windows 2003 kommen. Microsoft empfiehlt die TCP-Chimney-Offloading-Funktionalität zu deaktivieren. Dazu muss man in der Eingabeaufforderung folgendes eingeben:

netsh int ip set chimney disabled

TCP Offload von Netzwerkkarten

In meinem Fall war es die Netzwerkkarte, die die langsame Kommunikation zwischen beiden Systemen verursachte. Zum Beheben muss man in der Treiberkonfiguration Large Send Offload deaktivieren. Je nach Netzwerkkartenhersteller kann die Bezeichnung auch anders lauten.

Hinweis:  Evtl. muss der Server neu gestartet werden!

TCP Offload deaktivieren
TCP-Offload deaktivieren (Broadcom)

Problembehebung unter Linux

Auch mit Linux als Hostsystem kann dieses Problem auftreten. Hier kann man TCP-Offload mit ethtool ausschalten.

# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: on

Hier sieht man das TCP-Segmentation an ist. Mit dem folgenden Befehl lässt sich die Checksummen- und TCP-Offload-Funktion ausschalten:

# ethtool -K eth0 sg off rx off tx off tso off

Weitere Ursachen wären mir nicht bekannt. Falls jemand doch noch eine Fehlerquelle ausfindig gemacht hat, bitte als Kommentar posten. Man lernt nie aus…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Du kannst diese HTML-Tags und -Attribute verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>