几个月前,我们接到一个需求,为一个新项目提供一个稳定可靠的域名系统 (DNS) 服务器。该项目涉及使用容器进行自动部署,每个新环境都会生成一个唯一的随机 URL。在对可能的解决方案进行了大量研究之后,我们决定尝试 PowerDNS (PDNS)。
一开始,我们发现 PowerDNS 在所有主要的 Linux 发行版中都受支持,在 GPL 许可下可用,并保持其存储库更新。我们还在官方网站上找到了整洁且组织良好的 文档,以及来自真正喜欢并使用该产品的人的大量操作指南。在阅读了几页并学习了一些基本命令后,PDNS 已安装、启动并运行,我们的旅程开始了。
数据库驱动
PowerDNS 将其记录保存在 SQL 数据库中。这对我们来说是新的,不必使用平面文件来保存记录是一个很好的改变。我们选择了 MariaDB 作为我们的强大工具,并且由于有大量关于安装域名服务器的正确设置的预先信息,我们可以完美地设置和强化我们的数据库。
轻松配置
第二个吸引我们的是 PDNS 在其配置文件中具有的所有功能。此文件 pdns.conf 具有许多选项,您只需添加或删除 # 符号即可启用或禁用这些选项。这真是太棒了,因为它让我们有机会将这项新服务集成到我们当前的 инфраструктуру 中,只需我们想要的值,不多不少,只需我们需要的特性。一个简单的例子
谁可以访问您的 Web 服务器?
webserver-allow-from=172.10.0.1,172.10.1.2
我可以根据域名转发请求吗? 当然可以!
forward-zones=mylocal.io=127.0.0.1:5300
forward-zones+=example.com=172.10.0.5:53
forward-zones+=lucky.tech=172.10.1.5:53
包含 API
我们可以使用此配置文件激活,这时我们开始通过解决开发团队的第一个请求(API 服务)来了解 PDNS 的“力量”。此功能使我们能够发送请求,以简单干净的方式在我们的 DNS 服务器中创建、修改或删除记录。
此 API 具有一些基本的安全参数,因此只需几个步骤,您就可以基于 IP 地址和预共享密钥的组合作为身份验证方式,来控制谁有权与域名服务器进行交互。这是此配置的外观
api=yes
api-key=lkjdsfpoiernf
webserver-allow-from=172.10.7.13,172.10.7.5
日志记录
在日志记录方面,PDNS 做得非常出色。 您可以监视您的服务器,并通过使用日志文件和一个简单的内置 Web 服务器来查看机器的运行状况。 使用浏览器,您可以查看来自机器的不同类型的统计信息,例如 CPU 使用率和收到的 DNS 查询。 这非常有价值 - 例如,我们能够检测到一些“不太健康”的 PC,它们正在向我们的服务器发送 DNS 请求,以查找与恶意流量相关的站点。 在深入研究日志后,我们可以看到流量的来源,并对这些 PC 进行清理操作。
其他功能
这只是您可以使用 PowerDNS 完成的所有事情的惊鸿一瞥。 它是一个完整的域名服务器,具有许多特性和功能,使其值得一试。
目前,我们没有实施 DNSSEC,但看起来只需单击一下即可将其投入生产。 此外,在将递归器服务与域名服务器分离方面,PowerDNS 具有很好的方法。 我读到它也支持 DNS RPZ(响应策略区域),并且还有一些非常漂亮且设计良好的前端可用,使您可以使用简单的 Web 浏览器管理服务器,如下面的图片所示。

(PowerDNS 文档,MIT 许可证)
信不信由你,只需花费几个小时“玩”PDNS,您就可以极大地提高您对 DNS 和 IT 运营的了解。
1 条评论