DNS в 127.0.0.53 systemd игнорирует некоторые поиски

DNS systemd lovated в 127.0.0.53, кажется, работает кроме тех случаев, когда я запрашиваю для локальных машин по имени. Но если я запрашиваю для них и конкретно указываю локальный сервер DNS (мой маршрутизатор) затем, я получаю надлежащий ответ. Но в файле конфигурации говорится, что он также использует маршрутизатор в качестве поискового адреса. Какие-либо мысли?

Я запускаю Ubuntu 18.04 на своем ноутбуке Dell.

Неправильные результаты:

$ nslookup web1

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find web1: SERVFAIL

Также сбои

$ nslookup -i wlp3s0 web1
nslookup: couldn't get address for 'web1': not found

Корректные результаты:

$ nslookup web1 192.168.1.1

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   web1
Address: 192.168.1.107

Systemd-твердость Информации о конфигурации

$ 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 3 (wlp3s0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.1
          DNS Domain: wp.comcast.net

Link 2 (enp2s0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Информация о конфигурации NetworkManager

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

[ifupdown]
managed=false

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

Таким образом, как я заставляю nslookup давать корректный ответ? Ссылка 3, кажется, корректная информация (мое соединение Wi-Fi), и мой DNS на маршрутизаторе дает корректный ответ, но локальный кэш никогда не пытается искать адрес (или таким образом, это кажется).

14
задан 29 May 2018 в 07:34

2 ответа

Ваш resolv.conf файл не указывал на неправильное место — ../run/systemd/resolve/stub-resolv.conf то, где это, как предполагается, указывает на по умолчанию.

Проблема - это systemd-resolved не передает неотмеченные точкой имена на DNS. По-видимому, это работает, "как разработано". Посмотрите эту проблему GitHub, которая указывает, что "разрешенный никогда не будет позволять поискам единственной маркировки пропускать на одноадресную передачу DNS".

Соглашаетесь ли Вы с обоснованием во что проблема GitHub, существует способ зафиксировать это. Это даже не требует внесения никаких изменений в установку по умолчанию на Вашей машине Ubuntu:

  1. Во-первых, DNS Вашей LAN должен иметь доменное имя.

    При использовании dnsmasq добавьте следующее к /etc/dnsmasq.conf на Вашем сервере DNS:

    expand-hosts
    domain=your-domain # replace "your-domain" with domain of your choice
    

    Необходимо теперь смочь разрешить имена хостов LAN если Ваш добавлять домен:

    nslookup web1.your-domain
    
  2. Во-вторых, удостоверьтесь, что имя домена Вашей LAN также определяется в Вашем сервере DHCP, если это отличается от Вашего сервера DNS. На моем сервере DHCP (мой маршрутизатор), эту установку просто называют "Доменным именем".

    Если Вы затем возобновляете свой арендный договор DHCP о Вашем поле Ubuntu, необходимо видеть, что поисковая директива появляется в /run/systemd/resolve/stub-resolv.conf:

    nameserver 127.0.0.53
    search your-domain
    

Теперь поиск web1 развернет его до web1.your-domain, который затем разрешит использование DNS.

$ nslookup web1
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   web1.your-domain
Address: 192.168.1.107

Обратите внимание на это, если Вы используете dig вместо nslookup, dig не использует путь поиска по умолчанию — используют +search опция включить это.

8
ответ дан 23 November 2019 в 02:56

Я нашел фиксацию, которая работала на меня.

мой resolv.conf файл указывал на неправильное место. Это походит на ошибку в Ubuntu, как это произошло на моем ноутбуке (машина, я сначала заметил эту проблему о), и о новой установке Сервера Ubuntu 18.04.

Значение по умолчанию

$ ls -l /etc/resolv.conf

lrwxrwxrwx 1 root root 39 Apr 26 12:07 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

Я удалил это и указал на корректный файл. После перезагрузки это решило мою проблему. И я даже смог переключить сети на своем ноутбуке и DNS, переключенном правильно. Конечно, когда во внешних сетях я не могу разрешить ни одну из своих локальных машин, но это ожидается. Как только я переключаюсь назад на свою локальную сеть, все локальные машины решают правильно, потому что моим маршрутизатором является DNS.

The Fix

$ sudo rm -f /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
$ ls -l /etc/resolv.conf

lrwxrwxrwx 1 root root 32 May 29 08:48 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf

$ sudo reboot

После этого все работало, как я ожидал, и 127.0.0.53 больше не используется вообще.

Корректные результаты

$ nslookup web1

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   web1
Address: 192.168.1.107

$ nslookup google.com

Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.7.174
Name:   google.com
Address: 2607:f8b0:4004:80e::200e
19
ответ дан 23 November 2019 в 02:56

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

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