systemd/NetworkManager - упорядочивание DNS-серверов

systemd/NetworkManager - упорядочивание DNS-серверов

Моя установка Debian использует systemd-resolvedNetworkManager. Для моих домашних подключений я настроил NetworkManager на установку DNS-серверов для использования:

$cat /etc/NetworkManager/system-connections/my-wifi-ssid.nmconnection

...
[ipv4]
dns=10.30.20.1;1.1.1.1;8.8.8.8;
ignore-auto-dns=true
method=auto
...

По сути, я хотел бы использовать свой локальный DNS-сервер по 10.30.20.1умолчанию, а два других оставить только в качестве запасного варианта.

Проблема в том, что активный/используемый сервер, по-видимому, выбирается случайным образом:

$resolvectl status
Link 4 (wlp3s0)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 1.1.1.1
       DNS Servers: 10.30.20.1 1.1.1.1 8.8.8.8

Примечание: я видел все три как активные, но это не согласовано. Есть ли способ заставить systemd-resolved предпочесть сервер, указанный первым NetworkManager?

решение1

Даже при настроенных статических DNS-серверах NetworkManager иногда удаляет их все и не оставляет ни одного работающего. Кроме того, он меняет ваши DNS-серверы по мере включения и выключения сетевых интерфейсов. Похоже, в NetoworkManager нет способа отключить его динамическое управление.

Альтернативное решение — полностью отключить динамическое управление DNS. Это можно сделать, удалив /etc/resolv.confсимволическую ссылку и заменив ее реальным файлом, который является статическим. Что-то вроде этого сработает:

nameserver 10.30.20.1
nameserver 1.1.1.1
nameserver 8.8.8.8

В этом файле есть и другие настройки, которые NetworkManager добавляет автоматически. Возможно, вы захотите скопировать и их.

Связанный контент