Windows Server 2016 und Windows 10 – virtuelles NAT Switch

Mit Windows Server 2016 und Windows 10 in der Version 1511 wurde endlich eine Möglichkeit implementiert virtuelle Switche fähig zu machen. Über Sinn und Unsinn in einer produktiven Umgebung kann man sich streiten. Für Test-Szenarien am Windows 10 Client aber auch für Testumgebungen im eignen Windows Rechenzentrum können sie dennoch ein Rolle spielen. Test man zum Beispiel das Restore einer VM oder prüft vorab diverse Update-Szenarien so bietet sich ein virtuelles -Switch zum isolieren von der Produktivumgebung durchaus an.

Dabei ist dir Umsetzung nur über die möglich. Als erstes benötigen wir ein virtuelles Switch vom Typ „internal“. Dies geht weiterhin über die GUI oder mit folgendem Cmdlet:

Für die weiteren Schritte benötigen wir den Interface-Index des gerade neu angelegtem virtuellen Switch. Dies geht mit folgendem Cmdlet:

In meinem Beispiel hat das virtuelle Switch den Namen „intern NAT“ mit dem Interface-Index 25. Jetzt vergeben wir dem Adapter eine IP-Adresse. Diese stellt quasi das Gateway für das interne virtuelle Netz da. Das bedeutet die VMs welche mit dem virtuellen Netzwerk „intern NAT“ verbunden sind müssen sich in meinem Beispiel im Netz 10.10.10.0/24 befinden und als Gateway dann die IP 10.10.10.1 eintragen. Dazu folgender Befehl:

Damit das ganze dann auch funktioniert brauchen wir noch ein NAT-Objekt. Dieses enthält noch einmal das interne Netzwerk für welches das NAT-Objekt gültig ist. Die Angabe erfolgt mit Netz-ID und Präfix.

Für das NAT aus dem virtuellen Netzwerk in das LAN oder WAN reicht das dann schon aus. Ein Test mit TRACERT zeigt den Verlauf des Paketes:

Dabei nutzt meine VM die IP 10.10.10.5 und das Standardgateway 10.10.10.1. Dabei wird komplett auf eigene Hyper-V Netzwerke mit dedizierten Netzwerkkarten, eine durch den Gast und die VM geteilte Netzwerkkarte oder weitere aktive Routing-Komponenten verzichtet.

Wer das Ganze jetzt auch noch in die andere Richtung will also vom LAN aus in das virtuelle Netz muss ähnlich wie bei einer Firewall oder einem NAT-Router denken. Der physische Host ist dann der Endpunkt. Dabei sieht ein Befehl zum erstellen einer eingehenden NAT-Regeln dann zum Beispiel so aus:

Der Parameter „ExternalIPAddress“ stellt den Endpunkt auf dem Host da. Bei 0.0.0.0 hört der Host auf alle verfügbaren IP-Adressen. Der „ExternalPort“ ist der Port auf welchen der physische Host auf Anfragen lauscht. Mit „InternalPort“ währe ein Destination-NAT zu einem alternativen Port möglich. Fehlt der Parameter wird die Anfrage eins zu eins weitergeleitet. Dann noch das Protokoll TCP oder UDP und das Ziel innerhalb des virtuellen Netzes.

Viel Spaß beim probieren!

Schreibe einen Kommentar

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