djc*_*djc 9 domain-name-system dns-hosting
我最近遇到了一个问题,远程服务请求我的服务器的 IP 地址(使用托管 DNS 提供商)响应为:
DNS problem: SERVFAIL looking up A for mysql.xavamedia.nl
Run Code Online (Sandbox Code Playgroud)
(更新:这里提到的远程服务是 Let's Encrypt;我针对他们的问题跟踪器提交了一个错误,这使我走上了这条道路。)
在我的本地网络上进行测试时,我发现有时我会从托管的 DNS 服务器获得空的 DNS 响应。显然这是间歇性的,因为它仅在 DNS 记录不在缓存中时才会发生,并且只有当 DNS 服务器非常忙时才会出现问题。
这是 Wireshark 对空响应消息的描述:
当然,由于大多数 DNS 查询和响应是通过 UDP 发送的,本地解析器只会等待响应一段时间,然后放弃。我现在想知道的是,是否有 DNS 响应时间的指导方针?我的 DNS 托管商耸了耸肩,说我的本地解析器过早地发送了空响应。我以前从未遇到过这个问题,但我对失败模式感到惊讶——没有错误代码的空 DNS 响应。
有人知道有关这应该如何工作的一些指导方针,以及我何时/如何证明我的 DNS 托管有问题?
您正在查看的空响应是一种合成状态,称为NODATA。NODATA和NXDOMAIN两者都表示名称不存在,但NXDOMAIN也适用于指示记录下的所有名称。NODATA建议该名称与未请求类型的记录相关联,或者在您请求的内容下方还有其他记录。(即example.test.xavamedia.nl.)
在这种情况下,您的结论NODATA和NXDOMAIN实际上是相同的:请求的名称和类型的记录不存在。一个权威域名服务器达到了所要求的领域,和它说回来,说明该名称和类型的记录不存在。这不是通信错误。权威服务器说它没有数据。很可能与您交谈的服务器已经处理了此请求,并且在过去四小时内否定缓存了该记录的缺失。(14400 秒是 SOA 记录定义的负缓存间隔xavamedia.nl.)
在这种情况下,这两者NXDOMAIN或NODATA 它们本身都不会导致超时,但您的解析器库可能会从这里继续添加 DNS 搜索后缀,这反过来可能会触发搜索域的权威 DNS 服务器超时。
应该注意的是,这些都没有解释您SERVFAIL在查找时遇到响应的原因mysql.xavamedia.nl.。这指向递归服务器从权威服务器获取答案的问题。权威服务器回复SERVFAIL,递归服务器无法访问任何权威服务器,或者递归服务器确定返回的数据无效。这些都不能用您提供的信息来证明。
| 归档时间: |
|
| 查看次数: |
5702 次 |
| 最近记录: |