Transparentes Container-Netzwerk in Windows Server 2016 konfigurieren

    Netzwerke in Windows Server 2016 ContainerSo wie VMs eines Hyper-V-Hosts an einen virtuellen Switch angeschlossen werden, brauchen auch Container die Anbindung an ein virtuelles Netzwerk. Zwei Netzwerk­techniken spielen dabei ein wichtige Rolle, zum einen die Netzwerk­adressen­übersetzung (NAT) und das trans­parente Netz­werk mit DHCP.

    Die Anleitung Windows Server 2016 Container erstellen beschreibt das Erstellen eines Containers, jedoch ohne die nötige Netzwerk­anbindung. 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 Netzwerk­adresse 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.

    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 trans­parenten Modus ein. Remove-ContainerNetwork kann dieses wieder entfernen und Get-ContainerNetwork zeigt ein eventuell konfiguriertes Netzwerk an.

    Transparentes Container-Netzwerk einrichten

    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.

    Virtuellen Netzwerkadapter im Container konfigurieren

    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.

    Ein ipconfig liefert eine APIPA-Adresse

    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.

    Windows Server Container bezieht seine IP-Adresse nun über DHCP.

    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.

    Die IIS (Internet Information Services) melden sich aus dem Container.

    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.

    Keine Kommentare