DHCP协议的原理以及实现过程
1. 简介
DHCP是一个动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议 。在DHCP实现过程中有两个对象,一个是DHCP client,一个是DHCP server,DHCP使用UDP协议工作,server使用67端口,client使用68端口。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。
2. DHCP的功能
1、保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2、DHCP应当可以给用户分配永久固定的IP地址。
3、DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)
4、DHCP服务器应当向现有的BOOTP客户端提供服务。
3. DHCP请求过程以及原理
DHCP请求IP地址的过程如下:
1)主机发送DHCPDISCOVER广播包在网络上寻找DHCP服务器;
2)DHCP服务器向主机发送DHCPOFFER单播数据包,包含IP地址、MAC地址、域名信息以及地址租期;
3)主机发送DHCPREQUEST广播包,正式向服务器请求分配已提供的IP地址;
4)DHCP服务器向主机发送DHCPACK单播包,确认主机的请求
需要说明的是:DHCP客户端可以接收到多个DHCP服务器的DHCPOFFER数据包,然后可能接受任何一个DHCPOFFER数据包,但客户端通常只接受收到的第一个DHCPOFFER数据包。另外,DHCP服务器DHCPOFFER中指定[1] 的地址不一定为最终分配的地址,通常情况下,DHCP服务器会保留该地址直到客户端发出正式请求。
正式请求DHCP服务器分配地址DHCPREQUEST采用广播包,是为了让其它所有发送DHCPOFFER数据包的DHCP服务器也能够接收到该数据包,然后释放已经OFFER(预分配)给客户端的IP地址。
如果发送给DHCP客户端的地址已经被其他DHCP客户端使用,客户端会向服务器发送DHCPDECLINE信息包拒绝接受已经分配的地址信息。
在协商过程中,如果DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已经过期,DHCP服务器会发送DHCPNAK消息给DHCP客户 端,让客户端重新发起地址请求过程。