关于企业内部自建 DNS,来和大佬了们取取经

73 天前
 Tsunayoshi

最近在做企业内自建 DNS 的升级,我们要自己搭建一套 DNS 服务,借这个题和大家一起讨论讨论目前企业内的 DNS 大家都是怎么玩的。

目前看主流的其实有多种方案,比如 bind ,powerdns ,coredns ,当然也有用 dnsmasq 的。不过目前随着我们的发展,dnsmasq 基本已经不适用于我们了,性能太低。最终我们选择了 bind 进行的构建。

然后现在我们有大概 20 多个分公司吧,然后每个公司都需要做差异化的管理,配置不太一样,当然目前管理方式比较 lowb ,就是手动人工管理。管理成本比较高吧。然后现在想做一个简单的管理工具,想实现集中化的管理,不一定非得要做成平台,但是肯定是以那种工具化的方式纳管,我想用 mysql ,把所有的解析记录保存起来。之前了解过 bind-dlz ,但是我们需要差异化管理,又不能每个分公司都搞一套 mysql ,感觉这样维护压力更大了。

所以我想的是自己搞一套中心管控节点,然后设计一个表,能保存所有的解析记录,然后每次查询动态生成配置推送到对应分公司的主节点,实现变更,当然我不知道有没有这么干的哈。。。所以问问大佬们,你们一般都怎么维护。感觉互联网上这一类的资料比较少,要不就是直接用 WindowsDNS 的。

4964 次点击
所在节点    DNS
64 条回复
xusp
73 天前
国内有一些做 saas 化的云,可以考虑一下。
xusp
73 天前
@xusp saas 化的 dns 产品。
retanoj
73 天前
差异化解析这个可以了解下 DNS RPZ
支持按多种触发条件进行不同的解析策略
Tsunayoshi
73 天前
@testcaoy7 幺蛾子我们已经遇到了很多,比如说之前没有自建递归 DNS 的时候,我们基本就是个转发器,转发到 114dns ,dnspod ,aliyun 的 dns 。114dns 三天两头给你返回点垃圾地址。dnspod 虽然相对比较稳,但是我们也遇到了缓存污染的问题了。所以坑其实踩了不少
Tsunayoshi
73 天前
@retanoj 谢谢大佬,目前我们已经在用 rpz 了,做劫持处理。但是劫持处理每个职场的行为也不太一样,这块可能还有部分 rpz 的功能我没有调研到,我再看看
Tsunayoshi
73 天前
@hefish 哈哈,这当然是不会的。如果真这样那岂不是太美好了。公司的策略就是能省尽可能省
Tsunayoshi
73 天前
@lcy630409 adguradhome 没有用过,我看了一下它本身是一个 dns 服务,目前其实我们的 bind 服务已经投入生产环境使用了,所以不太可能直接再更换 dns 服务的选型了
defunct9
73 天前
dnsmasq 解千愁
Tsunayoshi
73 天前
@defunct9 我们之前用的就是 dnsmasq 。。但是性能不足,我们就给换了。
Mrealy
73 天前
我公司用的是 dnsmasq+dnsforward 组合的,每个分公司也是同样方案定时去同步总部的内网记录。
lxyv
73 天前
我工作过的 4 家公司从几十人的小公司到上万人的全球公司,无一例外全部用的是基于 windows server 的 ad 和 dns
Tumblr
73 天前
做 DNS 我觉得起码要考虑两方面的问题,一个是整体的架构设计,一是技术实现,其中技术实现是没有太大难度的。
你们每个分公司是用统一的 IP ( anycast ),还是都有自己的 IP ?是考虑权威服务器之间的同步,还是在权威服务器上管理,各分公司用递归服务器?等乖

另外,还可以考虑另一条路: 这么多分公司的统一管理是否有域呢?可以把 DNS 服务器和 AD 域集成到一起,我觉得这应该是实现起来最简单的方案。
weite
73 天前
商用阿里云了解一下
yumusb
73 天前
Tsunayoshi
73 天前
@Tumblr 目前暂未引入 anycast ,基本上 20 多个分公司每个公司都有不同的网段,不同的 IP 。基本就是每一个分公司一套把。只不过总公司的话是最大的规模,人数也在不到 2w 人也是最多的。关于加域的问题,分公司是有域控管理的,然后总公司是没有的。所以总公司这边用的 bind ,为了统一,分公司也并未采用 windows DNS 的方式。
Tsunayoshi
73 天前
@yumusb 好的,我看一下,大佬
defunct9
73 天前
dnsmasq 性能不足,还是头一次听说。
retanoj
73 天前
@Tsunayoshi #25
你这个需求里有一点是“差异化管理”,细挖一下就是根据不同来源执行不同的解析策略返回不同的结果。
这个的话,DNS RPZ 好像也的确不能实现。
maniaccn
73 天前
公司内部三个分公司,一样有不同区域解析的需求,我们是使用 docker+coredns ,最开始用的 dnsmasq 单线程真的扛不住。
说一下管理方案,写了一个脚本,读取数据库表,然后根据表生成对应公司的 dns 服务器配置文件,然后用 gitlab 的 ci 来实现自动化部署,修改数据库后,直接触发 CI ,然后进行自动部署。自动登录到 DNS 服务器,替换掉当前旧的配置文件,直接写入新的配置文件,然后 reload 配置文件。
目前配置规模,每个分公司+总部两台 DNS 服务器,每个 DNS 服务器使用 NUC 部署的,目前稳定运行三年。无任何故障。
Tsunayoshi
73 天前
@defunct9 是的,因为内部解析和转发到外部的域名解析大概二八开吧,我们这边峰值的一个 qps 达到过 2k 差点 3000 吧,除了用户的使用场景,还有办公网机房的使用场景。转发量大的时候,用户其实体感是非常明显的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1024613

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX