网络协议—DNS协议

admin 2026-01-07 02:33:59 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章以抓包实例拆解DNS完整流程:从浏览器输入域名到本地缓存、递归查询根/顶级域/权威服务器,最终返回IP并建立连接;详细对比请求与响应报文的以太网、IP、UDP、DNS字段,指出TransactionID、Flags、TTL等关键值含义,演示局域网内将www.laowu.com解析为192.168.1.2的过程,并归纳A、CNAME、MX等常见记录类型与适用场景,为排查解析故障与配置内网映射提供可复现实操参考。 综合评分: 82 文章分类: 网络安全,WEB安全,安全工具,技术标准,实战经验


cover_image

网络协议—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 解析过程大致如下:

  1. 本地缓存查询

    客户机操作系统检查是否有该域名的缓存记录。

  2. 向本地 DNS 服务器请求(通常是 ISP 提供的,如 114.114.114.114 或路由器 192.168.1.1)

  3. 递归查询过程(由本地 DNS 服务器完成)

    →查询根域名服务器(Root Server):“.com 的权威服务器在哪?”

    →查询顶级域(TLD)服务器(如 .com 服务器):“baidu.com 的权威服务器是谁?”

    →查询权威域名服务器(如 ns1.baidu.com):“www.baidu.com 的 IP 是多少?”

  4. 返回结果

    权威服务器返回 IP(如 220.181.38.148),本地 DNS 缓存并返回给你的设备。

  5. 建立连接

    浏览器用该 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请求数据报文解析:

  1. 以太网层(Ethernet II)
  • 源 MAC: 08:94:ef:79:6c:5d
  • 目的 MAC: 00:e0:01:03:12:34
  1. 网络层(IP)
  • 源 IP: 192.168.1.20(客户机)
  • 目标 IP: 192.168.1.1(DNS服务器)
  1. 传输层(UDP)
  • 源端口: 58410(客户端临时端口)
  • 目的端口: 53(DNS 服务的标准端口)
  • 长度: 39 字节(UDP 头 + DNS 数据)

说明:使用 UDP 是因为 DNS 查询通常很短,不需要 TCP 的连接开销。

  1. 应用层(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回应数据报文解析:

  1. 以太网层(Ethernet II)
  • 源 MAC: 00:e0:01:03:12:34(DNS服务器)
  • 目的 MAC: 08:94:ef:79:6c:5d(客户机)
  1. 网络层(IP)
  • 源 IP: 192.168.1.1(DNS服务器)
  • 目标 IP: 192.168.1.20(客户机)

说明:网络通信正常,双向通路畅通。

  1. 传输层(UDP)
  • 源端口: 53(DNS 服务端口)
  • 目的端口: 58410(与请求时一致)
  • 长度: 55 字节(UDP 头 + DNS 数据)

说明:使用 UDP 是因为 DNS 响应较短,无需建立连接。

  1. 应用层(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协议》

网络协议—DNS协议 网络安全文章

网络协议—DNS协议

文章总结: 文章以抓包实例拆解DNS完整流程:从浏览器输入域名到本地缓存、递归查询根/顶级域/权威服务器,最终返回IP并建立连接;详细对比请求与响应报文的以太网
评论:0   参与:  0