Ubuntu – systemd-resolve does not forward DNS requests to stated DNS server

dnsnetworkingsystemd

Anyone know how systemd-resolve voodo works?

192.168.1.30is the correct DNS server for my network, as returned by DHCP.

/etc/resolv.conf points to 127.0.0.53

Systemd claims to be using the correct server.

systemd-resolve --status | grep "DNS Servers"
192.168.1.30

But dig indicates it is not forwarding requests
If I specify the server I can resolve shadowbox

dig @192.168.1.30 shadowbox

; <<>> DiG 9.16.1-Ubuntu <<>> @192.168.1.30 shadowbox
...

;; ANSWER SECTION:
shadowbox.      60  IN  A   192.168.1.34
...

systemd-resolve cannot

dig @127.0.0.53 shadowbox

; <<>> DiG 9.16.1-Ubuntu <<>> @127.0.0.53 shadowbox
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 60161
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;shadowbox.         IN  A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Jun 07 14:00:12 CEST 2020
;; MSG SIZE  rcvd: 38

I have tried bouncing the server, flusching acashed and mamually setting the server

systemd-resolve --flush-caches
systemd-resolve --set-dns=192.168.1.30 --interface=enp0s31f6

I can chattr +i /etc/resolv.conf to regain control of DNS, but it would be nice to know why systemd is not working, since I loose the benefits of DHCP.

Best Answer

Looks like this is by design. Pottering closed the issue https://github.com/systemd/systemd/issues/2514 with a wont-fix.

dig @127.0.0.53 shadowbox

systemd-resolved does not support simple names over DNS, only fqdn, and ignores the search directive.

Related Question