PiHole Dashboard click on Top Clients no longers list recent queries for IPv6 clients

Expected Behaviour:

PiHole dashboard no longers lists queries from IPv6 clients, yet it will list recent queries from IPv4 clients.

Actual Behaviour:

This changed in the most recent update

Debug Token:

[[[ Redacted for privacy ]]]

your RA is handing out 2600:4040:b4ca:f300::1 as the IPv6 DNS server. thats the router, so phones/pcs on v6 are probably asking the gateway and never hitting pihole. v4 still works because those clients are pointed at the pi.

on the router, set the LAN IPv6 DNS / RDNSS to your piholes GUA or ULA (or the link-local if thats what you use), not the routers own address. then renew a client and check Query Log again.

side note from the debug: refreshNames = "IPV4_ONLY" only affects name refresh, but id flip that to ALL once DNS is actually going through the pi on v6.

I redacted your OP for privacy reasons.

Better run the debugger:

sudo pihole debug

And when asked if to upload the debug log, answer with yes.
On successful upload, a token URL is presented to you.
Copy paste only this URL to here where only the developers and mods have access to.
Retention is 48 hours.

ULA is useless : IPv4 has higher priority so I am not sure if it will be used at all ?!

AFAIK it's something like :

  1. GUA
  2. IPv4
  3. ULA

I think even Link-Local is the better choice then :slight_smile:

But since you can resolve AAAA records via IPv4 for your IPv6 connection then basically IPv4 is all you need! :+1::+1:

Your debug token is: https://tricorder.pi-hole.net/wMwtNLx5/

Interesting is that when I query the db with sqllite3 I see all the transactions. My guess is probably some glitch in the admin web page.

Ahum, the ULA is recommended instead of the GUA:

I dont have access to that Tricorder link so you have to wait for a mod/dev to have a look.

But as pointed out by @nite_route already, it appears your router is most likely advertising its own IPv6 address to the clients for DNS via something thats called IPv6 RA:

Which explains why no IPv6 queries are reaching Pi-hole bc they all go to the router IPv6 address instead.

If you are running Pi-hole bare-metal (not in Docker), you can see what DNS server(s) is/are advertised via IPv6 RA if run below one:

sudo pihole-FTL dhcp-discover

Look for a line that says "Recursive DNS server" (RDNSS).
Dont post unredacted output for above one here for privacy!

Some examples for configuring IPv6 RA RDNSS in the docs --> "Router setup":

Thanks for the reply, the queries are reaching pihole, I can see them when I click on "Query Log", I can also see them when I run sql commands against the db. They just don't show up when I scroll down to "Top Clients (total)" and click on the clients with ipv6 addresses, however clients with ipv4 addresses have output from the query. It sounds like the query that being presented from the web page is not being process correctly.

I guess this never made it to the final document : Preference for IPv6 ULAs over IPv4 addresses in RFC6724 ?!

And I also guess that F.A.Q. topic needs updating since it's written before Pi-Hole v6 existed :slight_smile:

I dont see an issue for preference.
If a client is supplied with both IPv4 and IPv6 ULA addresses for DNS, who cares which one the client chooses/prefers.
Just as long as they are Pi-hole addresses.

The LLA can be an issue though bc it cant be routed (works only for devices connected to the same network segment).

And the GUA is an issue as the GUA prefix is delegated from the ISP and can change over time.

So logically advertising the ULA is the best choice.
But only if the router is capable of advertise a ULA prefix.

And yes that FAQ is a bit old but the principle is still the same.

EDIT: Oh the docs are still current:

I understand what you mean, I have exactly the same problem after the latest update.

I did a complete re-install of pihole, but that didn't solve the problem.

Before it was working perfectly, and I didn't change any settings.