Please follow the below template, it will help us to help you!
Expected Behaviour:
pihole should resolve .local addresses.
Actual Behaviour:
for example I have homeassistant installed on docker container on same raspi where pihole is installed but now pihole cannot resolve homeassistant.local:8123.
I am suspicious that there was fw upgrade pushed by my ISP on my modem after that things started breaking. Rogers Hitron modem running fw 7.1.1.32
You need to tell Pi-hole how to find the IP addresses for the .local domain. Either conditional forwarding to a DNS server that is authoritative for that domain or by adding custom DNS entries to Pi-hole so it knows the domain to IP mapping.
I think you may be using mDNS/Bonjour/Avahi since .local is a common domain for that. Pi-hole is not mDNS aware since there is no central DNS server in those multicast schemes.
so I added local dns record to pihole with domain homeassistant.local and ip 192.168.x.x, but pihole was not able to resolve it. so I changed it to homeassistant.home and pihole was able to resolve that. another thing I want to mention is that, I have installed homeassistant on same raspi inside docker container where pihole is installed (pihole is standalone not installed in docker and was installed way before homeassistant).
here is output of /etc/resolv.conf, just in case if that requires.
nameserver 127.0.0.1
search hitronhub.home
you mean do conditional forwarding under settings>dns ?
. 3600 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2020072201 1800 900 604800 86400
;; Query time: 26 msec
;; SERVER: 192.168.0.25#53(192.168.0.25)
;; WHEN: Wed Jul 22 14:19:05 EDT 2020
;; MSG SIZE rcvd: 123
thanks for pointing out about IP range issue. another thing I want to mention here my pihole stopped blocking ads about a week ago, that's when this .local issue also started. so I disabled IPv6 assignment on my ISP modem, after that blocking started working again. ( I was able to manually put DNS server in modem but modem was not advertising to my local devices. my devices were still getting 192.168.0.1 as dns server. )
I understand that but .local was working fine before with pihole. I am suspicious that there was fw upgrade pushed by my ISP on my modem after that things started breaking.
What did you put in for Pi-hole's local DNS record?
Mac stuff uses Bonjour heavily for resolution so you need to be aware that Bonjour may try to provide you with a different IP address than what you manually enter. But you still should be able to resolve the local record using the Pi-hole IP address directly like that dig command did.
That would have been good information to put in your original post.
As pointed out by Dan and jfb, `.local` is the default mDNS domain name. (click for details)
Regardless from the issue at hand, it's good advice to avoid mixing it with plain DNS.
Especially if you'd have clients that do and don't support mDNS on your network, you'd get inconsistent or conflicting hostname resolution results. Depending on your client's configuration, your client may prefer to resolve .local names via mDNS exclusively, giving you different results than a query through a DNS server.
Resolving homeassistant.local should work without Pi-hole ever getting involved (or any DNS server, really) - as long as your homeassistant machine and your connecting clients are mDNS-aware (mac/iOS clients are, Linux can be (with avahi), Win10 supports it as well).
Since homeassistant.local was working before, it may well be that you have introduced or furthered the resolution problems you observe now by starting to define domains and hostnames featuring .local.
Try if removing those definitions would get you back working.
Also, check your network for possible mDNS interferences:
mDNS uses port 5353, and IP 224.0.0.251 as multicast address. Make sure those are not blocked by your router or any (recently introduced) server-side or client-side firewall rules
verify that port 5353 is not in use by other (recently installed) software on your homeassistant machine (e.g. unbound)
make sure your homeassistant and clients are on the same network segment - mDNS clients only exchange and maintain a list of .local names for other clients on that same network segment. E.g. you may have pushed your homeassistant to a different segment if you'd have recently connected either it or its clients through a new AP.
check your spelling: your dig results are for homeassitant rather than homeassistant
It may also be easier to configure your clients to connect by a hostname you know to be working, e.g. homeassistant.home.
I removed .local domain from local dns record on pihole, still nothing. I think i have read few forums that it is my rogers modem preventing mdns resolution. i have eero mesh connected to rogers modem, can i use that as my router to test ?