轻量级Linux DNS

任何人都可以推荐一个轻量级的Linux DNS服务器,这将适用于数据中心

编辑:我们通常在10 – 20台服务器中谈论数据中心,最多可达100台。 对于更大的数量,确实使用BIND是有意义的。

我正在寻找更轻量级的BIND(如果有这样的事情存在)。

如果它包含在CentOS 5.4的常见YUM仓库中,效果会更好。

你需要什么样的DNS? 数据中心的客户需要recursionparsing器吗? 您所托pipe的某些域的权威服务器? 你想从你自己的服务器中删除依赖项(外部recursionDNS查找)吗?

简短的回答(这是一个宗教问题,所以拿一块盐):

  • 在每个服务器的本地主机上运行recursionparsing器,每个服务器都使用自身recursion的DNS。 PowerDNS使parsing器在Windows和Unix上工作; DJB的dnscache是​​tinydns软件包的一部分,也是100%防弹的,但是你可能需要调整它,以便能跟上真正长的cname链(akamai,我在看你)。

  • 为您拥有的地址运行单独的DNS服务器。 同样,PowerDNS是维基百科使用的一种select。 它从绑定区域文件到PostgreSQL数据库有各种不错的后端。 Tinydns也很棒,虽然如果你是从绑定的土地来的有点奇怪。 在“非本地主机”界面上运行这些DNS服务器,并将这些地址发布给注册服务商。 成为你自己的领域的主人!

  • 如果您要为数据中心内的其他主机提供recursion服务,请在不提供DNS服务的计算机上运行dnscache或pdns-recursor,并将parsing器的ACL设置为仅处理来自数据中心内部的请求。 互联网上的随机主机可以对DNS服务器进行古怪的caching中毒攻击,所以如果你有select,它们不应该被信任。

PowerDNS可能最容易从一个软件包安装; 在遥远的过去,DJB对于第三方搞乱了他的宝宝是非常偏执的,所以他对二进制发行有着不可思议的许可限制。 这些已经被删除,但对DJB套件的DNS实用程序仍然有不愉快的感觉。

dnsmasq可能是一个不错的select。 它可以做dns和dhcp。 只需使用主机文件,并具有简单的configuration。 它应该在您的发行版的默认存储库中。

编辑:让我澄清我的答案,因为它得到了一些倒票和意见。 对于整个用例和规模来说,问题还不清楚。 所以,虽然你可能不同意dnsmasq是在正确的情况下完全有效的解决scheme。 OP将不得不弄清楚什么符合他们的具体情况,因为他们的问题是有点缺乏细节。

如果是针对数据中心专用LAN网段上的内部dnsparsing,我只会推荐这是一个可行的解决scheme。 假设我们不是在谈论100多台服务器。 如果您希望运行自己的公共DNS,那么您最好准备在至less2个不同的数据中心运行一个成熟的DNS解决scheme。

我使用nsd作为权威名称服务器I admin。 请记住, 所有 nsd都是作为一个权威的名称服务器,所以我在内部使用来自服务器本身的recursion查询的“unbound”(来自相同的开发人员)。

对于一个(有些没有意义的)引用来说,一个主服务器可以为6个区域服务,每个区域可能有20个logging,其占用的内存大小约为1.1MB。

我发现nsd非常稳定。 唯一的问题是服务器之间的区域传输可能非常棘手,当然不能像在2个BIND服务器之间那样即插即用。 我结束了使用rsync脚本更新/重build/重新加载我的辅助名称服务器的logging。

我试过的另一个select是MaraDNS,这是一个很好的表演者,但是比BIND轻很多。

恕我直言,DNS服务的“权重”不是软件本身,而是它处理的stream量,以及为解决地址所做的工作。 您可以在数据中心部署多个DNS,以最大限度地减less负载并减less可能的单点故障。 但请记住,低性能DNS可能会降低其他服务的性能。

自从问到这个问题以来,DNS领域的变化值得一提。 看起来提问者正在寻找一个DNS recursor。 值得讨论的选项是:

  • unbound – 一个function齐全,但仍然轻量级的DNSparsing器。 没有限制,小而牢固 。 这是在操作系统版本中replaceBIND的第一个第三方parsing器。 强烈build议。
  • dnscache – 作为djbdns的一部分发布,它是最初的轻量级DNS recursor。 它坚如磐石,不泄漏记忆, 非常安全 ,performance良好。 缺点是安装稍有不同 ,缺lessDNSSEC,不支持多个CPU,以及在恰好足够的环境下失败的CNAME处理是麻烦的。
  • PowerDNS Recursor – 很难调用pdns轻量级。 PowerDNS自己是一个“高性能”recursor,并有一个比dnscache和unbound 更糟糕的安全logging 。 我没有足够的经验来进一步评论。
  • BIND – 调用BIND轻量级是不公平的,这不是它的焦点。 BIND的目标是成为最大的DNS服务器,支持每个操作系统上的每个DNS协议。 这通常会在绩效,规模和特别是安全方面受到惩罚。

轻量级权威DNS服务器的选项现在比过去多得多。 Knot,NSD,tinydns和Yadifa都有很低或者没有安全漏洞(tinydns已经被释放了很长时间的奖金),都是非常轻量级的守护进程。 所有4个performance都非常好,每个人都有着特别深奥的优势。

  • 结,NSD,Yadifa – 所有非常轻巧,安全,非常,非常快。 这三个文件分别为TLD(less数区域,多条logging)提供服务,但也适用于许多区域的更常见的ISP工作负载,每个区域都有一些logging。
  • tinydns – 非常安全和非常快。 支持DNSCurve(几乎0%采用),而不是DNSSEC(广泛和增长)。 不寻常的安装,但在操作非常可靠。
  • PowerDNS – PowerDNSperformance不错。 与BIND类似,人们会selectPowerDNS作为其function集,而不是其性能和安全性。
  • 如前所述,BIND不是轻量级的。

另一个要求是解决scheme是HA,这意味着DNS服务器将在它们之间同步数据。 而最后(首选,但不是必须的),是为整个东西有一些简单的networking前端。

只有PowerDNS有一个与DNS服务器“捆绑”的网页界面。 对于pipe理授权DNS的Web前端 ,有许多选项。 NicTool显然是我最喜欢的,因为它可以与tinydns,BIND,Knot,NSD,Yadifa或其任何组合一起使用。