关于DNS服务器配置软件选择的问题, 核心的决定因素在于你所面临的具体业务规模, 还有目前使用的技术栈是什么, 以及你们团队的运维能力到底怎么样。

在当前情况下, 比较主流的方案一共有五种, 这五种方案包括了BIND 9、PowerDNS、dnsmasq、NSD以及云厂商的DNS管理平台。针对具体的使用场景, 接下来会分别给大家提供相关的选型依据, 并且会把具体的配置要点也一一列出来。

一、主流DNS服务器配置软件对比

软件 适用场景 核心特点
BIND 9 中大型企业、互联网基础设施 功能最全,支持Kerberos安全、RPZ、分片区域
PowerDNS 中型企业、多数据库管理 支持MySQL/PostgreSQL后端,模块化Web管理
dnsmasq 小型网络、嵌入式、测试环境 轻量级,DHCP联动,单文件配置即可运行
NSD 高并发权威解析 纯权威服务器,无递归,延迟极低
云DNS平台 云原生架构 免运维dns服务器配置软件dns服务器配置软件,API驱动大城新闻网,支持智能解析与多线路

二、根据具体的场景来给出关于如何选择搭配的相关建议。

如果是小型的团队或者是临时的测试工作, 你可以选择dnsmasq这种方式来操作, 整个部署的过程可以在5分钟的短时间之内完成, 并且完全不需要数据库作为依赖条件。

中型企业在管理多个域名的时候, 可以采用PowerDNS, 并且搭配使用PowerAdmin面板, 这种办法支持数据库有多个后端, 所以扩展性非常强。

大型互联网基础设施方面, BIND 9目前依然是行业标准级别的存在, 不过这一情况对应的要求是, 必须配备专业的专职人员在DNS运维岗位上进行工作。

解析的量非常大, 而且只提供权威查询这样的服务, 在这种情况之下NSD的性能会表现到极致, 所以建议大家把这东西和那个递归服务器拆开进行部署。

目前已采用云计算架构: 直接使用云厂商提供的DNS控制台或通过API来完成区域配置, 无需自建。

三、BIND 9基础部署配置步骤

1. 进行安装操作, 利用系统自带的包管理器把bind9还有bind9-utils这两个软件都装好, 并且要确保它们的程序版本号达到或者超过918这个水平。

DNS服务器配置软件怎么选?主流工具功能对比与部署方法(图1)

2. 进行主配置的编辑工作需要对/etc/named.conf这个文件进行操作, 在这个操作中需要声明出监听地址是什么, 还要列出ACL白名单里包含的内容, 同时要说明区域文件存放的具体路径在哪里。

3. 区域文件的创建, 需要去指定/var/named/example.com.zone这个路径来进行操作, 然后里面要写入SOA记录, 还有NS记录, 以及A记录, 也包括CNAME记录, 等等这些, serial号采用的是YYYYMMDDNN这种格式来设定。

4. 启动验证:systemctl restart named,用dig @127.0.0.1 example.com A确认解析返回正确IP。

5. 在防火墙方面需要放行的内容包括UDP、以及TCP 2者中的53端口, 并且在生产环境中,建议大家去限制来源IP白名单。

6. 记录一下, 把配置Logging这个模块的输出指向了/var/log/named.log这个文件路径, 这样方便后续在进行故障排除的时候去查看相关的情况。

四、高频疑难与排查

现在解析功能不起作用, 这种情况应该先去查一下序列号是不是在不停地变大, 还要看五十三号端口有没有被防火墙给堵住了, 另外还得看看上游递归DNS的缓存生存时间是不是还没有过期。

当区域传输也就是AXFR失败的时候, 你要去检查一下在设置allow-transfer的时候是否包含了那个要用的目标IP地址, 还有就是在进行TS密钥验证的时候, 两边所使用的密钥必须是保持完全一样的。

针对高并发所引发的超时问题, 你可以考虑去关闭BIND里面的dnssec-validation这个设置, 或者也可以选择改用NSD来承担权威解析的工作, 以此来降低单个节点的负载情况。

五、这里提供补充性的说明。

如果你有需要对多区域的配置进行批量管理的情况, 或者是想获取免费的DNS工具资源的话, 那么你可以去访问gname.xin网站来查阅相关的文档以及下载链接。