在本地为本地网络运行DNS


102

我有一个很小的家庭网络,规模越来越大(新的室友,我现有的室友有一个笔记本电脑(在她的计算机顶部),我的朋友带着笔记本电脑过来,等等)。

我想运行一个本地DNS服务器为我的本地网络的东西查找(fileserver.localwindowsTV.localmachineA.localmachineB.localappletv.local)。我曾经有一个带有静态IP的业务部门,并在内部运行bind / named。但是,现在我有一个普通帐户。

我的ISP的DNS服务器在不断变化(出于任何原因,我的ISP都不希望长时间保持相同的IP范围)。我需要自动更新本地DNS以使用ISP的DNS进行外部流量,但需要维护内部DNS服务器(在使用win7重建现有计算机的基础上,每台新计算机都会麻烦更新主机文件或Ubuntu 9.04)。

此外,我的ISP的DNS服务器经常崩溃或无响应。是否有可以用作我的主服务器的可靠开放式DNS服务器(我不想每天都重新配置),然后如果它们失败了,请使用ISP的?

更新:还希望每个工作站都能够使用dhcp进行连接,但不是获取ISP DNS服务器,而是获取我的内部DNS服务器。


2
这里至少有两个问题:本地DNS配置,公共DNS服务器。下次发布2个问题。
hyperslug

17
我同意,但是我正在寻找整体解决方案。每个问题本身都会有一个正确的答案,但可能不会啮合,我正在尝试寻找可共同解决的两个问题的解决方案。
罗伊·里科

@RoyRico您是否找到了一个好的解决方案?我正在尝试用番茄切丝机做同样的事情,并且在各个方向上碰壁。
杰夫

如果您使用的是Linux,请按以下步骤详细设置DNSMASq-sfxpt.wordpress.com/2011/02/06/…– xpt 2014
6

新的Google DNS服务器为8.8.8.8和8.8.4.4,以防万一有人想知道……
Tmanok

Answers:


16

如果要内部伪造域工作,则不能使用除自己以外的任何DNS服务器配置工作站。设置BIND后,它便可以独立工作,并且完全不需要ISP或任何其他非权威DNS服务器。


9
但是,如果可能的话,一个好的网民会转发到其ISP的DNS缓存。根DNS服务器上的负载太可怕了。特别是对于像这样的小型站点,因为如果每个家庭都决定直接使用,它就无法扩展。(如果您担心ISP被篡改,请使用DNSSEC)。
sourcejedi

1
@sourcejedi,您误解了缓存DNS服务器的实际作用..它肯定不会对根服务器造成冲击,它可能仅使它们每周一次。
Milli 2014年

7
为什么要转发到您的ISP DNS服务器是一个不同的原因……您看起来像是它们的普通客户端。如果您不这样做,他们会看到您的系统正在向世界各地发送DNS查询,那么他们将假设您正在运行DNS服务器,并且可能会在您的脸上抛出防火墙规则并束手无策。您将很难弄清楚是什么原因导致的,可能会浪费大量时间试图弄清是否/何时发生。
Milli 2014年

1
除了@milli的观点,您的ISP的DNS可能还会以更快的/缓存的/未计量的内容将某些域的解析覆盖到其专用计算机上。使用公共DNS可能会破坏这些服务或使您付出更多。
Walf

85

基本上,您需要运行自己的DHCP和DNS服务器。如果您有一个典型的提供私有IP地址的路由器,则您已经在运行自己的DHCP服务器。

显然,必须将DHCP服务器配置为分发路由器IP作为网关地址,并分发DNS服务器IP作为DNS服务器地址。

必须将您的DNS服务器配置为在本地解析非官方的顶级域.local,然后将任何其他请求转发到另一个DNS。在BIND中,您需要forwarders { }在`/etc/bind/named.conf.options'中添加一个部分,其中包含要用于解析非本地地址的公共DNS服务器。正如其他评论所建议的那样,如果您不想转发到ISP的DNS服务器,则可以使用OpenDNS,Google的公共DNS服务器或4.2.2.1/4.2.2.2(我忘了是谁做的)。

如果您正在运行自己的DNS服务器,则需要一个始终处于运行状态的框,因为您家庭网络上的所有DNS查询都将经过该框。此框在您的家庭子网上需要一个固定的IP。确保它不会被DHCP淹没,并且盒子本身不应该通过DHCP获得IP。例如,如果将DHCP配置为分发从192.168.1.1到192.168.1.100的地址,则为DNS服务器指定IP 192.168.1.101。在家用路由器的通常情况下,您只需要简单地告诉路由器DNS服务器为192.168.1.101并重新启动即可。

如果可以在宽带路由器上运行本地DNS,那很好,但是DNS服务器可能会受益于大量RAM来缓存查询,具体取决于您使用的DNS软件。在我的网络上,我只使用平直的BIND。听起来您可能对此有一点经验,对我而言,它的效果很好。


3
4.2.2.1/4.2.2.2/4.2.2.3从第3层
横街

1
很好的答案!感谢您提供完整,清晰的信息。我将尝试尽快在本地网络上进行设置。
表格

2
成功!这种方法是合理的。设置固定IP超出可寻址范围/避免在DNS框中使用DHCP尤其重要。谢谢!
表格

@Hengjie什么是第3层?
乔纳森

第3层既是数据中心提供商,也是网络提供商。它们还碰巧提供了坚固的DNS服务器。
横街

15

是否有任何可靠的开放式DNS服务器

您说的是:OpenDNS

208.67.222.222
208.67.220.220

3
我还将查看aboutdebian.com/dns.htm,以更好地概述您可以设置自己的dns服务器的不同方式。
肯尼斯·科克伦

1
+1用于OpenDNS。我在工作和在家中都使用它。很棒的服务。
DWilliams 2009年

4
请注意,OpenDNS名称服务器是骗子:它们会重写DNS响应,以将您定向到广告服务或审查某些目标。
bortzmeyer

1
@bortz,我还没有看到他们对此撒谎,但是在URL格式错误的情况下,它们确实重定向到了其着陆页+广告。审查是选择加入的,默认情况下是关闭的。
hyperslug

12
Google的8.8.8.8和8.8.4.4的公共DNS服务器也相当不错。
LawrenceC

6

如果您运行的是Windows,则应查看Simple DNS Plus,它是一台完整的DNS服务器,还带有DHCP服务器插件,并且具有易于使用的GUI。

[注意:该产品是由该帖子的作者开发的]


我将Windows作为我的机器之一运行,但它并不总是打开。Linux机器通常处于打开状态。
罗伊·里科

只是提到这不是一个免费的解决方案。提供14天的试用和教育许可。否则,您将把面团拉到$ 70> $ 300之间
Cyber​​Fox

5

Unbound非常容易,支持绑定样式配置文件并且相当可靠。如果服务器将是一个独立的“网关”类型的框,并且您想要一些额外的细节,那么您可能还想看看称为untangle的防火墙/网关发行版。


4

如果您使用的是Linux,则需要设置DNSMASq来获取您的本地地址,并将其用作外部地址的转发/缓存DNS服务器。这也经常在Linux发行版中用于家庭路由器,例如openwrt / ddwrt / tomato。

或者,在大多数Apple / Mac网络上,您将使用Bonjour / Zeroconf,Linux和Apple计算机都可以通过它们进行通信,以进行广播级DNS /服务解析。

话虽这么说,在运行所有三个操作系统的纯混合网络上,您肯定需要一台本地DNS服务器,根据您的位置/需求将其转发到OpenDNS,GoogleDNS或本地ISP DNS。


2

我用的是4.2.2.1和4.2.2.2

编辑:也就是说,关于公共服务器。容易记住,自从我使用它们以来,我认为我从未见过它们失败。


我以前见过。谁经营的?允许公众使用它们吗?他们有多可靠?
罗伊·里科

Verizon。好像他们不在乎。非常。
hyperslug

它们是开放的DNS服务器,可供公众免费使用。它们既快速又可靠。
Walter 2010年

3
我已经看到4.2.2.2对我们的客户(他们需要可靠的DNS进行信用卡处理!)失败了很多,以至于我一看到它们便总是将它们更改为Google的Public DNS或OpenDNS。远离Verizon服务器总是可以立即解决此问题。
斯蒂芬·詹宁斯

2

任何宽带路由器都为本地网络提供DNS和DHCP服务。如果要从Internet到本地计算机的传入连接,则需要一台同时支持DynDNS和传入端口转发的路由器。

如果从DD-wrt支持的硬件列表中选择一个,则可以使用该固件进行刷新,它将支持小型网络中可能需要的任何功能。


4
我认为大多数宽带路由器都不提供DNS服务,至少没有提供所提供的固件。大多数只提供DHCP并使用它来告诉您的系统使用ISP的DNS服务器。现在,如果您使用DD-WRT,OpenWRT或Tomato等第三方固件,则它们也可以提供DNS服务。
afrazier 2011年

1

要在您的局域网上运行DNS服务器,请查看“ pdnsd”,它是* nix的名称服务器。


1

一些可用于转发的免费DNS服务器:

1.1.1.1 - Cloudflare
1.0.0.1 - Cloudflare
4.2.2.1 - Layer 3
4.2.2.2 - Layer 3
4.2.2.3 - Layer 3
8.8.8.8 - Google
8.8.4.4 - Google
208.67.222.222 - OpenDNS
208.67.220.220 - OpenDNS

0

如果您从链接文本中下载DNS基准测试程序,它将对公共DNS服务器以及本地DNS服务器列表进行基准测试。运行此程序后,请尝试将最快的服务器的副本放入路由器的DNS设置中,然后更新DHCP会话并再次运行测试。

如果您的路由器允许,请将路由器和其中一台快速外部DNS服务器添加到它交给DHCP客户端的DNS服务器列表中(但请选择与您输入的路由器DNS服务器地址不同的另一台)。


0

我有一个类似的问题。我购买了兼容OpenWRT的路由器并安装了OpenWRT。它提供了静态IP绑定以及路由器中的名称解析,这使我能够根据需要为网络中的计算机和设备命名。


-1

也许我是在说些蠢话。在这种情况下,我只需将IP和名称添加到各个计算机上的主机文件中。

192.168.0.120电视当地

192.168.0.80 studiopc.local

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.