在AndroidM中遇到一个企业级wifi连接失败的问题,显示分配IP地址失败。同时连接其他路由器是正常的。IP地址分配自然与DHCP有关了。查看DHCP 包,如下:
发现路由器回复了NAK,导致申请IP地址失败。后面是不停的request和NAK,这就非常奇怪了。既然已经回复了DHCP Offer了,为什么又不给分配IP了呢?
查看DHCP Discover包如下:
查看DHCP Request包如下:
发现DHCP Discover中相对多了61可选项:Client identifier。通过查找资料,找到一个patch,就是把Discover包中的61可选项删除。这样就可以连接成功了。修改之后,是OK的。
这个问题是DHCP server端的审查问题,若Discover有61可选项,则Request也应该具有。若Discover具有,而Request没有,处理严格的server端则不会分配IP,直接回复NAK。若Discover和Request两包都具有61可选项,按协议讲,server端应该分配IP地址的。