DNS协议

DNS协议

一、什么是DNS协议

DNS(Domain Name System,域名系统)是互联网的核心基础设施之一,本质是应用层协议,其核心作用是将人类易记的 "域名"(如www.baidu.com)转换为计算机可识别的 "IP 地址"(如 180.101.49.12),相当于互联网的 "电话簿"。没有 DNS,用户需手动输入 IP 地址访问网站,极大降低互联网易用性。

二、特性

  1. 分布式存储:解析记录分散在全球的权威 DNS 服务器,而非集中存储,避免单点故障和性能瓶颈。
  2. 层级化查询:从根 DNS→顶级域 DNS→权威 DNS,形成清晰的查询链路,确保解析的可扩展性(支持全球数十亿域名)。
  3. 多级缓存机制:浏览器、操作系统、本地 DNS、顶级域 DNS 均会缓存解析结果,大幅减少重复查询,降低网络负载(缓存有效期由 TTL 控制,可灵活配置)。

三、DNS工作原理

以正向解析为例

DNS 解析遵循层级查询 + 缓存机制,以 "访问www.baidu.com" 为例,完整流程分为 8 步,核心是 "本地缓存→本地 DNS→根 DNS→顶级域 DNS→权威 DNS" 的层级查询:

  1. 检查浏览器缓存
    浏览器会优先查询自身缓存(如 Chrome、Edge 的本地缓存),若之前访问过该域名,缓存中会保留解析结果(有效期由 TTL 控制),此步骤最快(毫秒级)。
  2. 检查操作系统 HOSTS 文件
    若浏览器缓存未命中,系统会查询本地HOSTS文件(Windows 路径:C:\Windows\System32\drivers\etc\hosts;Linux 路径:/etc/hosts)。该文件可手动配置 "域名→IP",若有记录则直接使用(常用于测试或绕过 DNS)。
  3. 请求本地 DNS 服务器
    若 HOSTS 无记录,系统会向本地 DNS 服务器(通常由 ISP 提供,如电信、联通;或手动设置如 8.8.8.8 谷歌、114.114.114.114 国内)发送查询请求。
    • 此处为递归查询:本地 DNS 承诺 "帮用户查到底",不返回中间结果,只返回最终 IP 或 "解析失败"。
  4. 本地 DNS 查询自身缓存
    本地 DNS 先检查自身缓存,若有该域名的解析记录(如其他用户刚查询过),直接返回 IP 给浏览器,流程结束。
  5. 本地 DNS 请求根 DNS 服务器
    若本地 DNS 缓存未命中,会向根 DNS 服务器(全球共 13 个根域,如.root-servers.net,并非 13 台物理机,而是遍布全球的镜像节点)发送查询请求。
    • 此处为迭代查询:根 DNS 不直接解析域名,只返回 "该域名所属顶级域的 DNS 服务器地址"(如www.baidu.com的顶级域是.com,根 DNS 返回.com顶级域服务器地址)。
  6. 本地 DNS 请求顶级域 DNS 服务器
    本地 DNS 向根 DNS 返回的顶级域 DNS 服务器(如.com、.cn、.org对应的服务器)发送查询请求(仍为迭代查询)。
    • 顶级域 DNS 服务器返回 "该域名的权威 DNS 服务器地址"(如baidu.com的权威 DNS 是ns1.baidu.com)。
  7. 本地 DNS 请求权威 DNS 服务器
    本地 DNS 向权威 DNS 服务器(域名所有者配置的 DNS,存储该域名的所有解析记录)发送查询请求(迭代查询)。
    • 权威 DNS 服务器返回www.baidu.com对应的 IP 地址(如 180.101.49.12),并附带 TTL(缓存有效期,如 300 秒)。
  8. 返回结果并缓存
    本地 DNS 将 IP 地址返回给浏览器,同时缓存该解析记录(有效期为 TTL),供后续查询复用;浏览器使用 IP 地址与百度服务器建立 TCP 连接(HTTP/HTTPS),加载网页。

四、DNS报文格式

DNS基于TCP和UDP协议 ,且固定使用53端口,两者分工不同:

协议 端口 适用场景 特点
UDP 53 常规域名解析(查询/响应) 无连接、速度快,适合数据量小的场景(单个UDP数据包最大512字节)
TCP 53 1. DNS区域传输(Zone Transfer) 2. 解析响应超过512字节 面向连接、可靠传输,适合数据量大或需确保完整性的场景(如主从DNS同步记录)

五、其他类型

  1. 正向解析:核心功能,将域名映射到 IP 地址(IPv4 用 A 记录,IPv6 用 AAAA 记录)。
  2. 反向解析:将 IP 地址映射到域名(用 PTR 记录),常用于邮件反垃圾、服务器身份验证(如判断 IP 是否属于正规企业)。
  3. 负载均衡:通过多个 A 记录返回不同 IP(如www.baidu.com对应多个服务器 IP),实现流量分发,避免单点过载。
  4. 邮件路由:通过 MX 记录指定接收该域名邮件的服务器(如baidu.com的邮件由mail.baidu.com处理),确保邮件准确送达。
  5. 域名验证:通过 TXT 记录存储文本信息(如 SPF 反垃圾邮件规则、SSL 证书验证信息),保障服务合法性。

六、攻击手段

七、在终端使用

八、记录

DNS通过不同"记录类型"实现多样化功能,以下是最常用的记录:

记录类型 核心作用 示例(TTL=300秒,IN表示Internet)
A记录 域名→IPv4地址(最常用) www.baidu.com. 300 IN A 180.101.49.12
AAAA记录 域名→IPv6地址 www.baidu.com. 300 IN AAAA 2400:da00::6666
CNAME记录 别名记录,域名指向另一个域名(而非IP) blog.baidu.com. 300 IN CNAME www.baidu.com.
MX记录 邮件交换记录,指定接收该域名邮件的服务器 baidu.com. 300 IN MX 10 mail.baidu.com.(10为优先级,数字越小越优先)
NS记录 指定该域名的权威DNS服务器 baidu.com. 300 IN NS ns1.baidu.com.
TXT记录 存储文本信息(如SPF反垃圾、域名验证) baidu.com. 300 IN TXT "v=spf1 include:baidu.com ~all"
PTR记录 IP→域名(反向解析) 12.49.101.180.in-addr.arpa. 300 IN PTR www.baidu.com.
相关推荐
paopaokaka_luck4 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts
发光小北6 小时前
SG-RS232/485/422-Fiber-110 串口光纤收发器如何使用?
网络协议
M158227690558 小时前
工业跨网段通信零改造方案!SG-NAT-210/410 NAT 网关全功能解析,不改 PLC IP 实现多协议互通
网络·网络协议·tcp/ip
发光小北9 小时前
HTL/TTL 编码器光纤转换模块如何应用?
网络协议
游戏开发爱好者89 小时前
TraceEagle 代理抓包详解,无感代理、去证书绑定与 HTTP/3 解密能力解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
2401_8734794011 小时前
IPv6支持不足怎么办?用双栈兼容IP离线库实现平滑过渡
数据库·网络协议·tcp/ip·ip
sbjdhjd14 小时前
零基础 Web 安全笔记:文件包含 / 命令执行 / CSRF 漏洞攻防、PHP 函数与防御方案
android·网络协议·安全·php·漏洞·csrf·dvwa
.ZGR.1 天前
internet-v2-v3-evolution-blog
websocket·网络协议·https·udp·p2p
2501_915918411 天前
抓包鹰 抓包会话重放与压力测试,接口回归验证与性能压测的方法
网络协议·计算机网络·网络安全·ios·adb·https·压力测试
WWJA王文举1 天前
HTTP 和 HTTPS 详解:工作原理、通信流程、使用方法及核心区别
网络协议·软件开发·通信协议