DHCP

DHCP服务的工作条件:
1.拥有真实的物理网卡,或者连接广播域的真实物理网卡
2.该接口或者物理网卡必须有一个合理地IP地址
DHCP工作原理简述:
DHCP discover报文
DHCP
DHCP discover:发现DHCP服务器地址,同时向DHCP服务器发送地址请求 (源Mac地址:主机本身 目标Mac地址:广播 源IP地址:0.0.0.0 占位符 目标IP地址:广播)
此段报文意义是为了发现网段中存在的DHCP服务器,向网段中发送目标MAC地址为广播的discover报文,以此来找到这段网络中的DHCP服务器,源MAC地址为主机本身,同时源IP地址为0.0.0.0(因为本机还没有获得IP地址),目标IP地址也是广播,当然,网段中任何一台安装了TCP/IP协议的计算机都会接收到这个报文,但只由DHCP服务器才会回应这个报文
同时正常情形下DHCPdiscover报文的等待时间为1S,也就是DHCP客户端发送出去一个DHCPdiscover报文后等待1S的时间,若没有响应则会继续发送第二个discover报文,持续四次,且第一次等待响应时间为1S,后三次分别为9S、13S、16S,若持续无响应则会显示错误信息,之后会根据用户选择在5分钟之后重复一次discover过程
DHCP offer报文
DHCP
DHCP offer:应答报文 收到主机的请求,服务器回复主机的请求 (源Mac地址:服务器 目标Mac地址:广播 源IP地址:服务器 目标IP地址:广播) 报文中包含了将受到本IP地址的主机的Mac地址报文
当DHCP服务器监听到网段中客户端发送出的DHCPdiscover报文后,会从本服务器地址池中选择还未租出的并地址最靠前的IP和其余TCP\IP设定响应到客户端
但是由于此时客户端并没有IP地址,所以此时服务器发送的报文中目标MAC地址和目标IP地址都是广播地址,但报文中会包含有客户端的MAC地址信息,并加上一个XID编号来进行辨别该报文;在报文中还会包含一个租约期限的信息
DHCP request报文
DHCP
DHCP request:回复所有服务器本主机使用了那个服务器发来的IP地址 (源Mac地址: 目标Mac地址:255.255.255.255 源IP地址:0.0.0.0 目标IP地址:广播255.255.255.255)
当网段*设有多个DHCP服务器,则会有多个服务器共同响应给客户端多个DHCP offer报文,但此时客户端只能选用其中一个IP地址进行使用,同时回复其他DHCP服务器一个DHCP request报文,表示本客户端使用了哪一个IP地址,你们的IP地址我需要进行退回,不予使用
此报文的目标MAC地址和目标IP地址是广播地址,是为了告诉网段中其他DHCP服务器我已经使用了某个服务器的IP地址,你们的IP地址撤回吧,我不需要了
DHCP ack报文
DHCP
DHCP ACK:确认对方主机使用该IP (源Mac地址:服务器 目标Mac地址:广播 源IP地址:服务器 目标IP地址:广播)
该报文的意义是为了确认对方使用本服务器的IP地址,并同时其余服务器回收曾经发送给该客户端的IP地址,准备下一次使用
该报文的目标MAC地址和目标IP地址仍为广播地址,是为了确认该客户端使用了自己的IP地址
租约期限问题
同时前面所提到的IP地址的租约期限问题:
1.当使用时间到达租约期限的50%时,客户端则会以单播形式向服务器发送前面提到过的request报文来进行续租IP地址,若客户端成功接收到了ack报文则会根据相应的时间对IP地址进行延长租期;相反,若客户端没有成功接收到来自服务器的ack报文,客户端还是会继续使用该IP地址
2.当使用的时间到达租约期限的87.5%时,客户端则会以广播的形式发向服务端发送request报文,若客户端成功接收到来自服务器的ack报文则会根据相应的时间进行延长IP地址的租期;相反,若客户端没有成功接收到来自服务器的ack报文,客户端还是会继续使用该IP地址,直到该IP地址的租约到期时释放该IP地址,并重新开始IP地址的申请过程
地址重复问题
若客户端收到的IP地址在同一网段内已经被使用,则会回复给客户端一个decline的报文进行拒绝接受报文中的IP地址信息
客户端地址不正确问题
若客户端换到其他网段中时,此时客户端发送的request中的IP地址即为不正确的,此时服务器会发送nak报文给客户端,让客户端重新发起地址请求过程