Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Не резолвятся DNS имена при одновременно поднятых интерфейсах ethenrnet и wifi  (Прочитано 717 раз)

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

Оффлайн !Joy!

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Добрый всем!
Вводные данные: Ubuntu 16.04 ядро 4.15.0-133-generic
До недавнего времени всё работало как часы, бегаю по квартире с ноутом - работаю через wifi,
сел за рабочее место, воткнул кабель от роутера - сижу на проводе.
Но пару дней (может неделя) назад после какого-то обновления, появилась такая проблема.
При подключении кабеля от роутера к ноутбуку перестают резолвиться DNS. Помогает отключение одного из интерфейсов, wifi или проводного, что не особо удобно, так как заставляет постоянно лезть в настройки networkmanager.

Изыскания пока привели к тому что скорее всего, проблема где-то в работе dnsmasq. Потому, как, если в настройках NetworkManager /etc/NetworkManager/NetworkManager.conf закомментировать строку dns=dnsmasq и перезапустить NM то в /etc/resolv.conf вместо nameserver 127.0.1.1 прописывается сервер с роутера nameserver 192.168.88.1 и всё начинает крутиться как и раньше. Можно конечно оставить и так, но как я понимаю, в этом случае мы теряем локальный dns сервер, но и кроме того интересно разобраться в истинной причине такого поведения, а не лечить ноготь ампутацией пальца. В сетевых делах я не гуру, но и не полный нуль вроде... Нужно просто подключение коллективного разума, для метадологии поиска проблемы.
Что пока вижу:
netstat -ltupn показывает, что 127.0.1.1:53 прослушивается сервисом dnsmasq
С маршрутами, вроде тоже всё норм
(Нажмите, чтобы показать/скрыть)
Куда копнуть дальше?


Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 27663
    • Просмотр профиля
Отключайте Wifi при подключении к кабелю.
У вас конфликт IP в локальной сети.

Перевод - ЭТО НОРМАЛЬНО.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн !Joy!

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
У вас конфликт IP в локальной сети.

Ну для начала спасибо, что проявили интерес к моей проблеме.

А где вы увидели конфликт IP-шников в локалке?
enp4s0 (провод) имеет адресс 192.168.1.6 192.168.88.6
wlp2s0 (wifi) имеет адресс 192.168.1.7 192.168.88.7
адресами рулит DHCP поднятый на роуте и все они жёстко привязаны к устройствам в сети.
Кроме того, сеть работает нормально при поднятии обоих интерфейсов, не работает разрешение имён, так же, если отрубаем dnsmasq то всё работает нормально. И при чём здесь конфликт IP в локалке? Или я чего-то не знаю? :)

Перевод - ЭТО НОРМАЛЬНО.
Нормально было неделю назад :)
« Последнее редактирование: 04 Февраль 2021, 01:46:20 от !Joy! »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 27663
    • Просмотр профиля
А где вы увидели конфликт
enp4s0 (провод) имеет адресс 192.168.1.6
wlp2s0 (wifi) имеет адресс 192.168.1.7
Вот вам конфликт.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Domitory

  • Участник
  • *
  • Сообщений: 200
    • Просмотр профиля
enp4s0 (провод) имеет адресс 192.168.1.6wlp2s0 (wifi) имеет адресс 192.168.1.7
А почему у вас DNS сервер с IP 192.168.88.1 а станция 192.168.1.6 и 192.168.1.7 ?

Вы точно ничего не мудрили с настройкой сети на станции и в роутере?
Dnsmasq это вы про что? Про службу кеширующего DNS/DHCP сервера? Похоже что-то накрутили с DNSmasq и теперь у вас в сети два DNS и DHCP сервера, роутер и сам ваш ПК. возможно что компьютер сам себе как DHCP сервер выдает IP с неправильным DNS сервером на сетевой интерфейс enp4s0, исправляя информацию в /etc/resolv.conf
Если в системе есть файл /etc/dnsmasq.conf то хотелось бы его глянуть может в нем что то не так.

Пока вижу несколько вариантов решения проблемы которые я бы попробывал
1) Удалить dnsmasq и посмотреть как будет вести система без него (если конечно этот демон установлен и запущен)
2) В файле /etc/NetworkManager/NetworkManager.conf в секции [main] поставить значение dns=default
3) Сделать чтобы нужный вам DNS сервер навсегда был прописан в /etc/resolv.conf (топорный но эффективный способ)


Пользователь добавил сообщение 03 Февраль 2021, 09:54:04:
если отрубаем dnsmasq то всё работает нормально
Судя по тому как Вы уверенно пишите про Dnsmasq смею предположить что всё таки это про тот демон который поднимает мини DHCP сервер. Предполагаю что когда работает только какой то один интерфейс то все нормально так как компьютер получил сетевые настройки от роутера, но DNSmasq на компьютере уже запущен и ждет "жертву" для раздачи настроек сети, компьютер в этом случае работает с настройками полученными от роутера, как только к сети подключается второй интерфейс но DHCP то сервера пытаются наперегонки выдать ему настройки сети. Каким то образом у вашего DHCP сервера, созданного при помощи DNSmask, имеется приоритет перед роутером. и в итоге на второй интерфейс выдается настройка с не правильным DNS сервером. И вот эти неправильные настройки полученные повторно от самого себя перезаписывают данные в /etc/resolv.conf

Остальные устройства подключаемые к роутеру как себя ведут когда подключаются после этого компьютера? Выходят в интернет без проблем?
Если есть второй компьютер c проводным сетевым интерфейсом то можно подключить его напрямую к компу и посмотреть получит он в таком случае IP или нет.
« Последнее редактирование: 03 Февраль 2021, 11:54:57 от Domitory »

Оффлайн !Joy!

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
А почему у вас DNS сервер с IP 192.168.88.1 а станция 192.168.1.6 и 192.168.1.7 ?
Друзья, тысяча извинений!!! Это я опячатался по запаре, чем ввёл вас в заблуждение и вынудил писать груду предположений.
Конечно же на станции адреса
enp4s0 (провод) имеет адресс 192.168.88.6
wlp2s0 (wifi) имеет адресс 192.168.88.7
DHCP только на роутере. С настройками dnsmasq не игрался, файл /etc/dnsmasq.conf отсутствует. Проблем в с сеткой нет, всё работает корректно на других устройствах, да и на этом ноуте всё хорошо, если крутимся на ip адресации, проблема возникает только в разрешении имён при одновременно поднятом проводе и wifi.
Как я понимаю, dnsmasq стартует из networkmanager с параметрами
Выхлоп ps aux | grep dnsmasq
(Нажмите, чтобы показать/скрыть)

Если в конфиге networkmanager стоит dns=dnsmasq
(Нажмите, чтобы показать/скрыть)
В /etc/resolv.conf
nameserver 127.0.1.1
search lan
И имена не резолвятся
Если закомментировать dns=dnsmasq или изменить на dns=default то в /etc/resolv.conf
nameserver 192.168.88.1
search lan
И всё начинает крутиться как положено.

Сейчас включил лог dnsmasq, создав файлик в /etc/NetworkManeger/dnsmasq.d c тeкстом log-queries и обнаружил такое поведение
при dns=dnsmasq и соответственно nameserver 127.0.1.1 тоесть, как я понимаю, работаем через dnsmasq в логах видим.
Если поднят один интерфейс (любой провод или сеть)
(Нажмите, чтобы показать/скрыть)
А вот если 2 интерфейса
(Нажмите, чтобы показать/скрыть)
Тоесть ответа нет.

К стати, попробывал подключить wifi к другой сетке (соседской) с адресами 192.168.0.1 и всё заработало нормально, тоесть теперь имеем
enp4s0 (провод) имеет адресс 192.168.88.6
wlp2s0 (wifi) имеет адресс 192.168.0.101
в /etc/resolv.conf
nameserver 127.0.1.1
всё резолвится как положено и в логах dnsmasq
query[A] ya.ru from 127.0.0.1
forwarded ya.ru to 192.168.0.1
reply ya.ru is 87.250.250.242
тоесть форвад идёт не на мой роутер, а на соседский. Хотя route показывает, что приоритет у интерфейса enp4s0
(Нажмите, чтобы показать/скрыть)
Чото я совсем запутался.


Оффлайн Domitory

  • Участник
  • *
  • Сообщений: 200
    • Просмотр профиля
файл /etc/dnsmasq.conf отсутствует

Возможно в Ubuntu 16 dnsmasq в другом месте хранит свои настройки. Я то смотрю на свою 20тую. Dnsmasq же установлен я так понимаю? Зачем он вам вообще нужен?



Когда networkmanager берет DNS-cервер указанный в конфиге DNSmasq то в качестве DNS-сервера используется сам компьютер на что указывает IP-адрес  127.0.1.1 а так как в dnsmasq не задано на какой DNS-сервер перенаправлять запросы дальше то DNS и не работает.
Когда в networkmanager задано что DNS брать по умолчанию то в /etc/resolv.conf подставляется адрес DNS-сервера выданный от роутера по DHCP. 
« Последнее редактирование: 04 Февраль 2021, 09:30:46 от Domitory »

Оффлайн !Joy!

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Dnsmasq же установлен я так понимаю? Зачем он вам вообще нужен?
Да установлен (он же по умолчанию идет с networkmanager в убунте 16)
Это конечно интересный вопрос :D Да в принципе наверное и ненужен, по крайней мере, каких-то специфических настроек его я не когда не делал. Если мне нужны какие то локальные адреса, типа .project или .test то настраиваю их обычно через host. Единственную функцию которую он у меня реализует, как я понимаю, это кеширует запросы. Но я не думаю, что это сильно экономит время по сравнению с запросом адреса у роутера. Тут просто дело в другом, мне интересно, почему и что поломалась. И если раньше так работало, почему перестало. В принцепи, указав в настройках NM dns=default или закоментровав dns=dnsmasq машинка работает как и раньше работала с двумя интерфесами, но уже использует не dnsmasq, а dns полученный по dhcp, как вы и написали. Хочу просто понять почему перестала работать через свой dns proxy.

Цитировать
а так как в dnsmasq не задано на какой DNS-сервер перенаправлять запросы дальше то DNS и не работает
Та нет... тут дело кажется не в этом. Насколько я понял, когда dnsmasq запускается как дочерний процесс NM то адреса куда форвард делать (перенаправлять запросы дальше), берутся из профилей NM. И форвард происходит, как я понимаю.
Вот фрагмент выхлопа tcpdump во время попытки разрешить ya.ru
В настройках NM dns=dnsmasq, в /etc/resolv.conf nameserver 127.0.1.1
tcpdump port 53 -n -i any
Один интерфейс поднят (провод)
02:02:21.558515 IP 127.0.0.1.36825 > 127.0.1.1.53: 18793+ A? ya.ru. (23)
02:02:21.558645 IP 192.168.88.6.41119 > 192.168.88.1.53: 54285+ A? ya.ru. (23)
02:02:21.594188 IP 192.168.88.1.53 > 192.168.88.6.41119: 54285 1/0/0 A 87.250.250.242 (39)
02:02:21.594378 IP 127.0.1.1.53 > 127.0.0.1.36825: 18793 1/0/0 A 87.250.250.242 (39)
Поднят и провод и wifi
01:59:32.088914 IP 127.0.0.1.42229 > 127.0.1.1.53: 55985+ A? ya.ru. (23)
01:59:32.089027 IP 192.168.88.6.41119 > 192.168.88.1.53: 35488+ A? ya.ru. (23)
01:59:32.089072 IP 192.168.88.7.51074 > 192.168.88.1.53: 35488+ A? ya.ru. (23)
01:59:32.089933 IP 192.168.88.1.53 > 192.168.88.6.41119: 35488 1/0/0 A 87.250.250.242 (39)
01:59:32.090471 IP 192.168.88.1.53 > 192.168.88.7.51074: 35488 1/0/0 A 87.250.250.242 (39)
Из этого делаю вывод, что dnsmasq запрос на разрешение получает, передает его выше на роутер ( через оба интерфейса ), DNS на роутере отвечает на оба интерфейса, а вот после этого, 127.0.1.1.53 (dnsmasq) должен был бы вернуть ответ на 127.0.0.1.42229, но этого не происходит :(
ХАЧУ знать пАчему :) любознательность и любопытство :)


Оффлайн Domitory

  • Участник
  • *
  • Сообщений: 200
    • Просмотр профиля
Да установлен (он же по умолчанию идет с networkmanager в убунте 16)
Первый раз слышу чтобы он был по умолчанию установлен. Ну может быть. Я его в 18 и в 20 Kubunte устанавливал отдельно.
Вам нужно поискать в интернете информацию про использование и настройку DNSmasq может чтото проясниться.

Еще нужно посмотреть и проверить правильность настроек сетевых интерфейсов, может какая опечатка и они чудят неожиданным образом, у меня так было, в Kubuntu 18 нормально работали а вот в Kubuntu 20 с теми же настройками уже со странностями (просто скопировал файл настроечный при переустановке системы), не сразу увидел опечатки свои.

 

Страница сгенерирована за 0.076 секунд. Запросов: 25.