Expected Behaviour:
In a non-IPv6 environment be able to update / run pihole updatecheck without error when AAAA records are blocked and pihole is in default / null blocking mode.
Core v6.4.3 FTL v6.7 Web interface v6.6
OS : Ubuntu server 26.04 LTS (virtual machine)
Hardware : Intel based mini-pc running Proxmox
Docker : none
Actual Behaviour:
With IPv6 disabled via netplan (so IPv6 is known on loopback but not of any other interface) and IPv6 blocked / denied / disabled on all intermediate network equipment, when running pihole updatechecker or pihole -up the updates fail when AAAA records are replied with null but A records are not.
fatal: unable to access ' https://github.com/pi-hole/pi-hole/ ': SSL certificate verification failed: certificate signer not trusted. (CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none)
fatal: unable to access ' https://github.com/pi-hole/web/ ': SSL certificate verification failed: certificate signer not trusted. (CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none)
fatal: unable to access ' https://github.com/pi-hole/FTL/ ': SSL certificate verification failed: certificate signer not trusted. (CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none)
Updates work successfully when either the specific GIT AAAA entries are allowed or pihole is switched to NODATA blocking mode.
github.com
api.github.com
release-assets.githubusercontent.com
This behaviour started when the underlying OS was upgraded from ubuntu-server 24.04.4 LTS to 26.04 LTS
My Thoughts:
This may or may not be a bug, I am just trying to understand the process. Even with no IPv6 the upgrade should work but it doesn't.
This may not be an issue as I am not sure if 26.04 is supported as yet.
I am aware that pihole should not point to itself for DNS, however this is a HA pihole environment where each pihole points to a different machine for its own lookups so if pihole as a system works then DNS lookups work rather than local pihole dies therefore DNS is dead.
According to pihole documentation, when in default / null blocking mode, blocked queries get a 0.0.0.0 / :: response and the client should not even try to connect to the destination. However, during the update process an A and AAAA lookup are performed, A is permitted, AAAA is blocked but the update fails with the errors shown above.
When the pihole is configured to block AAAA but with NODATA then the update process works which means the underlying update process is not complying with the 'should not even try' quoted above.
This behavious did not appear with 24.04 LTS but did with 26.04 (although I have seen something similar with apt and its apparent reliance on IPv6 / AAAA even in a pure IPv4 network).
If this is related to an underlying change between the above OS version, such as kernel 6 -> kernel 7 or codebase re-write etc. then this will appear more as OS upgrades are adopted.
This would appear to be an underlying OS / process issue - not a pihole issue - but it is a process that pihole is dependent on.