(计算机网络)DNS解析流程及两种途径
在计算机网络中,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 服务器请求,服务器 只返回自己知道的最优答案,如果不知道,就告诉客户端“去问谁”。
客户端需要多次询问,直到得到结果。
特点
服务器压力小。
客户端需要多次发请求。
示例
客户端问根服务器:“
www.example.com
的 IP 是多少?”根服务器答:“我不知道,但
.com
服务器可能知道。”
客户端问
.com
服务器。.com
服务器答:“去问 example.com 的权威服务器。”
客户端问权威服务器,最终拿到 IP。
4. DNS 解析流程
以访问 www.csdn.com
为例:
客户端 → LDNS:递归查询,LDNS 必须返回最终 IP。
LDNS → 根服务器:迭代查询,根告诉 LDNS 去找
.com
服务器。LDNS → 顶级域名服务器 (TLD):迭代查询,TLD 告诉 LDNS 去找
csdn.com
的权威服务器。LDNS → 权威服务器:迭代查询,权威服务器返回 IP(如 93.184.216.34)。
LDNS → 客户端:把结果返回客户端,并缓存以供下次查询。
说也就是说,DNS解析的时候,既要有客户端的递归,也要有服务端的迭代。
5. 递归 vs 迭代 对比
方式 | 谁来完成查询 | 客户端请求次数 | 服务器压力 | 使用场景 |
---|---|---|---|---|
递归查询 | DNS 服务器 | 一次 | 高 | 客户端 → LDNS |
迭代查询 | 客户端(或 LDNS) | 多次 | 低 | LDNS → 根/TLD/权威 |