DNS 解析过程分析
一、主要参与者
用户(Client):发起访问请求(如浏览器)。
ISP的DNS服务器:为用户提供DNS解析服务。
根DNS服务器:提供顶级域名服务器的地址。
顶级域名(TLD)服务器:管理com、net、cn等顶级域名,给出权威服务器地址。
权威DNS服务器:管理具体域名(如example.com)的记录。
网站服务器(Web Server):真实托管网站内容,配置有SSL证书。
CA机构(Certificate Authority):签发SSL证书的机构。
二、详细流程
假设用户Alice(在中国)用浏览器访问 https://www.example.com
。
1. 用户发起访问请求
用户在浏览器地址栏输入:https://www.example.com
浏览器识别这是一个HTTPS(SSL加密)请求。
2. DNS解析流程
A. 本地缓存检查
浏览器先查本地DNS缓存,看曾否解析过www.example.com。
没有缓存,继续下一步。
B. 递归DNS解析
流程:
浏览器将请求交给操作系统,操作系统向配置的DNS服务器(一般是ISP提供的)发起查询。
ISP的DNS服务器:
先查自己缓存,没有则递归去问:
根DNS服务器:
返回“com”顶级域名服务器的地址。
TLD服务器(.com):
返回example.com的权威DNS服务器地址。
权威DNS服务器(example.com):
ISPDNS把这个IP地址返回给用户的操作系统→浏览器。
结果示例:www.example.com → 203.0.113.10
C. 缓存加速
各层(客户端系统、路由、ISP、节点DNS)通常缓存DNS结果,下一次访问会更快。
3. 建立TCP连接(及SSL握手)
浏览器拿到IP后,向
203.0.113.10
的 443 端口发起TCP连接(三次握手)。SSL/TLS握手流程(简化版):
浏览器向网站服务器发起“Client Hello”报文,说明支持哪些加密算法。
网站服务器返回“Server Hello”报文,附上自己的公钥证书(由CA机构签发)。
浏览器校验SSL证书是否合法(检查证书颁发机构是否可信、证书是否过期、证书是否与具体域名匹配)。
校验通过后,双方协商对称加密秘钥,并建立加密通道。
4. 浏览器发送HTTPS请求
客户端通过SSL加密通道发送HTTP请求内容。
5. 网站服务器响应
网站服务器返回响应内容(也是通过SSL加密的)。
6. 浏览器展示网页
三、全流程关系图(简化字符画)
[用户]
↓ 1. 发起https://www.example.com
[浏览器]
↓ 2. 查询本地DNS缓存
↓ 3. 请求ISP DNS
[ISP DNS] —→ [根DNS] —→ [TLD DNS] —→ [权威DNS]
←——DNS逐层解析返回——→
↓ 4. 得到IP地址(203.0.113.10)
[浏览器]
↓ 5. TCP连接 + SSL握手
[网站Server](已部署SSL证书)
↓ 6. 验证SSL证书(由CA签发)
↓ 7. 建立安全通道
↓ 8. 请求/响应加密传输
[用户]
注: CA机构是SSL证书可信链的重要一环,但平时它只在用户验证证书时参与间接过程。
四、参与者关系
用户 想要访问的网站域名,需要先通过 DNS 解析拿到服务器 IP。
DNS 系统 提供域名到 IP 的映射,过程分多级,依次递归协作。
CA 机构 给网站签发SSL证书,证书中含有网站身份信息和公钥。
网站服务器 需要部署SSL证书,用于向用户证明自己身份和加密通信。
五、具体举例讲解
假定:
用户Alice访问
https://www.taobao.com
Taobao的IP为
140.205.220.96
(实际IP不断变化,这里假设)证书由DigiCert签发
流程如下:
Alice在浏览器输入网址:https://www.taobao.com
浏览器先查本地缓存,没有,则发起DNS解析:
向ISP DNS请求
ISP DNS无缓存,递归去根服务器
根服务器返.com TLD服务器地址
.com服务器返taobao.com权威DNS地址
权威DNS返回IP:140.205.220.96
ISP DNS & 用户本地均缓存一份解析结果
浏览器对140.205.220.96:443发起HTTPS连接
Taobao服务器返回自己用DigiCert签发的SSL证书
浏览器内置受信任CA列表,发现DigiCert可信,证书域名匹配,未过期(全部校验OK)
双方协商对称密钥,搜狐密钥加密通信信道正式建立
Alice的浏览器通过加密信道请求网页内容,服务器返回响应
Alice看到淘宝首页,地址栏出现了“锁”标识
六、总结要点
DNS解析解决“域名→IP”的定位问题,是基础一步。
SSL证书保障了“IP所属站点的真实性和通信数据的加密”。
DNS系统和SSL证书链是两大信任体系,协同为用户的上网安全和可靠性护航。
参与者各司其职:用户发起访问,DNS负责定位,CA负责身份认证,网站部署内容并担保安全。