我有以下 isc-dhcpd-4.3.1 的配置:
ignore client-updates;
ddns-update-style interim;
subnet 192.168.128.0 netmask 255.255.255.0 {
use-host-decl-names on;
update-static-leases on;
key "rndc-key" {
algorithm hmac-md5;
secret "redacted";
};
zone example.com. {
primary 127.0.0.1;
key rndc-key;
}
zone 128.168.192.in-addr.arpa. {
primary 127.0.0.1;
key rndc-key;
}
authoritative;
range 192.168.128.32 192.168.128.63;
next-server 192.168.128.1;
option domain-name "example.com";
option domain-name-servers 192.168.128.1;
group {
host test {
hardware ethernet 00:00:00:00:00:00;
}
}}
实际情况是,尽管如此ignore client-updates
,创建的 ddns 条目默认为 dhcp 查询时的服务器主机名,即:localhost.example.com
。服务器在其初始 dhcp 查询后正确地将其主机名设置为test.example.com
,然后service networking restart
将创建正确的 DDNS 条目。
我完全不明白为什么 dhcpd 会监听客户端发送的主机名,localhost
尽管设置告诉它不要这样做。
如果能得到一些帮助那就太好了。
答案1
我遇到了同样的问题并想出了解决方案来添加ddns-hostname
到主机配置。
use-host-decl-names
也不会ignore client-updates
改变 dhcpd 的任何行为。
即使客户端仍然尝试使用其主机名更新 DNS,以下功能最终也能发挥作用:
host client.foo.bar {
hardware ethernet 00:00:00:00:00:AA;
fixed-address 192.168.42.2;
ddns-hostname "foo";
}
如果您找到更好的解决方案,请告诉我!