DNS

了解DNS的功能以及域名查询的步骤,可能在选择题中考察。

层次域名空间

DNS 使用层次域名空间来组织域名,将域名划分为多个级别,每个级别之间以点(.)分隔。域名从右到左逐级递增,最右边是顶级域名(TLD),然后是二级域名,三级域名,以此类推。

例如, www.example.com 中, .com “是顶级域名, example.com 是二级域名, www.example.com 是子域名。

DNS 层次域名空间的设计使得域名分布在不同的管理区域中,每个管理区域负责管理其自己的域名空间。这种分层结构有助于提高 DNS 的可扩展性和效率。

域名服务器

  1. 根域名服务器 (Root Name Servers):
    • 这些服务器位于 DNS 解析的最顶端。它们不直接回答关于哪个域名映射到哪个 IP 地址的查询,而是告诉查询者下一步应该询问哪个顶级域名 (TLD) 服务器。
    • 根服务器的数量是有限的,并且它们的位置在全球都是已知的。
  2. 顶级域名服务器 (Top-Level Domain Name Servers, TLD Name Servers):
    • 这些服务器负责特定的顶级域名(如 .com, .org, .net 等)。它们为下一级的域名(如 example.com)提供有关权威名称服务器的信息。
  3. 权威域名服务器 (Authoritative Name Servers):
    • 这些服务器为特定的域名(如 example.com)提供详细的 DNS 记录信息(例如 A 记录、MX 记录等)。只有权威服务器才能为其负责的域名提供这些信息。
    • 大多数组织拥有权威 DNS 服务器来为他们的域名提供解析服务。
  4. 本地域名服务器 (Local Name Server)
    • 是在本地网络环境中运行的 DNS 服务器,它为该网络中的设备提供域名解析服务。
    • 每个 ISP 或一所大学都可以有一个本地域名服务器。

域名解析过程

Recursive Query
Iterative Query
Root DNS Server
Top-Level DNS Server
Authoritative DNS Server
Local DNS Server
Root DNS Server
Top-Level DNS Server
Authoritative DNS Server
Local DNS Server

域名解析分为 递归查询迭代查询 两种。

递归查询

  1. 客户端向递归服务器发送一个请求,比如解析 www.example.com
  2. 如果递归服务器没有缓存结果,它会从根服务器开始,逐级查询:
    • 首先查询根域名服务器(Root Server),获取顶级域(TLD)的服务器地址。
    • 再查询 TLD 服务器(比如 .com),获取权威服务器的地址。
    • 然后查询权威服务器,最终获取目标域名的 IP 地址。
  3. 递归服务器将最终的 IP 地址返回给客户端。

迭代查询

  1. 客户端向本地 DNS 服务器(或根服务器)发送查询请求,比如解析 www.example.com
  2. 根服务器返回 .com 顶级域的 DNS 服务器地址。
  3. 客户端再向 .com 顶级域 DNS 服务器发送查询请求。
  4. .com 顶级域返回 example.com 的权威服务器地址。
  5. 客户端向 example.com 的权威服务器发送查询请求,获取最终的 IP 地址。

对比

特点递归查询迭代查询
查询责任DNS 服务器负责查询所有结果客户端逐级查询
查询复杂度客户端简单,只需发起一次请求客户端复杂,需要多次查询
使用场景用户设备、本地 DNS 服务器DNS 服务器之间的交互
性能服务器负担较大服务器负担较小