我正在尝试在 raspberry pi 上运行两个 dnsmasq 实例,我已经取得了很大进展。我目前正在尝试让第一个 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
答案1
打开查询日志记录(log-queries
)并依次对每个服务器使用 dig/nslookup。
在您当前的设置中,serverB 似乎永远不会向任何其他服务器询问信息。当服务器 A 无法自行回答查询时,它应该将查询传递给服务器 B。
Dnsmasq 服务器尝试在本地解析查询,仅在必要时转发。启用查询日志记录应该会显示您正在访问哪个服务器以及何时访问,以及它们对该查询执行了哪些操作。
答案2
看一下/etc/default/dnsmasq
。在某些发行版中,此文件会阻止读取除之外的“resolv.conf”文件/etc/resolv.conf
。