计算机网络——应用层 DNS 协议分析

计算机网络——应用层 DNS 协议分析

概述

  • 域名(Domain Name)是互联网上用于标识和定位网站、服务器或网络服务的字符串名称,相当于网站的“门牌地址”。它为用户提供了一种更直观、易记的方式来访问网站,避免了记忆复杂的 IP 地址。
  • DNS(Domain Name System,域名系统)是一个分布式数据库系统,用于将人类可读的域名转换为机器可识别的 IP 地址 。它类似于互联网的“电话簿”,确保用户通过域名访问目标服务器,而无需直接输入 IP 地址。

域名分级

域名采用 层次结构,从右向左逐级划分,结构如下:

  • 根域:域名层级的顶端,表示为 .(通常省略)。
  • 顶级域名:如 .com.org.cn.edu,分为通用顶级域(如 .com)、国家/地区顶级域(如 .cn)等。
  • 一级域名:直接在顶级域名下的部分,如 baidu(在 baidu.com 中)。
  • 二级域名:如 wwwnewstieba(在 www.baidu.com 中)。
  • 更低级域名:如 blog.news.example.com 中的 blog

应用层

域名注册

域名需通过注册商购买并配置。以下是常见的注册平台:

[!note] 国内注册的域名需在工信部完成 ICP 备案,备案流程可能耗时数周。 国外注册的域名无需备案,但可能因网络限制影响国内访问速度。

域名解析过程

开发者视角

  1. 购买域名:通过注册商购买域名(如 xiaqy.top)。
  2. 购买服务器:获取具有公网 IP 的服务器,部署网站或服务。
  3. 配置 DNS 解析:在域名管理平台设置 DNS 记录,将域名映射到服务器的 IP 地址。

客户端视角

当用户在浏览器输入域名(如 blog.xiaqy.top)时,操作系统和浏览器会自动发起 DNS 解析流程:

  1. 检查本地 DNS 缓存(浏览器或操作系统缓存)。
  2. 若无缓存,查询本地 DNS 服务器(通常由 ISP 或公共 DNS 如 223.5.5.5 提供)。
  3. 本地 DNS 服务器通过 递归查询迭代查询,向根 DNS、顶级域 DNS、权威 DNS 逐级查询,最终返回 IP 地址。

DNS 递归查询与迭代查询

  • 递归查询 是本地计算机与 DNS 服务器之间的查询与响应,客户端将解析任务完全交给 DNS 服务器(如本地 DNS),由该服务器负责最终返回结果(成功或失败)。
  • 迭代查询 是 DNS 服务器之间的查询与响应,DNS 服务器仅返回“下一步该问谁”的线索(如根 DNS→TLD→ 权威 DNS),查询方需逐步追问直到获得答案。

应用层

  • 下图以查询 blog.xiaqy.top 域名为例:

应用层

  • 递归查询与迭代查询的 区别
特性递归查询迭代查询
定义客户端向本地 DNS 服务器发出查询,服务器负责完成所有查询步骤客户端或服务器逐级向 DNS 服务器查询,每次返回下一步地址
查询主体本地 DNS 服务器或指定的 DNS 服务器客户端或本地 DNS 服务器
效率对客户端更快,服务器负担较重对服务器负担较轻,客户端需多次查询
使用场景客户端通常使用递归查询本地 DNS 服务器与上级 DNS 服务器间使用

域名解析类型

DNS 支持多种记录类型,用于不同场景的解析:

  • A 记录:将域名映射到 IPv4 地址。
  • AAAA 记录:将域名映射到 IPv6 地址。
  • CNAME 记录:定义域名的别名,常用于 CDN。
  • NS 记录:指定域名的权威 DNS 服务器。
  • MX 记录:指定邮件服务器地址,用于邮件服务。
  • TXT 记录:存储文本信息,常用于验证域名所有权或 SPF 记录。

协议分析与抓包

Windows DNS 操作

Windows 系统默认开启 DNS 缓存,可通过以下命令管理:

#查看DNS缓存
ipconfig /displaydns

#清除DNS缓存
ipconfig /flushdns

#查询域名解析
nslookup [domain_name]

[!tip] 清除 DNS 缓存可解决因缓存导致的解析错误问题,例如访问旧 IP 地址。

Wireshark 抓包

使用 Wireshark 分析 DNS 流量时,可设置过滤器 dns 查看 DNS 查询和响应,随后本地进行查询域名解析。DNS 报文结构主要包括:

  • 查询部分:包含查询的域名和记录类型(如 A、AAAA)。
  • 应答部分:包含解析结果(如 IP 地址)。

image-20250619183949768

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇