DHCP DDNS 不适用于 Linux 客户端

DHCP DDNS 不适用于 Linux 客户端

这是同样的问题在这里问但没有迹象表明 Eddie 的问题已经得到解决。另外,我已经查看了各种答案,并尝试了建议的方法,但没有成功。


我有一台运行 DHCP 服务 (V3.0.7) 和 BIND9 (9.6.0-P1) 的 Linux 机器。我已将其配置为让 DHCP 服务更新本地 DNS 区域。DNS 更新对 Windows 和 Mac 客户端运行正常,但对 Linux (Debian Lenny 和 Ubuntu 8.10) 则不行。查看 dhcp.leases 文件,我看到为发给 Win 和 Mac 客户端的租约添加了 DDNS 相关信息,但发给 Linux 客户端的租约没有该信息。租约文件摘录:

lease 192.168.10.199 {
  starts 4 2010/01/07 00:56:43;
  ends 5 2010/01/08 00:56:43;
  tstp 5 2010/01/08 00:56:43;
  binding state active;
  next binding state free;
  hardware ethernet 00:0c:e5:4d:9e:e9;
  uid "\001\000\014\345M\236\351";
  set ddns-rev-name = "199.10.168.192.in-addr.arpa.";
  set ddns-txt = "316ae6c100af725fdd91f9de7f200d6c7a";
  set ddns-fwd-name = "dell.mylocaldomain";
  client-hostname "dell";
}
lease 192.168.10.198 {
  starts 4 2010/01/07 05:14:39;
  ends 5 2010/01/08 05:14:39;
  binding state active;
  next binding state free;
  hardware ethernet 00:1c:42:e2:6f:4a;
  client-hostname "ubuntu";
}

dhcpd.conf的相关部分:

authoritative;
ddns-updates on;
ddns-update-style interim;
ignore client-updates; # Have also tried allow client-updates, no change

update-static-leases on;
include "/etc/rndc.key";

zone mylocaldomain {
    primary 192.168.10.1;
    key rndckey;
}

zone 10.168.192.in-addr.arpa. {
    primary 192.168.10.1;
    key rndckey;
}

我已经停止了 DHCP 和 DNS 服务,并清除了与客户端相关的所有信息,例如租约和 DNS 记录。区域日志文件已被删除,服务已重新启动。在强制客户端续订租约后,我仍然得到相同的结果。

我遗漏了什么?为什么 Linux 租约不更新 DNS?既然应该由 DHCP 服务进行更新,那么客户端使用的是什么操作系统又有什么关系呢?

答案1

您的 Linux DHCP 客户端是否要求动态 DNS 更新?我在您的问题中看不到有关此信息的任何信息,如果没有它,您的 Linux DHCP 请求将不会在服务器端获得 DDNS 注册。查看dhclient.conf(5) 中的“动态 DNS”部分以了解所需设置的详细信息。

答案2

我的问题是, Ubuntu 10.04(Lucid)DHCP 客户端的A记录PTR没有在运行 DHCP 和 DNS 服务的 Windows 2003 Server 上更新。

我在网上搜索时找到了这个帖子windows dhcp ddns linux client,因此即使如果这并不能解决 OP 的问题,但很有可能可以解决与我遇到过类似情况的其他人的问题。

检查了 C:\WINDOWS\System32\dhcp 中的日志后,我发现 LAN 上的所有客户端都在进行 DHCP→DNS 更新除了对于 Ubuntu 机器,类似于 John 对他的问题的描述。这让我认为这是 DHCP 客户端必须做的事情要求。(尽管我在 DHCP 服务器属性中明确勾选了“始终动态更新 DNS A 和 PTR 记录”选项。哼。)

这个帖子给了我我需要的精确解决方案:

send fqdn.fqdn "mymachine.mydomain";
send fqdn.encoded off;
#                 ^^^ not sure if this is essential, or even desired, but
#                     it worked, so I'm not complaining.
send fqdn.server-update on;
do-forward-updates on;
#                  ^^ which may be the default anyway

添加到 就/etc/dhcp3/dhclient.conf成功了。续订租约后,Ubuntu 客户端的 DHCP 到 DNS 更新就顺利完成了,就像 Windows DHCP 客户端一样。

相关内容