一、DNS
DNS(Domain Name System,域名系统)是互联网中将域名解析为IP地址的核心服务。它相当于“互联网的电话簿”,用户使用的如 www.example.com
这样的域名,最终都会被解析为类似 93.184.216.34
的IP地址,供计算机识别和通信。
作用:
- 将易于记忆的域名转换为计算机识别的IP地址;
- 实现网络中主机之间的通信(如访问网页、发送邮件、使用FTP等);
- 提供反向解析功能(IP地址 → 域名);
- 支持负载均衡、容错等。
注:
- DNS属于应用层的协议。
二、DNS 的工作过程(域名解析流程)
当用户在浏览器中输入一个网址时,如 www.example.com
,系统会进行DNS 解析。
DNS 解析是一个分层的查询过程,涉及多个服务器类型,包括根 DNS 服务器、顶级域名(TLD)服务器和权威 DNS 服务器。以下是具体步骤:
- 检查本地缓存:系统首先检查本地设备的 DNS 缓存(如浏览器或操作系统缓存)。如果缓存中已有该域名的 IP 地址,系统直接使用该地址,跳过后续查询。
- 查询本地 DNS 服务器:如果本地缓存中没有记录,系统会向本地 DNS 服务器(通常由互联网服务提供商 ISP 提供)发送查询请求。
- 递归查询:本地 DNS 服务器执行递归查询,代表客户端完成整个解析过程。如果它没有该域名的记录,会向其他 DNS 服务器发起查询。
- 查询根 DNS 服务器:本地 DNS 服务器首先联系根 DNS 服务器。根 DNS 服务器是 DNS 层次结构的顶层,知道所有顶级域名(如
.com
、.org
)的 DNS 服务器地址。它会返回负责该顶级域的 TLD DNS 服务器地址。 - 查询顶级域名(TLD)DNS 服务器:本地 DNS 服务器根据根服务器的指引,联系 TLD DNS 服务器(如 .com 的服务器),询问该域名的权威 DNS 服务器地址。
- 查询权威 DNS 服务器:TLD DNS 服务器返回该域名的权威 DNS 服务器地址。本地 DNS 服务器再向权威 DNS 服务器查询该域名的 IP 地址。
- 获取 IP 地址:权威 DNS 服务器是该域名的最终管理服务器,会返回对应的 IP 地址。本地 DNS 服务器收到后,将其缓存以便后续使用。
- 返回 IP 地址给客户端:本地 DNS 服务器将 IP 地址返回给客户端,客户端使用该地址与目标服务器建立连接。
三、DNS 的查询方式
查询方式 | 特点 |
---|---|
递归查询 | 客户端或DNS服务器将整个查询过程“托付”给上游DNS服务器(常见) |
迭代查询 | DNS服务器返回下一步查询建议,客户端逐级向不同服务器查询(提高效率) |
- 递归查询:
[客户端] → 请求:www.example.com 的 IP 地址 → [本地DNS服务器]↓本地DNS服务器依次向其他DNS查询:→ 根DNS → 顶级域DNS(.com) → 权威DNS(example.com)↓[本地DNS服务器] ← 获取最终IP ← [权威DNS服务器]↓
[客户端] ← 返回最终 IP 地址 ← [本地DNS服务器]
- 迭代查询:
[客户端] → 询问 www.example.com IP → [本地DNS服务器]↓本地DNS服务器:查询不到 →↓
[客户端] → 根DNS:www.example.com? → 返回 .com DNS 地址↓
[客户端] → .com DNS:www.example.com? → 返回 example.com 权威DNS地址↓
[客户端] → 权威DNS:www.example.com? → 返回 IP 地址↓
[客户端] ← 最终获得 IP
四、DNS 的层级结构
DNS采用层级树状命名结构,从顶向下依次为:
注:
- 根域名为
.
,通常省略不写。
五、DNS 的关键服务器
类型 | 说明 | 作用 |
---|---|---|
根 DNS 服务器(Root DNS) | 互联网中最顶层的 DNS 服务器,维护顶级域(如 .com 、.org )的信息 | 告诉本地 DNS:某个顶级域(TLD)的服务器在哪里 |
顶级域 DNS 服务器(TLD DNS) | 管理特定顶级域(如 .com , .cn , .edu )的权威解析服务器 | 告诉你负责某个注册域(如example.com )的权威 DNS 在哪里 |
权威 DNS 服务器(Authoritative DNS) | 管理某个具体域名的最终信息,如 http://www.example.com 的 IP 地址 | 提供最终结果,告诉你这个主机名对应的 IP 地址是什么 |
本地 DNS 服务器(Local/Recursive DNS) | 由 ISP 或组织管理,负责接受用户查询,递归完成解析任务并缓存结果 | 接收客户端查询,完成从根到权威的整个查询过程,并缓存提升效率 |
六、常见DNS记录类型
类型 | 全称 | 作用说明 | 示例 |
---|---|---|---|
A | Address | 将域名映射到 IPv4 地址 | www.example.com → 192.0.2.1 |
AAAA | IPv6 Address | 将域名映射到 IPv6 地址 | www.example.com → 2001:db8::1 |
CNAME | Canonical Name | 将一个域名作为别名指向另一个规范域名 | www → www.example.com |
MX | Mail Exchange | 指定接收邮件服务器地址,并可设置优先级 | example.com → mail.example.com (10) |
NS | Name Server | 指定当前域名的权威DNS服务器 | example.com → ns1.example.com |
PTR | Pointer | 反向解析,从 IP 地址查出域名(通常用于日志分析、反垃圾邮件) | 1.2.0.192.in-addr.arpa → example.com |
TXT | Text | 存放任意文本信息,常用于验证所有权、反垃圾邮件记录(SPF/DKIM/DMARC)等 | v=spf1 include:_spf.google.com ~all |
SOA | Start of Authority | 标记 DNS 区域的起始信息,包含主 DNS 服务器、管理员邮箱、序列号等 | SOA → ns1.example.com hostmaster@... |
SRV | Service | 指定特定服务(如 SIP、XMPP)的主机和端口 | _sip._tcp.example.com → sip.example.com:5060 |
CAA | Certification Authority Authorization | 限制哪些 CA 可以为该域名签发 SSL 证书 | example.com CAA 0 issue "letsencrypt.org" |