DNS в системі 127d.0.0.53 ігнорує деякі пошуки


14

DNS системної системи, знижений на 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-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 на маршрутизаторі повертає правильну відповідь, але локальний кеш ніколи не намагається шукати адресу (або так здається).


Перегляньте цю публікацію і побачте, чи це вирішить вашу проблему: askubuntu.com/questions/1034064/…

У мене в конфігураційному файлі немає dns = dnsmasq. Я актуалізую своє запитання, щоб це показати.
schworak

Яку версію Ubuntu ви використовуєте і чи можете ви також оновити свою публікацію в налаштуваннях IP?

Я працюю на Ubuntu 18.04 на ноутбуці Dell.
schworak

ви можете plz спробуватиnslookup -i wlp3s0 web1
cmak.fr

Відповіді:


9

Ваш файл resolv.conf не вказує на неправильне місце - ../run/systemd/resolve/stub-resolv.conf це де він повинен точці за замовчуванням.

Проблема полягає в тому, systemd-resolvedщо не передаються неточені імена на DNS. Мабуть, це працює «за задумом». Дивіться цю проблему github, в якій зазначається, що "вирішені ніколи не дозволять однозначним пошуковим запитам просочуватися на одноадресний DNS".

Чи погоджуєтесь ви чи ні з міркуваннями у цьому випуску github, є спосіб виправити це. Навіть не потрібно вносити будь-які зміни в налаштування за замовчуванням на вашій машині Ubuntu:

  1. По-перше, DNS вашої локальної мережі повинен мати доменне ім’я.

    Якщо ви використовуєте dnsmasq, додайте наступне /etc/dnsmasq.confна свій DNS-сервер:

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

    Тепер ви зможете вирішити імена хостів локальної мережі, якщо ви додасте домен:

    nslookup web1.your-domain
    
  2. По-друге, переконайтеся, що ім'я домену вашої локальної мережі також встановлено на вашому сервері 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параметр, щоб увімкнути це.


Перед перезавантаженням веб-сайт web1.mydomain.com добре виглядав. Але звичайно шукати просто web1 не вийшло. Отже, я перезавантажився, і все життя я не маю уявлення, де він збирає домен Comcast, але тепер, якщо я шукаю веб1, він відповідає правильним IP, але показує домен comcast замість мого домену. Це вирішує, так що я не надто переживаю, але що, до біса, ????
schworak

@schworak Дивно! Ваш сервер DHCP також є вашим модемом Comcast? Ви бачите, що цей домен відображається у /etc/resolv.confабо у виході будь-якого nmcli -g allчи systemd-resolve --status? Можливо, спробуйте подивитися, що у вас в оренді DHCP ?
Лоранс Гонсальвес

Це не модем comcast. У мене маршрутизатор SysLink з запущеною DDWRT. Налаштування comcast повністю замінені. Назва комасу відображається у файлі resv.conf, який автоматично генерується при завантаженні. Я не надто переживаю це, але це дивно.
schworak

@LaurenceGonsalves Дякую тонну за посилання на випуск github. Я знайшов вирішення проблеми, але це фактично допомогло мені розібратися в кореневій проблемі.
Григорій Ареній

19

Я знайшов виправлення, яке працювало на мене.

мій файл resolutionv.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.

Виправлення

$ 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

Повідомте про цю помилку за допомогою ubuntu-bug resolvconf.
Чай Т. Рекс

Коли я починаю надсилати, він каже, що Reslavconf (не встановлено). Чи одне й те саме: reslvconf та systemd-вирішити?
schworak

systemd-resolveнадається systemdпакетом , тому будь ласка, спробуйте ubuntu-bug systemdзамість цього.
Чай Т. Рекс

Спасибі! Я ніколи раніше не використовував цю функцію звітування про помилки. Дуже хороша.
schworak

1
Ого, це божевільно. Дякую. Чи виправляли цю помилку? Це помилка, характерна для Докера? Я думаю, що resolv.confце налаштовано таким чином для докер-мостової мережі DNS?
void.pointer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.