域名系统(DNS)详解:互联网的“电话簿”
在互联网中,人类习惯使用 易记的名字(如 www.baidu.com、www.google.com)来访问网站,而计算机却只能识别 IP 地址(如 220.181.38.148)。解决:DoH(DNS over HTTPS)、DoT(DNS over TLS)。迭代查询:本地 DNS 向根服务器、顶级域服务器逐级查询,直到找到权威 DNS。根域名服务器(Root DNS):管理顶级域(如 .com
一、引言
在互联网中,人类习惯使用 易记的名字(如 www.baidu.com、www.google.com)来访问网站,而计算机却只能识别 IP 地址(如 220.181.38.148)。
为了在二者之间建立桥梁,域名系统(DNS, Domain Name System) 应运而生。
DNS 就像互联网的 电话簿,负责把“名字”翻译成“号码”,保证用户能方便地访问资源。
二、DNS 的基本概念
域名(Domain Name)
一种层次化的命名方法,用来标识网络上的主机。
例:www.example.com,由 主机名 + 二级域名 + 顶级域名 组成。
DNS(Domain Name System)
一个 分布式数据库系统,存储域名与 IP 的对应关系。
采用 客户/服务器模式,使用 UDP/TCP 端口 53。
DNS 服务器的类型
根域名服务器(Root DNS):管理顶级域(如 .com、.org)。
顶级域名服务器(TLD DNS):负责特定顶级域,如 .com、.cn。
权威 DNS 服务器(Authoritative DNS):存储某一域的最终解析结果。
递归 DNS 服务器(Resolver):通常由 ISP 或企业提供,负责代用户完成查询。
三、域名层次结构
域名是树状层次结构,分为:
. (根域)
├── com
│ ├── google
│ │ └── www
│ └── microsoft
│ └── www
├── org
│ └── wikipedia
│ └── www
└── cn
├── baidu
│ └── www
└── tencent
└── www
例子:
www.baidu.com. → 末尾的 . 表示根域(通常省略)。
域名自右向左读取:顶级域(TLD)→ 二级域(SLD)→ 主机名。
四、DNS 的工作原理
1. 查询方式
递归查询:客户端向本地 DNS 请求解析,本地 DNS 全程负责找到最终结果返回。
迭代查询:本地 DNS 向根服务器、顶级域服务器逐级查询,直到找到权威 DNS。
2. 解析过程示例
用户访问 www.baidu.com 的过程:
浏览器检查本地缓存(浏览器缓存、操作系统缓存)。
若无结果,向本地 DNS 服务器发起查询请求。
本地 DNS 向根 DNS 查询:请问 .com 在哪?
根 DNS 返回 .com 顶级域名服务器地址。
本地 DNS 再问 .com 服务器:请问 baidu.com 在哪?
.com 服务器返回 baidu.com 权威 DNS 的地址。
本地 DNS 询问权威 DNS:请问 www.baidu.com 的 IP 是多少?
权威 DNS 返回 IP 地址,如 220.181.38.148。
本地 DNS 把结果缓存,并返回给用户。
浏览器使用该 IP 建立 TCP/UDP 连接。
五、DNS 报文格式
DNS 使用 UDP(53端口),但当响应内容超过 512 字节时会切换到 TCP。
报文结构(报头 12 字节 + 数据区):
报头(Header)
ID:查询标识符
Flags:查询/响应标志、递归标志、应答码等
QDCOUNT:问题数
ANCOUNT:回答数
NSCOUNT:授权记录数
ARCOUNT:附加记录数
问题(Question)
查询的域名、类型(A、MX、CNAME)、类(IN)
回答(Answer)
包含域名对应的资源记录(RR)。
授权(Authority)
给出权威服务器的信息。
附加信息(Additional)
提供额外的辅助信息,例如服务器的 IP。
六、DNS 记录类型
常见的 DNS 资源记录(RR):
| 类型 | 含义 | 示例 |
| A | 域名 → IPv4 地址 | www.baidu.com → 220.181.38.148 |
| AAAA | 域名 → IPv6 地址 | www.google.com → 2404:6800:4008::2004 |
| CNAME | 域名别名 | mail.google.com → googlemail.l.google.com |
| MX | 邮件交换记录 | @example.com → mail.example.com |
| NS | 权威 DNS 服务器 | baidu.com → ns1.baidu.com |
| PTR | 反向解析(IP → 域名) | 148.38.181.220.in-addr.arpa → www.baidu.com |
| TXT | 存储任意文本(如 SPF 邮件验证) | v=spf1 include:_spf.google.com ~all |
| SRV | 指定服务位置 | _sip._tcp.example.com → VoIP 服务 |
七、DNS 缓存机制
为了提高效率,DNS 引入了缓存机制:
浏览器缓存(Chrome、Firefox 等会保存 DNS 结果)。
操作系统缓存(Windows、Linux 会维护 DNS 缓存)。
本地 DNS 服务器缓存(ISP 提供的递归解析器)。
缓存时间由 TTL(Time To Live) 控制,通常为几分钟到数小时。
八、DNS 的安全问题
DNS 缓存投毒(Cache Poisoning)
攻击者伪造 DNS 响应,把域名解析到恶意 IP。
解决:DNSSEC、随机端口。
DNS 劫持(DNS Hijacking)
篡改用户 DNS 请求,跳转到攻击者网站。
常见于公共 Wi-Fi、黑客攻击或某些运营商行为。
DDoS 放大攻击
利用 DNS 的 UDP 无连接特性,通过伪造源地址发动流量攻击。
隐私泄露
DNS 请求暴露用户访问的所有网站。
解决:DoH(DNS over HTTPS)、DoT(DNS over TLS)。
九、DNS 的优化与发展
CDN 与智能解析
根据用户所在地区,返回就近服务器 IP,提高访问速度。
负载均衡
为同一域名配置多个 A 记录,DNS 轮询调度流量。
DNSSEC
通过数字签名保证 DNS 响应的真实性,防止缓存投毒。
DoH / DoT
将 DNS 查询加密,避免中间人攻击和隐私泄露。
EDNS(扩展 DNS)
支持更大数据传输,突破 UDP 512 字节限制。
十、总结
DNS 是互联网的 基础设施,像“电话簿”一样,把域名解析为 IP。
它采用 层次化、分布式设计,包含根服务器、顶级域服务器、权威服务器和递归解析器。
常见记录类型有 A、AAAA、CNAME、MX、NS、PTR、TXT。
安全问题包括 缓存投毒、劫持、DDoS,解决方案有 DNSSEC、DoH、DoT。
未来的 DNS 将更加注重 安全性、隐私保护与性能优化。
DNS 之所以重要,是因为它是互联网的“门牌号查询系统”,一旦出问题,几乎所有网络服务都会受影响。
更多推荐


所有评论(0)