Question about Unbound/PiHole and IPv6

Hello all,

My internet provider supports IPv6. I do not have a static IP, which renews itself after every restart/connect of my FritzBox 7590.

1. Is it necessary to set “Custom 3 (IPv6)” to “::1#5335” under PiHole?
2. must the following be added to /etc/network/interfaces ?

# IPv6
iface eth0 inet6 static
pre-up modprobe ipv6
address fe80::xx:xxx:xxx:xxx
netmask 64

Thanks a lot

DietPi v8.3.1 Buster
Pi-hole v5.9.1
FTL v5.14
Web Interface v5.11

No there is no need to set anything in PiHole. PiHole can communicate quite easily with Unbound using IPv4.

What you can do, simply go into dietpi-config network settings and activate IPv6. This should already assign a IPv6 address to your DietPi system. Inside your Fritzbox you need to activate IPv6 as well. There you could specify the IP address for the DNS server that should be assigned via IPv6.

A small guide that could be used https://adminforge.de/dns/pi-hole-ipv6-und-die-fritzbox/
It might not fit 100% but it’s a good starting point. The only pint needed should be to enter DietPi IPv6 address. Usually PiHole should be able to detect it’s own IPv6.

1. Is it necessary to set "Custom 3 (IPv6)" to "::1#5335" under PiHole?

Does this mean you don’t need to do this even if IPv6 is on?

I have a well working IPv4/IPv6 network using PiHole + Unbound and I have set Custom 1 (IPv4) only. No issues to ping Google on IPv6.

C:\Users>ping google.com

Ping wird ausgeführt für google.com [2a00:1450:4001:830::200e] mit 32 Bytes Daten:
Antwort von 2a00:1450:4001:830::200e: Zeit=20ms
Antwort von 2a00:1450:4001:830::200e: Zeit=23ms
Antwort von 2a00:1450:4001:830::200e: Zeit=20ms
Antwort von 2a00:1450:4001:830::200e: Zeit=22ms

Ping-Statistik für 2a00:1450:4001:830::200e:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
    (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 20ms, Maximum = 23ms, Mittelwert = 21ms

C:\Users>

As well some internet based checks are green.


The only thing I did, is to activate DoT on Unbound and configure IPv6 DNS server there.

Thank you,

I had previously set IPv6 to “Enabled” within DietPi.
Why I’m asking is because I’ve already seen several instructions on the internet that point to editing the “/etc/network/interfaces” and custom 3.

have changed the file again and deleted custom 3
C:\Users>ping google.com

Ping wird ausgeführt für google.com [2a00:1450:400f:804::200e] mit 32 Bytes Daten:
Antwort von 2a00:1450:400f:804::200e: Zeit=49ms
Antwort von 2a00:1450:400f:804::200e: Zeit=33ms
Antwort von 2a00:1450:400f:804::200e: Zeit=33ms
Antwort von 2a00:1450:400f:804::200e: Zeit=33ms

IPv6 can be enabled inside dietpi-config. This will already enable IPv6 on your system. It can be verified running

ip a

This should display the assigned address. What the guides on the web usually do is to create a STATIC local IPv6 address fe** inside /etc/network/interfaces. But there should be no need for. Usually the self assigned fe** should be permanent as well. And the self assigned local IPv6 address can be used to distribute via RA without issues.

For the communication between PiHole and Unbound it doesn’t matter. Even via IPv4 they are able to communicate and exchange information about IPv6 DNS request.

If I find time, I could create a tcpdump trace to visualise it a little bit more how communication is going between client, PiHole, Unbound and Upstream DNS server.