#setup macvlan für routing Fritz > ReverseProxy > Docker-macvlan > container
if ! ifconfig LASmacvlan0; then
echo LASmacvlan0 is down, setting up!
ip link add LASmacvlan0 link eth0 type macvlan mode bridge
ip addr add 192.168.0.93/32 dev LASmacvlan0
ip link set LASmacvlan0 up
else
echo LASmacvlan0 is up, nothing to do!
fi
# DHCP Fritzbox .2 - .92
# service1.fritz.box
ip route add 192.168.0.127 dev LASmacvlan0
# service2.fritz.box
ip route add 192.168.0.130 dev LASmacvlan0
Das SKript sieht irgendwie merkwürdige aus...
Die idee von
ip addr add 192.168.0.93/32 dev LASmacvlan0
ist dem Host ein zusätzliches macvlan Child Interface zu verpassen, damit er dann mit der zusätzlich eingetragenen Route mit den anderen macvlan Child Interfaces kommunizieren kann. Das wird genutzt, um das Kernel-Sicherheitsfeature zu umgehen, dass verhindert, dass ein Macvlan Parent Interface mit einem Child Interface kommunizieren kann und umgekehrt. Für andere Geräte im LAN hat es null Bedeutung oder Auswirkung. Die Container können den Host dann übrigens auch über diese IP erreichen.
Allerdings frage ich mich, wie es gehen soll, wenn es /32 verwendet und somit in einem Netzwerk mit einer einzelnen IP ist. Es sollte schon dieselb Bit-Maske wie das Docker macvlan verwenden und eine IP aus dem Bereich sein. Dann braucht man nämlich auch nicht je ip ein
ip route add
, sondern einmal für die Range.
Auf der Fritzbox braucht man dann entsprechend gar nichts.