我是一名新手,想学习如何设置 DNS 名称服务器。我应该使用 djbdns、BIND 还是其他?
当前的网络要求包括子域支持、SSL 和邮件服务,所有这些都在非常小的流量下进行。我希望有一种解决方案将来能够扩展到更大的流量和可能更棘手的要求(如负载平衡)。目前,我会在 Linux 上运行。
我读到过,如果配置不当,BIND 会出现安全问题,而且它的配置可能很棘手。我还读到过,djbdns 更易于配置、更安全,而且可以承受重负载。djbdns 的论据似乎很有道理,但我没有专业知识来正确评估它们。如果 BIND 更好,我很乐意讨论 djbdns 的这些说法。
谢谢。
答案1
我过去曾与 djbdns 合作过,目前运行着一堆 BIND 服务器。
djbdns 的最大问题最好用我一年级老师在我的成绩单上写的方式来说:“不能很好地与其他人一起玩”。它的行为方式与 unix 机器上的其他任何东西都不一样,在各种非常小的方式上,这些方式以后可能会给你带来麻烦。它使用您在其他任何地方都看不到的区域文件语法。
djbdns 的最大优势在于它从一开始就以安全为第一目标进行设计。
如果您要设置 DNS 服务器,将其公开到互联网,然后从不维护它,那么 djbdns 将是您的最佳选择。
在现实世界中,大多数管理员最好使用操作系统供应商提供的 BIND 软件包,并在有更新时及时修补。但以 chroot 方式运行它是个好主意,将权威 DNS 服务器与递归解析器 DNS 服务器分开也是一个好主意。
如果您找到有关 DNS 的文档,则将包含 BIND,而 djbdns 不太可能包含在内。如果您使用 dig,它返回的格式可以粘贴到 BIND 区域文件中并起作用。它就像任何普通的 unix 守护程序一样,而不是来自另一个星球的东西。
我们使用一些硬件负载平衡器并对我们的递归解析器 BIND 服务器进行负载平衡;效果很好。只需确保用户获得与他们发送请求相同的源 IP,任何支持 UDP 和 TCP 的负载平衡设置都应该可以工作。如果您正在执行权威 DNS,则负载平衡非常简单,只需拥有多个服务器并将它们全部发布在 whois 信息中;其他 DNS 服务器将智能地进行负载平衡。
答案2
答案3
如果是为了你自己,并且如果你想了解 DNS 如何工作,我会使用 djbdns。
如果您想了解其他人如何执行 DNS,以及如何支持典型的企业部署,请学习 bind。
如果您的目标是尽量减少努力和支持,并且您有足够的能力,那么 djbdns 的支持开销就会低得多。
如果您是新手,您可能会更容易上手并运行,但请记住,它更有可能以奇怪和古怪的方式爆炸。
如果我还不了解 djbdns(和 bind),我也会研究 powerdns 和 maradns,但我怀疑对于小型安装来说它是否比 djbdns 套件更好。
无论如何,即使您使用 bind 将您的 DNS 广告宣传到互联网,您仍然应该在 localhost 上运行 dnscache(djbdns 套件的一部分)作为系统解析器。
答案4
你可能想看看玛拉DNS,一个安全感知的 DNS 服务器。
安全。MaraDNS 的安全历史记录与其他 DNS 服务器一样好甚至更好。例如,MaraDNS 始终使用安全随机数生成器随机化 DNS 查询的查询 ID 和源端口;并且从未受到“新”缓存中毒攻击。
支持。MaraDNS 拥有悠久的维护和更新历史。MaraDNS 最初创建于 2001 年。MaraDNS 1.0 于 2002 年发布,MaraDNS 1.2 于 2005 年 12 月发布。MaraDNS 经过了广泛的测试,既采用了 SQA 流程,也经过了四年多的实际使用。MaraDNS 继续得到全面支持:最新版本于 2009 年 2 月 13 日发布。Deadwood 是 MaraDNS 2.0 的一部分,目前正在积极开发中。
易于使用。基本递归配置仅需要一个三行配置文件。基本权威配置仅需要一个四行配置文件和一个一行区域文件。MaraDNS 有完整的文档,既有易于遵循的教程,也有完整且最新的参考手册。
体积小。MaraDNS 非常适合嵌入式应用程序和其他服务器必须使用尽可能少的资源的环境。MaraDNS 的二进制文件比任何其他当前维护的递归 DNS 服务器的二进制文件都要小。
开源。MaraDNS 是完全开源的,其许可证是两条款 BSD 许可证,与 FreeBSD 许可证几乎相同。
请参阅maraDNS 倡导其中有几种 DNS 服务器软件的比较,或许可以帮助您选择。