[已解决]我手动将DHCP数据包构建为DHCP服务器的客户端 . 到目前为止,我能够发送DHCPDISCOVER数据包并从服务器接收DHCPOFFER作为回报 . 但是,当我发送DHCPREQUEST时,我根本没有收到预期的DHCPACK .

DHCPDISCOVER:http://digitalphoenix.info/uploads/so/dhcpDiscover.jpg

DHCPOFFER:http://digitalphoenix.info/uploads/so/dhcpOffer.jpg

DHCPREQUEST:http://digitalphoenix.info/uploads/so/dhcpReq.jpg

(在上面的Honeypot守护进程是192.168.0.2,DHCP服务器192.168.0.1,客户端A(192.168.0.6)试图探测不存在的192.168.0.106 . 试图获得'192.168.0.106'的租约)

我推断DHCP服务器根本不发送ACK,因为:

1)DHCP服务器显示192.168.0.106没有活动租约

2)DHCP服务器通常在向探测可用性(已测试)发送ACK之前向请求的IP发送ARP请求(未发送ARP请求)

因此问题在于DHCP请求数据包被丢弃或被拒绝......?我甚至没有得到NACK

背景:我正在编写一个Honeypot守护程序,它代表虚拟高交互Honeypots(VM)动态分配IP地址 . 它侦听未应答的ARP请求,获取目标 . IP并尝试租用该特定目的地 . 来自DHCP服务器的IP地址,用于下一个未绑定的Honeypot . 当确认租约时,守护进程最终返回对源的ARP回复 . 蜜 jar 存在于单独的子网中,目标是将它们逻辑地放置在与主机相同的子网中 . 从那时起,守护进程负责绑定的蜜 jar 的所有传出/传入流量 . 以太网帧src addr是Honeypot守护进程/主机的MAC . 但是,bootp中指定的MAC是完全任意的 .

编辑:刚刚注意到UDP校验和是空的,没有注意到这是因为wireshark禁用了udp校验和验证 . 这有必要吗? DHCPDISCOVER没有它,但无论如何都得到了响应?对于可能导致问题的小建议,我们将不胜感激,谢谢你们

edit2:纠正了UDP校验和,问题仍然存在

额外信息:192.168.0.0/24租赁范围2-254

wireshark capture / pcap:http://digitalphoenix.info/uploads/so/honeyPotCapture.pcap(与上面相同,除了假MAC和目标IP是192.168.0.109而不是x.x.x.106)

最终编辑:修正 . 我瞎了 . 当RFC说不到时,原来填写了服务器IP地址字段 . 令人惊讶的是,晚安的睡眠可以做些什么 .