Docker – Container in eigenem VLAN

Der Container im VLAN

Einen Docker-Container in einem eigenen VLAN zu betreiben, kann wünschenswert sein, wenn dieser beispielsweise in einer DMZ (VLAN) platziert werden soll:

VLAN11 entspricht hier einer DMZ

Normalerweise sind Docker-Container gebridget und unter der IP des Hosts erreichbar. Nun könnte man auch den (physischen) Host im DMZ-VLAN platzieren. Wenn jedoch mehrere Container auf dem Host betrieben werden sollten und sich jeder Container in einem dedizierten DMZ-VLAN befinden sollte, stößt man an Grenzen.

 

bridge: The default network driver. If you don’t specify a driver, this is the type of network you are creating. Bridge networks are usually used when your applications run in standalone containers that need to communicate. Quelle: Docker-Dokumentation

 

Abhilfe schafft der sogenannte „macvlan“-Treiber von Docker. Mit diesem kann man der Schnittstelle des Containers eine eigene IP und eine eigene VLAN-ID zuweisen. Damit erreicht man die Trennung zwischen Host/LAN und Container/DMZ.

Dazu müssen zwei Schritte getätigt werden – eine „Configuration“ und eine „Creation“ muss angelegt werden.
Das folgende Beispiel wurde mit Portainer erstellt, über das CLI ist es jedoch 1:1 genauso umsetzbar.

 


 

1. Unter Networks eine „Configuration“ anlegen:

 


 

2. Unter Networks eine „Creation“ anlegen:

 


 

3. Unter Containers dem gewünschten Container diese „Creation“ zuweisen:

 

Aber nun ist der Container nur noch über den VLAN-Tag 11 und die IP 10.89.1.18 erreichbar.
Ein Portmapping entfällt, da der Container über eine dedizierte IP verfügt. Die gewünschten Ports müssen direkt im Container konfiguriert werden.

 

Im Host wird das über Docker erstelle Interface auch angezeigt:

 

WICHTIG: Zum physischen Host (hier zum eth0-Interface) muss nun ein VLAN-Trunk führen!
Auf dem über das Native-VLAN (untagged) der physische Host erreichbar ist, sowie das VLAN11, welches zum Container durchgereicht wird.

Sollt der Host auch über einen VLAN-Tag erreichbar sein, bzw. sollten mehrere Container (in mehreren VLANs) erreichbar sein, muss die Konfiguration entsprechend angepasst werden.

 


 

Die weiteren Aufgaben sind nun noch den VLAN-Router/Switch konfigurieren, damit zu/vom Container geroutet wird.
Dies übersteigt aber den Umfang dieses Artikels und ist im Detail vom verwendeten System abhängig.

 

 

Referenzen:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.