DockerContainer soll PiHole als DNS nutzen

Geeky26

Commander
Registriert
Jan. 2015
Beiträge
2.209
Ich beschreibe euch mal meinen Server

ein Rechner (192.168.1.10) der als NAS (host), Medienserver (host, Docker) und PiHole (192.168.1.11, Docker) dient.
Docker ist auch installiert. Images sind PiHole, Portainer und Jellyfin.

Alle Rechner bekommen die DNS-IPs von meinem Router. Alternativ, wenn PiHole offline ist, wird 1.1.1.1 genutzt.
Wenn der Jellyfin Container gestartet ist und ich über Portainer eine Console des Containers öffne, steht in /etc/resolv.conf die IP des PiHoles und 1.1.1.1.

Ein Ping aus dieser Konsole heraus oder auch über Putty vom eigentlichen Server auf die PiHole IP schlägt immer fehlt.
Das heißt die Services und selbst der NAS-PC selber können nicht auf 192.168.1.11 zugreifen. Woran liegt das und wie behebe ich das, dass das NAS auf den PiHole (wie gesagt auch auf dem NAS als Docker mit eigener IP) zugreifen kann?
 
Bin mir gerade nicht sicher, wie mir die Seite helfen soll?

Das Problem ist, dass der Host nicht auf den PiHole zugreifen kann. Beides ist derselbe PC, nur dass PiHole ein Docker mit eigener IP ist.
 
jokakilla schrieb:
sondern einen Docker Container Pihole als DNS Server nutzen lassen.
Das unter anderem. Aber das Hauptproblem besteht darin, dass der Host selbst den PiHole auch nicht anpingen kann.
 
Ah sorry wer lesen kann ist klar im Vorteil.

Also Pihole läuft auch als Docker Container?

Andere PCs im Netz können den Pihole DNS aber erreichen ja? Falls nicht ist vielleicht das Portmapping vom Pihole Docker Container verkehrt.

Wie sieht denn im Docker Deine Netzwerkkonfiguration aus? Ich habe meine Container alle in einem Bridge Network:

778449
 
jokakilla schrieb:
Also Pihole läuft auch als Docker Container?
Exakt. Mit eigener IP.

Andere PCs im Netz können den Pihole DNS aber erreichen ja?
Jedes Gerät außer das NAS selber auf dem der PiHole im Docker läuft können den PiHole erreichen.

Wie sieht denn im Docker Deine Netzwerkkonfiguration aus?
Nach einem Tutorial habe ich den PiHole Docker in ein eigenes "Netzwerk" mit eigener IP gebracht.
NAS: 192.168.1.10, PiHole Docker: 192.168.1.11 (auf dem NAS).

Bei Bridge ist bei mir keiner drin. Bei Host JellyFin, Portainer und WatchTower, bei "PiHole" (macvlan) der PiHole.

Wäre es eine Lösung den PiHole direkt auf dem NAS zu installieren statt in einem Docker?
Direkt auf meinem NAS läuft sonst nur noch Webmin (Port 10000) und OpenMediaVault (Port 8881)
 
Zuletzt bearbeitet:
Was bringt denn der bridge mode? Oder host mode? Würde das irgendwas helfen, damit das NAS den PiHole sieht? Wie gesagt, dass ist dasselbe Gerät.
 
Geeky26 schrieb:
Exakt. Mit eigener IP.
Warum hast du das eigentlich so gelöst?

Mit welcher Config/Befehl hast du den Pi-Hole-Container gestartet?

Wie sieht deine Routing-Konfiguration des Servers aus?
 
Das war ein Tutorial, keine Ahnung.

Mit welcher Config/Befehl hast du den Pi-Hole-Container gestartet?
Damit setze ich mich gar nicht auseinander und nutze Portainer. Das macht fast alles einfacher.

Wie sieht deine Routing-Konfiguration des Servers aus?
Wenn ich wüsste was du meinst :D dd-wrt, alles Standard bis auf, dass der den DNS auf meinen PiHole lenkt.
 
Zuletzt bearbeitet:
Geeky26 schrieb:
Damit setze ich mich gar nicht auseinander und nutze Portainer. Das macht fast alles einfacher.
Wie hast du denn den Container in Portainer erstellt? Musstest du da gar nichts eingeben?
Geeky26 schrieb:
Wenn ich wüsste was du meinst
Dann verbinde dich mal per SSH auf den Server und führe
Bash:
route -n
aus. Ausgabe hier bitte posten.
 
Ich glaube ich kann aber einen Erfolg verzeichnen!
Ich habe PiHole mit diesem Tutorial neu installiert: https://homenetworkguy.com/how-to/install-pihole-on-raspberry-pi-with-docker-and-portainer/#img5

PiHole läuft jetzt im Brige modus statt im eigenen Netzwerk. Wenn ich mich mit dem NAS verbinde und ping <irgendwas was geblockt wird> eingebe, sehe ich im PiHole Webinterface diesen geblockten Eintrag.
Ich muss noch weitere Tests machen aber ich glaube das funktioniert jetzt so.

Ich musste nur noch zusätzlich /etc/resolv.conf anpassen und nameserver 127.0.0.1 reinschreiben. Da steht leider nach jedem Neustart die DNS-IP drin, die mein Router automatisch ausgibt.

Zerstoerer schrieb:
routre -n ... Ausgabe hier bitte posten.
route gibts nicht. Nur dpkg -S /sbin/route und die Ausgabe beinhaltet alles außer netzwerk-relevante Sachen.

Zusammenfassend kann man sagen, dass jetzt alles funktioniert! Das lag am container modus der jetzt auf bridge steht. Was ich nur noch ausschalten muss ist, dass sich mein NAS nicht mehr die DNS-IP vom Router ausliefern lässt. Fragt sich nur wie.
Ich habs jetzt mal in /etc/systemd/resolved.conf versucht und dort DNS auf 127.0.0.1 und Fallback auf 1.1.1.1 gestellt. Un /etc/resolv.conf nameserver auch auf diese IPs. Mal sehen was das gibt.
 
Zuletzt bearbeitet:
Was läuft denn auf dem NAS?
Ich nehme mal an es handelt sich um ein QNAP/Synology oder ähnliches? Da müsste man das doch über das Webinterface machen können oder?

Oder ist das X86 Hardware mit einem Linux wie Ubuntu oder CentOS? Dann ist es wohl von der Distribution abhängig.
Ergänzung ()

Btw. mir gefällt der Bridge Modus für die private Umgebung besser.
So sind alle Container (sofern man die Ports passend weiterleitet) über die IP des Docker Systems erreichbar.

Scheint soweit ja auch bei dir zu funktionieren thumbs up
 
Das ist ein normaler PC. Sowas wie QNAP würde ich nie kaufen.

Ich bin noch am testen. Was alles drauf läuft steht im Eingangspost. PiHole, WatchTower, JellyFin, Portainer. Ich habe versucht auch die anderen Container auf bridge umzustellen aber dann laufen DNS-Anfragen aus diesen Containern heraus nicht wieder über den PiHole. Aktuell sind alle Host mode bis auf der PiHole. Nur so scheinen die anderen Container einschließlich das NAS selber mit dem PiHole Container kommunizieren zu können.
 
Zurück
Oben