Moin,
ich habe mich nun durch einige gute und auch einige völlig irreführende Dokumentationen und Tutorials gequält.
Das erste, was funktionierte, war die Erstellung eines neuen Interfaces (mit belibigen Namen) mittels systemd-networkd auf meinem Host und dann die Verwendung des gleichnamigen innerhalb docker-compose.
Nach weiterem Lesen fand ich dann heraus, dass ich gar keine Einstellungen am Host-Interface vornehmen muss, solange ich innerhalb von docker die Namenskonvention eth0.50 beibehalte.
Danach lief es auch gleich mit mehreren VLANs. Zuerst habe ich macvlan als Treiber verwendet und nun ipvlan (einen wirklichen Unterschied konnte ich nicht feststellen)
(Der Trunk mit ALLEN Vlans war natürlich die ganze Zeit vom Router/Switch hin zum Host aktiv)
Final habe ich zwei Konfigurationen, die beide funktionieren:
Eigentlich ist es 2x das gleiche, wollte der Übersichtshalber die nicht gebrauchten Commentare drin lassen.
DENN was ich NICHT hinbekomme ist, dass ich den Container in 3 Netzen erreiche (2x direkt über die IP und 1x über den host 192.168.1.111:8080)
Alle Anleitungen und auch die künstliche Intelligenz behaupten, dass die Konfiguration funktionieren müsste (sobald ich alles einkommentiere)
Doch es sind immer nur die VLANs erreichbar und wenn ich explizit "host" hinzufüge, dann meckert er, dass es nur einen host Treiber geben darf.
Hat Jemand eine Idee?
Der Praktische Nutzen sei erstmal dahingestellt, aber ich möchte es verstehen. Wenn beides gleichzeitig einfach technisch nicht geht, bin ich auch zufrieden
LG Oekel
ich habe mich nun durch einige gute und auch einige völlig irreführende Dokumentationen und Tutorials gequält.
Das erste, was funktionierte, war die Erstellung eines neuen Interfaces (mit belibigen Namen) mittels systemd-networkd auf meinem Host und dann die Verwendung des gleichnamigen innerhalb docker-compose.
Nach weiterem Lesen fand ich dann heraus, dass ich gar keine Einstellungen am Host-Interface vornehmen muss, solange ich innerhalb von docker die Namenskonvention eth0.50 beibehalte.
Danach lief es auch gleich mit mehreren VLANs. Zuerst habe ich macvlan als Treiber verwendet und nun ipvlan (einen wirklichen Unterschied konnte ich nicht feststellen)
(Der Trunk mit ALLEN Vlans war natürlich die ganze Zeit vom Router/Switch hin zum Host aktiv)
Final habe ich zwei Konfigurationen, die beide funktionieren:
YAML:
version: "3"
services:
nginx-test:
image: docker.io/nginx
container_name: nginx-test
ports:
- 8080:80
#networks:
#ipvlan_network_20:
#ipv4_address: 192.168.2.202
#ipvlan_network_iot:
#ipv4_address: 192.168.5.202
restart: unless-stopped
#networks:
#ipvlan_network_20:
#driver: ipvlan
#driver_opts:
#parent: eth0.20 # Specify the host interface with automatic vlan attachment
#ipam:
#driver: default
#config:
#- subnet: 192.168.2.0/24
#ipvlan_network_iot:
#driver: ipvlan
#driver_opts:
#parent: vlan-iot # Specify the vlan interface (previously manually created on host)
#ipam:
#driver: default
#config:
#- subnet: 192.168.5.0/24
YAML:
version: "3"
services:
nginx-test:
image: docker.io/nginx
container_name: nginx-test
#ports:
#- 8080:80
networks:
ipvlan_network_20:
ipv4_address: 192.168.2.202
ipvlan_network_iot:
ipv4_address: 192.168.5.202
restart: unless-stopped
networks:
ipvlan_network_20:
driver: ipvlan
driver_opts:
parent: eth0.20 # Specify the host interface with automatic vlan attachment
ipam:
driver: default
config:
- subnet: 192.168.2.0/24
ipvlan_network_iot:
driver: ipvlan
driver_opts:
parent: vlan-iot # Specify the vlan interface (previously manually created on host)
ipam:
driver: default
config:
- subnet: 192.168.5.0/24
Eigentlich ist es 2x das gleiche, wollte der Übersichtshalber die nicht gebrauchten Commentare drin lassen.
DENN was ich NICHT hinbekomme ist, dass ich den Container in 3 Netzen erreiche (2x direkt über die IP und 1x über den host 192.168.1.111:8080)
Alle Anleitungen und auch die künstliche Intelligenz behaupten, dass die Konfiguration funktionieren müsste (sobald ich alles einkommentiere)
Doch es sind immer nur die VLANs erreichbar und wenn ich explizit "host" hinzufüge, dann meckert er, dass es nur einen host Treiber geben darf.
Hat Jemand eine Idee?
Der Praktische Nutzen sei erstmal dahingestellt, aber ich möchte es verstehen. Wenn beides gleichzeitig einfach technisch nicht geht, bin ich auch zufrieden
LG Oekel