Docker pihole funktioniert nach Installation des Virtual Machine Managers nicht mehr

AQAres

Benutzer
Mitglied seit
19. Dez 2019
Beiträge
49
Punkte für Reaktionen
6
Punkte
8
Hallo,

ich habe meine DS1821+ vor ein paar Wochen eingerichtet und einen Docker Container mit einem Pihole nach dieser Anleitung installiert. Das Ganze funktionierte seit dem ohne Probleme. Alle Clients im Netzwerk bei denen ich die IP der DiskStation als DNS Server konfiguriert habe, konnten prima werbefrei surfen.

Nun habe ich auf der DiskStation den Virtual Machine Manager installiert sofort danach funktionierte auf allen Clients der Internetzugriff nicht mehr. Das heißt aufrufe per Domain schlugen fehl, direkte IP Aufrufe funktionierten weiterhin. Stellte man auf einem Client einen anderen DNS Server ein, funktionierte der Zugriff sofort wieder. Es scheint also ein Problem mit dem Pihole zu geben.

Per Wireshark kann man auch gut sehen, dass DNS Anfragen weiter an die DS gesendet werden, von dort aber keine Antwort mehr kommt.

Ob die Installation des VMM wirklich der Auslöser für die Probleme war oder der zeitliche Zusammenhang nur Zufall ist, kann ich nicht sicher sagen. Ich habe allerdings den Verdacht, dass der VMM irgendwas an den Netzwerkeinstellungen geändert hat.

Neustart des Docker Containers und auch der gesamten DS ändert an dem Problem nichts. Ebenso die Deinstallation des VMM.

Nach einigem Herumprobieren habe ich auf der Pihole Admin Seite (erreichbar über die DS IP mit dem Pihole Port, also z.B. http://192.168.2.100:8081/admin) unter "Settings/DNS/Interface listening behavior" die Option von "Listen only on interface eth0" auf "Listen on all interfaces" geändert. Damit funktioniert die DNS Auflösung über die DS + Pihole wieder.

Die Frage ist jetzt: Was hat sich an der DS geändert, dass diese Options-Änderung für die weitere Funktion des Piholes notwendig wurde? Hat die Installation des VMM etwas an den Netzwerkeinstellungen geändert, was das erklären könnte?

Ich kenne mich zwar ein wenig mit Netzwerk und Terminal aus, aber nicht so soweit, dass ich hier selbst tieferen Nachforschungen angehen könnte.

Auch sind meine Docker Kenntnisse sehr begrenzt. Kann ich z.B. irgendwie feststellen (Terminal des Docker Containers, etc.) ob die DNS Anfragen überhaupt im Docker Container ankommen?

Über einen kurzen Tipp würde ich mich daher sehr freuen!
 

blurrrr

Benutzer
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
Docker hat erstmal nix mit VMM zu tun, aber wenn bei VMM openvswitch aktiviert wird, ändern sich die Netzwerkschnittstellen-Zuordnungen, da kann es dann gut sein, dass die Bindung des Docker-Containers noch an der falschen Schnittstelle klebt:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000
link/ether 00:11:32:xx:xx:xx brd ff:ff:ff:ff:ff:ff

ovs_eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1
link/ether 00:11:32:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 169.254.34.46/16 brd 169.254.255.255 scope global ovs_eth0

So sieht es mit aktiviertem openvswitch aus. Was sofort auffällt, ist die Tatsache, dass eth0 gar keine IP mehr hat, dafür ist nun ein Interface namens "ovs_eth0" vorhanden und das wird jetzt (anstelle von eth0) vom DSM als Schnittstelle in Bezug auf die Kommunikation (IP, etc.) benutzt. Heisst kurzum: Das was Docker ggf. vorher als Schnittstelle benutzt hat, hat jetzt gar keine IP-Informationen mehr. Ergo muss beim Docker die Schnittstelle quasi von eth0 auf ovs_eth0 geändert werden, bzw. k.a. wie es da läuft, aber wenn Du dort etwas "auswählen" kannst (Haken setzen?) - einmal alles abwählen, speichern, Docker neustarten (oder ganzes NAS) und danach nochmal die Schnittstelle zuweisen. Bin mir nicht sicher, aber es kann auch sein, dass die Schnittstelle nach wie vor so heisst, wie sie hiess (aber nur unter DSM), Docker das zwar richtig "anzeigt", aber unter der Haube eben doch das falsche Interface gespeichert ist. Daher einmal alles abwählen und neu setzen, damit dann auch unter der Haube das korrekte Interface zugewiesen wird.
 

AQAres

Benutzer
Mitglied seit
19. Dez 2019
Beiträge
49
Punkte für Reaktionen
6
Punkte
8
Hallo blurrrr und vielen Dank für den Tipp. Mit einem ifconfig im Terminal konnte ich sehen, dass bei mir eth0 auch keine IP mehr hat und stattdessen scheinbar ovs_eth0 verwendet wird.

Das ändert sich auch nicht, wenn der VMM wieder deinstalliert wird. Wie es vor der ersten Installation des VMM war kann ich leider nicht sagen, da ich mir die Netzwerkkonfiguration noch nie so im Detail angeschaut habe.

Hat jemand einen Tipp wie ich Docker hier generell wieder auf die richtige Spur bringe? Bei der Erstellung das Docker Containers aus dem Image wähle ich als Option nur "Dasselbe Netwerk wie Docker Host verwenden" aus. Die Möglichkeit hier explizit eine Netzwerkschnittstelle zu verwenden gibt es scheinbar nicht.

Aus dem Image einen neuen Container zu erstellen und zu starten ändert nichts. Ebenso wie ein Neustart des vorhandenen Containers oder des gesamten NAS.

Für den pihole Container konnte ich das Problem ja wie beschrieben umgehen. Ich würde aber gerne besser verstehen, was hier intern schief läuft bzw. wie ich das richtig konfiguriere, um später Probleme mit anderen Docker Container zu vermeiden.
 

stulpinger

Benutzer
Mitglied seit
27. Mai 2009
Beiträge
734
Punkte für Reaktionen
141
Punkte
69
Durch die VM auf der DS heißen bei mir die Schnittstellen auch ovs_eth0 usw. , merkt man bei "normalen" Docker-Containern nicht, dass die Schnittstelle anders heißt
Habe natürlich auch einiges probiert bzgl. Docker und pihole, bin dann nach folgender Anleitung vorgegangen :)
Keine Angst, link kommt am Ende meines Beitrages
Folgende Vorteile:

pihole bekommt eine eigene fixe IP ! d.h in weiterer Folge merkt pihole nicht, dass die Schnittstelle anders heißt ...

ich muß nicht bei jedem Client den DNS manuell eintragen

auf dem Router habe ich für den DNS im lokalem Netz die IP-Adresse des pihole eingetragen
als zweiten DNS 8.8.8.8 für den Fall, sollte pihole nicht funktionieren oder gerade upgedated werden
man kann natürlich einen weiteren pihole (Docker,Raspi, VM etc.) als DNS eintragen, Synchronisierung beider piholes wird im Video auch super erklärt

Nachteile: wenn man dies als Nachteil bezeichnen kann:

etwas mehr Konfigurationaufwand bzgl. Netzwerk, zusätzlicher Container für Portainer (ist auf jeden Fall ein Vorteil :))

Video ist auf deutsch, der Moderator scheint ganz kompetent zu sein ...

https://www.youtube.com/watch?v=mARLVbJcsmY
Bei der Netzwerkkonfig im Video statt eth0 natürlich ovs_eth0 angeben
 

stulpinger

Benutzer
Mitglied seit
27. Mai 2009
Beiträge
734
Punkte für Reaktionen
141
Punkte
69
und endlich jemand, der dieses macvlan "Zeug" verständlich erklärt .....
 

Tim Taylor

Benutzer
Mitglied seit
31. Mrz 2016
Beiträge
34
Punkte für Reaktionen
1
Punkte
8
Ich hatte auch auf einmal ovs_eth0 im Docker, jetzt habe ich es gefunden um es wieder umzustellen.
In der Synology: Systemsteuerung/Netzwerk /Netzwerkschnittstelle/Verwaltung und da
Open vSwitch-Einstellungen, Open vSwitch-Einstellungen deaktivieren.
Jetzt hat man wieder eth0. ;)
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Ich beschreibe hier ein ähnliches Problem. Obwohl ich die Schnittstelle des Containers auf ovs_ethX geändert habe, ist das Setup nur eingeschränkt nutzbar.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat