请求响应

GinTvT 发布于 2024-06-08 56 次阅读 网络基础 预计阅读时间: 4 分钟


DNS 简介

DNS(Domain Name System,域名系统) 是一个分布式数据库,实现了域名与 IP 地址之间的相互映射,极大地方便了用户访问互联网。 DNS 使用 TCP/UDP 的 53 号端口进行通信,通常查询使用 UDP,传输大量数据(如区域传送)时使用 TCP。


DNS 请求与响应

常见 DNS 记录类型

  • A记录(Address Record) 返回域名对应的 IPv4 地址。
  • AAAA记录(IPv6 Address Record) 返回域名对应的 IPv6 地址。
  • NS记录(Name Server Record) 指定负责该域名解析的权威域名服务器
  • PTR记录(Pointer Record) 反向解析,用于将 IP 地址映射回域名。
  • MX记录(Mail Exchange Record) 定义负责接收邮件的服务器信息。

常见 DNS 响应码(RCODE)

响应码含义
NOERROR无错误,查询成功。
FORMERR格式错误,服务器无法理解查询。
SERVFAIL服务器故障,无法处理查询。
NXDOMAIN查询的域名不存在。
NOTIMP服务器不支持请求类型。
REFUSED因策略原因拒绝请求。
NODATA域名存在,但无指定类型的记录。

域名系统工作原理

解析过程

DNS 查询通常是递归查询,大致过程如下:

  1. 客户端访问 www.example.com,首先检查:
    • 本地 hosts 文件
    • 本地 DNS 缓存 若有记录,直接返回结果。
  2. 本地无缓存,向配置的递归服务器发送查询请求。
  3. 递归服务器若无缓存,向根服务器查询,获取 .com 顶级域服务器(TLD Server)的地址。
  4. .com 顶级域服务器查询 example.com 的权威服务器地址。
  5. 再向 example.com 权威服务器查询 www.example.com 的具体地址记录。
  6. 递归服务器将最终结果返回客户端,同时缓存查询结果,以优化后续访问。

域传送(Zone Transfer)

  • 域传送是指 DNS 主服务器(Master)与从服务器(Slave)之间同步区域(Zone)数据的过程。
  • 常见的传送类型:
    • AXFR:全量传送
    • IXFR:增量传送

域传送确保从服务器能够及时备份和更新域名解析信息。


DNS 服务器类型

根服务器(Root Server)

  • 互联网域名系统的最顶层,标识为.(点)。
  • 根服务器引导 DNS 查询进入正确的顶级域(如 .com.net 等)。
  • 全球有 13 个逻辑根服务器(A~M),如 a.root-servers.orgm.root-servers.org, 实际物理服务器数量远超 13 台,采用 Anycast 技术部署。

权威服务器(Authoritative Server)

  • 存储某个域名区域(Zone)的真实记录(如 A、MX、NS等)。
  • 负责对特定域名范围内的查询给出最终权威回答。
  • 需要向 TLD 注册局注册,支持多个权威服务器以提高可靠性。

递归服务器(Recursive Server)

  • 接收客户端请求,代为查询完整的解析链。
  • 持有一份本地缓存以加速后续解析。
  • 起初仅拥有根服务器的 Hint 文件,依赖递归逐级查询。

DNS劫持

DNS劫持有多种方式,比较早期的攻击方式是通过攻击域名解析服务器,或是伪造DNS响应的方法,来将域名解析到恶意的IP地址。

随着互联网应用的不断发展,出现了基于废弃记录的劫持方式。这种方式发生的场景是次级域名的解析记录指向第三方资源,而第三方资源被释放后,解析记录并没有取消,在这种场景下,可以对应申请第三方资源,以获取控制解析记录的能力。

拒绝服务

DNS服务通常会开启UDP端口,当DNS服务器拥有大量二级域NS记录时,通过DNS的UDP反射攻击可以实现高倍的拒绝服务。

此作者没有提供个人介绍。
最后更新于 2025-04-27