|
|
|
|
 请教dhcping的问题 - Sheeron [ 2004-05-23 17:31 | 289 byte(s)]
 Re: 请教dhcping的问题 - milod [ 2004-05-24 08:11 | 108 byte(s)]
 Re: 请教dhcping的问题 - Sheeron [ 2004-05-24 10:30 | 441 byte(s)]
 Re: 请教dhcping的问题 - Sheeron [ 2004-05-24 11:21 | 253 byte(s)]
 对不起,我太想当然了 - milod [ 2004-05-24 22:07 | 382 byte(s)]
 Re: 对不起,我太想当然了 - Sheeron [ 2004-05-26 13:20 | 297 byte(s)]
 Re: 对不起,我太想当然了 - milod [ 2004-05-26 14:42 | 195 byte(s)]
 Re: 对不起,我太想当然了 - Sheeron [ 2004-05-30 13:53 | 91 byte(s)]
 用unicast效率高一些 - milod [ 2004-05-30 19:59 | 139 byte(s)]
 Re: 用unicast效率高一些 - Sheeron [ 2004-05-31 21:12 | 28 byte(s)]
 Re: 对不起,我太想当然了 - milod [ 2004-05-24 22:08 | 167 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
|
经过milod大侠的指点,我找到可以发送dhcp请求的软件dhcping。但现在的问题是在dhcp client上使用dhcping命令发送dhcp请求,但是返回结果是no answer。察看dhcping的源代码,发现select函数的返回值为零,也就是timeout。而dhcp server确实是在运行,dhcp server的ip也可以ping到。请问这是什么原因,如何解决?
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
dhcp client是用etherboot网络引导,内核是从dhcp server上下载到内存中,而且/文件系统也是从dhcp server下载并作为ram disk放在内存中。其中我用到了busybox,没有login,所有的操作应该都是作为超级用户吧。
还有,dhcp client引导启动后,运行#dhcping -c 211.9.194.42,在另一台windows下用comview查看数据包,可以看到dhcp client发送的数据包,不过dhcp请求包是作为udp包的数据放在最里面一层的。是不是这样的话,dhcp server就无法判断出这是一个dhcp请求?
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
刚看了rfc2131,上面说到dhcp使用udp作为其传输的协议。由dhcp clinet发出的dhcp信息被发送到dhcp server的67端口,由dhcp server发出的dhcp信息被发送到dhcp clinet的68端口。这样的话,dhcp server应该判断出dhcp client发出的DHCPREQUEST。但是dhcp server为何没有响应?
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
刚才看了一下rfc2131,dhcp确实是基于udp的(ip之上)。ip层用的是limited broadcast IP。(当然链路层也要用广播的)
我没仔细看,想当然认为dhcp没封装在ip里面,因此前面说的dhcp已不是ip帧,对此给你带来误导请原谅!
唉!当时学的时候没仔细看书啊!(Comer知道的话都哭了)
你发的是DHCPREQUEST?你不知道dhcp server ip怎么发的呢?
应先发DHCPDISCOVER。
|
|
|
----
性格左右命运 气度影响格局
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
如果还不行,就截下完整的以太网帧看看吧。
1.查查看它是不是广播发送的。
2.如果1没问题的话,就只能查dhcp帧内容各项了。
如果没问题,就一定可以的
|
|
----
性格左右命运 气度影响格局
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
rfc2131原文如下:
The client broadcasts a DHCPREQUEST message on its local subnet.
The message includes the client's network address in the
'requested IP address' option.
DHCPREQUEST既然是广播,还需要知道dhcp server的ip吗?
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
确实不一定要知道dhcp server ip,但用unicast可减小网络负载。
协议中常用'u may ...'的用法。说明这并非强制。
我想,大多数协议实现中一旦获得server ip后,就由multicast改为unicast了!
|
|
----
性格左右命运 气度影响格局
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
你说的“改过来”是何意?
在rfc中的意思是multicast也能行。这是看具体协议栈是怎么实现的了。(一般的实现都会选效率高一点的unicast吧)
|
|
----
性格左右命运 气度影响格局
|
|
[Original]
[Print]
[Top]
|
|
|