Назад | Перейти на главную страницу

dnsmasq не пересылает запрос на сервер имен

Я пытаюсь запустить два экземпляра dnsmasq на Raspberry Pi, я зашел довольно далеко. В настоящее время я пытаюсь заставить первый сервер dnsmasq пересылать любой запрос, на который он не знает ответа, на второй сервер, но он, похоже, работает, только если я dig <address> @127.0.0.1. Использование внешних адресов любого интерфейса или запросы с другой машины этого не делают.

Запросы к любому серверу напрямую дают желаемый результат, но попытки заставить первый сервер пересылать результаты со второго ... не так уж и много.

Конфиг для примера A (lan):

root@Raspberry-server:~# cat /etc/dnsmasq/dnsmasq.conf

port=53
except-interface=eth0.1
bind-interfaces

no-hosts
#changing the cache size makes no difference
#cache-size=5000
cache-size=0

# uncomment to forget about 404 responses
#no-negcache

#resolv-file=/etc/dnsmasq/resolv.lan.conf
#no-poll
no-resolv
strict-order

server=192.168.1.13

auth-server=raspberry.lan,eth0
auth-zone=lan,192.168.1.0/24
host-record=raspberry.lan,192.168.1.11
host-record=htpc.lan,192.168.1.10
host-record=tom.lan,192.168.1.12

Конфиг для экземпляра B (глобальный):

root@Raspberry-server:~# cat /etc/dnsmasq/dnsmasq.blocker.conf

port=53
bind-interfaces
listen-address=192.168.1.13

no-hosts
addn-hosts=/etc/dnsmasq/blocked.host
cache-size=100000

# uncomment to forget about 404 responses
#no-negcache

resolv-file=/etc/dnsmasq/resolv.blocker.conf
#no-poll

strict-order

Журнал состояния экземпляра A:

systemd[1]: Starting DNSMasq Lightweight DNS server...
dnsmasq[1651]: dnsmasq: syntax check OK.
dnsmasq[1656]: started, version 2.76 cache disabled
dnsmasq[1656]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
systemd[1]: Started DNSMasq Lightweight DNS server.
dnsmasq[1656]: using nameserver 192.168.1.13#53

Включите ведение журнала запросов (log-queries) и используйте dig / nslookup по очереди для каждого сервера.

В вашей текущей настройке serverB выглядит так, как будто он никогда не будет запрашивать информацию у других серверов. Сервер A должен передавать запросы серверу B, если он не может ответить на них сам.

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

Посмотри на /etc/default/dnsmasq. В некоторых дистрибутивах этот файл предотвращает чтение файлов "resolv.conf", кроме /etc/resolv.conf.