首页 > 解决方案 > 为什么查询根服务器时 ns_t_ns 比 ns_t_a 快?

问题描述

我想知道客户端和本地 dns 服务器之间的延迟。所以我向根 dns server(.) 发送查询,如下所示:

res_nquery(&res, ".", ns_c_in, ns_t_a, answer, sizeof(answer));

但是如果我更改ns_t_ans_t_ns,查询会变得更快。为什么会这样?

使用时的反应ns_t_a在此处输入图像描述

使用时的反应ns_t_ns在此处输入图像描述

标签: cdnsbinddnsmasqlibresolv

解决方案


递归解析器需要缓存./IN/NS记录集,并且通常在解析器启动时这样做。这称为启动,并包含在此 RFC 中:

根名称服务器集也永远不会从缓存中过期(在典型实现中)。

在常规操作期间不会发生查询./IN/A,因此需要先填充缓存。该资源记录集最终也将过期。

如果两个资源记录集都在缓存中,则典型的解析器响应时间将相同。


推荐阅读