systemd-resolution не запитує dns-сервер для локального домену


12

З моменту оновлення до 17.04 я більше не можу вирішувати адреси в моїй локальній мережі (silvesternet.local). Я отримую таку відповідь:

$ systemd-resolve edgerouter
edgerouter: resolve call failed: No appropriate name servers or networks for name found

У журналі є лише звіти про час очікування транзакцій, пов'язаних з цим пошуком.

Я використовував Wireshark, щоб нюхати мережевий трафік, і, здається, він навіть не намагається шукати ім'я. Немає ніякого дорожнього руху. Пошук іншого зовнішнього домену працює чудово.

Багато питань навколо однієї теми згадують про зміну nsswitch.conf, але це, здається, нічого не вирішує. Мої поточні налаштування:

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4

1
Ви бігли sudo apt update && sudo apt full-upgrade? Помилки у зображенні випуску виправлені ...
Zanna

якщо ви використовуєте systemd-networkdдля конфігурації інтерфейсів, ви можете додати UseDomains=trueв [DHCP]розділі ваших .networkфайлів: wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
донкіхотський

Дійсно, близько до домену. Насправді помилка в прошивці edgerouter не встановила домен у відповіді dhcp.
Роб ван дер Мост

Відповіді:


10

Я вважаю, що це задумом.

Ubuntu 17.04 переключився на системне рішення для вирішення імен, і він використовує лише LLMNR (пошук багатоадресних імен) для роздільної здатності імен. Докладні відомості див. За цим посиланням: https://www.freedesktop.org/software/systemd/man/systemd- разрешил.service.html

Щоб обґрунтувати це рішення, ознайомтеся з відповіддю поетингу у цьому звіті про помилку: https://github.com/systemd/systemd/isissue/2514

UPD: Виправити цю проблему можна за допомогою домену для локальної мережі. Якщо мережевий інтерфейс налаштовано (вручну або DHCP) для використання пошукового домену, то система, вирішена системою, додасть цей домен до одноіменних імен, а потім шукає їх через одноадресний DNS.

Очевидно, що локальний сервер DNS повинен бути налаштований для розпізнавання цих доменів. У випадку dnsmasq, який читає локальні пари хост-IP з / etc / hosts, це можна зробити, додавши наступні інструкції до dnsmasq.conf:

domain=mydomain.net
local=/mydomain.net/
expand-hosts

UPD2: Або ви можете просто повернутися до dnsmasq, як описано тут /ubuntu//a/911432/692094


І ще одна сторінка помилок з деякими поясненнями: github.com/systemd/systemd/isissue/4821
ish-west

Тут було проблемою доменне ім'я. Насправді це також було викликано помилкою в прошивці краутера. Параметр доменного імені з конфігурації неправильно зберігався в конфігурації dhcp. Тож клієнти не отримали домен для пошуку.
Роб ван дер Мост

8

Я отримав таку ж проблему на Ubuntu 18.04, який також використовує системне рішення для DNS. Його конфігурація за замовчуванням не вирішує однозначні імена хостів або .local доменних імен хостів DNS, але відповідно LLMNR або mDNS.

Щоб зробити локальні імена хостів або імена хостів .local домену вирішені DNS, я ввімкнув 3-й із "чотирьох режимів обробки /etc/resolv.conf", описаних на сторінці "man" для systemd-разрешил.сервиса :

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Аналогічна відповідь була дана тут . І знову ж таки, для міркувань за замовчуванням дивіться відповідь поетрінгу у цьому звіті про помилку .


2

Після оновлення до 18.04 працювало те, що я налаштував файл /etc/systemd/Weather.conf, змінивши параметр Domains на домен (локальний або як у моєму випадку mydomain.local). Я також змінив параметр DNS, але здавалося, що це не доречно, але я згадую його про всяк випадок, коли це неправда. Для отримання додаткової інформації відвідайте https://www.freedesktop.org/software/systemd/man/systemd- разрешил.service.html .

Крім того, я змінив конфігурацію avahi (/etc/avahi/avahi-daemon.conf), щоб змінити параметр домену всередині розділу сервера з локального (за замовчуванням) на щось інше, як деякі люди вказали на цьому форумі.

Згадані зміни я можу дістатися до машин, використовуючи бездоганні назви, наприклад, pinging на мій комп'ютер, з якою машина успішно зв’язується. Однак якщо я пінг на mycomputer.mydomain.local він не працює, FQDN не буде вирішено, як очікувалося.

Сподіватися, що це допоможе в деяких випадках або призведе до більш загального рішення.


0

Я зіткнувся з цією проблемою через неправильне налаштування nsswitch.conf. Оскільки 12.04наступний рядок працював як очікувалося. Імена хостів без домену вирішуються успішно.

Але нова 17.04версія (як і версія 16.10) ubuntu зі старим шаблоном для налаштування системи nss не працює як раніше.

Неправильно налаштована версія hostsстарих версій ubuntu: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Успішна робоча версія hosts, наприклад, з 17.04: hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

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