DHCP
1、DHCP功能概述
DHCP(Dynamic Host Configuration Protocol) 动态主机配置协议,用于在局域网中集中地管理和分配IP地址,提高地址使用率。
DHCP是基于UDP协议,客户机到服务器的通信使用67号端口,服务器到客户机的通信使用68号端口。
DHCP有三种分配IP的机制:
1、手动分配:由网络管理员分配指定IP地址给主机,由服务器发送;
2、自动分配:服务器分配一个永久的IP地址到客户机;
以上两种方式分配的IP地址都具有永久性。
3、动态分配:服务器分配一个有固定时间期限的IP地址给客户机,时间到期或客户端主动放弃地址后,此IP地址可以重复分发给其他主机使用。
2、DHCP基本原理
2.1 客户端广播寻找DHCP服务器(DISCOVER)
当DHCP客户端第一次登录网络的时候,计算机发现本机上没有任何IP地址设定,将以广播方式发送DHCP discover发现信息来寻找DHCP服务器;
2.2 服务器响应客户机分配IP地址(OFFER)
在修改后的服务里,这一步是单播。但在原始的opendhcp交互中,这一步是广播。
2.3 客户端接受IP地址广播请求(REQUEST)
2.4 服务器确认IP地址分配(ACK)
DHCP服务器收到Request请求报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录,如果有则发送ACK应答报文,通知用户可以使用分配的IP地址。
2.5 服务器无法分配(NAK)
如果DHCP服务器收到Request请求报文后,没有发现有相应的租约记录,或者由于某些原因无法正常分配地址,则向DHCP客户端发送NAK应答报文,通知用户无法分配合适的IP地址。
2.6 客户端请求释放IP地址(RELEASE)
当DHCP客户端不再需要使用分配IP地址时(一般出现在客户端下线等状况)就会主动向DHCP服务器发送RELEASE请求报文,告知服务器用户不再需要分配IP地址,请求DHCP服务器释放对应的IP地址。
2.7 客户端放弃IP地址(DECLINE)
DHCP客户端收到DHCP服务器ACK应答报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则会向DHCP服务器发送Decline请求报文,通知服务器所分配的IP地址不可用,以获得新的IP地址。
2.8 客户端查询配置信息(INFORM)
DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则向DHCP服务器发送Inform请求报文;DHCP服务器在收到该报文后,将根据租约进行查找到相应的配置信息后,向DHCP客户端发送ACK应答报文。
2.9 租约续约
在使用租期超过50%时,Client单播向Server发送REQUEST。若Server返回ACK报文,则延长IP地址租期;若没有收到Server返回的ACK报文,则Client继续使用这个IP地址。
在使用租期超过87.5%时,Client广播向Server发送REQUEST报文。若Server返回ACK报文,则延长IP地址租期;若没有收到Server返回的ACK报文,则Client继续使用这个IP地址。
当租约到期后或在上述两步中Server返回NAK报文,Client需要重新广播DISCOVER报文,以获得新的IP地址。