← 中文资源

简体中文版本

DNS

DNS 把名称解析为地址和服务端点,其缓存、TTL 与记录类型决定故障转移速度和用户如何到达系统。

阅读英文原文

工作原理

解析沿层级进行:浏览器和操作系统缓存、递归解析器、根服务器、顶级域服务器,最后是区域的权威服务器。每个答案按 TTL 缓存,否定答案也会缓存。记录类型包括 A/AAAA 地址、CNAME 别名、MX 邮件、NS 委派、TXT 验证与策略、CAA 证书颁发机构。

dig +short api.example.com A
dig +noall +answer example.com MX
dig +trace www.example.com

使用场景与取舍

每个请求都涉及 DNS,因此应有意用它做故障转移、CDN 路由、邮件和服务发现。故障转移前先降低 TTL,使用带健康检查的记录或全局流量管理器,并保留第二家 DNS 供应商。与毫秒级反应的负载均衡器相比,DNS 故障转移粒度粗,且受解析器缓存限制。

低 TTL 加快切换,却增加查询量和成本,部分解析器还不严格遵守 TTL;高 TTL 降低负载,却延迟变更生效。DNS 故障转移看不到单个用户的健康状态,客户端还可能在整个进程生命周期缓存地址。DNSSEC 增加完整性,也带来密钥轮换的运维风险。

具体示例

区域故障时,团队把带健康检查的记录切到备用区域。由于 TTL 为 60 秒,多数用户在几分钟内迁移,但某移动运营商解析器保留了旧地址十分钟,因此 DNS 切换要配合客户端重试和连接超时。