我一直使用 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