DHCP 未更新 DNS

DHCP 未更新 DNS

RHEL5.6、bind-9.3.6 和 dhcp-3.0.5

所以,在我解决了我的问题通过让 DHCP 解析这些虚拟机的 MAC 地址,现在我需要弄清楚如何让它在其中一个虚拟主机启动并处于活动状态时更新 DNS。

我有配置 dDNS 绑定并用于nsupdate验证命名是否接受动态更新。

我已将 DHCP 配置为更新其静态租约和池。但是, 和 均未dhcpd.log显示named.log任何更新 DNS 表的尝试。另一方面,nsupdate测试显示一切named.log正常。

因此,我可以验证是否named会接收并接受更新,但我无法验证dhcpd是否正在尝试发送更新。

问题:

  • dhcpd.conf我可能在我的(或)中遗漏了什么/etc/sysconfig/dhcpd
  • 有人使用过log{}该功能来dhcpd.conf确认/反驳 dDNS 更新吗?

谢谢!

以下是一些dhcpd.conf片段:

ddns-update-style interim;
update-static-leases on;

key dhcpupdate
{
  algorithm hmac-md5;
  secret <KEY>;
}

zone 22.YYY.XXX.in-addr.arpa
{
  primary XXX.YYY.22.168;
  key dhcpupdate;
}

zone 23.YYY.XXX.in-addr.arpa
{
  primary XXX.YYY.22.168;
  key dhcpupdate;
}

zone 24.YYY.XXX.in-addr.arpa
{
  primary XXX.YYY.22.168;
  key dhcpupdate;
}

zone example.com
{
  primary XXX.YYY.22.168;
  key dhcpupdate;
}

zone sub1.example.com
{
  primary XXX.YYY.22.168;
  key dhcpupdate;
}

zone sub2.example.com
{
  primary XXX.YYY.22.168;
  key dhcpupdate;
}

zone sub3.example.com
{
  primary XXX.YYY.22.168;
  key dhcpupdate;
}

subnet XXX.YYY.24.0 netmask 255.255.254.0
{
  group
  {
    ddns-hostname "example.com";

    host <hostfqdn> { hardware ethernet <MAC>; fixed address <hostfqdn>;}
    ...
  }

  group
  {
    ddns-hostname "sub1.example.com";

    host <hostfqdn> { hardware ethernet <MAC>; fixed address <hostfqdn>;}
    ...
  }

  group
  {
    ddns-hostname "sub2.example.com";

    host <hostfqdn> { hardware ethernet <MAC>; fixed address <hostfqdn>;}
    ...
  }

  group
  {
    ddns-hostname "sub3.example.com";

    host <hostfqdn> { hardware ethernet <MAC>; fixed address <hostfqdn>;}
    ...
  }
}
subnet XXX.YYY.24.0 netmask 255.255.255.0
{
  option routers XXX.YYY.24.254;
  option domain-name-servers XXX.YYY.22.168, XXX.YYY.22.169;
  option ntp-servers XXX.YYY.22.168,XXX.YYY.22.169;
  default-lease-time 86400; # 1 day
  max-lease-time 604800;    # 7 days
  use-host-decl-names on;
  allow unknown-clients;

  option domain-name "example.com sub1.example.com sub2.example.com sub3.example.com";
  ddns-domainname "example.com";
  next-server XXX.YYY.22.159;
  filename "pxelinux.0";

  pool
  {
    allow members of "virtual-hosts";
    one-lease-per-client true;
    ping-check true;
    range XXX.YYY.24.11 XXX.YYY.24.60;
  }
}

答案1

我缺少的部分是在客户端。在 RHEL5 中,我需要将 DHCP_HOSTNAME 设置为主机的短名称以供 dhclient 传递给dhcpd守护进程。

(在我看到指定短名称的文本之前,我尝试使用 FQDN。现在,我必须重新启动 DNS 服务器才能删除意外的host.1.example.com.1.example.com,因为我的dhcpd守护进程没有截断域部分...)

答案2

在我使用过的所有系统上,更新 DNS 都是客户端的责任。大多数 DHCP 客户端都有指定要通知哪个 DNS 的方法。

如果您正在使用bind,我使用的默认配置已经禁用动态更新。

对于这种设置,我使用dnsmasq提供 DHCP 和 DNS 服务。它将使用 DHCP 请求中提供的名称更新其 DNS 响应。

更简单的方法是为虚拟机使用固定 IP 地址。这些地址可以添加到 DNS 中,并且始终可用。大多数 DHCP 服务器(包括)dnsmasq都可以根据 MA​​C 地址提供固定 IP 地址。

相关内容