[Bug 1714803] Re: Search list in resolv.conf breaks resolving for that domain
Dimitri John Ledkov
launchpad at surgut.co.uk
Tue Oct 10 23:03:05 UTC 2017
On 10 October 2017 at 15:39, Matthias Fratz <1714803 at bugs.launchpad.net> wrote:
> Our DHCP server delivers a search domain (inf.uni-konstanz.de) as well.
> This isn't enough to trigger the bug for me, though, at least on 17.04.
> (systemd-resolve doesn't actually USE the search path, so merkur236.inf
> .uni-konstanz.de works but merkur236 doesn't, but that's a different
> problem.)
>
> What does trigger the bug on 17.04 is manually configuring a search
> path, like it seems the original reporter did:
>
> $ cat /etc/resolvconf/resolv.conf.d/base
> search disy.inf.uni-konstanz.de inf.uni-konstanz.de uni-konstanz.de
>
> At some point this gets copied to /etc/resolv.conf. After a "service
> systemd-resolved restart", resolution is broken for those domains until
> I remove the search path and restart systemd-resolved again.
>
> I couldn't yet reproduce this on 17.10 because restarting systemd-
> resolved overwrites /etc/resolv.conf. Where is the right place to
> configure a search path on 17.10? I don't see it anywhere in the GUI and
> I'm not sure whether /etc/systemd/resolved.conf is the right place.
>
The really correct way on 17.10 is to stop using ifupdown and stop
using resolvconf and stop using libnss-resolve
$ upgrade to 17.10
$ sudo netplan ifupdown-migrate
$ sudo apt remove --purge ifupdown
$ sudo apt remove --purge resolvconf
$ sudo apt remove --purge libnss-resolve
$ sudo reboot
At this point, /etc/resolv.conf will start pointing at a resolved
managed stub-resolv.conf file which will automatically pick up and use
DHCP provided domains.
Further domains configuration can be provided by adjusting
/etc/netplan/*.yaml file, or by adjusting systemd-networkd drop-ins,
or by adjusting /etc/systemd/resolved.conf.
It's best for the search domains to be provided over DHCP instead of
hardcoding the config in files on disk.
You may also choose to use networks: backend: network-manager in the
netplan.yaml file, if you wish to use NetworkManager instead of the
networkd as the networking management backend.
Search domains specified in resolvconf syntax / directly in the
/etc/resolv.conf will not be read/used by resolved stub resolver, and
will not be used by libnss-resolve, thus if you wish to keep using
resolvconf/ifupdown one will need to provide the search domain to
resolved separately. Best way to do that would be via
/etc/systemd/resolved.conf.
--
Regards,
Dimitri.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1714803
Title:
Search list in resolv.conf breaks resolving for that domain
Status in systemd package in Ubuntu:
Incomplete
Bug description:
Ubuntu 17.04
systemd 232-21ubuntu5
Adding a domain to the search list in /etc/resolv.conf breaks
resolving for that domain. Not only does the search list not get used
as expected, but host names in the domain cannot be resolved by
systemd-resolved at all.
I just ran into this after upgrading from ubuntu 16.04 to 17.04 which
enabled systemd-resolved. I have for a long time used resolveconf to
add a 'search my-domain'-line to my /etc/resolv.conf.
Example of expected behaviour. With Googles DNS server (8.8.8.8) and ubuntu.com in the search list in /etc/resolv.conf. Both dig and systemd-resolve can resolve www.ubuntu.com and www:
$ cat /etc/resolv.conf
nameserver 8.8.8.8
search ubuntu.com
$ dig +nostat +nocmd www.ubuntu.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55037
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.ubuntu.com. IN A
;; ANSWER SECTION:
www.ubuntu.com. 501 IN A 91.189.89.115
$ dig +search +nostat +nocmd www
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25772
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.ubuntu.com. IN A
;; ANSWER SECTION:
www.ubuntu.com. 382 IN A 91.189.89.103
$ systemd-resolve www.ubuntu.com
www.ubuntu.com: 91.189.89.115
-- Information acquired via protocol DNS in 2.7ms.
-- Data is authenticated: no
$ systemd-resolve www
www: 91.189.90.59
(www.ubuntu.com)
-- Information acquired via protocol DNS in 3.8ms.
-- Data is authenticated: no
Ubuntu 17.04 default config, with the systemd-resolved name server in
/etc/resolv.conf and no search list. www.ubuntu.com can still be
resolved correctly:
$ cat /etc/resolv.conf
nameserver 127.0.0.53
$ dig +nostat +nocmd www.ubuntu.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64646
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.ubuntu.com. IN A
;; ANSWER SECTION:
www.ubuntu.com. 482 IN A 91.189.89.110
$ systemd-resolve www.ubuntu.com
www.ubuntu.com: 91.189.90.58
-- Information acquired via protocol DNS in 18.2ms.
-- Data is authenticated: no
Broken behaviour, using the systemd-resolved name server and specify
ubuntu.com in search list. Resolving fails for www.ubuntu.com and www,
both using dig (DNS) and using sytemd-resolve:
$ cat /etc/resolv.conf
nameserver 127.0.0.53
search ubuntu.com
$ dig +nostat +nocmd www.ubuntu.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 33334
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.ubuntu.com. IN A
$ dig +search +nostat +nocmd www
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 50588
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.ubuntu.com. IN A
$ systemd-resolve www.ubuntu.com
www.ubuntu.com: resolve call failed: No appropriate name servers or networks for name found
$ systemd-resolve www
www: resolve call failed: All attempts to contact name servers or networks failed
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1714803/+subscriptions
More information about the foundations-bugs
mailing list