首页 文章

ISC dhcrelay不将DISCOVER数据包转发到dhcp服务器

提问于
浏览
-1

我正在做DHCP中继POC . 我的设置如下 .

DHCP Client(VX-works) ----------- DHCP Relay----------- DHCP Server (VXworks)

在此设置中,DHCP客户端正在发送DICOVER数据包,但中继代理未收到数据包 . 我查看了代码,发现Berkeley Packet Filtering(BPF)已应用于套接字 . DHCP Relay只是丢弃数据包而不是将其转发到服务器 .

为了在调试中进一步移动,我从代码中删除了BPF过滤器和校验和验证部分 .

现在,DHCP Relay正在转发数据包,但数据包不是DHCP服务器所期望的 . DHCP Relay正在将数据包从广播更改为单播 . 在服务器端接收的帧,以太网头,IP头和UDP头是正确的(我在Wireshark日志中检查过),但是bootstrap协议选项字段不正确 .

我还在客户端捕获了Wireshark日志 . 客户端按预期发送DICOVER数据包 .

如果您需要更多信息,请发表评论 .

Realy:基于ISC dhcrelay(4.3.1P1)Linux(3.14内核)

提前致谢 .

编辑:下面是在DHCP客户端捕获的单个数据包的十六进制转储 .

ff ff ff ff ff ff 00 20 61 1e 9e 14 08 00 45 00 01 1a 4f fe 40 00 20 11 09 d6 00 00 00 00 ff ff ff ff 00 44 00 43 01 06 fd 9b 01 01 06 00 00 ae af 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 61 1e 9e 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63 35 01 01 39 02 02 4e 37 04 0f 06 03 01 ff

DHCP Discover packet (bootstrap protocol)

1 回答

  • 0

    BPF过滤器在common/bpf.c中定义 . 它检查数据包是否是具有单个片段(没有分段)的IP / UDP数据包并且发往端口67,否则它将丢弃它 .

    你提到你的数据包是一个IP / UDP数据包,但是你确定它没有碎片并且有正确的端口吗?

相关问题