我有一台远程客户端计算机正在发送 DHCPDISCOVER。服务器以 DHCPOFFER 做出响应,但没有 DHCPACK。
这大约每 30 秒从同一主机重复一次。我可以远程执行某些操作吗?还是需要找人重新启动它?它在数据中心,所以我可能必须去那里执行此操作!
感谢您的建议。我已经重启了所有机器,但问题仍然存在。我认为我的配置有问题。这看起来正确吗?
#
# /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 x.x.x.202; }
host host3 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address x.x.x.203; }
host host4 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address x.x.x.204; }
host host5 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address x.x.x.205; }
subnet x.x.x.128 netmask 255.255.255.128 {
option subnet-mask 255.255.255.128;
option broadcast-address x.x.x.255;
option routers x.x.x.129;
option domain-name-servers 8.8.8.8, 8.8.4.4;
# Testing pool.
pool {
max-lease-time 300; # 5 minutes
range x.x.x.250 x.x.x.254;
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 x.x.x.200 x.x.x.220;
deny unknown-clients;
}
}
答案1
内容如下:
CLIENT -> DHCPDISCOVER
SERVER -> DHCPOFFER
CLIENT -> DHCPREQUEST
SERVER -> DHCPACK
您的描述中缺少 DHCPACK 之前的 DHCPREQUEST。
如果客户端与 DHCP 服务器位于不同的子网,则 DHCPOFFER 会通过 UDP 端口 67 单播发送到 DHCP 中继。DHCP 中继代理会通过 UDP 端口 68 将 DHCPOFFER 广播到子网。
我会调查与 DHCPOFFER 相关的连接问题。跟踪它,看看它是否能找到返回客户端的路径,如果能,为什么客户端没有 DHCPREQUEST:ing 地址。
常见的 dhcp 中继代理是 cisco 交换机中特定接口下的“ip helper-address”选项。
答案2
假设你的 DHCP 服务器和 DHCP 客户端都连接到同一个以太网段,并且假设这个以太网段跨越多个 L2 交换机,这些交换机与不同的“中继”互连(802.1q) 链接,当至少一个中继链接的配置不匹配时,我遇到过类似的问题。
详细地说,DHCP-DISCOVER / DHCP-OFFER的永无止境的循环(从DHCP服务器端看到),让我认为DHCP客户端是不是收到 DHCP-OFFER 后,继续重新发出 DHCP-DISCOVER 消息。此 DHCP-DISCOVER(从 DHCP 客户端看来)已从 DHCP-SERVER 正确接收。
考虑以下情况: 两个中继端口的错误/不匹配的设置意味着:
- SW A 沿中继发送到 SW B(或者从 DHCP 服务器到 DHCP 客户端)的 VLAN X 流量是 UNTAGGED;
- SW B 沿中继发送到 SW A(或者从 DHCP 客户端到 DHCP 服务器)的 VLAN X 流量被标记。
- 由于 SW B 的中继端口的本机 VLAN 设置,DHCP 客户端将不是从 DHCP 服务器接收数据包。
这很容易排除故障,如果您“控制”DHCP客户端主机。在这种情况下,假设eth0是 DHCP 客户端主机使用的网络接口,简单来说:
tcpdump -n -i eth0 ether-host <dhcp-server-mac-address>
将会呈现如果客户端是否从 DHCP-SERVER 接收 DHCP-OFFER。
如果你能不是控制客户端。
PS:显然,上述问题以及其他相关争论可以通过使用适当的技术轻松避免(例如地理空间路径规划,虚拟专用网络或其他非严格手动配置方法)但是......这超出了这个答案的范围
答案3
遇到了同样的问题。没有看到任何 DHCPACK。这里的问题是:
磁盘已满
dhcpd 无法写入/var/lib/dhcp/dhcpd.leases
。
答案4
就我的情况而言,我的 AP 控制器已DHCP Protection
启用。它确保没有 AP 转发任何不是从指定 IP/MAC 发起的 DHCP 回复。
我花了半天时间才找到这个功能并更新了设置。另一个 RTFM 综合症症状。