使用DHCP将主机名从Debian机器更新到Windows 2008 DNS服务器

我使用Debian(lenny)机器每天创build一个XenServer安装程序,使用脚本从模板创build机器并为其指定一个新的主机名。

我们的networking有一个Fortinet 60B设备作为DHCP服务器和一个Microsoft Windows 2008 DC作为DNS服务器。 我想configuration虚拟机模板,当它从DHCP获得一个租用的IP时,将其主机名发送到DNS服务器。

目前,Fortinet分配DC作为DNS服务器以及IP租约。 我尝试在/etc/dhcp3/dhclient.conf中添加一个“发送主机名”my-host-name“'行,但没有任何更新在DC中。

    所以基本上你想要你的客户端发送他们的主机名到你的DNS服务器?

    这对于Windows客户端非常适用,但是对于Linux机器来说,我会采取另一种方式:将客户端设置为向DHCP服务器询问IP 主机名。 使用“请求主机名”选项,dhclient要求DHCP服务器发送主机名和IP地址,然后设置VM的主机名。

    当然,您需要在DNS中准备DHCP范围中每个IP地址的主机名。

    这样您就不会有DNScaching/传播延迟问题,并且您可能拥有所有IP和主机名的中心位置 – 您的DNS服务器。

    我不知道你的设备的DHCP服务器是否支持发送主机名 – 大部分都是这样,但我认为这是Linux客户端最简单的方法。

    注意:如果您configuration了DHCP服务器,以便同一台机器总是获得相同的IP地址(例如使用MAC地址),那么显然它总是会获得相同的主机名。 在某些DHCP服务器上,可以在configuration文件中直接使用主机名而不是IP地址。

    我使用了一个脚本,该脚本在从模板创buildVM并在每次启动后运行nsupdate。

    这有点类似于我自己的问题 。 看看我最后的评论,我收到的唯一的答案,我指的是dhclient.conf。

    我发现有两件事情需要一个非域join的机器来注册和更新Windows DC \ DNS服务器上的DNSlogging:

    1. configurationDC \ DNS服务器以允许安全和不安全的dynamicDNS更新。

    2. configuration非域join主机的FQDN以匹配您的AD \ DNS名称:如host.domain.com中所示

    嗯。 从来没有尝试过这个确切的configuration – 我已经与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了解更多信息。 我必须设置至lesssend fqdn.fqdn让我的设置工作。

    您还必须启用对DNS区域的不安全更新。

    许多人可能会认为这是显而易见的,但一定要在dhclient.conf指定你自己的请求指令,它不要求主机名或域名 。 我的发行版默认是:

     request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope, interface-mtu; 

    请注意,这会请求来自服务器的主机名和域名,这会使send host-name ...指令无效。 我的请求和发送主机指令如下所示:

     send host-name "leaf.node.domain.com"; request subnet-mask, broadcast-address, time-offset, routers, domain-name-servers, netbios-name-servers, netbios-scope, interface-mtu;