一、DHCP工作原理

1、初次申请IP

DHCP_discover

DHCPDISCOVER:客户端会先发送DHCPDISCOVER广播消息到网络搜索一台能提供IP地址的DHCP服务器。

DHCPOFFER:服务端收到客户端的discover消息后,会从地址池中选择一个尚未租出的ip地址,然后用广播发送给offer消息给客户端(因此时客户端还没有IP,所以用广播)。在尚未与客户端完成租用之前,此IP会暂时保留,以避免重复分配给其他客户端。若有多台服务端收到了客户端的discover消息,并且也都回应了,客户端会选择第一个收到的discover消息(收到OFFER消息后,会通过ARP来检查OFFER数据包中的IP地址是否已经被使用,如果已被使用,则向该DHCP服务器发送DECLINE消息拒绝此IP,并重新发送Discover消息来申请另一个IP)。

DHCPREQUEST:客户端选择第一个收到的OFFER消息后,利用广播回应DHCPREQUEST消息给DHCP服务器(用广播的原因是告诉那些没有被选上的DHCP服务器,其预留的IP可以释放给别的客户端使用了)

DHCPACK:服务端收到客户端发送的REQUEST消息后,就用广播发送ACK消息给客户端(此时客户端仍没有IP地址),信息内容包括ip地址、掩码、网关、dns等

2、更新租约

DHCP_工作原理_02

客户端发REQUEST消息给服务器

自动更新情况:1、客户端重启(发送REQUEST广播消息,如请求成功,继续使用;失败,使用169.254.x.x地址,5分钟再次尝试更新租约);2、地址租期过半(发送REQUEST direct消息给此服务端,请求延长租约);3、过7/8时,会再次发生REQUEST广播,请求更新租约,如更新失败,则放弃该IP,重新使用DIscover消息申请新IP。

手动更新:续约-ipconfig /renew,释放-ipconfig /release

二、DHCP Server安装

本机IP:192.168.0.111/24

环境:Windows Server 2008

点击开始-管理工具-服务器管理器,添加角色

DHCP_IP地址_03下一步,会检测本机是否已配置静态IP,选中DHCP服务器

DHCP_discover_04DHCP_IP地址_05DHCP_discover_06设置DNS域名和IP地址(可通过DHCP服务器分配给客户端),此处因本服务器并未安装DNS服务,不填

DHCP_服务器_07

指定WINS服务器,也是一个DHCP选项,此处暂不填

DHCP_discover_08添加DHCP作用域

DHCP_服务器_09DHCP v6

DHCP_discover_10确认后安装,完成结果如下

DHCP_工作原理_11安装完成之后,在角色里就可以看到已经安装的DHCP服务了,此处可以修改已经安装的配置。

DHCP_工作原理_12

测试客户端IP地址获取情况

DHCP_工作原理_13

三、应用场景

两台DHCP Server位于同一子网内(80/20规则)

Server 1:作用域192.168.100.1-192.168.100.254,排除192.168.100.201-192.168.100.254

Server 2:作用域192.168.100.1-192.168.100.254,排除192.168.100.1-192.168.100.200

Server1可分配80%的IP,Server2作为备用可分配20%的IP。

因Server2作为备用,仅在Server1故障的情况下才去接手,可通过配置子网延迟时间来延迟响应客户端地址分配请求,如下图

右键作用域,属性-高级

DHCP_工作原理_14四、DHCP中继代理

应用环境:DHCP服务器与客户端位于不同网段内

实现:客户端利用广播discover搜索DHCP服务器,中继代理(路由器或其他中继程序)收到此消息后,将广播转发到另一个网段内,服务器收到广播后,直接回复offer消息给中继代理,中继代理将此offer广播给客户端,客户端收到广播request,中继代理继续帮忙转发,直到客户端收到ack为止。