![获取不存在主机名的 DNS 回复(DNSMasq)](https://linux22.com/image/609838/%E8%8E%B7%E5%8F%96%E4%B8%8D%E5%AD%98%E5%9C%A8%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%9A%84%20DNS%20%E5%9B%9E%E5%A4%8D%EF%BC%88DNSMasq%EF%BC%89.png)
当我为双栈 IPv4 和 IPv6 网络设置 LAN 时,我注意到 DNSMasq 的一些“奇怪”行为。似乎我的 DNS 服务器 (DNSMasq) 充当转发器,并且还拥有本地网络静态租约的所有主机名,当它无法解析特定记录时,它会用自己的接口地址进行回复。
让我解释一下:当我查找名为“router.home.example.com”的主机的“A”记录时,它会回复正确的本地 IP 地址 (10.0.1.2)。当我查询“AAAA”地址(我的路由器还没有该地址,因此未注册为静态租约)时,它会回复自己的 IPv6 地址(和主机名)。显然,我预计它会返回“未找到主机/记录”消息。
问题是,当我尝试通过 Web 界面访问所述路由器(OpenWRT)时,它会抱怨 DNS 重新绑定尝试并拒绝让我登录,可能是因为它看到 2 个不同的地址和主机名。
在这里发布这个问题之前,我花了几个小时试图弄清楚这一点 - 我真的希望这不是我遗漏的明显的东西,因为我已经盯着这个问题太久了。
值得一提的是,我正在使用带有 DNSMasq 的 pfSense 2.1 BETA。我已使用 Hurricane Electric 作为隧道代理成功配置了 IPv6。
提前感谢你的帮助!
答案1
显然,尝试解释我自己的问题帮助我回答了我自己的问题:)
看来我需要明确阻止转发“本地”DNS查询。我通过在dnsmasq.conf中添加以下内容(或通过“高级”字段中的PFSense管理界面)来实现此目的
bogus-priv 本地=/home.example.com/