核心结论: 如果在国内的中小型站点部署DNS服务, 用户的首选方案是在Linux环境下使用BIND 9, 或者选择支持跨平台环境的PowerDNS。当所处的环境是Windows系统时, 应当优先考虑使用Windows Server自带的DNS管理器来解决相关问题。

如果应用的是轻量级的场景, 那么可以使用dnsmasq这一工具进行辅助部署。选择的依据要看操作系统, 还要看并发的级别, 同时也得看是不是需要动态DNS的功能, 以及是否需要DNSSEC签名的能力。

01.主流DNS服务器配置软件对比

软件 适用系统 并发量级 核心优势 适用场景
BIND 9 Linux 10万+ QPS 功能最全,支持DNSSEC、BGP Anycast 企业级、运营商级
PowerDNS Linux/macOS 5万+ QPS 模块化架构,支持PostgreSQL/MySQL后端 中型企业、云服务商
Windows DNS Windows Server 1万+ QPS GUI操作,与AD域深度集成 内网AD环境
dnsmasq Linux 1千+ QPS 资源占用极低,兼作DHCP 边缘网关、IoT设备
Unbound Linux 5万+ QPS 纯递归解析器,安全沙箱机制 递归DNS、公共解析

02.选型决策路径

1. 针对内网域控环境这种情况, 具体来说就是指使用的是Windows Active Directory系统的时候, 用户可以不用去另外费劲地部署别的软件, 而是直接拿着Windows Server自带的DNS管理器来进行操作就完全够了, 至于具体的该怎么配置那个路径在哪儿呢, 大家可以按照这个顺序去找, 就是从服务器管理器开始, 接着点选到工具和角色这一栏, 然后选择DNS这个选项, 最后进入正向查找区域就行了, 整个过程显示出来的路径代码就是这样的: 服务器管理器 → 工具和角色 → DNS → 正向查找区域。

2. Linux生产环境、需高并发与DNSSEC → 部署BIND 9dns服务器配置软件dns服务器配置软件邓州平安中西结合医院,配置文件位于/etc/named.conf,核心区域文件在/var/named/目录下。

3. 需要后端是数据库并且支持多个区域的同步操作, 这时候部署PowerDNS这个方案, 使用pdns_control这个命令行工具来做管理, 把后端连接串配置在文件路径/etc/powerdns/recursor.yml里面。

4. 边缘轻量节点或家庭网关, 这个设备需要部署dnsmasq软件, 使用单个配置文件/etc/dnsmasq.conf, 这样就可以完成基本的域名解析工作。

03.关键配置项速查

监听地址, 在 BIND 系统里面是用的 listen 指令, 在 PowerDNS 系统里面是用的 local 参数, 在生产环境进行部署的时候, 务必要把内网 IP 地址绑定上去, 千万不要直接对外暴露。

区域授权: 设置允许传输和允许查询的选项, 只能放行那些经过信任的网络地址段落, 从而防止出现由域名系统引起的放大式攻击现象。

DNS服务器配置软件推荐,5款工具选型与配置要点(图1)

日志的路径被统一配置成了写入到/var/log/named/这个位置, 这是BIND相关服务的日志存放地, 或者也被直接发送到syslog系统里去, 这样做的主要目的, 是为了能够方便地进行审计和追踪工作。

DNSSEC:在区域文件里面, 通过把 dnssec-enable yes 这个配置项给启用起来, 然后结合着使用 rndc sign 这个命令去执行操作, 最终完成了签名的更新工作。

04.常见疑难与解决

解析不生效:, 请你去检查一下named-checkzone, 这个方法是用在BIND上面的, 也去用一下pdns_util check-zone, 这个是用于PowerDNS的, 看看它们是否都通过了验证, 然后还要确认一下TTL是不是已经过期了, 如果必要的话, 你可以执行命令去强制重载DNS服务器, 具体的方法是rndc reload。

传输失败(AXFR/IXFX): 需要确认主服务器和从服务器的时间同步是否完成了, 这个是通过使用NTP来实现的。防火墙里面要放行TCP协议的53端口。还有就是要检查区域SOA序列号是否已经递增了。

域名解析异常排查:大家可以在gname.xin提供的DNS诊断工具里, 使用一键检测的方式来把解析的整个链路都检查一下, 这样一来, 就能很快地找到到底是在本地缓存这一环节出了问题, 还是在上游递归这一环节出了故障, 又或者是权威服务器这一环出现了问题。

05.部署后验证清单

1. 那个dig @127.0.0.1 example.com A命令, 它返回了正确的IP地址。

2. dig @127.0.0.1 example.com NS 返回本机权威记录

3. 从客户端执行nslookup确认可外部可达

4. 在开启了DNSSEC以后, 执行带dig +dnssec指令的操作, 来验证签名链的完整性。

以上提及的这些配置规范, 它是参照了那些在IANA那里发布的RFC 1035、还有RFC 4034, 并且也参考了各个相关软件的官方发布文档来进行制定的, 为的是确保所有正在进行的这些操作, 都能够和现在实行的标准完全保持一致。