DNS
了解DNS的功能以及域名查询的步骤,可能在选择题中考察。
层次域名空间
DNS 使用层次域名空间来组织域名,将域名划分为多个级别,每个级别之间以点(.)分隔。域名从右到左逐级递增,最右边是顶级域名(TLD),然后是二级域名,三级域名,以此类推。
例如, www.example.com
中, .com
“是顶级域名, example.com
是二级域名, www.example.com
是子域名。
DNS 层次域名空间的设计使得域名分布在不同的管理区域中,每个管理区域负责管理其自己的域名空间。这种分层结构有助于提高 DNS 的可扩展性和效率。
域名服务器
- 根域名服务器 (Root Name Servers):
- 这些服务器位于 DNS 解析的最顶端。它们不直接回答关于哪个域名映射到哪个 IP 地址的查询,而是告诉查询者下一步应该询问哪个顶级域名 (TLD) 服务器。
- 根服务器的数量是有限的,并且它们的位置在全球都是已知的。
- 顶级域名服务器 (Top-Level Domain Name Servers, TLD Name Servers):
- 这些服务器负责特定的顶级域名(如 .com, .org, .net 等)。它们为下一级的域名(如 example.com)提供有关权威名称服务器的信息。
- 权威域名服务器 (Authoritative Name Servers):
- 这些服务器为特定的域名(如 example.com)提供详细的 DNS 记录信息(例如 A 记录、MX 记录等)。只有权威服务器才能为其负责的域名提供这些信息。
- 大多数组织拥有权威 DNS 服务器来为他们的域名提供解析服务。
- 本地域名服务器 (Local Name Server)
- 是在本地网络环境中运行的 DNS 服务器,它为该网络中的设备提供域名解析服务。
- 每个 ISP 或一所大学都可以有一个本地域名服务器。
域名解析过程
域名解析分为 递归查询 和 迭代查询 两种。
递归查询
- 客户端向递归服务器发送一个请求,比如解析
www.example.com
。 - 如果递归服务器没有缓存结果,它会从根服务器开始,逐级查询:
- 首先查询根域名服务器(Root Server),获取顶级域(TLD)的服务器地址。
- 再查询 TLD 服务器(比如
.com
),获取权威服务器的地址。 - 然后查询权威服务器,最终获取目标域名的 IP 地址。
- 递归服务器将最终的 IP 地址返回给客户端。
迭代查询
- 客户端向本地 DNS 服务器(或根服务器)发送查询请求,比如解析
www.example.com
。 - 根服务器返回
.com
顶级域的 DNS 服务器地址。 - 客户端再向
.com
顶级域 DNS 服务器发送查询请求。 .com
顶级域返回example.com
的权威服务器地址。- 客户端向
example.com
的权威服务器发送查询请求,获取最终的 IP 地址。
对比
特点 | 递归查询 | 迭代查询 |
---|---|---|
查询责任 | DNS 服务器负责查询所有结果 | 客户端逐级查询 |
查询复杂度 | 客户端简单,只需发起一次请求 | 客户端复杂,需要多次查询 |
使用场景 | 用户设备、本地 DNS 服务器 | DNS 服务器之间的交互 |
性能 | 服务器负担较大 | 服务器负担较小 |