Could you show me where you found that?
A quick perusal didn't bring up any script pulling link-local addresses (fe80::/10
range) for me; they either extract the ULA addresses:
IPV6_ADDRESS=$(ip -6 a | grep '\<fc\|\<fd'...
or certain public ones:
CURRENT_IPV6_ADDRESS=$(ip -6 a | grep '2a02'...
It's neither wrong nor right to use an IPv6 GUA or a ULA or a link-local - go for whatever works for you. Just make sure your router properly firewalls access to your Pi-hole's public IPv6 address.
Neither yubiuser nor myself did specifically advise you to use a public address, and the link in the debug log suggests to Use IPv6 ULA addresses for Pi-hole, as using a ULA address is a way of mitigating frequently changing IPv6 prefixes.
Did you confirm that was due to your ISP assigning a new IPv6 prefix?
How do you set a ULA address if your router doesn't allow you to?
I cannot recreate your issue in my installation. I am running my Pi-hole with a ULA address since ages and never had problems picking IPv6 upstreams.
However, I can confirm that IPv6 upstreams are only available if Pi-hole has full IPv6 connectivity. In settings.php
, IPv6 connectivity is assumed only if Pi-hole is configured with a ULA or GUA address:
if ($GUA || $ULA) {
// Scope global address detected
$IPv6connectivity = true;
This was introduced some 3 years ago, so well before Pi-hole v5.
So yubiuser may have been hinting at this in his initial reply:
As long as you avoid the link-local address (fe80::/10
range), you should be able to pick any upstream DNS you like.