我为 DNS-SD 配置了多个 DNS 服务器。我可以毫无问题地注册服务,但是当我尝试浏览时却出现错误。
我一直在使用 dig 进行测试:
浏览本地或远程服务器:
dig -t PTR _services._dns-sd._udp.example.com
返回无结果。
但是如果我这样做:
dig -t ANY _services._dns-sd._udp.example.com
然后我发现了服务类型,然后可以进一步询问以发现完整的服务。
重要的是,如果我再次执行第一个 dig 命令,我会得到预期的结果,与使用“-t ANY”执行 dig 相同。这会持续 60 秒(缓存时间),然后它会恢复为不返回任何结果。
我觉得肯定缺少了一些东西,但是 DNS 配置是从工作系统复制而来的......(相同版本的 bind)
版本详情:CentOS 7,Bind-9.8.0
使用 3 个区域进行本地和远程绑定配置:本地区域、反向查找区域和 srv 区域。
named.conf 允许从任意位置进行查询和更新(尚未锁定且在封闭网络上)
如果需要,我可以添加配置文件。
问题:为什么我无法仅通过dig -t PTR
查询发现服务?
我正在使用一个库来编写与 DNS-SD 交互并搜索 PTR 记录的软件(库:dnssdjava)
答案1
事实证明,这个问题根本不是由 DNS 配置引起的。
当我们移动硬件时,问题就开始了,唯一改变的是路由器(ASA 5515x)上的 Cisco IOS 版本。
事实证明,思科改变了 8.6 和 9.1 版本之间 DNS 数据包检查的工作方式,这导致它在这种情况下无法错误地处理 PTR 记录查找。
对我来说,解决方案是关闭 Cisco ASA 上的 DNS 检查。