可逆 —— 放心试
- 系统或网关的解析器地址(改回去即可)
- 上游选择与权重(配置层面,随时可调)
- 监控阈值与告警规则
- 灰度范围(加一批、撤一批都容易)
这类改动适合用「先做再评估」的方式推进,不必反复评审。
DEPLOYMENT
先说结论:部署方式由组织规模决定,而不是由协议决定。同一套协议,在个人设备和上千台终端的组织里,做法几乎没有共同点。本页讲「选哪种方案」;具体怎么推上去、怎么退回来,见部署运行手册。
关键不是「哪个方案更好」,而是「你的规模下哪个方案可行」。下表按规模列出可行方案与主要风险。
| 规模 | 可行方案 | 主要风险 | 不要做的事 |
|---|---|---|---|
| 个人 / 家庭 1–10 台设备 |
系统层或浏览器层直接指向公共加密解析器。无需自建。 | 几乎只有「配了但没生效」这一类,用抓包即可发现。 | 不要在浏览器、系统、路由器三层同时配 —— 会得到三条互不相干的解析路径,排障时无法归因。 |
| 中小企业 10–500 台终端 |
网关或统一递归解析器为主,终端层保持默认。DoT 或受控 DoH 网关。 | 内网域名解析失败(加密解析器不认识内部域名);终端策略与 MDM 冲突。 | 不要靠「每台机器手工配置」。手工配过的机器迟早与文档不一致,而这类不一致极难排查。 |
| 大型 / 多地域 500 台以上 |
多上游 + 区域分流 + 分级缓存;需要专门的监控与回滚能力。 | 单点依赖(某区域实际只走一个上游)、监管与日志合规、内部权威域与加密解析器的边界。 | 不要在缺少协议层监控的情况下铺开。没有监控时,故障只能表现为「用户说慢」,而无法定位。 |
部署方案里有些改动随时能撤,有些撤不掉。把注意力放在后者上,前者出错了代价很低。
这类改动适合用「先做再评估」的方式推进,不必反复评审。
这类改动一旦铺开,回退成本远高于当初实施的成本。
「加密 DNS 会不会拖慢上网」是被问最多的问题。分开看:带宽几乎不是问题,握手与隔离才是。
DNS 查询平均不到 100 字节。即使加上 TLS 记录头与填充,加密带来的额外带宽也在千字节量级, 与网页内容相比可以忽略。
唯一要注意的:若对 DNS 启用了大比例填充(padding),单次查询体积会显著变大。 这在移动网络上有意义,在固定网络上通常不值得。
因此「变慢了」的排查顺序应该是:先看解析器选址,再看缓存命中率,最后才怀疑加密本身的开销。 反过来查,往往会在协议上白费很多时间。
加密 DNS 会把「本地递归」换成「远程解析器」,于是引入了一个新的外部依赖。这一节讲怎么发现它。
| 检查项 | 怎么确认 |
|---|---|
| 备用上游在每个区域都可达 | 在每个区域的实际出口上,对备用上游单独 dig,而不是从中心机房测 |
| 上游不是同一家的两个 IP | 查两个 IP 的归属。同一运营商的「两个上游」在一次故障里会一起挂 |
| 回落时不会掉到明文 | 主动让主上游不可达,抓包看是否出现 53 端口 |
| 内部权威域有明确出口 | 确认内网域名走条件转发,而不是全部交给外部解析器 |
这四项不满足就不要开始灰度 —— 它们都属于「事后补代价很高」的类型。
| 条件 | 为什么是硬条件 | 怎么确认 |
|---|---|---|
| 回滚通道已建好并演练过 | 没有演练过的回滚方案,真用时才会发现步骤不可行。演练产出「切回需多久」这个数字,它决定告警阈值该设多严 | 实际执行一次切回,记录耗时 |
| 基线数据已采集 | 没有基线就无法判断「变差了没」。加密 DNS 的问题常表现为轻微劣化,不是明显故障 | 至少 7 天连续样本,含 P95 与分类失败率 |
| 协议层监控已就绪 | 只有应用层监控时,DNS 故障会表现为「应用变慢」,定位方向会完全错 | 能看到「走了哪个协议、问的哪个上游、结果如何」 |
| 内部域名出口已定义 | 全量交给外部解析器会导致内网域名解析失败,且现象像是「加密 DNS 有问题」 | 对内部域名单独验证,确认走条件转发 |
把前面几节的结论落到具体场景里,看它们各自放弃了什么、换到了什么。
做法:路由器或系统层指向公共加密解析器,只用一层。上游选两个不同运营商的,并在实际网络上各测一次可达性。
换到了:链路防窃听与防篡改,配置成本接近零。
放弃了:几乎没有 —— 家庭场景本来就没什么可审计的。顺带提一句:主要隐私风险不在这条链路上,而在「解析器是谁」(见链路上有谁在看)。
做法:自建递归解析器为主,终端通过 DoT 指向它;内部域名走条件转发;保留一条不依赖加密的可控退路(而不是退回明文)。
换到了:既加密了终端到解析器的链路,又保留了逐域名审计与策略能力 —— 这两个目标本来被认为是对立的,DoT 让它们同时成立。
放弃了:配置简单性。需要有人维护解析器、证书、监控与回滚能力,这不是一次性的部署成本,而是长期运维成本。
方案定了、检查项也过了,接下来是可以照着执行的上线流程。