Expected Behaviour:
Upgrading PiHole 5 to 6, via a container, should result in DNS resolution working as before with no system modifications made prior to the upgrade.
- Photon OS 5
- VM
- Docker compose file or Docker run command
version: "3"
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
# For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
ports:
- "192.168.1.33:53:53/tcp"
- "192.168.1.33:53:53/udp"
- "192.168.1.33:67:67/udp" # Only required if you are using Pi-hole as your DHCP server
- "192.168.1.33:80:80/tcp"
- "192.168.1.33:443:443/tcp"
environment:
TZ: 'America/Chicago'
WEBPASSWORD: 'admin'
# Volumes store your data between container upgrades
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
cap_add:
- NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed
restart: unless-stopped
- Docker engine version 27.3.1
Actual Behaviour:
An upgrade from Pihole 5 to 6 (container form factor) results in the interface overview showing an IP assigned to the interface which is from another interface. (Assumedly) because of this, it was necessary to change the interface settings from the default of local to all in order to get DNS flowing properly again.
The debug output shown below indicates it's either the interfaces and/or routing table.
The current interfaces on this VM look like the below:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:08:08:4b brd ff:ff:ff:ff:ff:ff
altname eno1
altname enp11s0
altname ens192
inet 192.168.1.33/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe08:84b/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:59:04:66:3e brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
4: br-d4b7bbd7fe8a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:1d:77:aa:cd brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-d4b7bbd7fe8a
valid_lft forever preferred_lft forever
inet6 fe80::42:1dff:fe77:aacd/64 scope link
valid_lft forever preferred_lft forever
6: veth7708c02@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-d4b7bbd7fe8a state UP group default
link/ether 7e:34:cb:3a:d0:7a brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::7c34:cbff:fe3a:d07a/64 scope link
valid_lft forever preferred_lft forever
Routing table as below.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-d4b7bbd7fe8a
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
The desire is for Pihole to only respond to queries on eth0 which is the 192.168.1.0/24 network as this is how it was working prior to the upgrade.
I have spent a couple of hours searching and experimenting without much success. Thank you to any help offered!
Debug Token:
(Moderator edit: explicit debug log removed)


