第11.10.2章: DNS(域名系统)
DNS 是互联网的电话簿。它把人类可读的域名(例如 example.com)翻译成计算机用来相互识别的 IP 地址(例如 93.184.216.34)。
DNS 如何工作
- 你的应用向操作系统请求解析
example.com - 操作系统查询一个 DNS 解析器(通常是你的 ISP 提供的,或者像
8.8.8.8这样的公共解析器) - 解析器检查自己的缓存;若未命中,就依次查询根服务器、顶级域服务器,然后是权威服务器
- 解析器把 IP 地址返回给你的应用
- 你的应用连接到该 IP 地址
记录类型
- A — IPv4 地址(例如
93.184.216.34) - AAAA — IPv6 地址(例如
2606:2800:220:1:248:1893:25c8:1946) - CNAME — 规范名(另一个域名的别名)
- MX — 邮件交换(指定邮件服务器)
- TXT — 文本记录(用于 SPF、DKIM 等)
- NS — 名称服务器(把查询委派给其他 DNS 服务器)
- SOA — 授权起始(关于该区域的管理信息)
- PTR — 指针(反向 DNS:从 IP 到域名)
- SRV — 服务定位(用于特定服务)
DNS over HTTPS(DoH)与 DNS over TLS(DoT)
传统的 DNS 查询以明文通过 UDP 53 端口发送,可能被拦截或篡改。现代的安全替代方案有:
- DNS over HTTPS(DoH) — DNS 查询通过 HTTPS(443 端口)发送,加密并经过认证
- DNS over TLS(DoT) — DNS 查询通过 TLS(853 端口)发送,加密并经过认证
- DNSCrypt — 另一种加密 DNS 协议
这些协议可以防止窃听、中间人攻击和 DNS 欺骗,浏览器与操作系统的支持也越来越多。