Why doesn't systemd-resolved use my local DNS server?
So, changing my wired eth0 interface to be managed solved this issue for me.
Changing ifupdown to managed=true in /etc/NetworkManager/NetworkManager.conf
[ifupdown]
managed=true
Then restart NetworkManager
sudo systemctl restart NetworkManager
After this it works flawlessly..
This was not 100%. I also applied theses changes to try and kill resolver
sudo service resolvconf disable-updates
sudo update-rc.d resolvconf disable
sudo service resolvconf stop
Big thanks to this blog post regarding the subject: https://ohthehugemanatee.org/blog/2018/01/25/my-war-on-systemd-resolved/
Lets pray this works.. This whole systemd-resolve business is just so ugly.
My guess is that your systemd-resolved
service is configured correctly, but it never gets to see the request. The .local
domain is treated specially by systems running mDNS. avahi-daemon
, which provides mDNS/DNS-SD services (aka "Bonjour" on Apple products) can be configured to take precedence over DNS during name resolution; it appears that Ubuntu does this.
There are a few options that you could choose from:
Rename your
.local
domain to something different (possibly.internal
or.lan
). This may be the easiest to do in practice because you just have to change a couple of things on your DNS server, and it works best with Avahi. I would recommend this method.Alter your
/etc/nsswitch.conf
file by putting thedns
entry in front of themdns
entries.Alter Avahi's configuration to change the mDNS domain from
.local
to something else by editing/etc/avahi/avahi-daemon.conf
and changing (or adding)domain-name=.something
(located in the[server]
section). You'll need to do this on every computer that uses mDNS so they still work together.