DHCPDISCOVER / DHCPOFFER,但没有DHCPACK

我有一个远程客户机发送DHCPDISCOVER的。 服务器用DHCPOFFER响应,但没有DHCPACK。

大约每30秒从同一主机重复一次。 有什么我可以做远程或我需要让某人重新启动吗? 这是在数据中心,所以我可能要去那里做!


感谢您的build议。 我已经把所有的机器重新启动了,但是我仍然有问题。 我认为我的configuration有问题。 这看起来正确吗?

# # /etc/dhcpd.conf for primary DHCP server # authoritative; ddns-update-style none; deny duplicates; default-lease-time 600; max-lease-time 3600; # Our fixed hosts host host2 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address xxx202; } host host3 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address xxx203; } host host4 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address xxx204; } host host5 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address xxx205; } subnet xxx128 netmask 255.255.255.128 { option subnet-mask 255.255.255.128; option broadcast-address xxx255; option routers xxx129; option domain-name-servers 8.8.8.8, 8.8.4.4; # Testing pool. pool { max-lease-time 300; # 5 minutes range xxx250 xxx254; deny known-clients; } # Our hosts - I didn't have this pool declaration before, do I need it if I want # the hosts to be running dhcp but always get the same address? pool { max-lease-time 1800; range xxx200 xxx220; deny unknown-clients; } } 

它是:

 CLIENT -> DHCPDISCOVER SERVER -> DHCPOFFER CLIENT -> DHCPREQUEST SERVER -> DHCPACK 

您在描述中的DHCPACK之前缺lessDHCPREQUEST。

如果客户端与DHCP服务器位于不同的子网上,则DHCPOFFER将单播发送到端口67 UDP上的DHCP中继。 DHCP中继代理将DHCPOFFER广播到UDP端口68上的子网。

我会调查有关DHCPOFFER的连接问题。 跟踪它,看看它是否回到客户端,如果是这样,为什么客户端不是DHCPREQUEST:地址。

一个普通的DHCP中继代理是cisco交换机在特定接口下的“ip helper-address”选项。

我已经看了几次,到目前为止,我只看到了两个原因:

  • DHCP服务器提供的IP地址已被其他设备使用。 通常你会看到一个DHCPNAK。
  • 您的防火墙正在接受到DHCP服务器的stream量,但不接受stream量

幸好两者都应该很容易testing。 Ping IP地址并检查相关的防火墙。

有同样的问题。 没有看到任何DHCPACK。 这里的问题是:

磁盘已满

dhcpd无法写入/var/lib/dhcp/dhcpd.leases

假设你的DHCP服务器和DHCP客户端都连接到同一个以太网段,假设这个以太网段跨越多个与各种“trunk”( 802.1q )链路互连的L2交换机,当遇到类似的问题时至less一条中继链路的configuration不匹配。

详细地说,DHCP-DISCOVER / DHCP-OFFER(从DHCP服务器端看)的永无止境的循环,让我认为DHCP客户端没有收到DHCP-OFFER,因此坚持重新发行DHCP – DISCOVER消息。 这样的DHCP-DISCOVER(从DHCP客户端看)从DHCP-SERVER正确接收。

考虑以下情况: 在这里输入图像描述 两个中继端口的错误/不匹配的设置意味着:

  • SW A到SW B沿中继(或从DHCP服务器到DHCP客户端)发送的VLAN Xstream量是UNTAGGED;
  • 由SW B发送给沿着Trunk(或从DHCP-Client到DHCP服务器)的SW A的VLAN Xstream量是TAGGED。
  • 由于SW B中继端口的本地VLAN设置,DHCP客户端将不会收到来自DHCP-Server的报文。

如果您“控制”DHCP客户端主机,这很容易排除故障。 在这种情况下,假设eth0是DHCP客户端主机使用的networking接口,一个简单的:

 tcpdump -n -i eth0 ether-host <dhcp-server-mac-address> 

将显示客户端是否从DHCP-SERVER收到DHCP-OFFER。

如果你无法控制客户端的话,事情更难以排除故障。

PS:显然上面的问题,以及其他相关的论点,可以很容易地避免使用适当的技术(如GVRP , VTP或其他非严格手动configuration的方法),但是…这是超出了这个答案的范围

我一直在学习使用虚拟防火墙的防火墙,我有一个类似的问题没有得到服务器上的DHCPACK,结果是使用错误的虚拟盒子networking设置的testing绿色(内部)networking的一个Ubuntu的防火墙VM和testing一下ubuntu客户端vm。 如果使用NATnetworking而不是vb内部networking,则客户端vm将从vb获取其IP,而不是DHCP服务器vm。 日志显示服务器从客户端获取请求,但客户端从vb获取IP,所以您永远不会收到ACK回发到服务器。