Local DNS only works with *.local

I have a setup pihole on a rpi 3b+ with tailscale. I've set it up to handle DNS only when I am connected to tailscale on my other devices.

I have some local DNS records setup. When I add a DNS record that ends with .local (ex. asd.local) it works fine. I've tried setting up other local DNS records that end with something other than .local (ex. asd.home), but these don't work with http requests. I have a webapp setup on the rpi as well and that works fine when I access it using http://asd.local:8080. But if I try using http://asd.home:8080, it won't work. And the weird thing is when I use nslookup on any of these local DNS records, it will resolve the IP address without issue.

I have no problem with creating DNS records with .local. I'm just wondering if anybody can tell me why I can't setup other DNS records?

.local does not work with local DNS at all:
The .local TLD is reserved for mDNS protocol usage and should not be mixed with plain DNS.

An mDNS-aware host may register its name with any other mDNS-capable host on the same link as somehostname.local, allowing you to ping or ssh using that name (while DNS lookups for that name would fail).

mDNS only ever allows resolution among mDNS-aware hosts, i.e. it does not work on or for a host without mDNS software.

If nslookup for asd.home works, then that would demonstrate that Pi-hole is correctly providing Local DNS records as configured.

If your browser can't access sites hosted via asd.home, then it is likely not using Pi-hole for DNS.

As explained, using asd.local can be expected to work among clients supporting mDNS.

You were right about DNS working since the nslookup is working. Turns out my webserver is having some problem with self-signed certificates and tailscale.

Thanks for the help.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.