Tags: Netzwerk, DHCP, Windows Server 2016, Container
So wie VMs eines Hyper-V-Hosts an einen virtuellen Switch angeschlossen werden, brauchen auch Container die Anbindung an ein virtuelles Netzwerk. Zwei Netzwerktechniken spielen dabei ein wichtige Rolle, zum einen die Netzwerkadressenübersetzung (NAT) und das transparente Netzwerk mit DHCP.
Die Anleitung Windows Server 2016 Container erstellen beschreibt das Erstellen eines Containers, jedoch ohne die nötige Netzwerkanbindung. Damit ein Container mit der Außenwelt kommunizieren kann, sind aber weitere Schritte nötig. Deshalb schließe ich ihn an ein transparentes Netzwerk an und kann dadurch die notwendige Netzwerkadresse von einem DHCP-Server beziehen.
Die Konfiguration im Labor besteht aus zwei VMs auf einem Hyper-V-Host. Eine hostet den DHCP Service mit einem Adresspool von 172.16.5.101 bis 172.16.5.150 /24 und die andere führt das Container-Feature aus. Über einen virtuellen Switch kommunizieren beide miteinander.
Transparentes Container-Netzwerk einrichten
Wurde der Container erfolgreich erstellt, dann baut man via PowerShell eine Remote-Sitzung mittels Enter-PSSession auf. Mit der Session bewegt man sich somit im Container selbst. Ein ipconfig ergibt dort keine brauchbaren Werte und auch ein Install-WindowsFeature quittiert den Dienst mit der Fehlermeldung: The required \"NetworkAdapters\" property was not found.
Somit steht man nun unweigerlich vor der Notwendigkeit, das Netzwerk zu konfigurieren. Beginnend mit einem
New-ContainerNetwork -Name LabDHCP -Mode Transparent -NetworkAdapterName LAN-HV
richte ich das Container-Netzwerk generell im transparenten Modus ein. Remove-ContainerNetwork kann dieses wieder entfernen und Get-ContainerNetwork zeigt ein eventuell konfiguriertes Netzwerk an.
Virtuellen Netzwerkadapter zu Container hinzufügen
Dem zuvor erstellten Windows Server Container wird dann im ausgeschalteten Zustand der fehlende Netzwerkadapter hinzugefügt, ein Hot-Add ist anders als bei VMs unter Hyper-V dabei noch nicht möglich.
Add-ContainerNetworkAdapter -ContainerName "WPRO-C-03" -Name "Adapter" -NetworkName LabDHCP
fügt den Adapter in den Beispiel-Container WPRO-C-03 ein und schließt ihn an das Container-Netzwerk LabDHCP an. Remove-ContainerNetworkAdapter entfernt diesen wieder und ein Get-ContainerNetworkAdapter zeigt bereits konfigurierte Adapter an.
Container starten, Netzwerk prüfen und MAC-Spoofing aktivieren
Unmittelbar im Anschluss an die Konfiguration der virtuellen Netzwerkkarte kann der Labor-Container wieder mit
Start-Container -Name "WPRO-C-03"
gestartet und mit
Enter-PSSession -ContainerName "WPRO-C-03"
dort eine Sitzung geöffnet werden.
Nach erster Prüfung der IP-Adresse des Containers stellt sich heraus, dass dieser keine gültige Adresse aus unserem DHCP-Pool bekommen hat. Stattdessen zeigt ipconfig eine IPv4 APIPA (Automatic Private IP Adressing) aus dem Bereich 169.254.x.x.
Erst ein Aktivieren des MAC-Address-Spoofings auf dem Hyper-V-Host für die Container-Labor-Maschine schließt die Konfiguration erfolgreich ab:
Get-VMNetworkAdapter -VMName VM-CH-01 | Set-VMNetworkAdapter -MacAddressSpoofing On
schaltet das Spoofing für unseren Container-Host an. Eine erneute PowerShell-Verbindung in den Container und ein ipconfig /release und /renew bewirkt dann die Zuteilung einer Adresse aus dem gewünschten Bereich. Auch am DHCP-Server sollte der Container-Hostname mit der Client-IP-Adresse unter Adressleases zu erkennen sein.
Web-Server im Container installieren und testen
Nachdem der Windows Server Container eine gültige IP aus dem DHCP-Bereich bekommen hat, lässt sich nun beispielsweise ein Web-Server im Container bereitstellen. Damit dieser installiert werden kann, ist es wichtig, die PSSession als Administrator auszuführen. Also öffnen wir eine Remote-Sitzung zum Labor-Container mit
Enter-PSSession -ContainerName “WPRO-C-03“ -RunAsAdministrator
und fügen nun über die Feature-Installation den Web-Server hinzu. Dafür rufen wir
Install-WindowsFeature Web-Server
auf. Mit
Get-WindowsFeature -Name Web*
lässt sich dann die Installation verifizieren.
Bevor nun der Browser mit der Container-IP geöffnet werden kann, muss die eingehende Firewall-Regel für Port 80 (http) gesetzt sein. Anschließend sollten sich die IIS (Internet Information Services) präsentieren.
Täglich Know-how für IT-Pros mit unserem Newsletter
Marcel Küppers arbeitet seit über 25 Jahren in der IT, aktuell als Team Leader, zuvor als Consultant und Infrastructure Architect unter anderem für den japanischen Konzern JTEKT/TOYODA mit Verantwortung über die Europastandorte Krefeld und Paris.
Darüber hinaus wirkte er als Berater im EU-Projekt-Team für alle Lokationen des Konzerns mit und ist spezialisiert auf hochverfügbare virtualisierte Microsoft-Umgebungen plus Hybrid Cloud Solutions.
Zertifizierungen: MS Specialist und MCTS für Hyper-V/SCVMM, MCSE, MCITP, MCSA. Zusätzlich zertifiziert für PRINCE2 Projektmanagementmethode.
Verwandte Beiträge
Weitere Links