![为家庭网络在本地运行 DNS](https://linux22.com/image/1216635/%E4%B8%BA%E5%AE%B6%E5%BA%AD%E7%BD%91%E7%BB%9C%E5%9C%A8%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8C%20DNS.png)
我有一个小型家庭网络,刚刚变得更大(新室友,我现有的室友有一台笔记本电脑(在她的电脑上),我的朋友带着笔记本电脑过来,等等)。
我想运行本地 DNS 服务器来查找我的本地网络内容(fileserver.local
、windowsTV.local
、machineA.local
、machineB.local
)appletv.local
。我以前有一条具有静态 IP 的业务线路,并在内部运行 bind/named。但是,现在我有一个普通帐户。
我的 ISP 的 DNS 服务器不断变化(无论出于什么原因,我的 ISP 都不喜欢长时间保持相同的 IP 范围)。我需要自动更新本地 DNS,以便使用我的 ISP 的 DNS 进行外部流量,但能够维护内部 DNS 服务器(在使用 win7 或 Ubuntu 9.04 重建现有机器的情况下,每台新机器更新主机文件都很麻烦)。
此外,我的 ISP 的 DNS 服务器经常崩溃或无响应。是否有任何可靠的开放 DNS 服务器(我不想每天重新配置)可以用作我的主服务器,如果这些服务器发生故障,则使用我的 ISP 的服务器?
更新:还希望每个工作站能够使用 dhcp 进行连接,但不是获取 ISP DNS 服务器,而是获取我的内部服务器......
答案1
如果您希望内部虚假域名能够正常工作,则您不能为工作站配置任何 DNS 服务器,除非您有自己的 DNS 服务器。一旦您设置了 BIND,它就可以自行工作,您根本不需要您的 ISP 或任何其他非权威 DNS 服务器。
答案2
基本上,您需要运行自己的 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
来自3 级。
如果您正在运行自己的 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 软件。在我的网络上,我直接使用绑定。听起来你可能对此有一点经验,而且对我来说效果很好。
答案3
答案4
如果你正在运行 Windows - 你应该看看简单 DNS Plus- 它是一个完整的 DNS 服务器,还带有 DHCP 服务器插件 - 并且具有易于使用的 GUI。
[注:该产品由本文作者开发]