Ich habe seit Jahren eine Pihole Instanz in einem Docker Container auf einer Synology NAS laufen. Ich wollte aus Redundanzgründen aber noch einen zweiten DNS Server im lokalen Netz betreiben und dabei auch gleich die Variante Pihole plus Unbound ausprobieren.
Nach einigen mehr oder minder erfolglosen Versuchen dafür zwei Docker Container (einen für Pihole und einen für Unbound) zu erstellen, habe ich eine Variante gefunden die beides in einem Container vereinigt und somit die Konfiguration sehr vereinfacht. Hier ist die Compose Datei die ich dazu benutze:
version: '3.0'
services:
pihole:
container_name: pihole-unbound
image: cbcrowe/pihole-unbound:latest
hostname: pihole-unbound
domainname: pihole-unbound.shaddai
ports:
- 4443:443/tcp
- 53:53/tcp
- 53:53/udp
- 8880:80/tcp #Allows use of different port to access pihole web interface when other docker containers use port 80
# - 5335:5335/tcp # Uncomment to enable unbound access on local server
# - 22/tcp # Uncomment to enable SSH
environment:
- FTLCONF_LOCAL_IPV4=192.168.1.55
- TZ=Europe/Brussels
- WEBPASSWORD=password
- REV_SERVER=true
- REV_SERVER_TARGET=192.168.1.1
- REV_SERVER_DOMAIN=mydomain
- REV_SERVER_CIDR=192.168.0.0/16
- PIHOLE_DNS_=127.0.0.1#5335
- DNSSEC="true"
- DNSMASQ_LISTENING=single
volumes:
- '/volume1/docker/pihole-unbound/pihole:/etc/pihole'
- '/volume1/docker/pihole-unbound/dnsmasq.d:/etc/dnsmasq.d'
restart: unless-stopped
Alles anzeigen
(192.168.1.55 ist das NAS)
Dies funktioniert auch, aber die erste Namensauflösung dauert immer sehr lang (wenigstens 15 Sekunden), danach geht es relativ flott (aber gefühlt immer noch langsamer als mit Pihole allein). Ausserdem gehen einige Sites gar nicht, obwohl im Log nichts von einer eventuellen Blockierung steht. Ich benutze die gleichen (standard) Blocklisten in den beiden Varianten. Des weiteren scheint dies individuell für jeden Client zu gelten (d.h auch wenn google.com schon für Client 1 aufgelöst wurde, dauert die erste Anfrage von Client 2 auch länger).
Mittels P+U sehe ich auch nur folgendes als Clients (Pihole allein listet die Anfragen getrennt für die einzelnen Clients auf):