一、概括
DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)主要用于给内网的客户端分配IP地址。端口号为UDP67和UDP68端口,67是DHCP服务器使用的端口,68是客户端使用的端口。
有三种分配方式:
1、自动分配:分配一个IP地址并永久使用
2、静态分配:有DHCP服务器指定IP地址到指定客户端
3、动态分配:IP地址被释放之后还可以被其他客户端使用
二、工作过程
DHCP分配地址
1、首先客户端发送DHCP discover广播包寻找DHCP服务器,源IP0.0.0.0,目的IP255.255.255.255
2、DHCP服务器收到discover报文之后给客户端回复DHCP offer报文,包含可以分配的IP地址
3、客户端收到之后发送DHCP request报文,请求获取该IP地址
4、服务器回复DHCP ACK报文确认提供该地址给客户端
其他报文
DHCP NAK:DHCP服务器收到request报文之后无法提供IP地址的时候回复NAK报文(比如地址池无可用IP)
DHCP infor:客户端需要从DHCP服务器请求更详细的配置信息(网关地址、DNS服务器地址)
DHCP decline:客户端收到DHCP ACK报文之后,发送无故ARP检测IP地址是否冲突,如果冲突则向服务器发送decline报文,告诉服务器分配的地址不可用
DHCP release:释放IP地址
三、租期
当IP地址的租期到达50%的时候,客户端会向服务器发送DHCPrequest报文请求续期,如果服务器没有回复的话,租期到达87.5%的时候客户端会再次发送DHCP request报文请求续期,如果服务器还是没有回应续期,则等到租期到期的时候,客户端发送DHCP release报文释放IP地址,再重新获取IP地址。
四、DHCP中继介绍
由于客户端与服务器之间发送的都是广播包,所以针对客户端和服务器不在同一网段的情况下,会导致数据包无法交互,所以就出现了DHCP中继这个中间人来进行数据包的转发。
1、中继工作过程
五、DHCP获取不到地址的原因
1、检查DHCP配置是否正确,客户端到服务器是否跨三层,如果跨三层的话需要配置DHCP中继
2、查看DHCP地址池是否还有剩余可分配地址
3、直连看是否可以正常获取
4、抓包看数据包是否有正常交互