IPv6 gateway not responding and clients wont show up in panel

-Debian GNU/Linux 12 (bookworm) x86_64
-CPU: Intel i5-8250U
-GPU: AMD ATI Radeon R7

Hello Pi-Hole community i got a problem and i dont know how i should continue im trying to setup my Pi-Hole on my old laptop because i want to use multiply things on my laptop i decided to use docker to isolate everthing. now my problem is when i trying to connect a host on the webpanel this host never shows up im done some research and found that i create some log with the command pihole -d when i look at them the only red thing here are "Gateway did not respond, Failed to resolve doubleclick.com via a remote, public DNS server, /etc/lighttpd/conf.d does not exist." i tried some more but in the end i cant get it to work i hope somebody could help me with this problem

Token: https://tricorder.pi-hole.net/X1uaFcu0/

Some routers may not respond to ping requests, especially for public IPv6 GUAs. In your case, that gateway message can be ignored.

Your debug log shows your router to distribute its own IP as local DNS server:

*** [ DIAGNOSING ]: Discovering active DHCP servers (takes 10 seconds)
   Scanning all your interfaces for DHCP servers
   
   * Received 548 bytes from eth0:192.168.178.1
     Offered IP address: 192.168.178.43
     DHCP options:
      Message type: DHCPOFFER (2)
      router: 192.168.178.1
      dns-server: 192.168.178.1
      ntp-server: 192.168.178.1

This could still be a valid setup if you had configured your router to use Pi-hole as its only upstream DNS server.
However, FritzBox routers can be configured to Distribute Pi-hole as DNS server via DHCP, which would be preferred, as that would allow you to attribute DNS requests in Pi-hole's dashboard to individual clients.

And as your debuig log shows your router to have full IPv6 connectivity, you should probably configure it to distribute an IPv4 DNS server exclusively, and not advertise a DNS server's IPv6 address at all.

In order to have clients construct their IPv6 addresses via auto-configuration (SLAAC) exclusively, disable propagation of an IPv6 DNS server address as follows:

a. Untick Also announce DNSv6 server via router advertisement (RFC 5006) .
b. Tick Disable DHCPv6 server in the FRITZ!Box for the home network and
b.1. choose There are no other DHCPv6 servers for the home network .

And finally, your debug log also shows that you haven't populated your container's recommended FTLCONF_LOCAL_IPV4 yet:

-rw-rw-r-- 1 pihole root 196 Aug 29 20:16 /etc/pihole/pihole-FTL.conf
   LOCAL_IPV4=0.0.0.0

You should set FTLCONF_LOCAL_IPV4 to your Docker host's IP address.

Thanks for answering my question. I did what you said, and it looks like the DNS was accepted. However, one problem still bothers me: no clients are showing up. Maybe I am doing something wrong, I don't know. If you have any ideas, that would be great. Perhaps you could find something in the logs.

https://tricorder.pi-hole.net/E9iNeWf3/

Your most recent debug log indicates that your router is now distributing your Pi-hole host's IP as local DNS server:

*** [ DIAGNOSING ]: Discovering active DHCP servers (takes 10 seconds)
   Scanning all your interfaces for DHCP servers
   
   * Received 548 bytes from eth0:192.168.178.1
     Offered IP address: 192.168.178.43
     DHCP options:
      Message type: DHCPOFFER (2)
      router: 192.168.178.1
      dns-server: 192.168.178.242
      ntp-server: 192.168.178.1

Note that your router's DHCP server would offer a different IP (.43) then the one your Pi-hole laptop currently holds (.242).
That may suggest that you haven't configured a fixed IP address for your laptop in your router.
You should change that in your router.

Quoting the docs linked above:

Clients will notice changes in DHCP settings only after they acquired a new DHCP lease. The easiest way to force a renewal is to dis/reconnect the client from the network.

Did your clients acquire a new lease yet?

mh weird because i did fixed the ip of my laptop and on my pi-hole there is no option


Screenshot 2024-08-31 004222

and i did use the setting reset feature on my router on my pi-hole (because in the describtion it stand that after using it the network would see it as new device) but after that i saw i got the same address idk if i did use a wrong command on docker

(sudo docker network create -d macvlan --subnet=192.168.178.0/24 --gateway=192.168.178.1 --ip-range=192.168.178.240/28 --ipv6 --subnet=2a02:8109:3b40:6dc::/64 --gateway=2a02:8109:3b40:6dc:484:e9d:5e5d:30fe -o parent=enp2s0 -o macvlan_mode=bridge --label=com.docker.compose.network=true docker_to_router)

or

( sudo docker run -itd --network docker_to_router --ip 192.168.178.242 --name pi_hole pihole/pihole )

for the client problem i did the things on the doc and your comment but still no improvement maybe im overlooking something

Screenshot 2024-08-31 005437
Screenshot 2024-08-31 005352
Screenshot 2024-08-31 005118

ah and i did try setting the ftlconf_local_ipv4 value but every time i try to save its back to 0.0.0.0

You did not mention that you are running your Pi-hole as macvlan before.
In that case, IP address assignment is done manually by your macvlan configuration.

Please share the docker-compose or docker run script for your Pi-hole container.

sudo docker run -itd --network docker_to_router --ip 192.168.178.242 --name pi_hole pihole/pihole

You are not setting any of the recommended environment variables!?

As it is, you are not setting any environment variables at all, so FTLCONF_LOCAL_IPV4 is missing, as is WEBPASSWORD, and you also don't declare any volumes.
Without volumes to persist data, Docker will lose any changes if you remove and restart a container. For Pi-hole, that would mean it would lose its configuration and its query history, e.g. after a reboot.

I don't use docker run myself, but yours should probably be altered to look similar to:

docker run -d --name pi_hole -v ./etc-pihole:/etc/pihole -v ./etc-dnsmasq.d:/etc/dnsmasq.d -e TZ=Europe/Berlin -e WEBPASSWORD='set a secure password here or it will be random' -e FTLCONF_LOCAL_IPV4='192.168.178.242' --net docker_to_router --ip 192.168.178.242 --restart unless-stopped pihole/pihole

You may want to adjust the timezone (TZ) if you are not in Germany, which I assumed you are because of your screenshots in German).

As for my recommendation to not advertise a DNS server's IPv6 address at all:
Your screenshots show that your Fritzbox still does that

That shows still as ticked, contradicting:

Please repeat applying the steps from my previous post.

With regards to your macvlan network, you should be aware that Docker is IPv4 only by default. You'd have to explicitly enable Docker's IPv6 support (available only for Docker on Linux) for your Docker daemon as well as any of your containers that you'd want to use IPv6.
In your case, at least your Pi-hole container does not use IPv6, as your docker run command comfirms.

But note that with the recommended changes to your FritzBox router, clients would talk to Pi-hole via IPv4 exclusively, so your container would not require an IPv6 at all.
Consequently, you could remove all IPv6 related options from your docker network create.

And one thing you also should be aware of:
Docker's macvlan isolation prevents direct communication between your Pi-hole container and the Docker host, i.e. your laptop hosting Docker cannot use your dockered Pi-hole on the same machine for DNS.
If it would do so, it may not be able to resolve DNS at all, as Docker would interdict communication with the Pi-hole container.

If you want your laptop to be filtered by Pi-hole as well, you should probably switch to bridge or host network modes.
In case you absolutely require macvlan, you'd have to create a shim network to route traffic between the container and the host.

Thank you so much! I executed the provided code, and now it works. Without you, I would probably have spent months on it.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.