DHCP动态主机配置协议,从BOOTP(Bootstrap Protocol)协议发展而来,是IETF为实现IP的自动配置而设计的协议,它可以为客户机自动分配IP地址、子网掩码以及缺省网关、DNS服务 器的IP地址等TCP/IP参数。
DHCP协议报文采用UDP方式封装,DHCP服务器所侦听的端口号是67,客户端的端口号是68。
DHCP的原理:
1. DHCP客户端初次接入网络时,会发送DHCP发现报文(DHCP Discover),用于查找和定位DHCP服务器。
2. DHCP服务器在收到DHCP发现报文后,会发送DHCP请求报文(DHCP Offer)此报文包含IP地址等配置信息。
3. 在DHCP客户端收到服务器发送的DHCP提供报文后,会发送DHCP请求报文(DHCP Request)另外在DHCP客户端获取IP地址并重启后,同样也会发送DHCP请求报文,用于确认分配的IP地址等配置信息。
4. DHCP客户端获取的IP地址租期快要到期时,也会发送DHCP请求报文向服务器申请延长IP地址租期。
5. 收到DHCP客户端发送的DHCP请求报文后,DHCP服务器会回复DHCP确认报文(DHCP ACK)客户端收到DHCP确认报文后,会将获取的IP地址等信息进行配置和使用。
6. 如果DHCP服务器收到DHCP-Request报文后,没有找到相应的记录,则发送DHCP-NAK报文作为应答,告知DHCP客户端无法配合适IP地址。
7. DHCP客户端通过发送DHCP释放报文(DHCP Release)来释放IP地址。收到DHCP释放报文后,DHCP服务器可以把该IP分配给其他DHCP客户端。
DHCP的报文类型:
DHCP客户端和服务器之间的报文交互过程:
为了获取IP地址等配置信息,DHCP客户端需要和DHCP服务器进行报文交互。
首先,DHCP客户端发送DHCP发现报文来发现DHCP服务器。DHCP服务器会选取一个未分配的IP地址,向DHCP客户端发送DHCP提供报文。此报文中包含分配给客户端的IP地址和其他配置信息。如果存在多个DHCP服务器,每个DHCP服务器都会响应。
如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文,DHCP客户端将会选择收到的第一个DHCP提供报文,然后发送DHCP请求报文,报文中包含请求的IP地址。收到DHCP请求报文后,提供该IP地址的DHCP服务器会向DHCP客户端发送一个DHCP确认报文,包含提供的IP地址和其他配置信息。
DHCP客户端收到DHCP确认报文后,会发送免费ARP报文,检查网络中是否有其他主机使用分配的IP地址。如果指定时间内没有收到ARP应答DHCP客户端会使用这个IP地址。如果有主机使用该IP地址,DHCP客户端会DHCP服务器发送DHCP拒绝报文,通知服务器该IP地址已被占用。然后DHCP客户端会向服务器重新申请一个IP地址。
DHCP中继及option82
(1)定义:DHCP Relay即DHCP中继,它实现了不同网段之间的DHCP服务器和客户端之间的报文交互。
(2)作用:DHCP中继承但处于不同网段之间的DHCP客户端和服务器之间中继服务,将DHCP协议报文跨网段透传到目的DHCP服务器,最终使网络上的DHCP客户端可以共同使用一个DHCP服务器。
(3)工作原理:DHCP客户端发送请求报文给DHCP服务器,DHCP中继收到该报文并适当处理后,以单播形式发送给指定的位于其他网段上的DHCP服务器,服务器根据请求报文中提供的必要信息,通过DHCP中继配置信息返回给客户端,完成对客户端的动态配置。
(4)Option82字段:称为中继代理信息选项,该选项记录了DHCP客户端的位置信息,DHCP中继或DHCP Snooping设备接收到DHCP客户端发送给DHCP服务器的请求报文后,在该报文中添加option82,并转发给DHCP服务器。
管理员可以从Option82中获得DHCP客户端的位置信息,以便定位DHCP客户端,实现对客户端的安全和计费等控制。支持Option82的服务器还可以根据该选项的信息制定IP地址和其他参数的分配策略,提供更加灵活的地址分配方案。
Option82最多可以包含255个子选项,若定义了Option82,则至少要定义一个子选项,目前大多设备均支持两个子选项:sub-option1(Circuit ID,电路ID子选项)和sub-option2(Remote ID,远程ID子选项)。
Circuit ID:主要用来标识客户端所在的VLAN,接口等信息。
Remote ID:主要用来标识客户端接入的设备,一般为设备的MAC地址。
如需了解更多,请致电云安信息全国免费客服热线400-8060-389。
关注我们,了解更多安全资讯!