[Bug 1821491] Re: DNS lookup fails for local hosts
Dan Streetman
dan.streetman at canonical.com
Wed Apr 17 11:16:23 UTC 2019
> $ dig phspi05.phs @192.168.2.1
...
> ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 21263
hmm, so, i'm confused now, in the description you said dig works when
querying your router directly? I guess that's not the case?
It certainly seems like this is not a issue with systemd - your problem
appears to be with your router dns configuration. I'll mark this bug as
invalid, but let me know if you disagree.
> So is it perhaps that my naive expectation that without a domain the host is
> assumed to be local is not consistently followed by different programs/devices?
Appending of the "search domains" is done only through the getaddrinfo()
(and related) glibc functions. This is the call that uses the
/etc/resolv.conf file for configuration to perform its lookup. You can
see "man resolv.conf" for specific details on the process, but in most
cases it will lookup the hostname you ask for first, and then if that
fails it will try looking up the hostname using each 'search' domain you
specify.
Since modern systems using systemd almost always configure resolv.conf
to send all traffic to the local stub resolver (i.e. 127.0.0.53), this
in effect means systemd-resolved is responsible for actually talking to
all upstream name servers.
Note that any program that *does not* use getaddrinfo() completely
bypasses this and is free to perform lookups however it wants; dig does
just that, by querying *exactly* what you are searching for, to
*exactly* the nameserver you specify. You can tell dig to use any
search domains specified in /etc/resolv.conf, with the +search
parameter; by default it does not use any search domains, and queries
only what you ask it for.
> Also I now realise that my laptop doesn't know what domain it is part of:
> $ domainname
> (none)
Unless you don't have 'domain' or 'search' defined in /etc/resolv.conf,
this doesn't matter for dns resolution.
** Changed in: systemd (Ubuntu)
Status: New => Invalid
--
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/1821491
Title:
DNS lookup fails for local hosts
Status in systemd package in Ubuntu:
Invalid
Bug description:
Mint 19 (Ubuntu Bionic)
Laptop so Using NetworkManager, and connecting wirelessly to LAN
Upgraded from Mint 18.3 so using resolvconf...
Versions:
network-manager: 1.10.6-2ubuntu1.1
resolvconf: 1.79ubuntu10.18.04.3 or 1.79ubuntu10.18.04.2
systemd: 237-3ubuntu10.15
dns is specified in NetworkMananager as 192.168.2.1
the dns is a router, and has static ips assigned to certain hosts on my lan...
$cat resolv.conf
nameserver 127.0.0.53
search phs
options edns0
$ nslookup phspi05
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find phspi05: SERVFAIL
If I explicity specify the dns:
$ nslookup phspi05 192.168.2.1
Server: 192.168.2.1
Address: 192.168.2.1#53
Non-authoritative answer:
Name: phspi05
Address: 192.168.2.35
I get the correct ip address...
Same with dig...
I would expect that the nameserver set in network-manager would be
used....
From tail of $ systemd-resolve --status
Link 2 (wlp2s0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.2.1
DNS Domain: phs
So the dns address had been picked up from NetworkManager, but
apparently is not being used...
Thought it might be related to this bug:
https://bugs.launchpad.net/ubuntu/bionic/+source/resolvconf/+bug/1817903
So installed the proposed fix, but no change. I also tried removing
package resolvconf, again no change...
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1821491/+subscriptions
More information about the foundations-bugs
mailing list