Can only access (internally) Home Assistant with .local DNS suffix

Ever since a recent update (core-2021.7.x) - something seems to have changed where I can no longer access Home Assistant internally:

http://hassio:8123 - the error is that the RPi can’t be reached (server IP address could not be found). It is like the DNS isn’t even being resolved internally at all - unless I use .local

I can now only access this with:

http://hassio.local:8123 (or internal IP)

Some have said that this is an issue with mDNS / DHCP; but nothing in my network settings have changed.

I have a static IP reservation in my Google WiFi network settings - and Supervisor is set to use DHCP (should I try static?). The only issue with connecting is that for some reason I am forced to now have .local appended in the DNS suffix - which I have been taught is bad practice.

In Supervisor, I only have the hostname entered (without .local).

image

Also, I am currently running core-2021.8.3 as of this writing.

My network layout is I have:

Comcast Business Router → Google WiFi Base Router

Nothing is connected (directly / wireless completely disabled) off the Comcast router except a hard wired WAN port from the Google Base router. I have two AP’s off the Google WiFi.

The RPi is hardwired off a switch connected to the LAN side of the Google base router - keeping it and everything else in my house hard wired - on the internal side to the Google WiFi.

I have the same issue and this is the first search result. Unfortunately without a solution and no explanation why it isn’t possible. Also other threads just say things like “It’s not possible.”

I have a HA VM inside Proxmox. It says .local without me having done anything about it.

My DNS-Suffix is .lan since I use OpenWrt but HA is only reachable via its IP and homeassistant.local instead of homeassistant.lan or just homeassistant (and the port).

Why is .local hard coded at all? I really like to understand.

How can I make HA available at the domain homeassistant? Do I have to do it via CNAME in OpenWrt? I know this is not an OpenWrt community.

This is really bothering me, since I think I remember it was previously available at http://homeassistant:8123.

Use your hosts file.

Change homeassistant:8123 to custom url - Configuration - Home Assistant Community (home-assistant.io)

The Internet Engineering Task Force (IETF) reserves the use of the domain name label .local as a special-use domain name for hostnames in local area networks that can be resolved via the Multicast DNS name resolution protocol. Any DNS query for a name ending with the label local must be sent to the mDNS IPv4 link-local multicast address 224.0.0.251, or its IPv6 equivalent ff02::fb. A domain name ending in .local may be resolved concurrently via other mechanisms, for example, unicast DNS.

Thanks for your effort to help. But honestly, manipulating the host file is the last resort. You would have to do it on every device, on Android it’s only possible with a rooted device. I’d rather change my whole LAN to .local than manipulate a host file. There are so many possibilities to configure a network (CNAME, DNS Suffix, DNS Hijacking, and many more), but host file is none of them. It’s like editing a .htaccess file instead of properly configure the apache config file. Sorry.

@francisp
I know what .local is, but the question was, why is it hard coded. It’s not the only one TLD, that is inofficially used for internal resolution. But this is going to change because about 4 weeks ago IANA decided that the internal TLD is going to be… .internal. Is Home Assistant therefore going to change .local to a hard coded .internal? :smiley:

I don’t know if it hardcoded, or just a side-effect of using mDNS. I access my HA’s with my own domain-name, even if I’m at home.

Definitely possible (I put it in my DNS-server)

afbeelding

1 Like

Can you tell me which setting you put in your DNS server? Is it some kind of rewrite? Is it a (don’t know another word for that) a hard coded expression in your DNS server?

I tried CNAME, but this didn’t help. I probably did something wrong:

config cname
        option cname 'homeassistant.lan'
        option target 'homeassistant.local'

Ignore the syntax. That depends on the software I use. I’m asking for a general approach. I appreciate your help.

I pointed it to the ip : 10.0.0.67

I googled “dns point domain to ip” but since pointing is not a technical term, I couldn’t get what you mean. I tried resolve instead and I found something fitting to my OpenWrt software:

config domain
        option name 'homeassistant.lan'
        option ip '192.168.1.102'

This can be appended into /etc/config/dhcp or clicked in OpenWrt LuCi > Network > DHCP and DNS > Hostnames > Add

(This is not an OpenWrt community but others struggling with HA.local might find this information useful)

This is the solution for me. Finally! Thank you! :slight_smile:

1 Like