Pi-hole v6 - Hostnames wont show, instead only IPs

Hello,

iam faced by the problem that my pi-hole instance only shows ip addresses instead of the hostnames.

All informations i found here pointed to the [conditional forward] setting, which is set in my case. For now iam clueless and hope that somebody can point to the right settings.

Some pre-information (before pi-hole)

  • iam using a FritzBox 6690 Cable for my internet connection
  • all devices in my local network (Mobilephones, tablets, pcs, laptops, NAS,... ) have static IPs and names. Configured only via the FritzBox itself.
  • i've disabled IPv6 in my local network completly via FritzBox
  • The assignment of ip addresses and name should always be handeld by the FritzBox
  • FritzBox is DHCP, NTP and DNS Server for my network

Now i wanted to include pi-hole into this, acting as my "DNS filter"

I've made a absolute fresh installation of pi-hole on my raspberry pi 4B.

With with raspberry pi imager i put the Raspberry OS Lite 64Bit onto the SD-Card and updated the os completly.

I disabled wifi and bluetooth completly, because iam not going to use it and the raspberry itself is connected via cable directly to the router:

  • nano /boot/firmaware/config.txt
    • added "dtoverlay=disable-wifi" and "dtoverlay=disable-bt" to the [all] section
  • reboot

Installed pi-hole via:

and run through the installation process. Lastly i added my user to the pihole group

  • sudo usermod -aG pihole $USER

pihole version: Core (v6.4.3), Web (v6.6), FTL (v6.7)

Now for the settings i made:

  • FritzBox:
  • Pi-hole
    • System settings -> Expert -> All settings
      • Upstream DNS Servers (dns.upstream)
        • 9.9.9.9
        • 149.112.112.112
      • dns.domainNeeded
        • enabled
      • dns-dnssec
        • enabled
      • dns.revServers
        • true,192.168.178.0/24,192.168.178.1,fritz.box
      • dns.domain.name
        • fritz.box
      • dhcp.router
        • 192.168.178.1 (ip of FirtzBox)
      • webserver.domain
        • magicbox.fritz.box
      • ntp.sync.server
        • fritz.box
      • ntp.ipv4.active
        • disabled
      • ntp.ipv6.active
        • disabled
      • resolver.resolveIPv6
        • disabled

Expected Behaviour:

My expectation is that:

  • after i make a new dhcp lease / make a new connection with my devices to the networt, the traffic is blocked / allowed like configured.
  • i see hostnames in the [Top Client] view
  • i see hostnames, as well as MAC, IP adresses in the [Client Group Management] page

Actual Behaviour:

Traffic is blocked and checked against the configured Blocking/Allow Lists

The [Top Client] view only shows IP addresses.

The [Client Group Management] page also shows under [Select client...] only the MAC and IP address.

Debug Token:

Debug token: https://tricorder.pi-hole.net/fIxQ8hT7/

P.S.: Iam pretty sure that i missunderstood something completly but i dont see my mistake.

If someone can clarify or point me to my mistake, i would be happy.

Did you also Enable 'Conditional Forwarding' ?!

With the input of the expert setting dns.revServers the setting for conditional forwarding is set.
But i've checked it: it is definitly set:

Check the logs when running an nslookup on one of your clients:

In above example, 10.0.0.4 is Pi-hole with conditional forwarding enabled:

$ sudo pihole-FTL --config dns.revServers
[ true,10.0.0.0/24,10.0.0.2,home.dehakkelaar.nl ]

And 10.0.0.2 is my DHCP/DNS server (for you thats the Fritzbox router).

Similar you could run a reverse lookup (IP to name) on a client for a known DHCP client IP while tailing the logs:

C:\>nslookup 10.0.0.234
Server:  ph6b.home.dehakkelaar.nl
Address:  10.0.0.4

Name:    hak01.home.dehakkelaar.nl
Address:  10.0.0.234
$ sudo pihole tail
[..]
13:48:44: query[PTR] 234.0.0.10.in-addr.arpa from 10.0.0.179
13:48:44: forwarded 234.0.0.10.in-addr.arpa to 10.0.0.2
13:48:44: reply 10.0.0.234 is hak01.home.dehakkelaar.nl

EDIT: Ps, with "logs" I mean log entries.

So, after importing the - after a fresh installation - initial exported configuration via Teleporter, i've manged to fix it.

Iam not 100% sure to exact pin point the problem but it must have been a combination of the setting [Use DNSSEC] - which is not suported by the fritzbox with the local network domain - and some hickups due to missing reboots or something like this

The settings iam now working are:

  • Settings in FritzBox:

    • The DNS upstream server of my fritzbox is Quad9 (any other would work also)
    • The local DNS server on my fritzbox pointing to my pihole (192.168.178.2)
  • Settings in pihole (only changed settings)

    • dns.upstreams = 192.168.178.1 (my fritzbox)
    • dns.domainNeeded = enabled
    • dns.revServers=true,192.168.178.0/24,192.168.178.1,fritz.box (conditional forwarding)
    • dns.domain.name=fritz.box

Now, my pihole receives the hostnames from my fritzbox and also iam able to use the dns names in my local network when connecting to devices like NAS.

@nero355 @deHakkelaar I thank you for your input and your support.

With CF enabled, you can let Pi-hole query Quad9 directly instead of via Fritzbox first.
Its in the default OOTB "Upstream DNS servers" settings.
Thats one less DNS hop:

Clients --> Pi-hole --{public domains}----------> Quad9
               |
                ------{private domains via CF}--> Fritzbox

You are absolutly right and actually that was my first intent in terms of the configuration.

But it seems that if i configure it in this way: FritzBoxs' local DNS -> Pi-hole -> UpstreamDNS(Quad)/etc...) iam again missing the dns lookups and only the IPs of my devices are shown....

It is a bit strange and iam absolute sure that this should not happen. For now iam good with "my solution", but i will invest some time to "fix" the unnesseccary dns hop :smiley:

Thank you