当转发器已经有答案时,DNS 服务器请求在什么情况下会超时?例如,我认为目前有一个域 us.army.mil 存在 DNS 问题。如果我直接使用 nslookup 访问转发器以查找 type=mx,那么我会立即得到响应。但是,如果我使用相同的请求访问我们的 DNS 服务器,则需要超过 2 秒的时间并超时,或者当我将超时延长到 10 秒时,它会失败。如果我尝试多次,它最终会返回响应。
据我了解,我们的 DNS 服务器应该向转发器发送外部域请求,并在可用时获得响应。日志显示第一个转发器被命中,然后在 3 秒后尝试第二个转发器。为什么我直接向转发器发出的请求没有问题,而我们的服务器却有问题?
答案1
当你级联 DNS 递归服务器并引入转发器时,这就是问题你遇到。
您的某个 DNS 服务器未正确应答。除权威服务器外,所有服务器都可以有缓存。
两种可能性:
- 其中一个权威服务器没有应答,但您的一个缓存有正确的答案。
- 您的一个转发器/递归服务器在缓存中有一个错误条目(可能是 NS 记录、CNAME、委派等)。
dig 命令可以帮助您确切地知道哪个服务器行为不正确(但应仔细阅读其输出):
dig myhost @myfirstforwarder
dig myhost @myrealrecursor
dig -t NS myhost
dig -t any @authserver1
dig -t any @authserver2
等等。
诀窍是:不要放置转发器:只放置递归服务器和权威服务器。保持简单愚蠢。