【系统架构设计师】DNS查询过程

发布于:2025-03-26 ⋅ 阅读:(12) ⋅ 点赞:(0)

1. DNS查询的起点
  • 1.DNS查询过程通常从客户端(如浏览器或应用程序)发起。
  • 2.当用户在客户端输入一个域名时,客户端会向DNS系统发起查询请求,以获取该域名对应的IP地址。
2. 本地查询
2.1 检查hosts文件
  • 1.操作系统首先会检查本地hosts文件。
  • 2.hosts文件是一个简单的文本文件,存储在计算机上,包含了域名与其对应IP地址的手动映射。
  • 3.如果在hosts文件中找到了与输入域名匹配的条目,操作系统会直接返回该域名对应的IP地址,跳过后续的DNS查询过程。
2.2 查询本地DNS缓存
  • 1.如果hosts文件中没有匹配的条目,操作系统会查询本地DNS缓存。
  • 2.本地DNS缓存是操作系统维护的一个动态数据库,存储了最近使用的域名及其对应的IP地址。
  • 3.如果在本地DNS缓存中找到了匹配的条目,操作系统会返回该域名对应的IP地址,从而提高DNS解析的效率。
3. 本地DNS服务器查询
  • 1.如果本地查询失败,客户端会向本地DNS服务器发起查询请求。
  • 2.本地DNS服务器在DNS查询过程中扮演着关键角色,充当客户端和上级DNS服务器之间的中介。
  • 3.缓存查询:本地DNS服务器首先检查其缓存中是否已有该域名的解析记录。缓存查询几乎不需要额外的网络开销,因此是最高效的方式。如果找到匹配的记录,本地DNS服务器会立即返回结果给客户端。
  • 4.转发查询:如果本地DNS服务器的缓存中没有所需信息,它会采取不同的查询策略,包括递归查询和迭代查询。
  • 5.递归查询:本地DNS服务器负责执行完整查询过程,直至获得最终结果。
  • 6.迭代查询:本地DNS服务器将查询请求转发给其他DNS服务器,逐步推进查询过程。
4. 上级DNS服务器查询
  • 1.在转发查询的过程中,本地DNS服务器会依次向根域名服务器、顶级域名服务器和权威域名服务器发起查询请求。
4.1 根域名服务器
  • 1.根域名服务器位于DNS层级结构的最高级别,掌握着所有顶级域名服务器的信息。
  • 2.本地DNS服务器会向根域名服务器发起查询请求,根域名服务器会返回负责该顶级域名的权威DNS服务器的IP地址。
4.2 顶级域名服务器
  • 1.顶级域名服务器负责管理和解析特定顶级域名下的所有二级域名。
  • 2.本地DNS服务器会根据根域名服务器提供的指引,向相应的顶级域名服务器发起查询请求。
  • 3.顶级域名服务器会返回该域名的权威DNS服务器的地址。
4.3 权威域名服务器
  • 1.权威域名服务器是DNS查询过程的最后一环,负责提供最终的IP地址解析结果。
  • 2.本地DNS服务器会通过迭代查询或递归查询到达权威域名服务器,权威服务器会直接返回所请求的IP地址。
5. 查询结果返回
  • 1.权威域名服务器返回IP地址后,该信息会沿着查询路径逐级返回给本地DNS服务器,并最终返回给客户端。
  • 2.客户端收到IP地址后,就可以与该IP地址对应的服务器进行通信,从而访问所需的资源。
6. 缓存更新
  • 1.在整个DNS查询过程中,各级DNS服务器都会缓存查询结果,以提高后续相同域名查询的速度。
  • 2.每个缓存条目都关联一个TTL(Time to Live)值,指示该条目在缓存中存活的有效期。
  • 3.当缓存条目过期时,系统会自动清除或更新相应的条目,确保缓存中的信息始终保持最新状态。
7. 例题
7.1 例题1
  • 1.题目
1.主机PC对某个域名进行查询,最终由该域名的授权域名服务器解析并返回结果,查询过程如下图所示。
这种査询方式中不合理的是(A)。
A.根域名服务器采用递归查询,影响了性能
B.根域名服务器采用迭代查询,影响了性能
C.中介域名服务器采用迭代查询,加重了根域名服务器负担
D.中介域名服务器采用递归查询,加重了根域名服务器负担

在这里插入图片描述

  • 2.解析
1.在域名解析过程中,一般有两种查询方式:递归查询和迭代查询。
2.递归查询:服务器必须回答目标IP与域名的映射关系。
3.迭代查询:服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其他DNS服务器的地址。
4.递归查询会向下探索,最终返回答案,迭代查询不会向下探索,会立即返回消息,可以只返回线索。

网站公告

今日签到

点亮在社区的每一天
去签到