在本地主机上运行recursionDNS服务器

每隔一段时间,这里的人都会问“我应该使用ISP DNS还是(google / opendns)”?

我想知道的是,为什么不在自己的计算机或本地networking上自己运行本地recursion服务器呢? 那么只需使用127.0.0.1为您的DNS服务器,并让该服务器直接find名称,而不是信任/依靠您的ISP(或谷歌/ opendns)运行的服务器?

例如, PowerDNS自带的recursion服务器运行得非常好,既有linux和windows版本,也是免费的。 使用unix,你既拥有PowerDNS,也拥有了dnscache ,尽pipednscache与真正长的cname链有着不可兼得的问题。

什么原因和反对运行本地recursion服务器?

我认为你需要以不同的方式来处理:

你想解决什么问题?

运行本地DNS服务器是解决该问题的最佳解决scheme。 我经常看到人们部署一个本地的DNS服务器,没有很好的理由这样做。 在这种情况下,您已经添加了另一个要维护的服务,另一个攻击向量以及您负责的networking中的另一个链接。

我见过部署了很好的本地DNS服务器。 例如,我见过ISP提供的DNS服务器有很多延迟的情况。 我们追踪并测量了这种延迟,在某些情况下可达800ms。 安装本地caching服务器可以解决这个延迟问题。

我有邮件服务器由供应商公共DNSparsing器放慢。 通过安装本地DNS服务器,此问题已得到解决。

我已经看到需要在内部networking和外部networking上以不同方式parsing一些域名,本地DNS服务器再次成为答案。

IT解决scheme高度依赖于部署的环境。

DNS系统旨在通过您的ISP进行区域caching,从而更高效地运行。
除非您有安全问题,否则您的ISP的DNS服务器在某种程度上受到限制,您应该使用它们。

如果你的ISP提供了一个recursion的DNS服务器

  1. 至less和你的链接一样可靠
  2. 低延迟(大概是这样,它可能非常接近你的networking)
  3. 正确configuration和保护

那么recursionparsing你的DNS查询没有太多的好处。

您可以设置DNS服务器来转发recursion查询,而不是自己parsing它们,只需将这些请求发送到您的ISP的服务器即可。 这样做的好处是能够在ISP的服务器上创buildcaching,这可以为许多典型设置节省几十毫秒的时间。

你可能想要使用这个设置的原因有很多,比如你可能正在为你的站点运行.local区域(或者在你的站点的域名上进行水平分割),或者你可能想把DNS某些区域设置为黑洞。

Chris S说的和表演。 如果别人担心CPU负载,则不要牺牲自己机器的速度。

名称服务器的recursion可能容易受到caching中毒攻击 – 如果该名称服务器对于任何域也具有权威性,则可能使您容易受到一些令人讨厌的劫持攻击。

为了尽量减less这种威胁,如果你select运行一个recursion服务器,你应该只允许在你的控制下recursion客户端IP。

克里斯,我更喜欢利用我自己的recursion服务器。 这是一个很容易给第三方的信息。 我喜欢使用ISP的唯一服务是上行链路。

不过,克里斯·S很好。 如果每个最终用户都运行一个本地caching,则会在Internet上投入更多的DNS负载。

Comcast DNS劫持

我在Server 2012下运行一个非recursion的DNS服务器,并且一直为我的客户做这个。 我从本地局域网上的“知道”dns信息中看到了巨大的性能收益。 运行任何DNStesting,你会一直看到本地DNS更快。 recursionDNS仍然是意见或设置的问题。 较小的configuration不会从自己的recursion查找中获得任何收益,并且实际上可以减慢速度。 也许不是最好的答案,但你必须testing连接和主机的性能,看看它是否更快。