免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: tqyou85
打印 上一主题 下一主题

DHCPOFFER数据包的问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2008-10-21 14:02 |只看该作者

回复 #20 KLL 的帖子

嗯,这个我知道,是通过死循环一直解析收到的数据包,直到收到offer包?
就是这个循环接收的要解析收到的所有的包,不太好

论坛徽章:
0
22 [报告]
发表于 2008-10-21 14:10 |只看该作者
由于我需要改变src_mac 来模拟很多的client, 把bootp flags 置为 broadcast 来收来自 dhcp server 的offer, 然后再发 dhcp request, 才这么做,如果报文很多的话会有性能的问题,不知道你有什么好的方法?

论坛徽章:
0
23 [报告]
发表于 2008-10-21 15:56 |只看该作者
我就是觉得很奇怪, DHCP明明是个应用层的协议,而且我tcpdump也是有数据包发送过来的,为什么我用数据报套接字不能接收,只能用原始套接字接收呢?

论坛徽章:
0
24 [报告]
发表于 2008-10-21 16:49 |只看该作者
sockfd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));

论坛徽章:
0
25 [报告]
发表于 2008-10-22 14:38 |只看该作者

回复 #22 KLL 的帖子

今天测试了下,原来我的代码是没问题的,只是之前的测试机上面加了很多规则,包被过滤掉了
但是现在还是有个问题:DHCP服务器返回的offer包跟服务器的操作系统有关吗?怎么如果服务器是windowswindows环境下的,客户端自动获取IP。对这一过程抓包,发现服务器返回的offer包是个广播包,目的IP地址为255.255.255.255

但是如果DHCP服务器是在linux环境下配置的,抓包分析客户端自动获取IP的过程,发现服务器返回的offer包是单播的,而且目的IP地址是服务器预备分配给客户端主机的一个IP,但是这个时候应该客户主机还没有获取到IP吧

这样的话,如果服务器是linux环境下的,我要怎么通过socket编程来获取服务器返回的offer包呢?

论坛徽章:
0
26 [报告]
发表于 2008-10-23 17:45 |只看该作者
这个跟server 与 client 的实现有关吧, 你可以看看相关的RFC

论坛徽章:
0
27 [报告]
发表于 2008-10-23 18:00 |只看该作者
server 维护了一张表,表里有请求者的mac 与 offered ip, 如果一个dhcp request 的src-mac 在这张表里,offer 就是unicast, 因为这时client 是有ip 的;
如果是一个新的client, client 会先发一个dhcp discover, server 收到后会回一个 dhcp offer,这个offer 是broadcast,
因为这时client 还没有ip, client 收到 这个offer 后会发一个dhcp request, 然后server 给一个 dhcp ack。 这两个报文可以是broadcast or unicast, based on bootp flags.

我的天,不知道说清楚了没?

论坛徽章:
0
28 [报告]
发表于 2008-10-23 18:08 |只看该作者
原帖由 KLL 于 2008-10-23 18:00 发表
server 维护了一张表,表里有请求者的mac 与 offered ip, 如果一个dhcp request 的src-mac 在这张表里,offer 就是unicast, 因为这时client 是有ip 的;
如果是一个新的client, client 会先发一个dhcp discover ...


我在网上看到这样的说法:DHCP SERVER给终端的响应报文是根据DHCP报文中的内容决定是广播还是单播,一般都是广播形式。
什么样的DHCP报文内容可以决定server发送的offer包是广播呢?

论坛徽章:
0
29 [报告]
发表于 2008-10-23 18:09 |只看该作者

回复 #28 tqyou85 的帖子

哦,清楚了,不好意思,刚才看错了

论坛徽章:
0
30 [报告]
发表于 2012-03-14 17:45 |只看该作者
你好很高兴认识你,我有关于DHCP的问题想问你,我的QQ是382605917.谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP