OpenWrt: настройка dnsmasq

Системы, которые не вошли в список.

Модератор: Модераторы разделов

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15608
Статус: grammatikführer
ОС: Debian GNU/Linux

OpenWrt: настройка dnsmasq

Сообщение Bizdelnick » 26.06.2019 16:47

Некоторое время назад настроил DoT через stubby. Всё работало вплоть до сегодняшнего дня, когда из-за отключения электричества роутер перезагрузился. Стал разбираться, что к чему, и понял, что ничего не понимаю.
Сам stubby работает:

Shell

root@OpenWrt:~# nslookup unixforum.org '127.0.0.1#5453'
Server: 127.0.0.1
Address: 127.0.0.1#5453

Name: unixforum.org
Address 1: 109.68.191.155
*** Can't find unixforum.org: No answer
root@OpenWrt:~#
А вот dnsmasq — нет:

Shell

root@OpenWrt:~# nslookup unixforum.org 192.168.1.1
;; connection timed out; no servers could be reached

root@OpenWrt:~#
В конфиге uci вроде бы всё правильно:

Shell

root@OpenWrt:~# uci show dhcp.@dnsmasq[0]
dhcp.cfg01411c=dnsmasq
dhcp.cfg01411c.domainneeded='1'
dhcp.cfg01411c.localise_queries='1'
dhcp.cfg01411c.rebind_protection='1'
dhcp.cfg01411c.rebind_localhost='1'
dhcp.cfg01411c.expandhosts='1'
dhcp.cfg01411c.authoritative='1'
dhcp.cfg01411c.readethers='1'
dhcp.cfg01411c.leasefile='/tmp/dhcp.leases'
dhcp.cfg01411c.local='/home/'
dhcp.cfg01411c.domain='home'
dhcp.cfg01411c.serversfile='/tmp/adb_list.overall'
dhcp.cfg01411c.server='127.0.0.1#5453'
dhcp.cfg01411c.noresolv='1'
dhcp.cfg01411c.dnssec='1'
dhcp.cfg01411c.dnsseccheckunsigned='1'
dhcp.cfg01411c.localservice='0'
dhcp.cfg01411c.nonwildcard='0'
root@OpenWrt:~#
dnsmasq.conf пустой:

Shell

root@OpenWrt:~# grep -v '^$\|^#' /etc/dnsmasq.conf
root@OpenWrt:~#
Сгенерированный конфиг, за исключением настроек DHCP, выглядит так:

Код: Выделить всё

conf-file=/etc/dnsmasq.conf
dhcp-authoritative
domain-needed
no-resolv
localise-queries
read-ethers
enable-ubus
expand-hosts
domain=home
server=/home/
server=127.0.0.1#5453
dhcp-leasefile=/tmp/dhcp.leases
servers-file=/tmp/adb_list.overall
stop-dns-rebind
rebind-localhost-ok
conf-file=/usr/share/dnsmasq/trust-anchors.conf
dnssec
dnssec-check-unsigned
dhcp-broadcast=tag:needs-broadcast
addn-hosts=/tmp/hosts
conf-dir=/tmp/dnsmasq.d
user=dnsmasq
group=dnsmasq
Что здесь не так?

P. S. Да, я в курсе, что я неправ в отношении .home.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15608
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: OpenWrt: настройка dnsmasq

Сообщение Bizdelnick » 26.06.2019 17:02

После отключения DNSSEC заработало. Осталось разобраться, почему он вдруг отвалился.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15608
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: OpenWrt: настройка dnsmasq

Сообщение Bizdelnick » 26.06.2019 19:01

Попробовал настроить DNSSEC в соответствии с инструкцией. После включения dhcp.@dnsmasq[0].proxydnssec="1" dnsmasq заработал. После включения stubby.global.dnssec_return_status="1" stubby отвалился:

Shell

root@OpenWrt:~# nslookup unixforum.org '127.0.0.1#5453'
Server: 127.0.0.1
Address: 127.0.0.1#5453

** server can't find unixforum.org: SERVFAIL
*** Can't find unixforum.org: No answer
root@OpenWrt:~# uci set stubby.global.dnssec_return_status="0"
root@OpenWrt:~# uci commit stubby
root@OpenWrt:~# nslookup unixforum.org '127.0.0.1#5453'
Server: 127.0.0.1
Address: 127.0.0.1#5453

Name: unixforum.org
Address 1: 109.68.191.155
*** Can't find unixforum.org: No answer
root@OpenWrt:~#
Чем дальше, тем непонятнее. Впрочем, с HOWTO всегда так. Что за манера — писать инструкции, не поясняя сути происходящего… (Вопрос риторический. Ответ известен: чаще всего пишущий сам ни фига не понимает, а вроде бы рабочее решение нашёл методом тыка.)
Добавлено (19:26):
Понял, в чём проблема с проверкой DNSSEC в stubby. Для unixforum.org подпись отсутствует, поэтому и выдаёт ошибку. В то же время google.com резолвится.
Вернул конфигурацию в исходное состояние (единственное отличие — оставил stubby.global.appdata_dir="/tmp/stubby"). Всё заработало. Так ничего и не понял. Единственное предположение — почему-то не работала опция dnssec-check-unsigned у dnsmasq.
Для верности перезагрузился. Всё работает.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15608
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: OpenWrt: настройка dnsmasq

Сообщение Bizdelnick » 27.06.2019 11:04

Прочитал, наконец, инструкцию до конца. Сказано же:
Override DNS encryption for NTP provider to avoid deadlock state if system time is not synchronized.
А этого я и не сделал. При отключении питания часы сбросились, и приплыли.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали: