kalafoto - stock.adobe.com

Fünf von Containern unterstützte Windows-Netzwerktreiber

Für Windows- und Hyper-V-Container gibt es fünf Netzwerktreiber, etwa für NAT, L2 Bridging und Tunneling sowie Overlay-Netzwerke. Sie decken unterschiedliche Anwendungsfälle ab.

Insgesamt stehen fünf Windows-Netzwerktreiber für Container zur Auswahl. Diese unterstützen NAT, L2-Bridging, L2-Tunneling, transparente und Overlay-Netzwerke. Bevor Sie einem Windows- oder Hyper-V-Container einen bestimmten Treiber zuweisen, sollten Sie sich aber mit den jeweiligen Anwendungsfällen vertraut machen.

Container nutzen Host-Netzwerke, um Networking für Containeranwendungen zu implementieren. Doch Container implementieren auch unterschiedliche Typen virtueller Netzwerke, um die Binnenkommunikation und die Kommunikation von intern nach extern zu ermöglichen. Jeder Windows-Container beginnt mit einem virtuellen Netzwerkadapter. Sie können diesen virtuellen Netzwerkadapter über die fünf Typen von Windows-Netzwerktreibern verbinden, die im Container verfügbar sind.

Vor der Implementierung von Networking für Container lohnt sich ein genauerer Blick auf die zur Wahl stehenden einzelnen Netzwerkoptionen. Vielleicht möchten Sie wissen, welchen Netzwerktreiber Sie verwenden können, damit Container imstande sind, miteinander zu kommunizieren. Oder Sie wollen Containeranwendungen mit öffentlichem Zugriff realisieren. Wenn Sie die Container-Funktion auf einem Windows-Rechner mit Hyper-V aktivieren, erstellt das System in Hyper-V einen neuen virtuellen Netzwerkadapter (Network Interface Card, NIC). Dann verbindet es alle Container-NICs von Windows oder Hyper-V mit dem virtuellen Hyper-V-Switch.

Network Address Translation (NAT)

Dies ist die Default-Networking-Option für Container. Der NAT-Treiber ermöglicht Port Forwarding. Das bedeutet, Sie können Traffic vom Container an den Host weiterleiten, um Anwendungen Zugriff auf externe Netzwerke zu erlauben. Wenn Sie die Container starten, erhält jeder Container vom NAT-Treiber oder einem von Ihnen festgelegten benutzerdefinierten Netzwerk eine IP-Adresse. Der Windows-Treiber, WinNAT, ist verantwortlich für das Durchreichen der Netzwerkkommunikation von Containern an den Host oder externe Anwendungen. Sie können NAT in Produktionsumgebungen einsetzen. Allerdings müssen Sie dabei einige Einschränkungen berücksichtigen. Mehrere Subnetze werden nicht unterstützt, außerdem fehlt eine automatische Netzwerkkonfiguration. Alle Netzwerke, die Sie auf dem Host-Rechner anlegen, stehen auch Windows-Containern zur Verfügung.

Transparente Containernetzwerke

Wenn Sie wollen, dass Ihr Container oder Ihre Containeranwendungen sich direkt mit physischen Netzwerken verbinden, bietet sich ein transparentes Netzwerk an. Ein transparentes Netzwerk erhält seine IP-Adresse und Optionen von einem externen DHCP-Server (Dynamic Host Configuration Protocol). Sie können transparenten Netzwerken auch statische IP-Adressen zuweisen. Mit dem Befehl docker network lässt sich ein transparentes Netzwerk anlegen, aber Sie müssen den Parameter -d transparent angeben, wie nachfolgend gezeigt:

Docker network create –d transparent ProdCustomNet

Dieser Befehl bewirkt, dass ProdCustomNet eine IP-Adresse vom DHCP-Server erhält. Das nächste Kommando hingegen erstellt das transparente Netzwerk mit einer IP-Adresse und Werten für das Subnetz:

Docker network create –d transparent –subnet=172.20.20.0/24 –gateway=172.20.20.0/24 ProdCustomNet

Wenn Sie einen Container in einer virtuellen Maschine (VM) unter Hyper-V ausführen und eine statische IP-Adresse mit einem transparenten Netzwerk nutzen möchten, müssen Sie den Parameter MACAddressSpoofing aktivieren, um Netzwerk-Traffic von mehreren MAC-Adressen zuzulassen.

L2-Bridging und L2-Tunneling

Netzwerke auf Basis von L2-Bridging und L2-Tunneling eignen sich ideal, wenn Sie vorhaben, Hyper-V-Netzwerkvirtualisierung oder Software-defined Networking (SDN) zu nutzen. Wie der Name bereits verrät, ist L2 in der Lage, die Adressübersetzung auf Layer 2 vorzunehmen. Sie können L2-Bridging- und L2-Tunneling-Netzwerken in Containern nur statische IP-Adressen zuweisen. Wenn Sie ein Cloud-Hosting-Provider sind oder unterschiedliche Mandanten haben, die L2-Bridging- oder L2-Tunneling-Netzwerke in Containern anlegen, ist es sinnvoller, Overlay-Netzwerke zu verwenden, um die Kommunikation zwischen mehreren Hosts zu ermöglichen. Um ein L2-Bridging-Netzwerk zu erstellen, geben Sie den Parameter -d l2bridge an, wie im nachstehenden Befehl gezeigt:

Docker network create –d l2bridge –subnet=172.20.20.0/24 –gateway=172.20.20.1 ProdL2BridgeNet

Overlay-Containernetzwerke

Falls Sie Container im Schwarmmodus bereitstellen, können mehrere Container, die dem gleichen Overlay-Netzwerk zugeordnet sind, über mehrere Container-Hosts kommunizieren. Das System konfiguriert jedes Overlay-Netzwerk mit einem privaten Adressbereich und einem eigenen Subnetz.

Welches Container-Netzwerk sollten Sie verwenden?

Es gibt etliche Anwendungsfälle für Windows-Netzwerktreiber. Sie können zum Beispiel NAT für Entwicklungszwecke und transparente Containernetzwerke zusätzlich für kleine bis mittlere Installationen nutzen. L2-Bridging-Netzwerke eignen sich für SDN-Umgebungen, während L2-Tunneling sich für die Verbindung zu Azure-Netzwerken empfiehlt. Overlay-Netzwerke schließlich sind prädestiniert, um Schwarm-Cluster bereitzustellen, und wenn Sie möchten, dass Container untereinander über Hosts kommunizieren dürfen.

Nächste Schritte

Netzwerk konfigurieren für Docker unter Windows

So finden Sie das beste Netzwerkmodell für Container

Der Unterschied zwischen SDN und Overlay-Netzwerk

Erfahren Sie mehr über Software-defined Networking