! IP-Kollidierung bei Netbird verhindern (192.168.x und 10.1.x)
Falls eine IP-Adresse aus einem anderen Subnetz nicht erreichbar ist, kann es daran liegen, dass eine Docker-Bridge mit diesem Subnetz vorhanden ist.
Beispiel: Von einem Hetzner Server möchte ich das Subnetz 192.168.5.0/24 erreichen. Der Ping klappt nicht.
Debuggen mit
ip route get 192.168.5.55
ergibt zb
root@fn-01:~# ip route get 192.168.5.55
192.168.5.55 dev br-ebe13ac6d23b src 192.168.0.1 uid 0 cache
weiteres debugging:
# Netbird Status
netbird status --detail
# Routing-Tabelle analysieren
ip route show
ip route get 192.168.5.55
# ergibt zb
# root@fn-01:~# ip route get 192.168.5.55
# 192.168.5.55 dev br-ebe13ac6d23b src 192.168.0.1 uid 0 cache
# ^^^^ DA IST DER FEHLER, die Docker-Netzwerk-Bridge br-ebe13ac6d23b sorgt für das Routing und schlägt damit fehl
# Netbird Interface prüfen
ip addr show wt0
sudo iptables -L -v -n | grep -A 10 wt0
# Netbird logs
sudo journalctl -u netbird -f
sudo systemctl status netbird
# Ping mit Details
ping -I wt0 192.168.5.55
traceroute 192.168.5.55
docker network ls
ergibt
root@fn-01:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
396e4a7a02a8 backrest_default bridge local
9f3a5b5f9017 beszel_default bridge local
7ff0d869b3a9 bitwarden_default bridge local
944ac8eea6b1 bridge bridge local
8a7ecea723cd bs_default bridge local
56847cda68c7 heimdall_default bridge local
23c9d0945209 host host local
dc6107d2a414 nextcloud-aio bridge local
10cf7e670c62 nextcloud_default bridge local
4918f3559a98 nginx_lowqart_default bridge local
1e7aaa5ae6b2 none null local
6703ef3d8a62 ollama_default bridge local
15659627c007 paperless-ai_default bridge local
f02f912a0898 paperless_default bridge local
e29d199145fc reverseproxy_network bridge local
9e294e453ecb semaphore_default bridge local
f1dde6f30b1f shlink_default bridge local
c7750a87eef4 syncthing_default bridge local
f0e08f4a4c7c uptimekuma_default bridge local
c85d048db1b1 vikunja_default bridge local
57cd332f96b1 windmill_default bridge local
ebe13ac6d23b zerobyte_default bridge local
# ^^^ fehlerhafte bridge
docker network inspect ebe13ac6d23b
ergebnis: die docker network bridge nimmt 192.168.0.0/20 als subnet, was 192.168.5.0/24 inkludiert.
lösung für die Problem-Bridge:
docker-compose von zb zerobyte
...
- /var/lib/docker:/backup-var-lib
- /mnt/fn-volume-01:/backup-fn-volume-01
networks:
- zerobyte_network # <<< wichtig
volumes:
app:
networks:
zerobyte_network:
driver: bridge
ipam:
config:
- subnet: 172.69.19.0/24
gateway: 172.69.19.1
danach wird die alte bridge mit 192.168.0.0/20 gelöscht und eine neue mit subnet 172.69.19.0/24 erstellt.
Dauerhafte lösung
nano /etc/docker/daemon.json
{
"default-address-pools": [
{
"base": "172.16.0.0/12",
"size": 20
}
],
"data-root": "/mnt/fn-volume-01/docker-data",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
}
sudo systemctl restart docker
sudo systemctl status docker