加载中...
DNS 是互联网的电话簿,把人类可读的域名翻译成 IP 地址。它是一个分布式、分层的数据库,每天处理数万亿次查询,运行在全球数百万台服务器上,是互联网几乎所有服务的前置依赖。

| 标准 | RFC 1034、RFC 1035(1987 年) |
| 默认端口 | UDP/TCP 53 |
| 安全扩展 | DNSSEC、DoH(RFC 8484) |
在浏览器地址栏输入 example.com 后,DNS 解析经历几个层级:浏览器缓存 → 系统缓存(/etc/hosts)→ 本地 DNS 递归解析器(通常是路由器或 ISP 提供的)→ 根服务器(全球 13 组,实际有数百台)→ .com 顶级域服务器 → example.com 的权威服务器。整个过程通常在 20-100ms 内完成,有缓存时只需 1ms 不到。
TTL(存活时间)控制缓存多久失效。迁移网站前应提前把 TTL 降低到 60 秒,迁移完成再调高;若 TTL 是 86400(一天),切换 IP 后用户可能要等 24 小时才生效——这是很多运维事故的根源。[1]
传统 DNS 查询走 UDP 53 端口,明文传输,ISP 和中间人能看到用户访问哪些域名。DNS over HTTPS(DoH,RFC 8484,2018 年)将查询包在 HTTPS 里,从根本上解决了监听问题。Firefox 2020 年在美国地区默认启用 DoH(指向 Cloudflare 的 1.1.1.1),引发了是否过度集中化的争议。
DNSSEC 通过对 DNS 记录做数字签名,防止 DNS 缓存投毒攻击(攻击者伪造 DNS 响应,把域名指向恶意 IP)。2010 年,DNSSEC 签名被添加到根区。但 DNSSEC 不加密查询内容,只保证完整性,与 DoH 互补。

| 标准 | RFC 1034、RFC 1035(1987 年) |
| 默认端口 | UDP/TCP 53 |
| 安全扩展 | DNSSEC、DoH(RFC 8484) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧