Я пытаюсь запустить два экземпляра 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
.