Unbound 1.12.0 新增 DNS-over-HTTPS(DoH)下游服务能力,解决仅支持 DoH 的客户端无法接入加密解析的问题。实现复用现有 TCP 事件循环与 TLS 栈,配合 HTTP/2 多路复用达到与 DoT 相当的性能,推动家庭、企业及 ISP 网络部署加密 DNS。
**DoH 与 DoT 的关键差异**
DoT 直接在 TLS 之上传输 DNS 报文,占用专用 TCP 853 端口;DoH 在 TLS 之上再封装 HTTP/2,复用标准 HTTPS 443 端口。这种设计使 DoH 流量难以被单独拦截——封锁 443 端口将同时阻断 Web 服务。Unbound 自 2011 年即支持 DoT,早于 IETF DPRIVE 工作组标准化;但部分客户端(如浏览器)仅实现 DoH,因此下游 DoH 支持成为补齐加密覆盖率的必要步骤。
**Unbound DoH 实现机制**
DoH 实现强制要求 TLS 与 HTTP/2,利用 HTTP/2 流的查询流水线与乱序处理特性保证性能。协议协商通过 ALPN TLS 扩展完成,依赖 OpenSSL 1.0.2 及以上版本。HTTP/2 帧层采用 nghttp2 库,该库不处理 I/O,可直接嵌入 Unbound 现有事件循环与 TCP 处理逻辑,避免引入额外线程模型。
**复用 TCP 配置与部署优势**
在现有 TCP 代码之上叠加 HTTP/2,使 DoH 连接自动继承 Unbound 现有的 TCP 配置参数:允许的入站 TCP 连接数、TCP 超时设置、按客户端 IP 或网段限制的连接数上限。运维无需新增防火墙规则即可启用加密服务,现有连接限额策略同步生效,降低部署与维护成本。
对网络工程师而言,升级至 1.12.0 即可在不调整边界防火墙策略的前提下提供加密解析服务,现有 TCP 连接限额与超时参数直接复用,显著降低加密 DNS 在家庭网关、企业递归节点及公共解析器上的上线门槛。
原文: APNIC Blog(2020-12-14)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog