I've recently upgraded to (k)Ubuntu 17.04 and I also stumbled upon the change to systemd.
My setup is fairly typical I think, in that I have a DNS provider in my broadband HUB and this is my primary source of information for all the devices on my network (of which I have a few).
There is some beauty in systemd, it's not all bad but what is really bad is the documentation, the lack of communication from the Ubuntu team and the gung-ho "let's just change it despite it breaks for everyone" mentality.
The solution for me after tearing some hair out was to edit /etc/systemd/resolved.conf:
[Resolve]
DNS=192.168.1.254 # <-- change to your router address
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Domains=lan # <-- change to your localdomain name (maybe .local)
#LLMNR=yes <-- I dabbled with this for a while but it doesn't matter
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp
After not understanding why this wouldn't work I figured out that what was also needed was to switch /etc/resolv.conf to the one provided by systemd. This isn't the case in an out-of-a-box install (for reasons unknown to me).
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
The local DNS server is then not used and all DNS requests are sent to my HUB.
I think this is a much better solution than cutting out and putting in some other solution since systemd-resolv is now the default onwards.
A related problem btw is that the /etc/nsswitch.conf is neutered.
It should read:
hosts: files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] dns
This is a confusing configuration since [NOTFOUND=return] means processing ends there. The entries after it will never be used.