Чому не вирішено системою використання мого локального сервера DNS?


13

Я використовую локальний сервер BIND9 для розміщення деяких локальних записів dns. Коли я намагаюся викопати локальне доменне ім'я, я не можу його знайти, якщо я прямо не скажу dig використовувати свій локальний сервер BIND9.

user@heimdal:~$ dig +short heimdal.lan.se
user@heimdal:~$ dig +short @192.168.1.7 heimdal.lan.se
192.168.1.2

Використовуються Ubuntu 17.04 та вирішено системою. Це вміст мого / etc / вирішеного

# 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

І вихід із systemd-resolution --status

Global
         DNS Servers: 192.168.1.7
                      192.168.1.1
          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

Здається, розділ DNS-сервери правильно налаштовано 192.168.1.7 як основний DNS-сервер (мій локальний екземпляр BIND9). Я не можу зрозуміти, чому він не використовується ...?


Я щось запам’ятав, як systemdвикористовує Google DNS як резервний…
William Edwards

Що systemd-resolve heimdal.lan.seговорить?
Біґон

Відповіді:


8

Отже, змінивши мій провідний інтерфейс eth0, який потрібно керувати, вирішив цю проблему для мене.

Зміна ifupdown на керований = true у /etc/NetworkManager/NetworkManager.conf

[ifupdown]
managed=true

Потім перезапустіть NetworkManager

sudo systemctl restart NetworkManager

Після цього воно працює бездоганно ..

Це було не на 100%. Я також застосував ці зміни, щоб спробувати вбити резолюцію

sudo service resolvconf disable-updates
sudo update-rc.d resolvconf disable
sudo service resolvconf stop

Велика подяка цій публікації в блозі щодо теми: https://ohthehugemanatee.org/blog/2018/01/25/my-war-on-systemd- разрешилась

Давайте молитися це працює. Весь цей бізнес, який вирішується системою, просто такий некрасивий.


Пізній коментар , але systemd-networkdпов'язані інша справа була б перевірити , якщо eth0або enXпристрій має *.networkфайл в каталозі `/ Lib / Systemd / мережі /` см info systemd-networkdі info systemd.networkтаinfo resolved.conf
jmunsch

5

Я здогадуюсь, що ваша systemd-resolvedслужба налаштована правильно, але вона ніколи не отримує запит. .localДомен спеціально обробляються з допомогою систем , що працюють під управлінням MDNS . avahi-daemon, який надає послуги mDNS / DNS-SD (він же "Bonjour" на продуктах Apple) може бути налаштований на перевагу над DNS під час дозволу імені; виявляється, що Ubuntu це робить.

Є кілька варіантів, які ви можете вибрати:

  1. Перейменуйте свій .localдомен на щось інше (можливо, .internalабо .lan). Це може бути найпростіше зробити на практиці, тому що вам просто потрібно змінити пару речей на своєму DNS-сервері, і це найкраще працює з Avahi. Я б рекомендував цей метод.

  2. Змініть свій /etc/nsswitch.confфайл , поставивши dnsзапис перед mdnsзаписами.

  3. Змініть конфігурацію Avahi для зміни домену mDNS .localна щось інше, відредагувавши /etc/avahi/avahi-daemon.confта змінивши (або додавши) domain-name=.something(розташований у [server]розділі). Це потрібно зробити на кожному комп’ютері, який використовує mDNS, щоб вони все ще працювали разом.


Пробачте, можу сказати, що я тут придушив справжній домен. Це не домен .local. Верхній домен - це фактично .se. Однак я буду слідкувати за вашим результатом і перевірити вміст nsswitch. Вибачте за будь-яку плутанину
Цивінг

0

Здається, це було б краще як коментар, але недостатньо репутації ....

Самовідповідь Цивінга найбільше відповідала тому, що я хотів.

Мені також довелося додати dns=noneдо [main]розділу /etc/NetworkManager/NetworkManager.conf, так це виглядає приблизно так:

[main]
plugins=ifupdown,keyfile
dns=none

Щойно я оновив до xubuntu 18.04, починаючи з 14.04, і у мене є LAN, старша за це, з багатьма невеликими коригуваннями, накопиченими за ці роки. Тому я хочу, щоб мій DNS робив те, що я хочу (так, я придбав багато примірників книги крикету Ліуса протягом багатьох років, починаючи з другого видання).

На відміну від цього я раніше додавав у файл інформацію про вирішення DNS, яку я хочу бачити /etc/resolvconf/resolv.conf.d/head.

Коротше кажучи, одного разу я мав робочий /etc/resolv.conf, як root:

cat /etc/resolv.conf >> /etc/resolvconf/resolv.conf.d/head

Але тепер я просто редагую /etc/resolv.conf безпосередньо, і він залишається поставленим. Відвідувачі моєї локальної мережі, які використовують systemd / resolutionvconf, є SOOL. Їх не існує.

Читання man 8 resolvconfдопомогло. Багато. Я не дотримувався інструкцій щодо розміщення речей, де програма ifup їх може знайти. Переважно тому, що в графічному інтерфейсі є ціла надбудова, яка вже ігнорувалась тим, що було зроблено під час оновлення. Це, здається, є більшою проблемою (WTF, Ubuntu?).

Отже, це нечітко, і досі існує проблема, що те, що я (давно) ввійшов у GUI мережевої панелі управління, не підкорявся нещодавно оновленій системі, але це зовсім інше питання, як тільки я зрозумію, як це зробити запитайте.


0

Для мене, запустивши нещодавно встановлений 18.04, я зробив першу зміну, яку цитував @Civing:

[ifupdown]
managed=true

потім, помічаючи, що /etc/resolv.conf завжди вказував на stub-resolutionv.conf, і що створюється розумний резоль.conf з належним локальним сервером DNS, змінив символьне посилання:

/etc/resolv.conf -> /run/systemd/resolve/resolv.conf

а потім локалізувати всі імена хостів, вирішені за допомогою ping.

Залишається побачити, як довго це триває.

Коли я спочатку встановив, налаштування бездротової мережі не вдалося, і я не можу не задатися питанням, чи встановлення залишило /etc/resolv.conf у цьому початковому стані.

Отож, одна пропозиція - подивитися на те, що вирішено, породжує; у вас може бути вже робота.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.