LINUX.ORG.RU

Регрессия в пакете dns-root-data в Debian

 ,


0

1

У меня есть Raspberry Pi в качестве роутера, в качестве системы на котором используется Raspbian 8 (Debian 8). Сегодня я обновил на нём ПО. После перезагрузки, он перестал раздавать интернет

Дальше для удобства я буду называть роутер - передающим устройством с IP 192.168.11.1, а клиента - принимающим устройством с IP 192.168.11.2

Симптомы такие: точка доступа видна (значит hostapd работает), соединение с ней происходит, IP выдаётся (dnsmasq работает), работает пинг до 192.168.11.1 (то есть, самой точки доступа). Также можно зайти на роутер по ssh

Не работает sudo ping ya.ru. С принимающего устройства, Яндекс не пингуется, но при этом прекрасно пингуется с передающего

Я сначала думал, что проблема в iptables в связи с переходом в статус legacy, и что мне нужно внести изменения в команду, которая включает маскарадинг. Но это же - стабильный Debian, разве это возможно? Также я подумал, что во время обновления был затёрт /etc/sysctl.conf, в котором находится net.ipv4.ip_forward=1

Проблема оказалась в dns-root-data версии 2017072601~deb8u2. Если устарить до 2017072601~deb8u1, то всё начинает работать дальше! Проблема точно оказалась в DNS, потому что по IP Яндекс пинговаться согласился, в отличие от URL

Это регрессия? Если да, то что делать дальше?

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 8)
Ответ на: комментарий от shell-script

Хм, а для него не было доступных обновлений. Вообще, мой apt-get install выглядел так:

sudo apt-get install ca-certificates dns-root-data libbind9-90 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0 libldap-2.4-2 openssl libssl-dev libssl-doc

Я обновлял не всю систему, а точечно. Без ядра, systemd и других больших пакетов.

И кстати, а где dnsmasq хранит логи? Похоже что нигде, потому что в init-файле я не нашёл ничего про них

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 3)
Ответ на: комментарий от ZenitharChampion

За резолвинг отвечает именно dnsmasq. dns-root-data - это просто набор файлов с адресами корневых серверов и gpg-ключей для dnssec. Никаких бинарников в этом пакете нет. Но dnsmasq эти данные использует. И вот тут что-то могло сломаться(формат данных изменился или ещё что - надо пойти в changelog посмотреть).

Если у тебя нет systemd, логи надо искать в /var/log/syslog, /var/log/daemon, /var/log/messages. Если есть, то в этих же файлах плюс посмотреть journalctl -u dnsmasq (в последней команде могу ошибиться, пишу по памяти).

А локально с точки доступа у тебя всё работает, потому как оно не обращается к dnsmasq, а сразу делает запросы к серверам, прописанным в /etc/resolv.conf

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

> journalctl -u dnsmasq (в последней команде могу ошибиться, пишу по памяти)

Работает. А можно выводить в файл, а не в интерфейс ncurses? Или хотя бы без ncurses, чтобы скопировать в память всё (а не только то, что помещается на экран)

Вот лог с версией ~deb8u1, с которой всё работает:

-- Logs begin at Ср 2019-01-23 20:07:13 +07, end at Ср 2019-01-23 21:00:23 +07. --
янв 23 20:07:18 raspberrypi systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
янв 23 20:07:18 raspberrypi dnsmasq[633]: dnsmasq: syntax check OK.
янв 23 20:07:19 raspberrypi dnsmasq[729]: started, version 2.76 cachesize 150
янв 23 20:07:19 raspberrypi dnsmasq[729]: compile time options: IPv6 GNU-getopt DBus  i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
янв 23 20:07:19 raspberrypi dnsmasq[729]: warning: interface wlan1 does not currently exist
янв 23 20:07:19 raspberrypi dnsmasq-dhcp[729]: DHCP, IP range 192.168.11.2 -- 192.168.11.8, lease time 3d
янв 23 20:07:19 raspberrypi dnsmasq-dhcp[729]: DHCP, IP range 192.168.10.2 -- 192.168.10.8, lease time 3d
янв 23 20:07:19 raspberrypi dnsmasq[729]: no servers found in /run/dnsmasq/resolv.conf, will retry
янв 23 20:07:19 raspberrypi dnsmasq[729]: read /etc/hosts - 5 addresses
янв 23 20:07:19 raspberrypi dnsmasq-dhcp[729]: not giving name raspberrypi to the DHCP lease of 192.168.11.2 because the name exists in /etc/hosts with address 127.0.1.1
янв 23 20:07:19 raspberrypi systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
янв 23 20:07:30 raspberrypi dnsmasq[729]: reading /run/dnsmasq/resolv.conf
янв 23 20:07:30 raspberrypi dnsmasq[729]: using nameserver 192.168.1.1#53
янв 23 20:08:05 raspberrypi dnsmasq-dhcp[729]: DHCPREQUEST(wlan1) 192.168.11.2 3c:1e:04:8b:2e:48
янв 23 20:08:05 raspberrypi dnsmasq-dhcp[729]: DHCPACK(wlan1) 192.168.11.2 3c:1e:04:8b:2e:48 raspberrypi
янв 23 20:08:05 raspberrypi dnsmasq-dhcp[729]: not giving name raspberrypi to the DHCP lease of 192.168.11.2 because the name exists in /etc/hosts with address 127.0.1.1
янв 23 20:08:45 raspberrypi dnsmasq[729]: nameserver 192.168.1.1 refused to do a recursive query

Сейчас буду добывать с версией ~deb8u2

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion
-- Logs begin at Ср 2019-01-23 21:10:13 +07, end at Ср 2019-01-23 21:12:11 +07. --
янв 23 21:10:18 raspberrypi systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
янв 23 21:10:19 raspberrypi dnsmasq[621]: dnsmasq: syntax check OK.
янв 23 21:10:19 raspberrypi dnsmasq[697]: dnsmasq: junk found in command line
янв 23 21:10:19 raspberrypi systemd[1]: dnsmasq.service: control process exited, code=exited status=1
янв 23 21:10:19 raspberrypi systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
янв 23 21:10:19 raspberrypi systemd[1]: Unit dnsmasq.service entered failed state.

Надпись Failed to start dnsmasq - A lightweight DHCP and caching DNS server. - красными буквами (вот скрин)

Я не понимаю, как тогда получается подключиться к точке доступа? Обычно, когда dnsmasq выключен, то на стадии «Получение IP-адреса» идёт бесконечное ожидание.

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от ZenitharChampion

Как вывести лог нормально в файл по памяти не скажу. Надо смотреть в ман.

Что касается dnsmasq. Он не имеет отношения к раздаче адресов. Этим занимается dhcp-сервер. Сейчас у тебя dhcp работает нормально, а dns ломается. осталось выяснить - почему. Ключевая ошибка вот тут: dnsmasq: junk found in command line. Похоже, что вот твой баг: https://discourse.pi-hole.net/t/dnsmasq-not-starting-since-last-week/6026/28

Т.е. таки что-то в форматах поменялось.

К слову, пакет dns-root-data является recommends для dnsmasq. С твоих слов я понял, что у тебя каких-то особо замороченных dns-серверов там нет, так что как вариант, можно попробовать полностью снести dns-root-data и не заморачиваться с версиями/патчами и т.д.

shell-script ★★★★★
()
Последнее исправление: shell-script (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

А можно выводить в файл, а не в интерфейс ncurses?

Можешь использовать опцию --no-pager, а можешь просто перенаправление в файл сделать

journalctl -u dnsmasq > logfile

hippi90 ★★★★★
()
Ответ на: комментарий от Deleted

Действительно. Я не знал. :) Никогда не использовал его в этой роли. ) Но судя по тому, что у ТС адреса были розданы, используется какой-то другой dhcp-сервер.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Ну, у меня dnsmasq действительно используется в качестве DHCP-сервера. Вот конфиг-файл:

interface=wlan0
interface=wlan1
dhcp-range=wlan0,192.168.10.2,192.168.10.8,72h
dhcp-range=wlan1,192.168.11.2,192.168.11.8,72h

За ссылку спасибо :-)

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Ну да. Это у меня недостаток знаний, не знал, что dnsmasq умеет ещё и в dhcp. :)

Но так или иначе, можно или снести пакет dns-root-data(должно помочь), или заморочиться и продвинуть багрепорт(судя по ответам мантейнеров, никто браться не хочет, так как в новых версиях исправлено), или накатывать патч. Я бы выбрал первое. С с учётом того, что у меня и так везде стоит no-recommends.

shell-script ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.