什么是DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。
原理:
抓包:
Dhcp协议的工作流程:
1.发送阶段:因为刚接入网络中的客户端并不知道DHCP服务器的地址,所以使用泛洪的方式广播Discovery请求报文来发现网络中的DHCP服务器。
Requst报文极为重要,它还事关地址续租问题:
当租期时间剩下50%时,DHCP客户端发送Requst(单播)给当初获取地址的DHCP服务器;
当租期时间只剩下12.5%时,DHCP客户端再次发送Requst(注意这次是广播)泛洪:
如果原来的服务器回复了则继续用
如果原来的服务器因为各种原因崩溃了没法回复ACK,而网络中的其他服务器(或者是原来的服务器没有崩溃)收到客户端的request发现你的租期与它记录的不一样,给客户端会回复一个NAK报文,客户端收到后就会重新发送discovery报文,重新在网络中请求地址
如果在租期内没有收到服务器的回复,租期满了,停止使用地址,重新发送discovery
此过程完成才算真正获取到ip地址了
一旦获取到ip地址将立即进行地址冲突检测:
若发生地址重复,两个重复的客户端将进行反复争用:
此时,新配置的DHCP客户端将发送DHCP decline 报文告诉服务器地址冲突
原因分析:地址池没有排除掉,已经分配的地址
解决方案:dhcp配置排除列表
注:原文档私信我将无偿分享
联系客服