我有一个 XenServer 安装,其中的 Debian(lenny)机器每天都会使用脚本创建,该脚本根据模板创建机器并为其分配新的主机名。
我们的网络有一个 Fortinet 60B 设备,它充当 DHCP 服务器,还有一个 Microsoft Windows 2008 DC,它还充当 DNS 服务器。我想配置虚拟机模板,使其在从 DHCP 获得租用 IP 时将其主机名发送到 DNS 服务器。
目前,Fortinet 将 DC 连同 IP 租约一起指定为 DNS 服务器。我尝试将“发送主机名“my-host-name””行添加到 /etc/dhcp3/dhclient.conf,但 DC 中没有任何更新。
答案1
所以基本上您希望您的客户端将其主机名发送到您的 DNS 服务器?
这对于 Windows 客户端非常有效,但对于 Linux 机器,我会反过来:设置您的客户端向 DHCP 服务器请求 IP和主机名。使用“请求主机名”选项,dhclient 要求 DHCP 服务器发送主机名以及 IP 地址,然后设置 VM 的主机名。
当然,您需要在 DNS 中为 DHCP 范围内的每个 IP 地址准备一个主机名。
这样,您就不会遇到 DNS 缓存/传播延迟问题,并且您可以拥有一个包含所有 IP 和主机名的中心位置 - 您的 DNS 服务器。
我不知道您的设备的 DHCP 服务器是否支持发送主机名 - 大多数都支持,但我认为这对于 Linux 客户端来说是最简单的方法。
注意:如果您将 DHCP 服务器配置为同一台机器始终获得相同的 IP 地址(例如使用 mac 地址),那么它显然也会始终获得相同的主机名。在某些 DHCP 服务器上,您可以在配置文件中直接使用主机名而不是 IP 地址。
答案2
我最终使用了一个脚本,该脚本在从模板创建虚拟机之后以及每次启动时运行 nsupdate。
答案3
这有点类似于我自己的问题。请查看我对我收到的唯一答案的最后评论,其中我提到了 dhclient.conf。
答案4
嗯。从未尝试过这种确切的配置 - 我曾尝试过将 Linux 客户端连接到 Windows DHCP 服务器,但在该设置中,DHCP 服务器会进行更新。不确定 Fortinet 盒子是否也会这样做。
您可以尝试让客户端直接与 DNS 服务器对话;例如:
send fqdn.server-update off;
send fqdn.encoded on;
send fqdn.fqdn "hostname.example.com.";
在 /etc/dhcp3/dhclient.conf 中。查看man dhclient.conf
更多信息。我必须至少设置send fqdn.fqdn
才能让它在我的设置中工作。
您还必须对您的 DNS 区域启用不安全更新。