文章

DNS 解析过程分析

一、主要参与者

  1. 用户(Client):发起访问请求(如浏览器)。

  2. ISP的DNS服务器:为用户提供DNS解析服务。

  3. 根DNS服务器:提供顶级域名服务器的地址。

  4. 顶级域名(TLD)服务器:管理com、net、cn等顶级域名,给出权威服务器地址。

  5. 权威DNS服务器:管理具体域名(如example.com)的记录。

  6. 网站服务器(Web Server):真实托管网站内容,配置有SSL证书。

  7. 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解析

流程:

  1. 浏览器将请求交给操作系统,操作系统向配置的DNS服务器(一般是ISP提供的)发起查询。

  2. ISP的DNS服务器

  • 先查自己缓存,没有则递归去问:

  1. 根DNS服务器

  • 返回“com”顶级域名服务器的地址。

  1. TLD服务器(.com):

  • 返回example.com的权威DNS服务器地址。

  1. 权威DNS服务器(example.com):

  1. ISPDNS把这个IP地址返回给用户的操作系统→浏览器。

结果示例:
www.example.com → 203.0.113.10

C. 缓存加速

  • 各层(客户端系统、路由、ISP、节点DNS)通常缓存DNS结果,下一次访问会更快。

3. 建立TCP连接(及SSL握手)

  1. 浏览器拿到IP后,向 203.0.113.10 的 443 端口发起TCP连接(三次握手)。

  2. SSL/TLS握手流程(简化版):

  1. 浏览器向网站服务器发起“Client Hello”报文,说明支持哪些加密算法。

  2. 网站服务器返回“Server Hello”报文,附上自己的公钥证书(由CA机构签发)。

  3. 浏览器校验SSL证书是否合法(检查证书颁发机构是否可信、证书是否过期、证书是否与具体域名匹配)。

  4. 校验通过后,双方协商对称加密秘钥,并建立加密通道。

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签发

流程如下:

  1. Alice在浏览器输入网址:https://www.taobao.com

  2. 浏览器先查本地缓存,没有,则发起DNS解析:

  • 向ISP DNS请求

  • ISP DNS无缓存,递归去根服务器

  • 根服务器返.com TLD服务器地址

  • .com服务器返taobao.com权威DNS地址

  • 权威DNS返回IP:140.205.220.96

  • ISP DNS & 用户本地均缓存一份解析结果

  1. 浏览器对140.205.220.96:443发起HTTPS连接

  2. Taobao服务器返回自己用DigiCert签发的SSL证书

  3. 浏览器内置受信任CA列表,发现DigiCert可信,证书域名匹配,未过期(全部校验OK)

  4. 双方协商对称密钥,搜狐密钥加密通信信道正式建立

  5. Alice的浏览器通过加密信道请求网页内容,服务器返回响应

  6. Alice看到淘宝首页,地址栏出现了“锁”标识


六、总结要点

  • DNS解析解决“域名→IP”的定位问题,是基础一步。

  • SSL证书保障了“IP所属站点的真实性和通信数据的加密”。

  • DNS系统和SSL证书链是两大信任体系,协同为用户的上网安全和可靠性护航。

  • 参与者各司其职:用户发起访问,DNS负责定位,CA负责身份认证,网站部署内容并担保安全。

许可协议:  CC BY 4.0