You enabled the optional public access block. It contained an info that this also blocks local access when done via GUA IPv6 addresses like in this case. So if you promote IPv6 addresses for your local network, and do not have ULA addresses enabled, then this is the result. Luckily this is all obsolete with Pi-hole v6 .
I dare to believe that your RPi 2B has still some years to go.
The machine that ran the nslookup is not using Pi-hole as DNS server, but a local stub resolver at 127.0.0.53.
In general, using a stub resolver to cache DNS replies locally is fine, as long as that stub resolver is forwarding all its DNS traffic to Pi-hole.
Yours isn't using Pi-hole, or else it wouldn't have returned NXDOMAIN for pi.hole.
That would mean that your client can't access http://pi.hole, but http://192.168.1.20/admin/ should work.
You'd have to verify your stub resolver's DNS configuration.
Often, that stub resolver is systemd-resolved.
Run from the machine that failed with NXDOMAIN, what's the output of:
You are running these commands on Pi-hole host server it seems? To check why the client with the browser cannot access the Pi-hole web interface, all these commands, starting with nslookup, need to be run on that exact client system where accessing the UI fails from.
Ah, although this system does resolve pi.hole just well, so something does not add up . Please verify where you ran the commands.
sudo resolvectl status
[sudo] password for rob:
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (enp3s0f2)
Current Scopes: none
Protocols: -DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 3 (wlp2s0)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: fe80::<redacted>d6
DNS Servers: 192.168.1.20 fe80::<redacted>d6 fe80::<redacted>ed
DNS Domain: home
Link 4 (docker0)
Current Scopes: none
Protocols: -DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 5 (br-d843fb2138b9)
Current Scopes: none
Protocols: -DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 6 (veth58b078b)
Current Scopes: none
Protocols: -DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Hmm, it is connected via WiFi, right? Pi-hole is in the list of DNS servers, but there are two local-link addresses as well. I guess at most one of them is from the Pi-hole host. Can you check its LLA? Run this one on the DietPi/Pi-hole system:
ip -6 a
fe80::redacted>d6 is probably from your router, who does not know pi.hole (cannot resolve it). In this case, you would need to assure that your router is not sending out router advertisements, or at least does not promote itself as local DNS server with those. Or you configure the upstream DNS of your router to be Pi-hole.
That output also verifies that the Pi-hole system has the 2nd LLA, not the one used by the client. Giving the router the LLA of the Pi-hole system as IPv6 DNS would work as well, but cleaned is to prevent it from distributing itself as DNS server completely, if possible.