DNS解析过程以及使用的协议名称
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安全连接