crashbandicot
Commander
- Registriert
- Dez. 2013
- Beiträge
- 3.039
- 19. Mai 2024
- #1
Hi,
ich bin gerade beim Umbau meines kleinen Homelabs und komme nicht weiter. Bis vor ein paar Stunden lief PiHole auf einem Synology NAS (192.168.1.200). Neben PiHole liefen weitere Container (z.B. Speedtest-Tracker).
Ich habe diese beiden Container vom NAS auf ein kleinen Debian Server (192.168.1.201) migriert. Seitdem funktioniert die Docker-interne DNS Auflösung nicht mehr.
Von meinem Client aus:
~ >>> nslookup startpage.com
Server: 192.168.1.201
Address: 192.168.1.201#53Non-authoritative answer:
Name: startpage.com
Address: 145.131.132.72
Vom Debian aus:
crash@debian:~$ nslookup startpage.com
Server: 192.168.1.201
Address: 192.168.1.201#53Non-authoritative answer:
Name: startpage.com
Address: 145.131.132.72
Aus dem Speedtest-Tracker-Container heraus:
Ohne Angabe eines DNS-Servers: Fehler 🚫
root@e96a34d96944:/# nslookup startpage.com
Server: 127.0.0.11
Address: 127.0.0.11:53;; connection timed out; no servers could be reached
Mit Angabe des Debian / PiHole Servers: Fehler 🚫
root@e96a34d96944:/# nslookup startpage.com 192.168.1.201
;; connection timed out; no servers could be reached
Mit Angabe der FritzBox: Funktioniert ✅
root@e96a34d96944:/# nslookup startpage.com 192.168.1.1
Server: 192.168.1.1
Address: 192.168.1.1:53Non-authoritative answer:
Name: startpage.com
Address: 37.0.81.241
Ein "ping" geht aber durch (FritzBox / Debian Server)
root@e96a34d96944:/# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=63 time=1.252 ms
64 bytes from 192.168.1.1: seq=1 ttl=63 time=0.881 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.881/1.066/1.252 msroot@e96a34d96944:/# ping 192.168.1.223
PING 192.168.1.223 (192.168.1.223): 56 data bytes
64 bytes from 192.168.1.223: seq=0 ttl=64 time=0.139 ms
64 bytes from 192.168.1.223: seq=1 ttl=64 time=0.143 ms
^C
--- 192.168.1.223 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.139/0.141/0.143 ms
Die Docker-Netzwerke sind nicht manuell angelegt worden und alle vom Typ "DRIVER: Bridge" sowie "SCOPE: local". Jeder Docker-Container befindet sich in seinem eigenen Netzwerk.
Ich habe dann testweise ein neues Docker Netzwerk angelegt und PiHole sowie Speedtest-Tracker an dieses gehängt. Anschließend waren ping und nslookup mit angegebenen DNS-Server erfolgreich.
root@26cbb1fee303:/# ping 172.25.0.3
PING 172.25.0.3 (172.25.0.3): 56 data bytes
64 bytes from 172.25.0.3: seq=0 ttl=64 time=0.207 ms
64 bytes from 172.25.0.3: seq=1 ttl=64 time=0.149 ms
^C
--- 172.25.0.3 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.149/0.178/0.207 msroot@26cbb1fee303:/# nslookup startpage.com 172.25.0.3
Server: 172.25.0.3
Address: 172.25.0.3:53Non-authoritative answer:
Name: startpage.com
Address: 145.131.132.84Non-authoritative answer:
Ohne Angabe des DNS-Servers hingegen nicht.
root@26cbb1fee303:/# nslookup startpage.com
Server: 127.0.0.11
Address: 127.0.0.11:53;; connection timed out; no servers could be reached
Die resolv.conf aus dem Container:
root@26cbb1fee303:/# cat /etc/resolv.conf
# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.nameserver 127.0.0.11
search fritz.box
options ndots:0# Based on host file: '/etc/resolv.conf' (internal resolver)
# ExtServers: [192.168.1.201]
# Overrides: []
# Option ndots from: internal
Ich habe den Durchblick verloren und weiß nicht mehr wo ich noch etwas machen kann.
R
riversource
Commander
- Registriert
- Juli 2012
- Beiträge
- 3.060
- 19. Mai 2024
- #2
127.0.0.11 kann natürlich nicht funktionieren. Das musst du auf jeden Fall anpassen.
Welche IP hat der Speedtest-Tracker?
crashbandicot
Commander
Ersteller dieses Themas
- Registriert
- Dez. 2013
- Beiträge
- 3.039
- 19. Mai 2024
- #3
riversource schrieb:
Welche IP hat der Speedtest-Tracker?
172.25.0.2
riversource schrieb:
127.0.0.11 kann natürlich nicht funktionieren. Das musst du auf jeden Fall anpassen.
Wie bekomme ich Docker dazu, dies für alle Container zu korrigieren und für neue direkt richtig zu hinterlegen?
oicfar
Commander
- Registriert
- Juni 2020
- Beiträge
- 2.510
- 19. Mai 2024
- #4
Das Problem hatte ich auch. Mein Pi-Hole war auf dem Mini-Server und da liefen auch Docker-Container. Bei manchen Docker-Containern kann man es lösen, wenn man
Code:
--network=host
setzt. Aber das klappt nicht bei jedem Container. Ich habe es am Ende so gelöst, dass Pi-Hole bei mir in einem LXC Container unter Proxmox läuft und ich muss nicht immer irgendwelche Anpassungen machen.
R
riversource
Commander
- Registriert
- Juli 2012
- Beiträge
- 3.060
- 19. Mai 2024
- #5
crashbandicot schrieb:
172.25.0.2
Und der DNS Server kennt den Weg dahin? Gibt es entsprechende Roufen?
crashbandicot schrieb:
Wie bekomme ich Docker dazu, dies für alle Container zu korrigieren und für neue direkt richtig zu hinterlegen?
Wieso Docker? Wenn du selber die DNS Konfiguration änderst, musst du das auch selber anpassen.
Azghul0815
Commodore
- Registriert
- Dez. 2019
- Beiträge
- 4.386
- 19. Mai 2024
- #6
Ich nutze, wie @oicfar , Proxmox und LXC. Hatte mit Docker auch hin und wieder Netzwerk issues
crashbandicot
Commander
Ersteller dieses Themas
- Registriert
- Dez. 2013
- Beiträge
- 3.039
- 19. Mai 2024
- #7
Ich bin gerade über die Lösung oder zumindest einen guten Workaround gestolpert: Anpassung der resolv.conf auf dem Debian.
crash@debian:~$ cat /etc/resolv.conf
domain fritz.box
search fritz.box
nameserver 127.0.0.1
nslookup auf Debian erfolgreich:
crash@debian:~$ nslookup startpage.com
Server: 127.0.0.1
Address: 127.0.0.1#53Non-authoritative answer:
Name: startpage.com
Address: 37.0.81.241
Und auch im Container:
root@6c04379d286a:/# cat /etc/resolv.conf
# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.nameserver 127.0.0.11
search fritz.box
options ndots:0# Based on host file: '/etc/resolv.conf' (internal resolver)
# ExtServers: [host(127.0.0.1)]
# Overrides: []
# Option ndots from: internalroot@6c04379d286a:/# nslookup startpage.com
Server: 127.0.0.11
Address: 127.0.0.11:53Non-authoritative answer:
Name: startpage.com
Address: 37.0.81.241Non-authoritative answer:
Quelle: https://discourse.pi-hole.net/t/sol...-containers-when-using-docker-pihole/31413/13
Etwas unorthodox, funktioniert für mich aber.
oicfar
Commander
- Registriert
- Juni 2020
- Beiträge
- 2.510
- 19. Mai 2024
- #8
crashbandicot schrieb:
Quelle: https://discourse.pi-hole.net/t/sol...-containers-when-using-docker-pihole/31413/13
Etwas unorthodox, funktioniert für mich aber.
Die Änderung habe ich auch. Trotzdem gab's bei mir Container, wo es nicht funktioniert hat.
crashbandicot
Commander
Ersteller dieses Themas
- Registriert
- Dez. 2013
- Beiträge
- 3.039
- 19. Mai 2024
- #9
Komisch, denn vorher auf dem NAS lief alles ohne Probleme und "Taschenspielertricks". Aufgesetzt und fertig.
A
atze303
Lieutenant
- Registriert
- März 2019
- Beiträge
- 543
- 19. Mai 2024
- #10
Falls der weg über /etc/resolv.conf nicht klappt, oder ein Network Manager sie überschreibt. Kannn man die Container auch mit --dns starten.
crashbandicot
Commander
Ersteller dieses Themas
- Registriert
- Dez. 2013
- Beiträge
- 3.039
- 23. Mai 2024
- #11
Ich habe noch einmal eine grundlegende Frage: wie bekomme ich die Startreihenfolge der einzelnen Container festgelegt? Konkret geht es mir darum, dass PiHole als zentraler DNS Server als erstes gestartet werden muss, bevor andere Container starten (die über DNS auf andere Dienste zugreifen). Steht DNS nicht zur Verfügung, bricht nahezu sämtliche Kommunikation zusammen.
oicfar
Commander
- Registriert
- Juni 2020
- Beiträge
- 2.510
- 23. Mai 2024
- #12
Du kannst in Docker-Compose die Startreihenfolge (depends) setzen. Aber unter den Containern ist mir keine Lösung bekannt.
A
atze303
Lieutenant
- Registriert
- März 2019
- Beiträge
- 543
- 24. Mai 2024
- #13
Bei Podman mache ich das über systemd scripte. Sollte auch mit Docker funtionieren Jeder container jat ein init script um die pods zu starten
Du musst dich einloggen oder registrieren, um hier zu antworten.