So far the “Network” tab (Pihole 4.3) only shows devices by their IPv4 address. I’d like to see IPv6 addresses there as well. If a device has both IPv6 and IPv4, it would show up as a single record - this should be doable by MAC address.
There is no MAC address for an IPv6 - this uses DHCP Unique Identifier (DUID).
Well, I’m sure there is a way to link IPv4 and IPv6 addresses… I hope?
At least in case Pihole is DHCP server?
This is rather tricky from a technical point of view.
As you might now, we generate the table from the ARP (Address Resolution Protocol) table of your Pi-hole. As you might know as well, ARP was replaced by the NDP (Neighbor Discovery Protocol) in IPv6. We’re working in the background on adding IPv6, however, there are some implementation nuances that remain unclear.
Just to give you an example for the complexity of the IPv6 integration into the network table:
The IPv4 world is (fairly) simple: there is (usually) only one IPv4 address to a given hardware (MAC) address. However, with IPv6, you have multiple addresses for the same interface. You typically have a link-local (LL) and a Global Unicast address (GUA). Maybe you have even multiple GUA addresses and also an Unique Local Address (ULA). In the IPv6 world, multiple addresses per interface are the rule rather than the exception. They are equally valid at the same time.
Arranging them in a database is tricky and will likely require us to add yet another table.
Yes, and on top of that IPv6 addresses keep changing. It is a challenge - I understand that.
On the other hand - there must be some way to link an IPv6 address - even a temporary one, with a hostname. Otherwise IPv6 internet would not work - me thinks… Although I really know next to nothing about it.
I’m thinking about the simplest case: Pihole is a DHCP server, and user sets hostnames for local machines. In such scenario - perhaps - Pihole could give away IPv6 addresses to machines and it would know which IPv6 corresponds to which hostname. Right?
No, this isnot how IPv6 works. You have to forget (almost) everything you know about IPv4 when approaching IPv6 as IPv6 has been designed to work largely on its own, i.e., it is totally uncommon to have something central management instance such as an DHCP server in an IPv6 network. Explaining this in all colorful details would vastly go off topic here. It is a wide field and there exists dedicated books about the topic.
Of course hostname resolution works with IPv6, however, you’ll have to enter them manually into
/etc/hosts. And if they change … well … there is a reason for why they don’t really change for real servers so they stay reachable.
I honestly can’t think this is going to happen. I had a choice of three different ways to get v6 up on my network. Each would require pihole to obtain the information in a different fashion.
What do you refer to? The current development version of Pi-hole (will be released as v5.0) already contains support for (possibly even multiple) IPv6 addresses in the network page.
Really? That’s great news.
Will it pull them over the network using the routers DHCP server instead of the Pi’s?
I’m currently using dnsmasq with stateless dhcp6c with ra’s
The network tab lists the ARP and NEIGH caches. There is no active sourcing involved here.
Ah I see. Thank you