Ubuntu 18.04 not recognizing hostnames from router

10,321

Solution 1

This seems to related to this issue:

https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624320

On a fresh install, /etc/resolv.conf is linked to /run/systemd/resolve/stub-resolv.conf instead of /run/systemd/resolve/resolv.conf.

Updating it per https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624320/comments/8 fixed it.

Solution 2

Here is what happen: systemd-resolved do not resolve local domain names if the names are not fully qualified names like mate.local

As told in a doc about Systemd-networkd, a good fix is to trim the /etc/nsswitch.conf file

sudo nano /etc/nsswitch.conf

Modify the hosts line

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat systemd
group:          compat systemd
shadow:         compat
gshadow:        files
# ---- MODIFY THIS LINE ------------------------------------------------
# hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname
# ---- TO --------------------------------------------------------------
hosts:          files mdns4_minimal dns myhostname
# ---- THATS ALL -------------------------------------------------------
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Explanation:
Hostname resolving search first in files (/etc/hosts), then with avahi (zeroconf), then ask to dns server. And do not more stop if avahi does not find a local name as [NOTFOUND=return] forced. Hope its clear.

restart service

sudo systemctl restart systemd-resolved

Solution 3

A workaround given in this bug report comment solved it for my Ubuntu 18.04 LTS installation.

Disable and stop the systemd-resolved service:

sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved

Then put the following line in the [main] section of your /etc/NetworkManager/NetworkManager.conf:

dns=default

Delete the symlink /etc/resolv.conf

rm /etc/resolv.conf

Restart network-manager

sudo service network-manager restart
Share:
10,321
Sarke
Author by

Sarke

Updated on September 18, 2022

Comments

  • Sarke
    Sarke over 1 year

    I previously had Xubuntu 16.04 installed, and it did recognize the hostnames set by my router (Tomato).

    For example, I have a computer with the name mate on the network with a static IP of 192.168.2.202, and previously I could do this:

    $ host mate                                                               
    mate has address 192.168.2.202
    

    But now I get this:

    $ host mate
    Host mate not found: 2(SERVFAIL)
    

    This time around I did a minimal desktop install, so I wonder if there is a certain package I am missing.

    EDIT:

    $ cat /var/run/systemd/resolve/resolv.conf:
    nameserver 192.168.2.1
    
    $ cat /var/run/NetworkManager/resolv.conf
    nameserver 127.0.0.53
    
    $ netstat -antup
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      3421/VBoxHeadless   
    tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      663/systemd-resolve 
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      950/sshd            
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      737/cupsd              
    tcp6       0      0 :::5900                 :::*                    LISTEN      3421/VBoxHeadless   
    tcp6       0      0 :::22                   :::*                    LISTEN      950/sshd            
    tcp6       0      0 ::1:631                 :::*                    LISTEN      737/cupsd           
    udp    14784      0 0.0.0.0:52712           0.0.0.0:*                           2092/VirtualBox     
    udp     8704      0 0.0.0.0:53789           0.0.0.0:*                           2092/VirtualBox     
    udp     9536      0 0.0.0.0:5353            0.0.0.0:*                           730/avahi-daemon: r 
    udp    19648      0 0.0.0.0:55126           0.0.0.0:*                           2092/VirtualBox     
    udp     8704      0 0.0.0.0:39114           0.0.0.0:*                           2092/VirtualBox     
    udp    13248      0 0.0.0.0:41109           0.0.0.0:*                           2092/VirtualBox     
    udp        0      0 0.0.0.0:57555           0.0.0.0:*                           730/avahi-daemon: r 
    udp     3648      0 0.0.0.0:59213           0.0.0.0:*                           2092/VirtualBox     
    udp     8064      0 0.0.0.0:59519           0.0.0.0:*                           2092/VirtualBox     
    udp     3648      0 0.0.0.0:48795           0.0.0.0:*                           2092/VirtualBox     
    udp     3648      0 0.0.0.0:48900           0.0.0.0:*                           2092/VirtualBox     
    udp    36096      0 127.0.0.53:53           0.0.0.0:*                           663/systemd-resolve 
    udp    37120      0 0.0.0.0:68              0.0.0.0:*                           1066/dhclient       
    udp    15424      0 0.0.0.0:33008           0.0.0.0:*                           2092/VirtualBox     
    udp     3648      0 0.0.0.0:49597           0.0.0.0:*                           2092/VirtualBox     
    udp    14464      0 0.0.0.0:33395           0.0.0.0:*                           2092/VirtualBox     
    udp        0      0 0.0.0.0:631             0.0.0.0:*                           828/cups-browsed    
    udp    19840      0 0.0.0.0:49883           0.0.0.0:*                           2092/VirtualBox     
    udp    14592      0 0.0.0.0:33614           0.0.0.0:*                           2092/VirtualBox     
    udp6       0      0 :::51356                :::*                                730/avahi-daemon: r 
    udp6   49344      0 :::5353                 :::*                                730/avahi-daemon: r 
    
    $ systemd-resolve --status
    Global
              DNSSEC NTA: 10.in-addr.arpa
                          16.172.in-addr.arpa
                          168.192.in-addr.arpa
                          17.172.in-addr.arpa
                          18.172.in-addr.arpa
                          19.172.in-addr.arpa
                          20.172.in-addr.arpa
                          21.172.in-addr.arpa
                          22.172.in-addr.arpa
                          23.172.in-addr.arpa
                          24.172.in-addr.arpa
                          25.172.in-addr.arpa
                          26.172.in-addr.arpa
                          27.172.in-addr.arpa
                          28.172.in-addr.arpa
                          29.172.in-addr.arpa
                          30.172.in-addr.arpa
                          31.172.in-addr.arpa
                          corp
                          d.f.ip6.arpa
                          home
                          internal
                          intranet
                          lan
                          local
                          private
                          test
    
    Link 6 (vboxnet2)
          Current Scopes: none
           LLMNR setting: yes
    MulticastDNS setting: no
          DNSSEC setting: no
        DNSSEC supported: no
    
    Link 5 (vboxnet1)
          Current Scopes: none
           LLMNR setting: yes
    MulticastDNS setting: no
          DNSSEC setting: no
        DNSSEC supported: no
    
    Link 4 (vboxnet0)
          Current Scopes: none
           LLMNR setting: yes
    MulticastDNS setting: no
          DNSSEC setting: no
        DNSSEC supported: no
    
    Link 3 (wlp4s1)
          Current Scopes: none
           LLMNR setting: yes
    MulticastDNS setting: no
          DNSSEC setting: no
        DNSSEC supported: no
    
    Link 2 (eno1)
          Current Scopes: DNS
           LLMNR setting: yes
    MulticastDNS setting: no
          DNSSEC setting: no
        DNSSEC supported: no
             DNS Servers: 192.168.2.1
    

    My router is 192.168.2.1

    EDIT 2:

    Using dig shows that the router does correctly report the hostname.

    $ dig @192.168.2.1 mate    
    ; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> @192.168.2.1 mate
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47046
    ;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;mate.              IN  A
    
    ;; ANSWER SECTION:
    mate.           0   IN  A   192.168.2.202
    
    ;; Query time: 0 msec
    ;; SERVER: 192.168.2.1#53(192.168.2.1)
    ;; WHEN: Mon Jun 18 18:53:26 PDT 2018
    ;; MSG SIZE  rcvd: 38
    

    But if I don't specifically mention the router's DNS IP, I don't find it.

    $ dig mate             
    ; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> mate
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 65394
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 65494
    ;; QUESTION SECTION:
    ;mate.              IN  A
    
    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.53#53(127.0.0.53)
    ;; WHEN: Mon Jun 18 19:06:13 PDT 2018
    ;; MSG SIZE  rcvd: 33 
    

    So it seems that even though it is listed in /var/run/systemd/resolve/resolv.conf it is not being used. How do I fix this?

  • cmak.fr
    cmak.fr almost 6 years
    Sorry, the story with /etc/resolv.conf and /run/systemd/resolve/stub-resolv.conf is not the issue of the bug report #1624320 -- The workaround found by some user is not a fix
  • Charles Boling
    Charles Boling over 5 years
    This sounds good, but it didn't fix it for me, even after executing "systemd-resolve --flush-caches". (Mine broke after upgrade from 16.04 to 18.04)
  • Beef Eater
    Beef Eater over 4 years
    IMO symlinking /etc/resolv.conf to /run/systemd/resolve/resolv.conf is the correct way to force systemd-resolved to use the DNS server, thus neutering any possible issues in /etc/nsswitch.conf. See comments on four modes of handling /etc/resolv.conf at freedesktop.org/software/systemd/man/….
  • Steve Shipway
    Steve Shipway about 4 years
    This has also happened to me on upgrade from xenial to bionic; the /etc/resolv.conf softlink was incorrect. Fixed as above and all now works.
  • yoyoma2
    yoyoma2 over 3 years
    Also works with Ubuntu 20.04 LTS.