ISC DHCPD 使用客户端主机名注册或更新 BIND DNS

ISC DHCPD 使用客户端主机名注册或更新 BIND DNS

我正在寻找有关如何配置 dhcpd 以便它将更新发送到 BIND 的信息。我可以看到对于 BIND,我需要设置该allow-update选项,但我不知道如何配置 dhcpd。

我找到了 dhclient 自行注册的示例配置,但我只对 dhcpd 进行注册感兴趣。我希望能够在客户端上设置主机名,重新启动它,然后其主机名将通过 dhcpd 在 BIND 中注册。

有人有这方面的信息吗?

答案1

您需要告诉 dhcpd 它需要执行动态 DNS 更新。为此,请将其添加到您的 dhcpd.conf 文件中:

ddns-update-style standard;
ddns-rev-domainname "in-addr.arpa.";
deny client-updates;
do-forward-updates on;
update-optimization off;
update-conflict-detection off;

为了安全起见,您可以在 dhcpd 和 BIND 之间设置密钥身份验证。密钥文件可以包含在 dhcpd 和 BIND 配置文件中。密钥文件应如下所示:

key "key-name" {
        algorithm hmac-sha256; # you can use another algorithm if desired
        secret "<secret passphrase here>";
};

您的 BIND 安装可能包含一个“ddns-confgen”工具,可以帮助您生成密钥文件。

然后,您可以将 DNS 区域声明添加到 dhcpd.conf 文件中。它们指定更新应发送到哪个 DNS 服务器,以及可选的要使用的密钥:

include "/some/where/ddns-keyfile.key";

zone example.org. {          # name of your forward DNS zone
        primary 11.22.33.44; # DNS server IP address here
        key key-name;
}

zone 1.168.192.in-addr.arpa. {  # name of your reverse DNS zone
        primary 11.22.33.44;    # DNS server IP address here
        key key-name;
}

请注意,dhcpd.conf 中需要区域名称中的最后一个点。

在 BIND 配置文件(通常为 name.conf)中,您需要如下内容:

include "/some/where/ddns-keyfile.key";

zone "example.org" {                   # name of your forward DNS zone
    type master;
    file "/some/where/db.example.org"; # name of your zone file
    update-policy {
        grant key-name zonesub A TXT DHCID;
    };
};

zone "1.168.192.in-addr.arpa" {  # name of your reverse DNS zone
    type master;
    file "/some/where/db.192.168.1"; # name of your zone file
    update-policy {
        grant key-name zonesub PTR TXT DHCID;
    };
};

“更新优化关闭”设置使 dhcpd 始终发送 BIND 更新请求,这对于测试很有用。一旦您对您的设置工作感到满意,您就可以打开更新优化:这样 dhcpd 只会在 DNS 记录确实需要更改时发送更新。如果它们已经具有所需的值,则不会发送任何更新。

如果您的系统同时具有无线和有线连接,并且您偶尔会在两者之间切换,则“更新冲突检测关闭”设置可能会很有用。即使客户端网络接口的 MAC 地址不同,这也允许具有相同主机名的新记录覆盖旧记录。 (对于笔记本电脑,无线连接通常更方便,但对于大量下载,我更喜欢有线连接的更好吞吐量。)

相关内容