Кто-нибудь знает, как работает systemd-resolv voodo?
192.168.1.30
является правильным DNS-сервером для моей сети как возвращено DHCP.
/etc/resolv.conf
указывает на 127.0.0.53
Systemd утверждает, что использует правильный сервер.
systemd-resolve --status | grep "DNS Servers"
192.168.1.30
Но dig указывает, что это не переадресация запросов
Если я укажу сервер, который смогу разрешить shadowbox
dig @192.168.1.30 shadowbox
; <<>> DiG 9.16.1-Ubuntu <<>> @192.168.1.30 shadowbox
...
;; ANSWER SECTION:
shadowbox. 60 IN A 192.168.1.34
...
, то systemd-resolv не сможет
dig @127.0.0.53 shadowbox
; <<>> DiG 9.16.1-Ubuntu <<>> @127.0.0.53 shadowbox
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 60161
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;shadowbox. IN A
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Jun 07 14:00:12 CEST 2020
;; MSG SIZE rcvd: 38
Я попытался отскочить от сервера, сбросить вызов и установить сервер вручную
systemd-resolve --flush-caches
systemd-resolve --set-dns=192.168.1.30 --interface=enp0s31f6
Я смогу chattr + i / etc / resolv.conf
для восстановления контроля над DNS, но было бы неплохо узнать, почему systemd не работает, так как я теряю преимущества DHCP.
добавьте вышестоящий dns в /etc/systemd/resolved.conf
[Разрешить]
DNS = 192.168.1.123
restart служба systemd-resolved restart
проверка с systemd-resolv --status
Global DNS-серверы: 192.168.1.123
В файле конфигурации для интерфейса локальной сети (файл, соответствующий файлу шаблон имени / etc / systemd / network / *. network ) либо указывает на получение адреса локального DNS-сервера от DHCP-сервера, используя опцию DHCP =
:
[Network]
DHCP=yes
Также убедитесь, что resolvconf имеет значение не мешает:
systemd-resolved будет работать из коробки с сетевым менеджером, используя /etc/resolv.conf. Никакой конкретной конфигурации не требуется, так как systemd-resolved будет обнаружен, следуя /etc/resolv.conf символическая. Это будет в случае с systemd-networkd или NetworkManager.
Однако, если клиенты DHCP и VPN используют программу resolvconf, чтобы установить серверы имен и поисковые домены (см. openresolv # Users для списка программное обеспечение, которое использует resolvconf), дополнительный пакет systemd-resolvconf необходим для предоставления / usr / bin / resolvconf символическая. Примечание: systemd-resolved имеет ограниченный интерфейс resolvconf и может не работать со всеми клиентами, см. resolctl (1) для более Информация. (из archwiki )
Похоже, это дизайн. Поттеринг закрыл проблему https://github.com/systemd/systemd/issues/2514 с помощью wont-fix.
dig @127.0.0.53 shadowbox
systemd-resolved
не поддерживает простые имена через DNS, только fqdn и игнорирует директиву поиска.