针对特定域运行该命令dig
,返回先前的名称服务器详细信息。例如;
domain.com. 41068 IN NS ns1.nameserver1.com.
现在,如果我运行该命令dig +nssearch host.example.com
,然后运行命令“dig domain.com”,我会得到不同的结果。
domain.com. 41068 IN NS chad.ns.cloudflare.com.
- 这是为什么?
dig domain.com
如果我多次运行 dig 命令,它会返回之前的名称服务器详细信息。这是为什么?
编辑
名称服务器详细信息已更改,但是在同一时间窗口内运行命令会产生不同的结果。
答案1
缓存
您的系统用作解析器的名称服务器(/etc/resolv.conf
)应该缓存 DNS 响应。
通过使用此+nssearch
开关,您可以绕过解析器(在名称服务器术语中也称为递归名称服务器)的缓存记录,直接查询权威 DNS 服务器,并获得不来自缓存的记录。
如手册中所述:
+[no]recurse
切换查询中的 RD(需要递归)位的设置。此位默认设置,这意味着 dig 通常会发送递归查询。使用 +nssearch 或 +trace 查询选项时,会自动禁用递归。
+[no]nssearch
设置此选项后,dig 会尝试查找包含所查找名称的区域的权威名称服务器,并显示每个名称服务器对该区域的 SOA 记录。
额外的复杂因素可能是您的解析器不是单个服务器,而是一组递归 DNS 服务器,每个服务器都有不同的缓存和/或新记录。