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安全連接