Система DNS-пошуку Ubuntu 17.04 випадковим чином виходить з ладу


38

Я перейшов до Ubuntu 17.04, і, схоже, зараз у Ubuntu 16.10 вперше введений новий механізм розв’язувача DNS .

Зараз я отримую збої в пошуку DNS в 50% часу. Усі інші дзвінки в nslookup не вдається, половина викликів вирішується штрафом, а половина - це:

watch -n 1 nslookup google.com

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find google.com: SERVFAIL

З того, що я розумію, що IP-адреса сервера DNS зараз використовується для представлення системного рішення, що робить якийсь мета-пошук, щоб уникнути повільніших запитів DNS (чи щось таке ...). Я бачу абсолютно таку ж поведінку на двох машинах, які я модернізував до 17.04 за минулий тиждень.

Будь-яка ідея, у чому тут проблема, і правильний спосіб її вирішити?

Речі працювали нормально до оновлення (з 16.04 чи 16.10, я не пам'ятаю, пробачте). Я думав, 17.04 був випуском LTS, але тепер я бачу, що я стрибнув пістолет і він не буде вважатися стабільним до квітня. Отже ... ось я.

Також зауважте ... браузери, здається, не мають проблем, але nslookup, ping, git тощо.


2
Порада на майбутнє: версії Ubuntu - це рік, коли вийде .місяць, коли він вийде. (Тож у вашому випадку це буде в 04/ 17)
тимотре

Звучить, як системне вирішення завдань у розповсюдження дистрибутивів спричиняє проблеми і у інших людей .
moodboom

Відповіді:


46

Ubuntu 17.04 не може вирішити сервери DNS з підтримкою DNSSEC станом на 2017-04-18. Вимкніть DNSSEC за допомогою цього демона:

sudo mkdir -p /etc/systemd/resolved.conf.d
printf "[Resolve]\nDNSSEC=no\n" | sudo tee /etc/systemd/resolved.conf.d/no-dnssec.conf

Необов’язково переконфігуруйте resoluvconf, якщо ви заблукали з ним (скажіть так, щоб "підготувати /etc/resolve.conf до динамічних оновлень?"):

sudo dpkg-reconfigure resolvconf

Перезапустити системно-вирішено:

sudo systemctl restart systemd-resolved

Ваш DNS повинен почати працювати. Ви можете перевірити, спробувавши systemd-resolve www.google.comта побачивши відповідь.


Дякую за відповідь - чи можете ви пояснити, що це робить?
bertieb

Ubuntu 17.04 не може (поки тут) вирішувати сервер DNS за допомогою підтримки DNSSEC. Я відключаю DNSSEC з цим демоном.
Саджад Бахмані

Дякую, чи можете ви відредагувати це пояснення у своїй відповіді? :)
bertieb

Це рішення не спрацювало для мене - після встановлення цього параметра, все-таки будь-коли, коли я роблю пошук у перший раз, я отримую помилку SERVFAIL, після пари спроб це вдається, а потім кешується результат.
Гасс

1
@SamuelL. що стосується трійника, то це просто фантазійний спосіб надрукувати щось і одночасно надіслати його у файл. Зазвичай ви можете перенаправляти вихід у файл із> [символом, що перевищує значення], але тоді ви не побачите вихід. Трій дозволяє їхати в обидва місця. Resolvconf "конфігурує рішення".
moodboom

12

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

У Ubuntu 16.10, мабуть, є щонайменше одна помилка libnss і, мабуть, ще в 17.04. З тих пір, коли Ubuntu 16.10 увімкнено системне рішення, існує багато людей, які мають проблеми з DNS, ось один аналіз і ось вирішення проблеми іншої людини. Жоден з них не працював на мене, поки я вручну не переробив /etc/resolv.conf з DNS-серверами google.

nameserver 8.8.8.8   << or another if you don't trust google
nameserver 8.8.4.4

Це ідеально правильне рішення , якщо вам не потрібна динамічна конфігурація DNS. Просто переконайтеся, що ви зупинили та вимкнули системне рішення:

sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop

Якщо змінити на разрешение разрешения не помогло в моей проблеме, як я повернусь до використання системного рішення? (Спасибі)
Едвард Моффет

1
Спробуйте:systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service
moodboom

1
Чувак, ти щойно врятував ма систему! BRAVO
революціонер

Відмінно працював у 18.04
Андре М. Фарія

4

Ubuntu 17.04 та інші дистрибутиви охоплюють systemd, який включає системне рішення, що піддає користувачам досить важку роздільну здатність DNS.

  • Як зазначено у відповіді SjB, підтримка DNSSEC може спричинити проблеми.
  • системно-розв’язаний пінговує всі DNS-рішення, щоб він міг використовувати найшвидше. Це може спричинити проблеми з VPN тощо у складніших умовах.
  • Сертифікати сервера DNS перевірені, у мене помилки, якщо годинник перекошений.

Я не думаю, що це обов'язково зміна BAD, це просто багато змін. Спробую оновити та розширити цю відповідь, коли я дізнаюся більше.


4

Простіше кажучи, вам просто потрібно мати рядок "DNSSEC = ні" в розділі [Resolve] /etc/systemd/ разрешено.conf.

https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1682499/


Дякуємо за посилання на помилку. За замовчуванням буде повернено DNSSEC = ні в майбутніх випусках оновлення, що призведе до усунення конкретної проблеми.
moodboom

1

просто додайте сервер імен /etc/systemd/used.conf DNS = 194.109.xxx.xxx (на маршрутизаторі, зовнішній сервер імен)

перезапуск systemctl вирішено systemd

не потрібно змінювати rand з 3 на 2, не потрібно змінювати налаштування dnssec на вимкнено


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

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