Hyper-V Netzwerkkonfiguration inklusive NAT-Netzwerk

Der Virtualisierer Hyper-V von Microsoft bringt verschiedene Einstellungsmöglichkeiten für virtuelle Netzwerke und virtuelle Switche mit. Es lassen sich rein virtuelle Netzwerke oder auch virtuelle Netzwerke, die mit dem Netzwerk des Hostsystems verbunden sind, betreiben. Der folgende Artikel heschäftigt sich daher mit der Hyper-V Netzwerkkonfiguration.

Hinweis:
Getestet wurde dieser Artikel unter Windows 10 Version 1703 und Windows Server 2016 Version 1607.

Kurzübersicht über Netzwerkanbindungen in Hyper-V

Es lassen sich diverse Netzwerkmodi für die virtuellen Maschinen konfigurieren:

Hyper-V Manager für virtuelle Switche

Hinweis:
Darüber hinaus gibt es noch die Möglichkeit ein NAT-Netzwerk zu konfigurieren. Da dieser Netzwerkmodus nur per PowerShell konfiguriert werden kann, ist dieser nicht im obogen Bild zu sehen.

Eine schnelle Übersicht über die Netzwerkeinstellungen vermittelt folgende Tabelle:

Netzwerktyp Zugriff: Host – Gast Zugriff: Gast – Gast Zugriff: Gast – externes Netzwerk
Extern Ja Ja Ja, beide Richtungen
Intern Ja Ja Nein
Privat Nein Ja Nein
NAT-Netzwerk Nein Ja Ja, Gast -> externes Netzwerk

Netzwerkmodus Extern

In diesem Modus bekommen virtuelle Maschinen direkten Zugriff auf das Hostnetzwerk. Die virtuelle Maschine wird direkt mit der virtuellen Netzwerkkarte an das Netzwerk des Hosts angeschlossen. Die Kommunikation funktioniert daher in beiden Richtungen. Bei der Kunfiguration kann ein Netzwerkadapter des Hosts gewählt werden:

Hyper-V Netzwerkmodus Extern

Netzwerkmodus Intern

Die virtuellen Maschinen können in diesem Modus untereinander und mit dem Hyper-V Host kommunizieren. Eine Kommunikation mit dem externen Netzwerk ist hier nicht möglich. Es werden keine IP-Adressen, wie etwa in VirtualBox automatisch vergeben. Die IP-Konfiguration muss also nach der Installation manuell vorgenommen werden.

Netzwerkmodus Privat

Der Netzwerkmodus Privat ist mit dem Netzwerkmodus Internes Netzwerk in VirtualBox vergleichbar. Die Gäste (VMs) können also nur untereinander kommunizieren und nicht mehr dem Host oder dem externen Netzwerk. Wie bei dem Netzwerkmodus Intern, vergibt Hyper-V auch hier keine dynamischen IP-Adressen.

Netzwerkmodus NAT-Netzwerk

Mit Version 1607 von Windows 10 und Windows Server 2016 hat Microsoft Hyper-V um den neuen Netzwermodus NAT-Netzwerk erweitert. Allerdings kann dieser Modus derzeit nur über die Windows PowerShell konfiguriert werden.

In diesem Modus können die virtuellen Maschinen untereinander und mit dem externen Netzwerk kommunizieren. Damit die virtuellen Maschinen in diesem Modus untereinander kommunizieren können, müssen diese dem selben NAT-Netzwerk angehören. Bevor der virtuellen Maschine ein NAT-Netzwerk zugewiesen werden kann, muss ein NAT-Netzwerk vorhanden sein. Dazu sind einige Schritte mit einer administrativen Windows PowerShell durchzuführen.

Zunächst muss ein neuer interner Switch erstellt werden.

Hyper-V PowerShell internen Switch erstellen

Der neue Switch taucht nachher auch als neuer Netzwerkadapter in den Netzwerkverbindungen unter Windows auf. Alternativ können die virtuellen Switche auch mit dem Cmdlet Get-VMSwitch abgefragt werden.

Als nächstes ist das NAT-Gateway einzurichten. Dafür muss man zunächst den Interface Index des zuvor erstellten Switches heraussuchen und mit New-NetIPAddress das NAT-Gateway erstellen. Der Parameter IPAddress bestimmen, welche IP-Adresse als Gateway in das externe Netzwerk dienen soll. Der Parameter PrefixLength ist wichtig, da später das NAT-Netzwerk noch genauer definiert wird und das Gateway sich im NAT-Netzwerk befinden muss, damit die Kommunikation in das externe Netzwerk problemlos möglich ist.

Hyper-V NAT-Gateway erzeugen

Wenn der Befehl erfolgreich abgeschlossen wurde, hat der entsprechende Netzwerkadapter auf dem Host auch schon die IP-Adresse zugewiesen bekommen. Diese IP-Adresse dient später bei den virtuellen Maschinen als Gateway.

Das eigentliche NAT-Netzwerk wird schließlich mit folgendem Befehl erzeugt:

Hinweis:
Natürlich lässt sich für das NAT-Netzwerk auch ein anderer IP-Adresskreis verwenden. Dann sind die IP-Adressen in den oberen Befehlen natürlich entsprechend anzupassen.

Schließlich lässt sich das NAT-Netzwerk (bzw. der NAT-Switch) in den Eigenschaften der VM auswählen:

Portweiterleitungen einrichten

Die VMs des NAT-Netzwerkes können jetzt mit dem externen Netzwerk kommunizieren. Andersherum funktioniert die Kommunikation nicht. Wenn man dennoch bestimmte Dienste in einem NAT-Netzwerk von außerhalb erreichen möchte, muss man mit der PowerShell Portweiterleitungen einrichten.

In diesem Beispiel wird eine Portweiterleitung eingrichtet, die den Port 80 von beliebiger Quell-IP-Adresse auf den Port 80 der VM 192.168.0.2 weiterleitet:

Hyper-V Portweiterleitung einrichten

Wenn man jetzt mehrere Portweiterleitungen für eine aufeinanderfolgende Range einrichten möchte, geht das mit folgendem Snippet:

Das obige Snippet würde eine Portweiterleitung für die Ports 1500 bis 1600 für TCP und UDP einrichten.

Mit Get-NetNatStaticMapping lassen sich alle eingerichteten Portweiterleitungen anzeigen. Wenn die Liste unübersichtlich oder zu lang wird, kann die Ausgabe weiter eingeschränkt werden. Dafür setzen wir einen Filter auf die gewünschte Eigenschaft von NetNatStaticMapping. In diesem Beispiel werden alle Portweiterleitungen mit dem externen Port 80 angezeigt:

Ausgabe der Portweiterleitungen filtern

Über die ID lässt sich dann auch eine gewünschte Portweiterleitung wieder entfernen:

Beitrag kommentieren

Bitte verfasse einen Kommentar.

Dein Kommentar wird vor der Freischaltung von einem Admin moderiert.