![解析具有多个子网的 dnsmasq 服务器的服务器主机名](https://linux22.com/image/50559/%E8%A7%A3%E6%9E%90%E5%85%B7%E6%9C%89%E5%A4%9A%E4%B8%AA%E5%AD%90%E7%BD%91%E7%9A%84%20dnsmasq%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%BB%E6%9C%BA%E5%90%8D.png)
我有一个自制的Linux路由器,运行dnsmasq。它有两个不同的网卡,客户端通过它们进行连接;其中一台有子网192.168.1.
,一台有子网192.168.2.
。我的/etc/dnsmasq.conf
看起来像这样:
except-interface=enp1s0
dhcp-range=interface:wlp2s0,192.168.1.10,192.168.1.25,255.255.255.0,48h
dhcp-range=interface:enp0s29f7u4,192.168.2.10,192.168.2.25,255.255.255.0,48h
解析客户端可以在子网之间进行,但我无法从两个子网解析服务器本身的主机名。如果我使用添加静态规则,则address=/name/IP
必须选择其中一个子网,并且无法从其他子网执行 ping 操作(除其他外)。例如,如果我设置
address=/name/192.168.1.1
然后我可以从子网解析主机名192.168.2.
,但 ping 没有得到答复。我该如何解决这种情况?我希望不必桥接接口或类似的东西。
答案1
据我了解,在您的情况下,服务器每个子网都有一个地址:192.168.1.1,另一个可能是192.168.2.1
我想您希望客户端接收其相应子网的服务器地址。
我遇到了同样的问题,在中找到了答案http://t7994.network-dns-dnsmasq-general.dnstalk.us/multi-homed-server-with-same-hostname-on-2-subnets-t7994.html
检查 dnsmasq 手册页中的“-y, --localise-queries”。
您也可以将“localise-queries”放入 dnsmasq.conf 中,并将两个服务器地址条目放入 /etc/hosts 文件中。