Hass.io, Docker and DNS issues

I’m having some trouble setting up my Hassio in a way that DNS works without any issues.

The issue I’m facing is that I cannot resolve any domains through the DuckDNS addon for Hassio. From reading other threads and poking around in documentation I’ve found that by default, the docker containers that hassio creates for it’s addons do not get any DNS servers configured by default.

The suggested way I’ve found to enable this for all current and future docker containers is by editing daemon.json in /etc/docker/. Oddly enough, that file doesn’t even exist for me, so I’ve created it and added the following:

{"dns": ["127.0.1.1", "192.168.1.1", "8.8.8.8", "8.8.4.4"]}

After a reboot I notice that the DuckDNS addon can succesfully resolve the LetsEncrypt address it’s trying to reach, and the problem seems to be solved.

Except that once I apply the fix mentioned above, my main Home Assistant environment cannot resolve anything anymore, causing all components that rely on data from the internet to no longer work. (Examples: A telegram notifier component, the Tado thermostat component and the Netatmo weather station component)

Editing the Resolv.conf file in the Hass.io VM and adding the correct name servers in there doesn’t fix this. Just to be sure, I’ve backed up the (symlinked) resolv.conf to resolv.bak and created the following resolv.conf:

nameserver 127.0.1.1
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4

The odd thing is that these components used to work without any manual configuration before adding the daemon.json file, and that the DNS servers in daemon.json should be able to resolve anything that these components might need?

This all runs in an Ubuntu VM on x86 hardware. The setup has been running successfully for over a year before these issues started. Hass.io hypervisor and Home Assistant have been updated today, but this did not affect these issues.

Has anyone faced these issues before, and does anyone know what I could do to resolve these issues? Should you need any additional information, feel free to let me know.

Thanks!

This post on the Ubuntu forums directed me towards dnsmasq, which is enabled by default under ubuntu. Disabling dnsmasq (by commenting out the suggested line) seems to have fixed the issue.

Before attempting this, I’ve removed the changes I’ve made to daemon.json and resolv.conf I mentioned in my earlier post, as this didn’t seem like the complete solution. This means disabling dnsmasq is the only change I’ve made that is currently still present.