Dig +trace 是一个 DNS 诊断命令,它与域名系统 (DNS) 协同工作,能够对指定域名执行完整的递归 DNS 查找。
Dig +trace 会完整追踪所查询域名的委托链。它可以从根名称服务器,到顶级域 (TLD) 服务器,再到权威名称服务器。Dig +trace 有助于团队排查 DNS 解析问题。
最显而易见的问题是根本无法连接到某个域或子域,其表现为出现故障提示页面。另一种 DNS 解析问题是延迟,它可能使查询时间超出人类正常的忍耐限度。
平均 DNS 查找时间以毫秒 (MSEC) 计,通常在 20 毫秒到 120 毫秒之间。优化工作旨在进一步缩短这些查询时间。
在正常的 dig 命令中,您的 DNS 服务器(作为您的互联网服务提供商解析器)会发出递归请求,并检查其本地缓存中是否存在最近且未过期的 DNS 记录。但这是在理想情况下,一切按预期运行时才会发生。
当管理员需要“深入底层”时,便会求助于 dig +trace。通常,您需要绕过常规查询流程,是因为某些环节出了错。路由链中有某个部分未能正确运行。因此,管理员需要能够剖析和研究该链的各个部分及其各种联系,找出运行不正常的环节。
当团队使用 dig +trace 时,他们实际上忽略了先前缓存的内容,因此可以运行一次全新且迭代的查询,而不会走向陈旧过时的路径。
Dig +trace 对于故障排查非常有用,因为它能让您看到 DNS 解析在何处中断。问题可能出现在根域名服务器、顶级域或权威服务器层面。它还可以检查您域名的名称服务器记录是否正确,并在更改后验证 DNS 传播情况。
dig +trace 过程实际上可归结为四个步骤。
如果用户之前输入过该域名且计算机已缓存其 IP 地址,命令提示符 (CMD) 会立即检索所需的 IP 地址。系统访问并下载请求的内容,查询过程随即结束。
然而,如果该域名对该设备来说是新的且未知的,则继续执行后续步骤。
dig 命令查找根名称服务器,获取与被调查目标域的顶级域 (TLD) 相关联的名称服务器 (NS) 记录。
dig 命令调查 TLD 名称服务器,以发现特定域的权威名称服务器。
在路径上的每个调查步骤中,管理员都会收到输出信息,以了解每个阶段的状态以及流程是否按预期继续。
例如,管理员会看到“NOERROR”消息,这表明测试在该阶段未发生任何问题。(注:该消息并不表示整体操作的成功或失败,不应被误解。它虽然有用,但所传达的信息有限。)
有趣的是,DNS 基础设施有助于支持 DNS 层级结构,并利用巧妙的转介系统来辅助查找过程。这样,如果一台服务器无法将查询引导至完成,它实质上会将查询指引至另一台服务器,以助其推进并延续查询旅程。
互联网使用的域名系统由在不同层级运行的多个根名称服务器构成。最重要的是在最顶层运行的 13 个逻辑根名称服务器,它们以字母表的前 13 个字母命名。
这 13 个逻辑根名称服务器中的每一个所指代的并非单一计算机或操作系统,而是代表一个指定的管理机构,负责处理所有互联网 DNS 查询流量的十三分之一。因此,当我们提及“服务器 A”时,我们指的是服务器 A 这一指定名称,它可以涵盖数量不限的单个 DNS 服务器。
同样值得注意的是,这 13 个根名称服务器被委托给各类实体——包括各类营利性公司、大学和军事组织。虽然最初大多数物理服务器的位置确实高度集中在美国,但随着时间的推移,这种格局已重新平衡。如今,物理服务器遍布全球。
以下是负责运行 13 个不同 root-servers.net 指定名称的团体:
查询流量在这 13 个服务器之间平均分配,没有任何一个服务器承担比其他服务器更多的流量。区域因素可能影响用户最常访问哪些服务器,但总体而言流量相似,主要涉及对互联网服务提供商地址的请求。
需要 13 个实体来管理 DNS 查询流量的原因是,每年产生的 DNS 查询量高达数万亿次。一些估计认为总数会超过 100 万亿,但这些数字是基于经验的推测。这是一个如此庞大的数字,以至于实际上无法精确计算。
还有一些间接相关的问题也应予以说明:
IBM NS1 Connect 是一项完全托管的云服务,用于企业 DNS、DHCP、IP 地址管理和应用程序流量导向。
IBM 的云网络解决方案可实现高性能连接,为应用程序和业务提供支持。
使用 IBM Technology Lifecycle Services 整合数据中心支持,以实现云网络等。