Ubuntu的DHCP服务器不分配自己的地址

我正在ESXi服务器内部设置一个虚拟环境。 我有一个运行isc dhcp的Ubuntu服务器版本。

当服务器启动时,我发出命令ifdown eth0然后是ifup eth0 。 在这一点上,服务器发出一个DHCP请求,但是它自己不会用一个IP地址来回答这个请求。 有什么原因吗?

我看到这篇文章DHCP服务器可以通过DHCP为自己分配一个IP地址,但我不相信DHCP服务器不可能为自己分配一个地址。

如何更好地查看您的DHCP服务configuration是否正确? 我遵循这个指南https://help.ubuntu.com/lts/serverguide/dhcp.html ,并不能让networking上的另一个客户端分配一个IP地址。

对的,这是可能的。 假定dhcpd.conf中的ISC dhcp服务器将server-identifier设置为127.0.0.1。 这将导致DHCPOFFER将DHCP选项54设置为127.0.0.1,因此DHCPREQUEST将到达服务器。

注意,如果你希望这个DHCP服务器有用(其他客户端可以从中请求IP),你需要在与服务器的eth0 MAC地址匹配的host节中设置这个参数。

Ubuntu(至less12.04)的一个复杂情况是DHCP服务器启动和接口之间存在竞争状态。

启动时,挂载最后一个文件系统后,mountall将发出文件系统事件。 networking和rc-sysinit upstart作业将从这个事件开始(rc-sysinit也需要“net-device-up IFACE = lo”)。

networking工作带来了所有的接口。 rc-sysinit作业将发出一个运行级别的事件,这将导致DHCP服务器启动。

所有这些事件都是asynchronous发生的:因此竞争条件。