Docker macvlan bridge

MACVLAN creëert meerdere virtuele netwerkinterfaces met verschillende MAC-adressen. Op deze manier, als je systeem meerdere IP-adressen met MAC-adressen heeft, kunnen we meerdere virtuele netwerkinterfaces maken die elk hun eigen IP-adres en MAC-adres hebben.

MACVLAN hoeft geen mac-adressen van de systemen binnen het netwerk te leren (identificeren) om verkeer te verdelen, aangezien het elk Mac-adres kent, dit maakt het snel en gemakkelijk in te stellen dan een bridge-type netwerk.

Problemen met poortbinding van docker-containers:

Voordelen van MACVLAN:

MACVLAN-netwerk maken:

Voorbeeld:

Host-IP: 192.168.182.130

Hostsubnet: 192.168.182.0

Gastheermasker: 24

Hostgateway: 192.168.182.2

Host ethernet-interface: ens33

docker network create -d macvlan -o macvlan_mode=bridge --subnet=192.168.182.0/24 --gateway=192.168.182.2 -o parent=ens33 macvlan_bridge

Bovenstaande opdracht maakt netwerk met de naam 'macvlan_bridge'. Controleer goed jouw gegevens dat die overeenkomen en pas de opdracht op jouw omgeving aan.

Een container draaien met het 'macvlan_bridge'-netwerk:

Voorbeeld:

Host bevat meerdere openbaar toegankelijke IP-adressen met MAC-adressen.

Extra IP/MAC host: 192.168.182.10/00:50:56:00:60:42

docker run --name cont1 --net=macvlan_bridge --ip=192.168.182.10 --mac-address 00:50:56:00:60:42 -itd nginx

Voorbeeld zonder MAC-adres:

docker run --name cont2 --net=macvlan_bridge --ip=192.168.182.11 -itd nginx

Voorbeeld van een andere container:

docker run --name cont3 --net=macvlan_bridge --ip=192.168.182.12 -itd httpd

Controleer of de containers draaien met:

docker ps

Controleer op IP-adres in je URL:

Om de container en de netwerk instellingen te controleren gaan we met docker inspect de container instellingen bekijken.

docker container inspect cont2
"Networks": {
"macvlan_bridge": {
"IPAMConfig": {
"IPv4Address": "192.168.182.11"
},
"Links": null,
"Aliases": [
"f68a60aba763"
],
"NetworkID": "d6adfdaa0159d03df6a5106c7d5b397283af35a41424f9daf7fa25cf3140d5c3",
"EndpointID": "286a9f6bf98384e426e703c4124e2135537c6a4bc1bde5dc7879e7b1338b505b",
"Gateway": "192.168.182.2",
"IPAddress": "192.168.182.11",
"IPPrefixLen": 24,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:c0:a8:b6:0b",
"DriverOpts": null