I run pihole on my rpi 3; it works great! For a variety of reasons I don't use it as DHCP server. I get pretty spotty hostname resolution to local devices, I don't know why! Some of the time I can ping devices on my network using FQDN (or simply hostname), including pi.hole, other times it doesn't work.
I've tried changing settings in the pi's /etc/hosts, /etc/dnsmasq.d/01-pihole.conf, /etc/pihole/local.list /etc/dnsmasq.d/localhost.conf, /etc/dnsmasq.conf, /etc/pihole/lan.list, etc. I flush the DNS on my machine (and the relevant services on the pi) and have had some success; but a few hours later it stops working.
I can always ping the local devices from the pi-hole itself, of course.
So I ask: on a brand-new pi-hole, that isn't a DHCP server, what is the correct way to have DNS clients discover local hostnames (with or without FQDN)?
The method I use is described here section Q/A - "Why so many local requests?".
I've been using this for over a year now, pihole is NOT involved in this, I simply use a dnsmasq feature (does also work with pihole-FTL - pihole 4.0).
For this to work, you need to:
have static DHCP addresses (using the MAC address) configured on the router (or whatever you use to provide DHCP)
have a domain configured in your router.
I use pfsense, the domain is configured under system / general setup / domain. A lot of routers allow you to specify a domain, this will be distributed, using DHCP, to all clients.
On windows, You can verify you have a domain name by using "ipconfig /all", look for
"DNS Suffix Search List. . . . . ."
The solution works with ipconfig and nslookup:
ping y50
Pinging y50.localdomain [192.168.2.228] with 32 bytes of data:
Reply from 192.168.2.228: bytes=32 time=1ms TTL=128
My Ubiquiti USG adds the .local suffix for my domain. I use static reservations from the USG.
I am using Ubuntu 18.04 on my laptop, and have tried adding my domain suffix (which I shouldn't need - before the pihole, the USG appended the suffix automatically to any DHCP clients).
As of now, nslookup is showing the correct results, and I'm able to ping from my laptop... but from my mobile phone, I have to disconnect/reconnect my wifi connection to get to pi.hole - every time.
I might be looking at a problem outside the pi-hole; but I appreciate the help!
Hey guys. I was gone for a while; returned and saw that although any device with the .local suffix is browsable from my laptop, pi.hole still does not resolve! The /etc/hosts file on the pi-hole looks like:
As you can see, the custom entries are at the bottom (I even appended the static IP of the device, though I don't think it's needed). My server is pingale with the .local suffix, but alas, nothing at pi.hole.
Very frustrating when I want to modify the web UI (though I can obviously still use the IP).
In some cases, intermittent performance problems are indicative of a hardware problem. What power supply are you using for your Pi, what card brand, and how do you have the Pi connected to the network?
If that were the case I'd see other issues. Ad-blocking works perfectly, and I'm seeing no network issues (drops, ping/traceroute tests, etc)
The thing is, it's resolving now, so nslookup is resolving as it should. Other times it does not resolve (but everything else works properly).
It uses 1.1.1.1 for itself, and hands out the pihole ip for DNS through DHCP.
That said, I think I fixed it. In my previous configuration, I had the router handing out the pihole as the primary DNS, and then (without much thought) I had set the secondary and tertiary DNS servers as 1.1.1.1 and 1.0.0.1.
A few days ago, I realized this was superfluous, and removed them, leaving only the primary. Since then I have had no problems with local hostname resolution, and my mobile ads were more consistently being blocked! It likely affected my Linux machines as well, but I wouldn't have noticed because they have adblockers. It's strange, though - pihole was definitely blocking (I had to frequently whitelist domains for my wife's work) before these changes.
So I think I'm ok now - thanks for your help, everyone! And Graysky, see you in Archland.
The right way to do it is to put your entries into /etc/hosts and in the pihole admin interface Settings > DNS tab uncheck the "Never forward non-FQDNs" and the "Never forward reverse lookups for private IP ranges" checkboxes. After that on the System tab restart the DNS resolver.
You can also map them in a dnsmasq configuration file in directory /etc/dnsmasq.d The advantage of mapping here is that this configuration file will be exported by the teleporter, while the /etc/hosts file will not be. This is true for V4.x; in V5 the hosts file will be exported.
Hi, I am finding this a little confusing as I am using Pi-hole as an add-in to Home Assistant.
I find the suggestion to remove the secondary dns server from the dns section in the router also works for me. The primary dns server is the local address of the rpi4 that is running hassio, which has pi-hole set up as an add-in.
I am a little worried not having a secondary dns server set up as the rpi4 may be offline from time to time.....
I have tried the pihole admin interface settings and turned the unchecked both these boxes but have not put my entries into /etc/hosts.
I do not know exactly where this /etc/hosts file will be located. My understanding is that the hass io system has pihole running in a docker and I cannot see any volumes mounted. I will probably need to ask the hass io people about gaining access to the /etc/hosts file, but need to know what to ask for.