在计算机网络中,DNS(Domain Name System)用于 将域名解析为 IP 地址。一个完整的解析过程涉及 递归查询迭代查询,以及多个关键角色(LDNS、本地域名服务器;根服务器;顶级域名服务器;权威服务器)。


1. DNS 中的关键角色

1.1 本地域名服务器(LDNS, Local DNS Server)

  • 由运营商(电信、联通、移动)或企业网络提供,离用户最近。

  • 当客户端发起域名解析请求时,第一步就是问 LDNS

  • LDNS 会查缓存,有结果就直接返回,否则去找根服务器继续解析。

1.2 根域名服务器(Root DNS Server)

  • DNS 系统的起点,全球一共 13 组(A–M),分布在世界各地。

  • 作用:告诉你 顶级域名服务器的地址(如 .com.cn)。

  • 不存放最终 IP,只起导航作用。

1.3 顶级域名服务器(TLD DNS Server)

  • 按域名后缀分类,例如:

    • .com.net.org → 通用顶级域名

    • .cn.jp → 国家顶级域名

  • 作用:告诉你具体 权威服务器的地址

1.4 权威域名服务器(Authoritative DNS Server)

  • 存放最终的域名 → IP 映射关系。

  • 网站管理员在这里配置解析记录:

    • A 记录:域名 → IPv4 地址

    • AAAA 记录:域名 → IPv6 地址

    • CNAME 记录:域名别名映射

  • 作用:返回最终 IP 地址。


2. 递归查询(Recursive Query)

定义

  • 客户端向 DNS 服务器发出请求,要求它 必须返回最终结果

  • 中间查询由该服务器自己完成,客户端只需等待结果。

特点

  • 对客户端友好,只发一次请求。

  • 服务器压力较大。

示例

  • 电脑问 LDNS:“www.example.com 的 IP 是多少?”

  • LDNS 自己去问根、TLD、权威服务器,最终把结果返回给客户端。


3. 迭代查询(Iterative Query)

定义

  • 客户端向 DNS 服务器请求,服务器 只返回自己知道的最优答案,如果不知道,就告诉客户端“去问谁”。

  • 客户端需要多次询问,直到得到结果。

特点

  • 服务器压力小。

  • 客户端需要多次发请求。

示例

  1. 客户端问根服务器:“www.example.com 的 IP 是多少?”

    • 根服务器答:“我不知道,但 .com 服务器可能知道。”

  2. 客户端问 .com 服务器。

    • .com 服务器答:“去问 example.com 的权威服务器。”

  3. 客户端问权威服务器,最终拿到 IP。


4. DNS 解析流程

以访问 www.csdn.com 为例:

  1. 客户端 → LDNS:递归查询,LDNS 必须返回最终 IP。

  2. LDNS → 根服务器:迭代查询,根告诉 LDNS 去找 .com 服务器。

  3. LDNS → 顶级域名服务器 (TLD):迭代查询,TLD 告诉 LDNS 去找 csdn.com 的权威服务器。

  4. LDNS → 权威服务器:迭代查询,权威服务器返回 IP(如 93.184.216.34)。

  5. LDNS → 客户端:把结果返回客户端,并缓存以供下次查询。

说也就是说,DNS解析的时候,既要有客户端的递归,也要有服务端的迭代。


5. 递归 vs 迭代 对比

方式 谁来完成查询 客户端请求次数 服务器压力 使用场景
递归查询 DNS 服务器 一次 客户端 → LDNS
迭代查询 客户端(或 LDNS) 多次 LDNS → 根/TLD/权威

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐