DNSMASQ 不回答来自路由子网的 DNS 查询

DNSMASQ 不回答来自路由子网的 DNS 查询

我有两个子网,使用两个 DD-WRT AP 连接在一起 - 远程 AP 处于客户端路由模式,因此它有一个单独的子网,其 IP 为 192.168.2.1/24 和 192.168.0.5/24。本地 AP 处于 AP 模式 DD-WRT DHCP 设置处于远程 AP 的转发模式

我在 IP 192.168.0.2/24 上的第一个子网中设置了 DNSMASQ,它也是第二个子网的 DHCP 服务器 - 它可以正常工作,我的远程客户端可以获取正确的路由器。DNSMasq 机器可以 ping 第二个子网上的 PC,反之亦然。我还可以从第一个子网上的 PC 通过 RDP 连接到第二个子网上的 PC - 因此在我看来,第一个子网与第二个子网之间的大部分通信都正常

我的问题是 DNSMasq 不会将 DNS 回复发送到第二个子网 - 它确实会发送到第一个子网。有人能解释一下原因吗?

需要注意的一点是,第二个网络的路由位于网关设备(192.168.0.1)上,但我发现它丢弃了许多数据包 - 因此第一个子网设备中的每一个都添加了第二个子网的本地静态路由。

route add 192.168.2.0 mask 255.255.255.0 192.168.0.5

由于目前的问题,我目前还没有测试 DHCP 分配的路由

这是我所拥有的草图草图网络

DNSMASQ 配置

# Configuration file for dnsmasq.
domain-needed
bogus-priv
addn-hosts=/etc/dnsmasq.hosts
# so don't use it if you use eg Kerberos, SIP, XMMP or Google-talk. This option only affects forwarding, SRV records originating for dnsmasq (via srv-host= lines) are not
# suppressed by it.
filterwin2k

dhcp-range=set:house,192.168.0.1,192.168.0.254,infinite
dhcp-range=set:backyard,192.168.2.1,192.168.2.254,infinite

# Change this line if you want dns to get its upstream servers from somewhere other that /etc/resolv.conf
resolv-file=/var/run/dnsmasq/resolv.conf
# server=61.9.134.49
# server=61.9.133.193 setup the default gateway
dhcp-option=tag:house,option:router,192.168.0.1
dhcp-option=tag:backyard,option:router,192.168.2.1

# option 42?
dhcp-option=option:ntp-server,192.168.0.2
expand-hosts
domain=wilson.lan
dhcp-range=192.168.0.100,192.168.0.150,12h
dhcp-range=192.168.2.100,192.168.2.150,255.255.255.0,12h


# DO NOT Set The route to that network Done on Gateway
#dhcp-option=121,192.168.2.0/24,192.168.0.5
#Send microsoft-specific option to tell windows to release the DHCP lease when it shuts down. Note the "i" flag,
#  to tell dnsmasq to send the value as a four-byte integer - that's what microsoft wants. See
# http://technet2.microsoft.com/WindowsServer/en/library/a70f1bb7-d2d4-49f0-96d6-4b7414ecfaae1033.mspx?mfr=true
dhcp-option=vendor:MSFT,2,1i
# Set the DHCP server to authoritative mode. In this mode it will barge in and take over the lease for any client
# which broadcasts on the network, whether it has a record
# of the lease or not. This avoids long timeouts when a machine wakes up on a new network.
# DO NOT enable this if there's the slightest chance that you might end up
# accidentally configuring a DHCP server for your campus/company accidentally.
# The ISC server uses the same option, and this URL provides more information:
# http://www.isc.org/files/auth.html
dhcp-authoritative
# Log lots of extra information about DHCP transactions.
log-dhcp

答案1

好的,所以在更好地阅读手册后,我需要添加一些内容来覆盖仅回答本地子网(--local-service)的默认选项,该默认选项没有否定,例如我尝试

listen-address=192.168.0.2

但是,resolve.conf 中有一行

nameserver 127.0.0.1

我的更改使 DNSMASQ 无法回答自身的查询 - 因此奇怪的是,DNS 服务器不再能够解析任何 DNS 名称,而其他所有机器都成功地将其用作 DNS 服务器。我通过添加以下行来解决这个问题

listen-address=192.168.0.2,127.0.0.1

因为我无法找到一个简单的方法来解决 resolveconf 所做的事情

相关内容