DNS(Domain Name System 域名系统)解析是一个分层查询的过程
1.本地缓存查询阶段
先检查浏览器自身的DNS缓存
接着检查操作系统的DNS缓存
最后检查本地 hosts 文件
2.本地DNS服务器查询阶段
先向本地DNS服务器查询,协议是 DNS over UDP(简称DoU)、DHCP(获取DNS服务器地址),查询由 ISP(Internet Service Provider互联网服务提供商)或网络配置提供的本地 DNS服务器
上面的 DNS over UDP(DoU)是标准的DNS查询,传输量小(512)
DNS over TCP 传输量大
DNS over HTTPS 和 DNS over TLS 都是加密传输,但 DoH 更注重隐蔽性和防火墙穿透,而 DoT 更注重性能和简洁性
然后本地DNS服务器缓存检查
3.如果本地缓存未命中,递归查询阶段
查询根DNS服务器,协议用到了 DoU,根服务器返回顶级域名服务器地址
查询顶级域名服务器(TLD :Top Level Domain,常见有:.com、.org、.net、.info、.xyz 等),TLD服务器返回权威域名服务器地址
接着查询权威域名服务器,返回最终IP地址
4.安全考虑
基于 HTTPS / LTS 进行DNS查询
DNSSEC 协议确保数据完整性
5.响应返回阶段
主机返回结果:权威服务器-》本地DNS-〉客户端,各级根据TTL值更新记录
6.建立连接
通过解析得到的IP地址建立TCP连接
然后如果是 HTTPS 的话要进行加密 HTTPS 握手过程,通过 TLS/SSL协议
涉及的主要协议总结
- DNS over UDP - 标准DNS查询
- DNS over TCP - 大响应或区域传输
- DHCP - 获取DNS服务器配置
- DoH (HTTPS) - 加密DNS查询
- DoT (TLS) - 加密DNS传输
- DNSSEC - DNS安全验证
- TCP - 最终连接建立
- TLS/SSL - HTTPS安全连接