IPv6 upstream DNS servers not selectable

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.

1 Like