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.
相关推荐
想睡hhh2 小时前
网络原理——传输层协议UDP
网络·网络协议·udp
lsnm3 小时前
【LINUX网络】IP——网络层
linux·服务器·网络·c++·网络协议·tcp/ip
楠枬4 小时前
ARP 协议
网络·网络协议·arp
roshy5 小时前
SSE与Websocket、Http的关系
websocket·网络协议·http
2301_803554526 小时前
实习项目包装--HTTP 协议和 Web API
前端·网络协议·http
徐子元竟然被占了!!6 小时前
RIP协议
网络·网络协议
海拥✘15 小时前
深入理解 IP 地址:概念、分类与日常应用
网络·网络协议·tcp/ip
Miracle&16 小时前
1.TCP/IP模型:各层协议(重点TCP/UDP)
网络协议·tcp/ip·udp
liulilittle17 小时前
IP校验和算法:从网络协议到SIMD深度优化
网络·c++·网络协议·tcp/ip·算法·ip·通信