VMPlayer als Experimental-Maschine¶
Man braucht für erste Experimente nicht gleichen einen realen PC, sondern kann die ersten Schritte mit dem kostenlosen VMPlayer unternehmen. Der Player bildet einen virtuellen PC nach. Neben einem virtuellen Mainboard mit BIOS und IDE-Schnittstelle werden Grafik-, Sound- und Netzwerkkarten in Software emuliert. Für die virtuellen Netzwerkkarten besteht die Möglichkeit mittels PXE zu booten. Das soll hier ausgenutzt werden. Der VMplayer ist auf das Abspielen bereits vorhandener VMware-Images ausgerichtet. Das stellt für die beschriebene Anwendung aber kein kein Problem dar. Da ja eine Maschine ohne Festplatte über das Netz booten soll, ist auch kein virtuelles Plattenlaufwerk notwendig.
Die Konfigurationsdatei muss man per Hand erstellen, weil der komfortable Assistent der kostenpflichtigen Workstation vorbehalten bleibt. Bei der Player-Konfiguration handelt es sich um eine einfache Textdatei, die sich mit jedem beliebigen Editor erstellen oder bearbeiten lässt. Der derzeit einfachste Weg zum Installationspaket führt direkt auf die VMware-Site. Die Seite zum Player erreicht man bequem über die Leiste Products -> VMware Player. Hier lautet auch schon der erste Link, „Download VMware Player“. Die Installation via RPM möglich bei RedHat oder SuSE-Linux sollte den Admin vor keine größeren Probleme stellen. Anschliessend muss man die notwendigen Kernelmodule erzeugen und eine Konfiguration für die virtuellen Netzwerke erstellen. Diese Aufgabe übernimmt „vmware-config.pl“. Wurden diese Vorgänge erfolgreich abgeschlossen, kann man das Programm mit „vmplayer“ starten. Das öffnet sofort einen Dateidialog in welchem man eine passende Konfigurationsdatei, diese hat üblicherweise die Endung *.vmx, auswählen kann. Eine solche Datei könnte wie folgt aussehen:
#!/usr/bin/vmplayer displayName = "Novell SuSe Linux" guestOS = "suse" config.version = "8" virtualHW.version = "4" memsize = "660" numvcpus = "1" ide0:0.present = "TRUE" ide0:0.fileName = "/dev/cdrom1" ide0:0.deviceType = "cdrom-raw" ide0:1.present = "FALSE" ide0:1.fileName = "" ide0:1.deviceType = "cdrom-raw" scsi0.present = "FALSE" ethernet0.present = "TRUE" ethernet0.addressType = "static" ethernet0.connectionType = "bridged" ethernet0.address = "00:50:56:0D:03:0D" sound.present = "TRUE" sound.virtualDev = "es1371" usb.present = "TRUE" usb.generic.autoconnect = "TRUE" floppy0.present = "TRUE" floppy0.fileName = "/dev/fd0" floppy1.present = "TRUE" floppy1.fileType = "file" floppy1.fileName = "/tmp/floppy.img" floppy1.startConnected = "TRUE" parallel0.present = "FALSE" serial0.present = "FALSE" tmpDirectory = "/tmp/vmware" mainMem.useNamedFile = "FALSE" tools.syncTime = "TRUE" redoLogDir = "/tmp/vmware" hints.hideAll = "TRUE" logging = "FALSE" isolation.tools.hgfs.disable = "FALSE" isolation.tools.dnd.disable = "TRUE" isolation.tools.copy.enable = "TRUE" isolation.tools.paste.enabled = "TRUE" gui.restricted = "TRUE" pref.hotkey.shift = "TRUE" pref.hotkey.control = "TRUE" pref.hotkey.alt = "TRUE" svga.maxWidth = "1024" svga.maxHeight = "768"VMware (die Workstation und der Player) kennt drei Typen von Netzwerkeinstellungen, die man für jedes Gastbetriebssystem einstellen kann. Die drei Varianten sehen wie folgt aus:
- Bridged Networking – das Gastbetriebssystem ist mit einer Softwareswitch mit der Netzwerkkarte der Hostmaschine direkt verbunden. Deshalb gibt es hierfür kein sichtbares korrespondierendes vmnet-Interface unter Linux. Unsichtbar wird vmnet0 benutzt. Das bedeutet, dass das Client-System vom selben DHCP-Server bedient werden kann, wie die Host-Maschine auf der der Player läuft. Die MAC-Adresse kann man der Konfigurationsdatei entnehmen. Eine Stolperfalle gibt es in diesem Setup: Ist kein Netzwerkkabel am Host-Rechner angeschlossen, können Gast- und Gastgeber nicht im Bridged-Mode miteinander kommunizieren.
- NAT – Im Modus Network Address Translation wird ein Software-Ethernet zwischen Host und Client aufgesetzt. Hierfür ist das vmnet8-Interface zuständig. Die Linux-Maschine übernimmt das Routing der Pakete in die anderen Netze, an die sie angeschlossen ist. Dieses müssen keine Ethernets sein. Die Gäste tauchen nur maskiert unter der IP-Adresse der Linux-Maschine in den anderen Netzen auf. Dafaultmäßig startet das Runlevel-Skript /etc/init.d/vmware (bei SuSE und vergleichbaren Linuxes an dieser Stelle) einen DHCP-Server auf vmnet8. Die Konfiguration dieses DHCP-Servers liegt unterhalb von /etc/vmware/vmnet8. Die Festlegung des IP-Raumes für das virtuelle Ethernet und die Basiskonfiguration des DHCP-Servers erfolgt durch vmware-config.pl.
- Host Only – In diesem Modus wird lediglich ein virtuelles Ethernet aufgesetzt, welches in keiner Weise mit der Aussenwelt verbunden wird. Dieses Netzwerk endet auf der Seite des Linux-Gastgebers auf vmnet1. Auch hier wird ein DHCP-Server für ein vorher durch vmware-config.pl festgelegtes Netzwerk gestartet. Die Konfiguration für diesen erfolgt in der /etc/vmware/vmnet1/dhcpd/dhcpd.conf.
Für das oben konfigurierte Gastsystem ist die Standardeinstellung "Bridged Networking" aktiv. Der Gast selbst merkt jedoch keinen Unterschied, welche Art eines konfigurierten Netzwerkes auf der anderen Seite wartet.