Docker Container vom eigenen nicht erreichbar

Teuti

Cadet 4th Year
Registriert
Okt. 2017
Beiträge
107
Hallo, ich betreibe Pihole mit Unbound in einem Docker-Container in einem macvlan Netzwerk. Pihole läuft und ist von allen Geräte ausser dem Pi 4 auf dem der Pihole läuft zu erreichen. Dass heißt also, ich kann Pihole von überall mit Ping erreichen bis auf den Host. Dadurch klappt auf dem Host auch nicht die DNS-Auflösung, sodaß auch keine Updates mehr gefahren werden können. Die DNS Auflösung auf allen anderen geräten klappt, also heise.de, chip.d oder Andere. Hat jemand das Problem schon mal gehabt und kann mir einen Tip geben. Wie gesagt, Pihole klappt und blockt auch die gewollten Seiten. Danke in vorraus
 
Zuletzt bearbeitet:
wie hast du denn pihole/den router konfiguriert? also wer macht DHCP und gibt die routen vor...oder wird der DNS manuell bei jedem gerät eingegeben?
 
Moin, i.d.R. können Container untereinander nicht kommunizieren, hierfür müsstest du die Container zusammen per Compose starten, oder ein Network für alle erstellen. Der Host selber sollte dem Container aber DNS-Anfragen stellen können, die würden dann ja an localhost:53 gehen (davon ausgehend, dass der Container Port 53 auf den Host-Port 53 gemappt ist).
 
Vielleicht hat das mit deinem VLAN was zu tun.
Muss der Host auch Pihole eingebunden haben? Sonst kannst du ja einfach manuell in den Netzwerkeinstellungen den Router als DNS angeben. Dann sollten auch wieder die Updates funktionieren.

@Telvanis
Wieso sollte ein Container nicht den anderen erreichen können? Aber darum geht es hier eigentlich gar nicht.
 
@wahli weil das doch gerade der Sinn von Containern ist. Abgeschottete Bereiche auf dem gleichen Host, die aber eigenständig für sich arbeiten und ohne vorherigen Konfiguration auch keine anderen Bereiche erreichen.
 
@Telvanis
Wenn zwei Container im gleichen Netzwerk hängen, dann sind die untereinander erreichbar. Natürlich nur über Netzwerkdienste. Z. B. kann ich in einem Container einen ping zum anderen machen, wenn beide im gleichen Netzwerk sind.

@Teuti
Ich habe gerade mal von meinem Proxmox-Host einen ping zu meinem pihile Container abgesetzt und das funktioniert ohne Probleme.
 
Telvanis schrieb:
weil das doch gerade der Sinn von Containern ist.
Aber nicht, wenn der TE Pihole im Container laufen lässt und auch mit dem Host drauf zugreifen will. Genau dann will er nämlich, dass die Container im Netzwerk nicht isoliert sind.

@Teuti Erstell ne Bridge und gut.
 
@wahli das ist ja richtig und dagegen sag ich auch gar nichts ^^ meinte ja auch schon, dass TE die ins gleiche Docker-Network hängen soll. Standardmäßig gibt es diese Verbindung aber eben nicht. Und evtl. tappte TE ja genau in diese Falle.
 
Moin, moin es geht nicht um die Container untereinander,
Router: 192.168.178.1/24 fd00::de15:c8ff:feb7:d264/64 DHCP von x.x.x20 - x.x.x.200
Host RPI4: 192.168.178.5/24 fd00::7154:1761:79ff:510c/64
Pihole/Unbound auf RPI4: Docker macvlan: 192.168.178.225/27 fd00::7154:1761:79ff:210c/64
RPI8: 192.168 178.4/24 fd00::7154:1761:79ff:710c/64
PC: 192.168.178.29/24 fd00::bdaa:e4bc:722b:6ed0/64

2x Netzwerk in Portainer angelegt:
a. Name- netconf
Driver- macvlan
Configuration
- IPV4 Subnet - 192.168.178.0/24
- IPV4 IP range - 192.168.178.224/27
- IPV4 Gateway - 192.168.178.1
- IPV6 Subnet - fd00:0:0:0::/64
- IPV6 Gateway - fd00::de15:c8ff:feb7:d264
- IPV6 IP range -
b. Name- net
- Driver- macvlan
- Creation

Also Pihole lässt sich vom Router, RPI8 und PC über 192.168.178.225 mit Ping erreichen, auch klappt von diesen Geräten die Namensauflösung. Vom Host lassen sich alle Geräte, ausser pihole, über Ping oder DNS erreichen.
Vom Host ist jedoch Pihole nicht über Ping (192.168.178.225) oder DNS (pihole) erreichbar.
Auf den RPI's sind die statischen Adressen in der dhcpcd.conf eingetragen.
 
ganz blöde idee jetzt.... wenn die DNS Auflösung vom Router Richtung Pihole funktioniert, könntest du dann in der resolv.conf nicht einfach den Router als nameserver eintragen? Der reicht das dann halt wieder zurück ans Pihole, oder hab ich hier jetzt n Denkfehler?
 
@Yuuri

Moin, moin mein Problem ist jetzt, dass sich Pihole im macvlan über ping sowie über DNS von allen Geräten erreichen lässt, ausser vom Host.
Vom Host kann ich alle Geräte, ausser Pihole, über Ping erreichen, nicht über DNS. Also kann ich auch kein Update mehr auf dem Host machen. Auf den beiden Raspi's sind alle Adressen statisch in der dhcpcd.conf eingetragen.

Die Geräte:
Router: 192.168.178.1 fd00::de15:c8ff:feb7:d264 DHCP von .20 - .200
PC: 192.168.178.29 fd00::bdaa:e4bc:722b:6ed0
RPI8: 192.168.178.4 fd00::7154:1761:79ff:710c
RPI4 Host: 192.168.178.5 fd00::7154:1761:79ff:510c
RPI4 Pihole/Unbound: 192.168.178.225 fd00::7154:1761:79ff:210c

macvlan in Docker auf dem RPI4
2x Netzwerk

a. Name- netconf
Driver- macvlan
Configuration
- IPV4 Subnet - 192.168.178.0/24
- IPV4 IP range - 192.168.178.224/27
- IPV4 Gateway - 192.168.178.1
- IPV6 Subnet - fd00:0:0:0::/64
- IPV6 Gateway - fd00::de15:c8ff:feb7:d264
- IPV6 IP range -
b. Name- net
- Driver- macvlan
- Creation

Was mache ich falsch?
Ergänzung ()

@Telvanis
Nee, nee dass mit der resolv.conf hat also nicht funktioniert, auch nicht mit Schreibschutz da sie nach jedem reboot wieder die alten Einstellungen hatte hatte ich es geändert, schade.
 
Zuletzt bearbeitet:
Ich habe eine recht ähnlichen Aufbau nur mit ITX-Board.
Auf dem Host läuft OMV + Portainer und im Container via MacVLan mein PiHole.
Das ganze habe ich grob nach Dieser Anleitung eingerichtet und mein Host kriegt eine Rückmeldung auf sein Ping.

Auf den ersten Blick:
Teuti schrieb:
RPI4 Pihole/Unbound: 192.168.178.225

Teuti schrieb:
- IPV4 IP range - 192.168.178.224/27
Sollte das nicht das Selbe sein?

Wer macht im Netzwerk das DHCP? Bei mir ists der PiHole.
Welches Problem ich allerdings in der Konfiguration hatte, dass der Host dann nicht seine IP bekommen hatte nach eine Neustart -> feste IP im Host einrichten.
 
Moin, moin, das Problem macht wohl Unbound.
Ich habe das Problem vorerst mit einem kleinen Script in "/usr/local/sbin/start-net.sh" gelöst und einer Ergänzung am Ende der /etc/rc-local.
"/usr/local/sbin/start-net.sh # ein Shellskript zum Start von net bridge docker".
Das Script unter /root erzeugt, mit "chmod +x start-net.sh"ausführbar gemacht und nach /usr/local/sbin kopiert.
In einer Woche schau ich mal weiter. Script und Ergänzung im Anhang.
Einen schönen Sonntag noch:)
 

Anhänge

  • Script und Ergänzung .txt
    441 Bytes · Aufrufe: 311
Zurück
Oben