使用 BIND 和自定义域进行本地主机名解析

使用 BIND 和自定义域进行本地主机名解析

我最近也将我的一台主要 Linux 服务器转换为我的路由器,并使我的旧路由器只是一个交换机和一个接入点。我的一个问题是我无法自动确定本地网络上的主机名并将其添加到 DNS 缓存中。如果我需要为此切换回 DNSMasq,我愿意,只是我在研究中最终选择了 BIND。根据我的发现,nmblookup这是迄今为止我发现的最好的东西之一,但我真的不想安装 samba 并启动nmbd我家中的所有设备,只是为了获得主机名解析。我知道有某种方法可以做到这一点,因为我以前的路由器能够为所有主机很好地做到这一点。有任何想法吗?

答案1

ISC dhcpd 能够与 BIND 结合进行动态 DNS 更新,但需要进行一些配置。完整信息可以在dhcpd.conf手册页中找到;本质上,你应该按照以下方式做一些事情:

  • 跑步ddns-confgen。这会生成一些您需要添加到named.conf文件中的配置块以及说明。跟着他们。它还谈到nsupdate.这不是必需的,因为您将使用 dhcpd,但您可以使用它nsupdate来验证绑定配置是否正确完成。
  • 将块也复制key到您的。dhcpd.conf
  • 在您的 中dhcpd.conf,还添加以下配置块:

    zone example.com. {
        primary 127.0.0.1;
        key ddns-key;
    }
    
    zone 0.0.10.in-addr.arpa. {
        primary 127.0.0.1;
        key ddns-key;
    }
    

    显然,您应该将区域名称替换为您尝试更新的区域。

一旦你这样做了,它应该可以工作。

免责声明:我自己只使用过上述绑定部分,从未使用过 dhcp 位。

另请注意,TSIG 密钥并不是绝对必要的;可以允许基于 IP 的动态 DNS 更新,在这种情况下,它将在 DHCP 方面开箱即用。但是,出于安全原因,不建议这样做。

答案2

谁分配主机名 => IP 地址映射?

DNSMasq 之所以有效,是因为它既是 DHCP 服务器又是 DNS 服务器。但是,当您有两个系统 - 用于 DNS 的 BIND 和用于 DHCP 的其他系统时,您可能需要跳过一些麻烦。我不确定如何执行此操作(如果有足够的代表,实际上会对您的问题发表评论),但是查看 DHCP 挂钩可能会很有用。一种方法是在 BIND 上设置动态 DNS 区域,并让脚本(挂钩到 DHCP)对 BIND 执行 nsupdate。

或者,直接转向 DNSMasq :)

答案3

您需要在计算机上维护主机文件或在网络上运行权威 DNS 服务器。

主机文件是最简单的,但当然,您要么必须在每次添加主机(在每台计算机上)时更改它们,要么使用 NIS 之类的东西维护它们。如果您很少添加或删除主机,这可能是正确的方法。当然,您需要静态 IP。主机文件也适用于 Windows(尽管 NIS 不能)。

如果你想建立一个权威的DNS服务器,这并不是太难的事情。有几个选项,BIND 是重型选项。这并不是非常复杂,但是要做好学习曲线的准备。网络上有大量的操作方法。一种常见的问题是:每次对区域文件进行更改时,请增加版本号 - 否则 BIND 可能无法加载您的更改。

BIND 与 ISC 的 DHCP 服务器配合良好,可实现动态 dns 更新,因此,如果您运行 DHCP,您可以告诉您的计算机使用 BIND 注册其 IP。的手册页dhcpd.conf有这方面的信息。这就是我在家里所做的事情,虽然需要一些学习才能将其全部设置好,但一旦运行起来,它就可以完美地工作。

相关内容