文章总结: 文章以抓包实例拆解DNS完整流程:从浏览器输入域名到本地缓存、递归查询根/顶级域/权威服务器,最终返回IP并建立连接;详细对比请求与响应报文的以太网、IP、UDP、DNS字段,指出TransactionID、Flags、TTL等关键值含义,演示局域网内将www.laowu.com解析为192.168.1.2的过程,并归纳A、CNAME、MX等常见记录类型与适用场景,为排查解析故障与配置内网映射提供可复现实操参考。 综合评分: 82 文章分类: 网络安全,WEB安全,安全工具,技术标准,实战经验
网络协议—DNS协议
原创
老五
老五说网络
2026年1月6日 16:30 陕西
基本概念
DNS(Domain Name System,域名系统)是互联网的一项核心服务,其主要作用是将人类可读的域名(如 www.baidu.com)转换为计算机可识别的 IP 地址(如:183.2.172.17),从而实现网络通信。
一、为什么需要 DNS?
- IP 地址难记:计算机通过 IP 地址(如:183.2.172.17)互相通信,但数字形式对人不友好。
- 域名更直观:baidu.com 比183.2.172.17更容易记忆和使用。
- 抽象与灵活性:网站可以更换服务器 IP,但域名不变,用户无感知。
DNS 就像互联网的“电话簿”:你查名字(域名),它告诉你号码(IP)。
二、DNS 的基本工作原理
当你在浏览器输入 www.baidu.com 并回车时,DNS 解析过程大致如下:
-
本地缓存查询
客户机操作系统检查是否有该域名的缓存记录。
-
向本地 DNS 服务器请求(通常是 ISP 提供的,如 114.114.114.114 或路由器 192.168.1.1)
-
递归查询过程(由本地 DNS 服务器完成)
→查询根域名服务器(Root Server):“.com 的权威服务器在哪?”
→查询顶级域(TLD)服务器(如 .com 服务器):“baidu.com 的权威服务器是谁?”
→查询权威域名服务器(如 ns1.baidu.com):“www.baidu.com 的 IP 是多少?”
-
返回结果
权威服务器返回 IP(如 220.181.38.148),本地 DNS 缓存并返回给你的设备。
-
建立连接
浏览器用该 IP 与百度服务器通信,加载网页。
总结:整个DNS查询过程通常在几十毫秒内完成。
三、常见的DNS记录类型
| | | | — | — | | 记录类型 | 作用 | | A 记录 | 将域名映射到 IPv4 地址(如 www.baidu.com → 183.2.172.17) | | AAAA 记录 | 将域名映射到 IPv6 地址 | | CNAME别名记录 | 将一个域名指向另一个域名(如 www.baidu.com → baidu.com) | | MX 记录 | 邮件服务器地址(用于接收邮件) | | NS 记录 | 指定该域名由哪些 DNS 服务器管理(权威服务器) | | TXT 记录 | 存储文本信息,常用于验证域名所有权或 SPF 邮件安全 |
四、DNS数据报文分析
1、网络拓扑
2、客户机浏览器访问www.laowu.com
3、抓取DNS数据包
DNS请求报文:
DNS请求数据报文解析:
- 以太网层(Ethernet II)
- 源 MAC: 08:94:ef:79:6c:5d
- 目的 MAC: 00:e0:01:03:12:34
- 网络层(IP)
- 源 IP: 192.168.1.20(客户机)
- 目标 IP: 192.168.1.1(DNS服务器)
- 传输层(UDP)
- 源端口: 58410(客户端临时端口)
- 目的端口: 53(DNS 服务的标准端口)
- 长度: 39 字节(UDP 头 + DNS 数据)
说明:使用 UDP 是因为 DNS 查询通常很短,不需要 TCP 的连接开销。
- 应用层(DNS Query)
基本信息:
- Transaction ID: 0x329a
(用于匹配请求和响应,确保回复正确对应)
- Flags: 0x0100
Response = 0: 表示这是一个查询请求(不是响应)
Opcode = 0: 标准查询
Recursion Desired = 1: 客户端希望DNS服务器递归解析(即帮你查外网)
- 查询内容(Queries)
- 域名: www.laowu.com,查询类型: A(IPv4 地址)。查询类: IN(Internet)
总结:客户机发送DNS请求:“请告诉我 www.laowu.com 对应的 IPv4 地址。”
DNS回应报文:
DNS回应数据报文解析:
- 以太网层(Ethernet II)
- 源 MAC: 00:e0:01:03:12:34(DNS服务器)
- 目的 MAC: 08:94:ef:79:6c:5d(客户机)
- 网络层(IP)
- 源 IP: 192.168.1.1(DNS服务器)
- 目标 IP: 192.168.1.20(客户机)
说明:网络通信正常,双向通路畅通。
- 传输层(UDP)
- 源端口: 53(DNS 服务端口)
- 目的端口: 58410(与请求时一致)
- 长度: 55 字节(UDP 头 + DNS 数据)
说明:使用 UDP 是因为 DNS 响应较短,无需建立连接。
- 应用层(DNS Response)
核心字段:
- Transaction ID: 0x329a
- 与上一个报文的查询(Frame 1)完全匹配!
说明:这是对同一个请求的响应。
Flags: 0x8580
分解如下:
- 1… …. …. …. = Response(这是响应,不是请求)
- …. 0… …. …. = Opcode: Standard Query
- …. ..1. …. …. = Authoritative: 服务器不是该域名的权威服务器(即它不是 laowu.com 的官方 DNS)
- …. …0 …. …. = Truncated: 消息未截断(完整)
- …. …. 1… …. = Recursion Desired: 客户端希望递归查询
- …. …. .1.. …. = Recursion Available: 服务器支持递归查询
- …. …. ..0. …. = Z: 保留位
- …. …. …0 …. = Answer Authenticated: 不是安全签名的响应(如 DNSSEC)
- …. …. …. 0000 = Reply Code: No error (0) → 成功!
说明:所有标志都表明这是一个正常的、无错误的 DNS 响应。
Questions(查询部分)
- Name: www.laowu.com
- Type: A(IPv4 地址)
- Class: IN(Internet)
说明:该响应是针对“www.laowu.com”的 A 记录查询。
Answers(回答部分)
- Name: www.laowu.com
- Type: A(Host address)
- Class: IN
- TTL: 0 time(生存时间,表示立即过期,需重新查询)
- Address: 192.168.1.2
总结:
以上报文分析显示了一次完整的DNS查询与响应过程:客户机192.168.1.20向DNS服务器192.168.1.1请求解析www.laowu.com,DNS服务器返回内网IP地址192.168.1.2,表明该域名在局域网中通过本地DNS映射配置,仅限内部访问,解析成功且无错误。
公众号:老五说网络
长按左侧二维码关注
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:老五说网络 老五《网络协议—DNS协议》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论