写在前面: 讲完那些网络基础的理论知识,大家别嫌那些文字枯燥无味的,想要进入到某个技术行业,从一个小白到入门、到可独自负责项目、到技术大佬,这一节节的门槛,都是充满了枯燥的无味的知识累积的,可能刚开始看这些文字会有很多晦涩难懂的语句和没见过的缩写单词还有看不懂的工作原理机制这些。基础还是得一点点啃,后面才能飞的高。
产生背景:
组网环境肯定是需要使用给每个客户端配置一个IP地址,这个IP地址在这个局域网必须是唯一的,因为网络层面的通信都是根据IP地址来的嘛,所以需要配置一个IP,且在当前网络环境中必须是唯一的。如果每个客户端都需要手动去配置的话,十几台还好说,如果是有几百上千天这个数量,不仅特别耗时耗力,而且有可能会配置重复的IP给两个电脑,这样后面出现了故障也只能再全部重新再排查一遍了,效率特别低下。DHCP出来了,他是自动给用户终端分配地址的一个协议,基本目前组网中都会配置这个协议给终端用户自动分配地址,不仅速度快,而且也不会有冲突。
工作原理:
DHCP的整体工作原理,是当用户终端开启自动获取地址的协议,才可以分配到DHCP服务器所分配的地址,不然都不在一个频道想给你,你也拿不到啊。最基本的环境满足,交换机开启了DHCP功能、终端用户开启了自动获取地址的协议,这都没有满足,其他都是空谈。 一般组网环境下,DHCP都是配置在网关交换机上面,因为DHCP的地址申请最开始发送的是广播报文,必须要在同一个网段内,你汇聚交换机是网关你就配置在汇聚上,你核心交换机上是网关你就配置核心上,这样做的好处是,便于后期的维护。**再建议一下DHCP的地址划分网关的时候取最小的那个地址,比如10.10.10.0/24 的地址取的网关就是 10.10.10.1/24 **,这样的好处就是后续地址池的扩展也不需要去额外的改,你若是取的最大的10.10.10.254/24 后续的地址池扩展成 23 位的,你这个地址就很尴尬。DHCP服务器分配地址的工作原理,简单来说就是,开启DHCP自动获取的客户端,会向局域网内发送一个广播报文,说我需要获取分配一个IP地址,当DHCP收到这个申请会发送一个广播报文,说我就是DHCP服务器,客户端收到后会发送一个单播报文,找DHCP服务器申请IP地址,DHCP收到单播报文后,会从地址池中选取一个IP地址,并向全网广播,有没有人是已经使用了这个地址的,确认全网内没有人使用这个地址,客户端会以这个地址为申请继续向DHCP服务器申请IP地址,这个时候是已经有明确某个IP地址的申请了,然后DHCP收到申请后会携带这个地址和地址租期、DNS等相关信息打包发送给客户端,客户端收到报文后把报文内的内容配置到自己的网卡上面。这一整个就是DHCP分配地址的工作原理。 上述这个图,就是基本DHCP工作原理的传输过程。
DHCP报文:
DHCP Discover 报文(广播)
这个报文是客户端向DHCP服务器申请地址的第一个报文,这个报文只有身为DHCP服务器才有资格去回复这个报文。
DHCP Offer 报文(单播)
这个报文是DHCP服务器回复客户端的第一个报文,内容就是告诉客户端我是DHCP服务器,你可以向我来申请IP地址的分配。
DHCP Request 报文(广播)
报文由客户端发起,向服务器发起IP地址等相关信息的申请。
第一个 DHCP ACK 报文(单播)
DHCP服务器从自己的地址池中选出一个地址,发送给客户端,告诉客户端,你可以申请这个IP地址。并会多做一步,就是会向全网先进行一个广播,确定没有终端使用的是这个地址,他才会发送给客户端。
DHCP Request(renew) 报文 (单播)
当DHCP服务器确认没有终端使用这个地址的时候,客户端会携带这个IP的申请信息,向DHCP服务器申请这个IP地址香关信息。
第二个 DHCP ACK 报文(单播)
DHCP服务器确认客户端可以使用这个地址,并在地址池中标记这个地址已被这个客户端使用,下次分配地址不会让终端申请这个IP地址。
DHCP租期续期:
DHCP分配出去的地址并不是永久使用的,是需要每隔一段时间回收不在线的IP地址,确保目前分配出去的地址都是在使用的。DHCP根据这个租期续约有三种定时器来确定。
租期更新
客户端是会在租期时间达到剩余一半的时间时候主动会发送一个 DHCP Request 报文给DHCP服务器,这个报文内容就会包含是否还需要继续使用这个地址。DHCP会根据内容来回复DHCP ACK报文,回复后客户端根据回复的报文内容更新自己的DHCP到期时间。
租期重绑定
客户端在租期剩余一半时候发送的DHCP Request报文,DHCP服务器一直没有回复,等到租期使用时间超过了87.5%的时候,客户端会再次重新发起一个 DHCP Request报文,报文内容是重新向服务器申请这个地址,并分配给自己使用,若DHCP回复ACK确认报文可以使用,他就会重置自己的租期时间,并继续使用这个IP地址。若DHCP服务器回复的NCK拒绝报文,客户端会立即停用自己目前的IP地址,并重新向DHCP申请地址。流程和第一次申请的流程一样。
租期失效
当客户端发送的第二个DHCP Request报文后,DHCP还是没有回复任何报文,一直到租期时间耗尽,会广播发送一个 Release 报文,来释放自己目前使用的地址,并重新寻找DHCP服务器来申请地址,这个时候会把自己的地址设置为169.254.0.0/16的一个随机地址,并5分钟为周期发送地址申请信息,一直等到有DHCP服务器回复,然后重新申请一个新的IP地址。
扩展:
DHCP使用的是UDP 67 和 68号 端口。 在客户端地址申请时候,发送的是广播报文,广播报文只能在广播域内传播,若是有跨网段的情况,可以使用DHCP 中继来中转广播报文。 DHCP Snooping 是DHCP根据网络安全来扩展的一个工具,因客户端无法识别DHCP服务器的正式身份,且网络内有多台DHCP服务器存在时,客户端是根据最先收到的DHCP地址确认报文来指定DHCP服务器,其客户端无法区分DHCP服务器的真伪,DHCP Snooping 可以用来保护局域网内DHCP服务器的安全可靠的目的,禁止仿冒未经允许的DHCP服务器回复内网用户报文。
标签:报文,IP地址,地址,DHCP,服务器,客户端 From: https://blog.51cto.com/u_14167341/5805226