如何使用 dnsmasq 地址指令,同时为每个 LAN 接口设置不同的名称服务器

如何使用 dnsmasq 地址指令,同时为每个 LAN 接口设置不同的名称服务器

我一直使用 dnsmasq 将子域指向路由器/网络级别的本地开发机器。

address=/dev.example.com/192.168.1.80

我现在已经为其他用途(即访客网络)设置了两个 vlan 接口。我需要能够在每个 lan 上使用不同的名称服务器,这也是我使用 dnsmasq 实现的。

dhcp-option=br0,6,208.67.222.123,208.67.220.123
dhcp-option=br1,6,208.67.222.222,208.67.220.220
dhcp-option=br2,6,208.67.222.123,208.67.220.123

但是,一旦此配置到位,该address指令就不再起作用。看来此 dhcp 配置将首先用于 dns 解析,因此对 dev 子域的请求将到达互联网,而不是像以前一样到达我的本地 ip。为了保险起见,我尝试将地址指令移到 dhcp 配置之前和之后。这没什么区别。

有没有办法为每个接口分配 DNS 服务器并使用地址指令,或者以其他方式完成相同的行为?

如果有帮助的话,我正在使用 AdvancedTomato 固件。

答案1

dnsmasq 服务器会监听路由器本身。但是,上面提到的配置会告诉这 3 个网络上的所有设备使用网络外的 DNS 服务器,这意味着本地地址将无法解析。

您需要将 DNS 服务器设置为您希望本地地址解析的网络上路由器的地址。例如,要在 br0 上启用,请将配置更改为:

dhcp-option=br0,6,192.168.1.1
dhcp-option=br1,6,208.67.222.222,208.67.220.220
dhcp-option=br2,6,208.67.222.123,208.67.220.123

相关内容