28 марта 2024, 12:06

Цитата дня:

Всегда выбирайте самый трудный путь - на нем вы не встретите конкурентов. Шарль де Голль


Ошибка в работе DNS на Ubuntu 16.04

Автор STALKER_SLX, 17 марта 2018, 23:23

« предыдущая тема - следующая тема »

0 Пользователей и 2 Гостей просматривают эту тему.

Вниз

STALKER_SLX

17 марта 2018, 23:23 Последнее редактирование: 17 марта 2018, 23:27 от STALKER_SLX
Имеем:
- Ubuntu 16.04 (десктопный вариант) установлена на виртуальной машине;
- выход в Интернет осуществлён через NAT.

До недавнего времени всё работала отлично без нареканий, но вот пару дней назад во время загрузки ОС начало вылазить такое сообщение об ошибке:

«failed to start clean up any mess left by 0dns-up»

При попытке открыть в браузере любой сайт в Интернете - ошибка, но ресурсы успешно пингуются.

Ввел команды по тестированию работы DNS:
nslookup
host
dig

В результате все эти команды дают один ответ: «connection timed out; no servers could be reached», то есть DNS-имена не резолвятся.

Выполняю в терминале команду:
sudo systemctl status dns-clean.service

И получаю вот такой ответ:
● dns-clean.service - Clean up any mess left by 0dns-up
   Loaded: loaded (/lib/systemd/system/dns-clean.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Суб 2018-03-17 21:13:02 EET; 3min 5s ago
  Process: 424 ExecStart=/etc/ppp/ip-down.d/0dns-down 0dns-clean (code=exited, status=203/EXEC)
  Process: 398 ExecStartPre=/bin/mkdir /var/run/pppconfig (code=exited, status=0/SUCCESS)
 Main PID: 424 (code=exited, status=203/EXEC)

Мар 17 21:13:02 Nginx-ubuntu16 systemd[1]: Starting Clean up any mess left by 0dns-up...
Мар 17 21:13:02 Nginx-ubuntu16 systemd[1]: dns-clean.service: Main process exited, code=exited, status=203/EXEC
Мар 17 21:13:02 Nginx-ubuntu16 systemd[1]: Failed to start Clean up any mess left by 0dns-up.
Мар 17 21:13:02 Nginx-ubuntu16 systemd[1]: dns-clean.service: Unit entered failed state.
Мар 17 21:13:02 Nginx-ubuntu16 systemd[1]: dns-clean.service: Failed with result 'exit-code'.


Результат выполнения «journalctl -xe» в прикреплённом файле journalctl.txt

На просторах Инета нашёл рекомендацию, что в файл «/lib/systemd/system/ dns-clean.service» нужно добавить ключ «-р», чтобы в итоге строка получилась «ExecStartPre=/bin/mkdir -p /var/run/pppconfig» - безрезультатно.

PPP-соединение на этой ВМ не использовал и даже никогда не пытался настраивать!!!

Гугление пока действенных результатов не дало.

При этом на другой ВМ из такой же ОС - всё отлично работает.

Подскажите, пожалуйста, какие есть варианты решения данной задачи.

STALKER_SLX

АПД. После долгих поисков пришла мысль: «а что если эта проблема связана с глюком в работе Network Manager». В связи с чем, решил вычистить последний из системы. Для этого последовательно выполнил следующие действия.

1. Остановил и отключил службу NetworkManager:
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

2. Удалил из системы ссылки на службу NetworkManager:
sudo update-rc.d NetworkManager remove

3. Удалил все, что связано с NetworkManager:
sudo apt-get apt-get purge network-manager
sudo apt-get -f install
sudo apt-get purge network-manager-gnome
sudo apt-get -f install


4. После всех манипуляций настроил сеть ручками в следующих файлах:
/etc/network/interfaces
/etc/resolv.conf


Далее перезагрузил машину, но в результате симптомы остались те же, как впрочем и ошибка. То есть выяснил, что NetworkManager к данной проблеме пока не причастен.

Так что решение вопроса пока не нашёл. Попробую копать дальше, но уже в фоновом режиме. Буду рад услышать/прочитать дельные советы и подсказки!

Уваров А.С.

#2
20 апреля 2018, 00:40 Последнее редактирование: 20 апреля 2018, 00:43 от Уваров А.С.
Это глюк Network Manager, возможно только на виртуалках (на железе не сталкивались, хотя десктопов на Linux у нас мало). Способа лечения не нашли, да и особо не искали, настроили сеть "по-старинке", через конфиги и работаем дальше.

При настройке через конфиги обратите внимание на имена интерфейсов, после перехода на systemd вместо привычных ethx могут быть имена на основе моделей адаптеров.

STALKER_SLX

Спасибо Вам, Андрей, за помощь!
Мне видимо еще пока не хватает опыта, дабы понять, что у «Network Manager» даже при удалении остаются какие-то хвосты в зависимостях, которые вместе с ним не удаляются и продолжают сыпать ошибками...

Всё эти ковыряния делал исключительно для себя в образовательных целях, пока ещё есть время на эксперименты. Дабы в будущем иметь опыт в решении подобных проблем, в случае возникновения схожих ситуаций.

Уваров А.С.

#4
20 апреля 2018, 18:25 Последнее редактирование: 20 апреля 2018, 18:29 от Уваров А.С.
А вы его не трогайте, просто настройте сеть руками, все будет работать, только Network Manager будет показывать что сетевой кабель не подключен или что-то такое.

Р.S. Специально посмотрел, значок в панели показывает, что сеть подключена вне зависимости от реального состояния дел, если на него нажать, то будет написано что сеть "Не управляется".

STALKER_SLX

Таки решил «проблему», указанную в названии темы данной статьи. Хотя и прошло уже достаточно много времени с момента возникновения этой неприятной ситуации, но снапшот ВМ-ки таки решил еще тогда оставить. Поэтому отпишусь тут - может кому-то в будущем еще пригодится :)

И так по порядку.
1. Оказывается, что последние версии как Ubuntu 16.04, так и Ubuntu 18.04 «из коробки» идут со встроенной службой «systemd-resolve», которая и отвечает за функционирование DNS в ОС.

2. Поэтому отключим эту службу resolved service:
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved


3. Также следует удалить символьную ссылку на файл resolv.conf
sudo ls -lh /etc/resolv.conf
sudo rm /etc/resolv.conf


4. Теперь настроим сеть вручную через конфиг (не трогая Network Manager)
mcedit /etc/network/interfaces

auto ens33
 iface ens33 inet static
   address 192.168.170.133
   netmask 255.255.255.0
   gateway 192.168.170.2
   dns-nameservers 8.8.8.8


На моем тестовом компьютере сетевая карта определяется ОС как «ens33», а Вы у себя посмотрите, как её идентифицирует Ваша система и замените название. Кроме того, в приведенном выше конфиге я указал DNS-сервер Google (dns-nameservers 8.8.8.8 ) с целью тестирования, но Вы можете заменить на свои.


5. С целью проверки работоспособности службы DNS, создадим новый файл resolv.conf (который при рестарте ОС должен перезаписаться)

echo "nameserver 8.8.8.8" > /etc/resolv.conf


После проделанных шагов - сеть заработала, команды nslookup, host и dig начали успешно отрабатывать - правильно разрешая DNS-имена, а в браузере наконец-то появился доступ в Интернет!


Выражаю ОГРОМНУЮ благодарность администрации данного форума за правильный вектор движения в решении вопроса данной темы, а также за моральную поддержку!


Вверх