使用DHCP将Debian计算机的主机名更新为Windows 2008 DNS服务器


9

我在XenServer上安装了Debian(lenny)机器,这些机器每天使用脚本创建,该脚本从模板创建机器,并为其分配新的主机名。

我们的网络有一个Fortinet 60B设备(该服务器用作DHCP服务器)和一个Microsoft Windows 2008 DC(也用作DNS服务器)。我想配置VM模板,使其在从DHCP获得租借的IP时将其主机名发送到DNS服务器。

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


2
您是否已将Windows DNS服务器设置为允许未经身份验证的更新?
Zoredache

Answers:


2

因此,基本上,您是否希望客户端将其主机名发送到DNS服务器?

这在Windows客户端上很好用,但是对于Linux机器,我会采取另一种方法:设置客户端以向DHCP服务器询问IP 主机名。使用“请求主机名”选项,dhclient要求DHCP服务器发送一个主机名和IP地址,然后设置VM的主机名。

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

这样,您就不会出现DNS缓存/传播延迟的问题,并且可能将所有IP和主机名放在中心位置-DNS服务器。

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

注意:如果配置了DHCP服务器,以使同一台计算机始终获得相同的IP地址(例如,使用mac地址),那么显然,它也将始终获得相同的主机名。在某些DHCP服务器上,可以直接在配置文件中使用主机名代替IP地址。


这不会,因为我是在将主机名(主机名)作为参数的脚本中设置的。
电和尚

2

我最终使用了一个脚本,该脚本在从模板创建VM之后以及每次引导时都运行nsupdate。


1

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


所以基本上您只是在dhclient.conf中添加了“发送主机名”?因为这对我不起作用
Electric Monk'1

那就是我要做的。手册页指示需要FQDN,但在我的情况下,仅发送适用于Windows和Linux DHCP和DNS系统的主机名。客户端的DHCP租约被释放并重新创建后,这些计算机即通过DHCP服务添加到DNS。
John Gardeniers 2010年

1

我发现要获得非域加入的计算机来注册和更新Windows DC \ DNS服务器上的DNS记录,需要做两件事:

  1. 配置DC \ DNS服务器以允许安全和不安全的动态DNS更新。

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


1

嗯 从来没有尝试过这个确切的配置-我已经使用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区域启用不安全的更新。


1

许多人可能认为这很明显,但是请确保指定您自己的请求指令,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;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.