我如何设置一个LAN范围的DNS服务器?

我熟悉编辑/ etc / hosts文件以将您的计算机的通信量指向特定IP地址的技巧。 现在,我正在寻找一个局域网范围的解决scheme。 当然,我可以编辑所有计算机的/ etc / hosts文件(手动或自动),但这并不理想。

一个理想的解决scheme将涉及一台运行DNS服务器的机器,而路由器则认为该服务器优先于互联网范围的DNS服务器提供的任何服务器。 或者,也许,路由器可以充当DNS服务器(毕竟,它知道如何将计算机名称转换为IP地址作为DHCP的一部分)。 我不希望更改networking上的计算机上的任何设置。

有什么build议么? 我希望这会很容易。

在一台机器上设置DNS,并告诉路由器把这个IP地址作为DHCP服务器的一部分分配给DNS服务器。 如果你的路由器不支持这个,那么也许考虑less一些屁股。

这可能是我误解了这个问题,但是这听起来像是在试图给出一个或两个特定域的特定地址,而不是为局域网上的一组主机提供完整的外部DNS查找/cachingfunction。 如果是这种情况,您可以通过设置一个仅限内部的绑定服务器来完成此任务,并将其configuration为将您尝试修改为区域的域提供给服务器。

例如,如果foocorp.com通常将外部地址4.2.2.2返回给外部世界,但对于您的lan上的主机,您希望它返回192.168.0.95,请告诉您的仅限内部BIND服务器它拥有区域'foocorp.com'并给它一个区域文件,将www.foocorp.com的Alogging定义为192.168.0.95。 当您的局域网主机查询“foocorp.com”时,您的内部BIND服务器甚至不会执行外部查询。 它只会说“啊哈,我有一个foocorp.com的区域文件在这里,我要从它返回的数据”,而不是。

HTH,

–Lee

dnsmasq应该适合您所有的需求。 它可以充当DNS服务器,从您的主机文件中获取条目。 此外,它可以configuration为DHCP服务器,因此局域网内的所有其他机器将自动获取其地址,网关地址和本地DNS服务器的地址

你可以在专用的服务器上设置绑定( http://www.bind9.net/ )然后在作为DHCP + DNS服务器的路由器(或防火墙)上,告诉路由器应该使用你的DNS服务器作为主服务器。 当人们更新他们的地址时,他们将把你的DNS服务器作为主要的DNS服务器。 主要/次要区别很重要:当用户询问主服务器将无法响应的域名时,将会询问第二个域名。 如果你在DNS服务器上创build自定义主机,人们会问它,它会工作。

本质上我只是重复Womble已经说过的话。 然而,我会补充说,做一些阅读和理解DNS,DHCP和主机文件是最符合你的利益的。 他们是如此基本的networking的一部分,如果你不了解他们,你会遇到麻烦。

如果你使用的是消费级路由器,我build议看看DDWRT,因为ddwrt是一个Linux操作系统,它不应该很难设置一个绑定服务器上,或一个djbdns,但这是一个痛苦如果你不知道你在做什么,那么你可以进行设置。

另外值得注意的是,由于configuration和漏洞,dns服务器往往是安全风险,甚至内部安全风险。 一个解决scheme可能是运行一个在系统中的虚拟机上正确configuration的light os(knoppix或减lesscentOS),这样如果它被击中,你可以轻松地将其快照回到原来的位置,这也意味着你不需要一个“专用”的机器,但可以有效地拥有一台。