DHCP较为深入的研究

上课的时候,老师说了一堂课的 DHCPv4,有点颠覆我的认知,原来这样重要的协议各个厂商都不能严格的按照协议标准。当然可以确定的是,同样的协议是有不同的实现方式的,单纯的研究理论是没有用的。

在校园网下抓了下包,至少这是在实际生产环境中的运行状况,应该比模拟器或者虚拟机中的结论更有实际意义。抓包器解析过的内容不能复制,所以就只好截图了,下面就一这些图片来说一下吧,解说在图片的下方。

DHCP Discover

二层的源地址应该就是本机地址了,截图的时候忘记确认了,不过看这毫无规律的十六进制数字应该就是了,目的是广播地址。

三层源地址 0.0.0.0 可以表示任意网络中的任意主机,比如说默认路由,也可以用来表示自己没有 IP 地址,目的地址依旧是广播地址,和标准是一样的其他的内容不需要了解,只需要知道原地址和目的地址就好了,二层也一样。

四层用的是 UDP 协议,客户端的端口号是 68,服务器的端口号是 67。

这里就有点复杂了。不知道为什么抓包程序把这里写成引导协议(Bootstrap Protocol)了,这里难道不应该写成动态主机配置协议吗?当然这都不重要,至少内容没有错就好。

这里面,除了客户端的 MAC 以外,都没有内容,都是 0,这里应该正如这一个过程说的那样,就是为了让服务器发现自己。

DHCP Offer

这里的第二层就有些内容了,源地址和目的地址也都有了,可是似乎出了点乌龙,我截的第一张图的,原地址和这张的目的地址竟然不一样!这说明我抓的应该并不是 DHCP 给我的,可能是这个网络网络中其他的客户端发起的吧,亏得我还找的是编号靠的比较近的,不过不重要,重要的看帧头、包头、应用层内容,这二层只要知道源地址和目的地址不是广播就好。

DHCP Request

DHCP ACK


发布于 2017-05-22 | 吉ICP备17001717号-1 | © Copyright 2016-2019, Luya Tsai