Ubuntu 18.04 не распознает имена хостов от маршрутизатора

Ранее у меня был установлен Xubuntu 16.04, и он распознавал имена хостов, установленные моим маршрутизатором (Tomato).

Например, у меня в сети есть компьютер с именем mate со статическим IP-адресом 192.168.2.202, и раньше я мог это сделать:

$ host mate                                                               
mate has address 192.168.2.202

Но теперь я получаю следующее:

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

На этот раз я выполнил минимальную настольную установку, поэтому мне интересно, есть ли какой-то пакет, который мне не хватает.

РЕДАКТИРОВАТЬ:

$ 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

Мой маршрутизатор - 192.168.2.1

РЕДАКТИРОВАНИЕ 2:

Использование dig показывает, что маршрутизатор правильно сообщает имя хоста.

$ 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

Но если я не упомяну DNS IP-адрес маршрутизатора, я его не найду.

$ 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 

Таким образом, кажется, что, хотя он указан в /var/run/systemd/resolve/resolv.conf, он не используется. Как мне это исправить?

2
задан 19 June 2018 в 05:08

3 ответа

Похоже, это связано с этой проблемой:

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

В новой установке /etc/resolv.conf связан с /run/systemd/resolve/stub-resolv.conf вместо /run/systemd/resolve/resolv.conf.

Обновление в соответствии с https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624320/comments/8 исправило его.

5
ответ дан 19 June 2018 в 05:08

Вот что происходит: systemd-resolved не разрешает локальные доменные имена, если имена не являются полностью определенными именами, такими как mate.local

Как сказано в документе о Systemd-networkd , неплохое решение - обрезать файл /etc/nsswitch.conf

sudo nano /etc/nsswitch.conf

Изменить строку хостов

# /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
[ 1116] Объяснение:
Имя хоста разрешает поиск сначала в файлах (/etc/hosts), затем с помощью avahi (zeroconf), затем запрашивает сервер DNS. И больше не останавливайтесь, если avahi не находит локальное имя как [NOTFOUND=return] принудительно. Надеюсь, что это ясно.

перезапустить службу

sudo systemctl restart systemd-resolved
3
ответ дан 19 June 2018 в 05:08

Обходной путь, указанный в этом комментарии к отчету об ошибке , решил эту проблему для моей установки Ubuntu 18.04 LTS.

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
1
ответ дан 11 January 2020 в 03:13

Другие вопросы по тегам:

Похожие вопросы: