DNS-SD 仅在 dig -t any 之后才能正确发现服务

DNS-SD 仅在 dig -t any 之后才能正确发现服务

我为 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 检查。

相关内容