Рейтинг:0

Why do two Ubuntu systems in the same network behave differently in DNS resolution?

флаг pl

EDIT (tl;dr)

I seem to have identified part of the problem here, as at least the differences in /etc/resolv.conf and related files are gone.

But I still cannot connect via WiFi, so other difference probably persist.

I mean to identify these, and act upon them.


I intentionally selected the same title as this OP. I have two Ubuntu systems, server1 and server2, very similar in all respects. Both are connected to the same router, via WiFi. I worked by comparing the two systems to help tracking the problem.

In server2, I just started having DNS name resolution problems. I was connected to a VPN, and the server was rebooted, so I guess this PostScriptum may describe the case. server2 did not have resolvconf and I installed it as an outcome. At that time /etc/resolv.conf started pointing at /run/resolvconf/resolv.conf (note the modification date below), instead of /run/systemd/resolve/stub-resolv.conf. To do that, I had to manually add nameserver 8.8.8.8 at the top in /etc/resolv.conf, plug a wired internet connection, and I could immediately sudo apt update, etc. Note: As of now, the problem with file permissions quoted in the link above is not present. If it shows up next time I connect to/disconnect from a VPN, I will deal with it.

I am listing below: 1) what is different in server1 and server2, 2) what is the same in both (with any replacing the server name), and 3) what is almost the same (with irrelevant differences, in my understanding).

Why DIFFERENCE #3 below? (nameserver ::1).
How to fix server2, if possible, by leaving it with the same configuration as server1? I could try modifying /etc/resolvconf/resolv.conf.d/tail in server2, but since that file is empty in server1 this action would possibly mask other problems, even if successful.

I guess if I could only have DIFFERENCES #1-4 below fixed, that will solve the problem. But all 4 files are quoted as dynamically created. I could not locate who is/was responsible for "creating" the differences, and how to fix that.

Different

dig:

[server1]$ dig google.com

; <<>> DiG 9.16.1-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64202
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.com.     94  IN  A   216.58.202.46

;; Query time: 36 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: mar ago 10 03:44:51 -03 2021
;; MSG SIZE  rcvd: 55

vs.

[server2]$ dig google.com

; <<>> DiG 9.16.1-Ubuntu <<>> google.com
;; global options: +cmd
;; connection timed out; no servers could be reached

/etc/resolv.conf and related files:

[server1]$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
search fibertel.com.ar                                     <--- DIFFERENCE #1

[server1]$ cat /run/systemd/resolve/stub-resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0 trust-ad
search fibertel.com.ar                                     <--- DIFFERENCE #2

[server1]$ cat /run/systemd/resolve/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 192.168.0.1                                     <--- DIFFERENCE #3
search fibertel.com.ar                                     <--- DIFFERENCE #3

[server1]$ cat /run/resolvconf/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
search fibertel.com.ar                                     <--- DIFFERENCE #4

[server1]$ ll /etc/resolv.conf 
lrwxrwxrwx 1 root root 29 feb  1  2021 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
[server1]$ ll /run/resolvconf/resolv.conf
-rw-r--r-- 1 root root 327 ago  9 20:59 /run/resolvconf/resolv.conf

vs.

[server2]$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

[server2]$ cat /run/systemd/resolve/stub-resolv.conf 
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0 trust-ad

[server2]$ cat /run/systemd/resolve/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver ::1                                     <--- DIFFERENCE #3

[server2]$ cat /run/resolvconf/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

[server2]$ ll /etc/resolv.conf
lrwxrwxrwx 1 root root 29 ago  9 22:38 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
[server2]$ ll /run/resolvconf/resolv.conf
-rw-r--r-- 1 root root 304 ago 10 03:13 /run/resolvconf/resolv.conf

Same

[any]$ uname -a
Linux <serverN> 5.11.0-25-generic #27~20.04.1-Ubuntu SMP Tue Jul 13 17:41:23 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

[any]$ dpkg -l | grep resolvconf
ii  resolvconf                                    1.82                                all          name server information handler

[any]$ cat /etc/netplan/01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

[any]$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

[any]$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   <serverN>

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

[any]$ cat /etc/nsswitch.conf
...
[any]$ cat /etc/systemd/networkd.conf 
...
[any]$ ss -plnt | grep ':53'
LISTEN   0        4096       127.0.0.53%lo:53            0.0.0.0:* 
[any]$ sudo systemctl status resolvconf.service
...
[any]$ /lib/systemd/network/
...

Almost the same

[server1]$ lsb_release -a
LSB Version:    core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:    20.04
Codename:   focal

[server2]$ lsb_release -a
LSB Version:    core-11.1.0ubuntu2-noarch:printing-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:    20.04
Codename:   focal

Related:

  1. DNS set to systemd's 127.0.0.53 - how to change permanently?
guiverc avatar
флаг cn
Шоу сильно отличается в отношении уровня * патча * (один все еще говорит 20.04.1, что означает, что он не получал патчей по крайней мере до 4 февраля 2021 г. (https://fridge.ubuntu.com/2021/02/05/ubuntu- 20-04-2-lts-released/ хотя эта дата является датой выпуска ISO, установленные системы были обновлены до версии 20.04.2 до этой даты). игнорирую*...
sancho.s ReinstateMonicaCellio avatar
флаг pl
@guiverc - я согласен, что это может представлять собой существенные различия (* в целом *), и я могу попробовать обновить. Но как вы думаете, имеет ли это какое-то отношение к двум вопросам (выделены жирным шрифтом)?
guiverc avatar
флаг cn
Он показывает очень разные системы; либо один из них игнорировался в течение шести месяцев и не обновлялся (поэтому его обновление устранит различия), либо, что более вероятно, он был изменен таким образом, что не позволяет устанавливать обновления, и потенциально также является причиной различия и что Вы ищете.
sancho.s ReinstateMonicaCellio avatar
флаг pl
@guiverc - я сделал обновление, но проблема не устранена. Пожалуйста, смотрите отредактированный ОП.
Рейтинг:1
флаг cn

The file /etc/resolv.conf is intended to be a symbolic link to /run/systemd/resolve/stub-resolv.conf Check:

ls -al /etc/resolv.conf

If it is not, correct it:

sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/stub-resolv.conf  /etc/resolv.conf

Your netplan yaml file indicates that you are running Network Manager. That is the place to make your changes to DNS nameservers.

enter image description here

sancho.s ReinstateMonicaCellio avatar
флаг pl
Как указано в ОП, я только что установил `resolvconf`.«В то время `/etc/resolv.conf` начал указывать на `/run/resolvconf/resolv.conf` ... вместо `/run/systemd/resolve/stub-resolv.conf`». Так что да, у меня есть это как программная ссылка, но теперь она отличается от того, что вы разместили. Что касается ручного изменения DNS-серверов имен в *Меню* -> *Настройки* -> *Wi-Fi* -> ..., зачем мне это нужно делать в одной системе (`server2`), а не в другой ( `сервер1`)? Я все равно попробую.
sancho.s ReinstateMonicaCellio avatar
флаг pl
Я подтверждаю, что ручная установка значений, как вы показываете, заставляет WiFi работать. Но зачем это нужно? Как я могу этого избежать? Наверное, это возможно... `server1` работает именно так. И `server2` тоже работал так до вчерашнего дня.
chili555 avatar
флаг cn
Ваш netplan yaml говорит, как и должно быть, когда Network Manager установлен и работает, передать все NM. Поэтому именно здесь мы устанавливаем конфигурацию DNS. Если это не то, что вы хотите, полностью удалите NM и соответствующим образом измените свой сетевой план yaml. Если это то, что вы хотите, пожалуйста, начните новый вопрос. Мне интересно, почему NM установлен на сервере. Если я дал полезный ответ на ваш вопрос, пожалуйста, примите его: https://askubuntu.com/tour
sancho.s ReinstateMonicaCellio avatar
флаг pl
То есть вы имеете в виду, что *единственным* местом для установки конфигурации DNS, когда отвечает NM, является конфигурация каждого соединения WiFi? (не могли бы вы указать, в каких файлах хранятся изменения, внесенные через графический интерфейс?) Как было сказано, с одной стороны, это сработало для `server2`. OTOH, похоже, это не «то самое» место для настройки DNS. В `server1` это, кажется, установлено где-то еще, так как мое соединение WiFi имеет автоматическую конфигурацию, с которой проще всего справиться, и которую я больше всего хочу иметь. Так что ответ *является* полезным (+1)... Я бы подожду, чтобы, возможно, получить дополнительные ответы/информацию, разъясняющую суть вопроса.
chili555 avatar
флаг cn
При автоматической настройке или, точнее, DHCP точка доступа, обычно беспроводной маршрутизатор, предоставляет все необходимые данные; IP-адрес, шлюз и DNS-серверы имен. Узнайте, что с помощью: `systemd-resolve --status | grep 'DNS-серверы' -A2` В ручной настройке, то есть вы хотите указать либо IP-адрес, либо DNS-серверы имен, либо и то, и другое, подробности будут записаны в: `sudo cat /etc/NetworkManager/system-connections/MYROUTER .nmconnection`, где MYROUTER — имя точки доступа, к которой вы подключены. Вот фрагмент моего файла: `dns=8.8.8.8;8.8.4.4;`

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.