Von Docker Bridge LAN auf Macv LAN zugreifen
Problem
Ich hatte Pihole (ein DNS Server) als Docker Container auf einem root Server im LAN unter Debian aufgesetzt. Um Konflikte um den entsprechenden DNS Port 53 zu vermeiden habe ich beide in einem Macv LAN mit je eigener IP aufgesetzt und al lokale DNS Server für unser LAN im DHCP Server eingetragen. Das funktioniert auch wunderbar, ausser für Docker Container auf dem selben Server die nicht im selben Macvlan sondern auf der ursprünglichen Server IP laufen, die konnten nicht auf Pihole zugreifen.
Mein LAN sieht so aus:
- LAN: 192.168.1.0/24
- Gateway und DHCP: 192.168.1.1
- DHCP Bereich 192.168.1.65 – 99
- Maclvan: 192.168.1.48/28
- IP von Pihole: 192.168.1.50
Lösung
Man muss einfach nur dem Server auf dem Docker läuft eine Route einrichten die den Zugriff auf das Macvlan zulässt. Dazu muss man nur einige Einträge in /etc/network/interfaces vornehmen die ich hier kurz erkläre.
Zunächst sollte der Docker Server eine statische IP Adresse haben (bei mir 192.168.1.4). Das geht mit folgendem Eintrag in /etc/network/interfaces :
auto eth0 iface eth0 inet static address 192.168.1.4 netmask 255.255.255.0 gateway 192.168.1.1 dns-domain local.home dns-nameservers 192.168.1.50
Natürlich müsst ihr das für euren Server und euer LAN anpassen
Suche dir eine IP Adresse in deinem LAN aus die ausserhalb der DHCP IP Range liegt und nicht anderweitig vergeben, also permanent frei ist. Bei mir war das 192.168.1.64.
Schaue mit ip a nach wie dein Netzwerk device heisst auf dem die IP deines Docker Servers läuft. Oft ist das eth0 oder enp3s0 oder so.
Jetzt in /etc/network/interfaces folgende Einträge vornehmen:
# Route zum Dockerm Macvlan damit z.B. Pihole auf der selben Maschine erreichbar ist. post-up ip link add mcvl0 link eth0 type macvlan mode bridge post-up ip addr add 192.168.1.64/32 dev mcvl0 post-up ip link set mcvl0 up #pihole post-up ip route add 192.168.1.50/32 dev mcvl0
Wobei mcvl0 ein frei auszuwählender Name ist, eth0 der Name eures Netzwerk devices (s.o.) ist, 192.168.1.64 die feie IP in eurem LAN ist.
192.168.1.50 ist in meinem Fall die IP vom Pihole. Für jeden Docker Container im Macvlan den ihr mit dieser Methode vom Docker Bridge LAN erreichen wollt müsst ihr einen entsprechenden Eintag machen wie für den Pihole mit der entsprechenden IP.
PS
Wie immer: alles was ihr tut geht auf eure Verantwortung!
Wie das mit dem Network Manager (nmtui und nmcli) geht weiss ich nicht und auch nicht mit IPv6.
Have Fun!!!
Neueste Kommentare