dhcp协议_跟百哥学网络18:DHCP协议工作原理分析

百哥的第23篇原创

图文并茂的看一下dhcp的工作过程

0bf8410918bd58460b0d2fec08e98d67.png

这是一台华为路由器,加两台PC机,路由器来充当PC的DHCP服务器

既然充当服务器,我们在路由器上,开启dhcp服务,并建立两个地址池

a329475041c54e9c7e25e2659f54b8f0.png

然后,在接口上,启用dhcp

9a3e0c2eda5961bb3d3cd222b24a71bc.png

再然后,到PC机上查看,怎么得不到地址呢,明明已经配置好dhcp了啊?

bc0dddd32c73689b1eda69f3b2e01b00.pnged14f3e721f4e051994e5b7d79ebe097.png

接下来,给路由器的0口和1口,分别配置上地址

0c6e6512d1bbeccade69b1f79c8a84a4.png

再来PC这边看

fca6c282429e115366d486dc0f58d6c8.png

已经获得了地址

这台DHCP服务器有两个地址池,10段和20段,那么当他收到1个dhcp请求,如何判断应该从哪个地址池分地址?

答案是,根据他收到dhcp请求的接口,哪个接口收到的,就去拿个和该接口相同网段的地址发下去。

一开始为什么不发地址,因为接口没地址啊,接口没地址就无法判断从哪个池下发地址啊。

再来分析DHCP获得地址时的四个过程

现在拿右边的全新PC来看,打开抓包工具wireshark

c801c9dee286295532bef58e3b57e416.png

可以看出,PC获取地址总共做了7个动作,分别来看

第一步,以广播的形式,发出一个dhcp discover报文,顾名思义,是为了寻找dhcp服务器

因为pc这时候还没ip,所以源ip是4个0

pc这时候也不知道dhcp服务器的ip,所以目标ip是广播,4个255

mac地址的话,源mac是pc自己,目标mac也是广播

a399b6875948b4f2fd0799daa74aadce.png捕获的dhcp discover报文

第二步,dhcp服务器会回复dhcp offer

offer报文可以通过单播来发送,使用单播可以减少网络中报文的数量,提高网络的性能

但是等等,不是说PC还没地址吗,单播必须写明确的地址,写什么地址??

PC是没有ip地址,但是PC有mac地址啊,写明mac地址,这样单播报文就可以正常送达了

2ba3e0a975694e346fdda97daca265b4.png捕获的dhcp offer报文

第三步,PC会向服务器申请使用这个地址,回应一个dhcp request

因为在网络中可能不止存在一台dhcp服务器,所以PC机也是可能从多个服务器中都获得地址的,就像咱们在找工作的时候,可能多家公司都发来了offer,咱们需要回应别人的offer,才算确定接受了这个岗位。

所以PC收到offer后,也是一样的,再像服务器发一个request,表示接受这个地址。

request包的目标地址是广播,也是告诉其他服务器,pc已经心有所属了。

abcf5a09d0acbad39b3fb712618a5c9d.png捕获的dhcp request报文

第四步,服务器会回应一个确认包,dhcp ack

确认这个地址分配给了PC,这个就比较好理解了,无需做太多说明。

bd9971b28944985f8f8b5ad551d78cb5.png

第五步,检测一下有没有地址冲突

这个步骤,其实和dhcp没有太大关系了,主要是PC机测试一下,自己刚拿到的新地址,在网络中是不是独一无二的,有没有冲突。

连发3个无故arp,用来检测网络中是否还存在相同的地址,如果没收到回应就正常,收到回应的话,会找dhcp服务器再申请个新的。

f977faada063de21d2df2973eda25941.png

dcf0c9ba60e476c9396ded9c0315175e.pngEND

如果你看到了这里,百哥想请你帮个小忙:

1.帮我点赞,分享,设置星标3连,方便你最快找到百哥,也让更多的人真正爱上ICT技术,学好ICT技术

2.关注我和专栏,这是一个会陪你至少10年的技术号,定期分享ICT技术。

答疑/获取更多技术资料/商务合作

QQ:1769453850

技术交流群:1160255356