新版 DNS 更新说明

旧版的 DNS 系统已经运行超过五年以上,用户对更新的呼声越来越大,于是今年先对 DNS 进行重构。

旧版 DNS 在服务器之间节点同步还是采用主控推送 http 方式实现,做了队列处理,虽然延迟不高,但是偶尔会有一些意外情况,如 http 推送失败触发警报需要人工介入,或者是用户记录值刚好有奇怪的内容导致 reset。为避免这些问题,新版采用 TLS 加密保护长连接,主控端会在记录更新时推送被控端,主控带有当前版本编号,被控端在遇到意外断开重连接时会先匹配版本号并执行差异续传同步。经测试新版记录同步全网平均值小于 1 秒。

新版前端在 CAA SRV 等比较复杂的记录时展示出每个字段的记录说明,以便于不熟悉记录的用户使用。如下图:

近期国内各友商 DNS 服务陆续提供 DNSSEC 支持。测试发现我们的架构在开启 DNSSEC 后带来的性能下降大约是十分之一,考虑到节点资源情况,我们在新版也提供了免费的 DNSSEC 支持。如下图:

不同的域名注册商可能有不同的 DNSSEC 设置方法。有些注册商可以直接添加 DS 记录,有些注册商则是需要提交公钥给他们系统从公钥算出摘要生成 DS 记录值。因此我们提供了 DS 记录和公钥信息供用户选用。

在开发 DNSSEC 时我们遇到一个比较麻烦的问题就是对于空记录处理,可以采用 NSEC 类型返回空记录的签名结果,但是这会导致整个 Zone 的记录值被遍历出来。因此又有了 NSEC3 类型对主机记录做摘要处理,但是这依然可能被碰撞从而遍历记录。最终我们选择了 NSEC3 善意的谎言(White Lies)方案。在对记录进行 sha1 摘要运算后,主机记录值将会是当前摘要值 +1,这样在查询时无需寻找下一条记录,也可以避免 Zone 被遍历。

新版 DNS 在细节上还做了非常多的处理,碍于篇幅限制将不会全部列出。欢迎到新版 DNS 管理界面体验。

《新版 DNS 更新说明》上有3条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据