DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。

1.DHCP是什么

一、DHCP简介

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

 

(图片来源于网络)


DHCP : Dynamic Host Config Protocol 动态主机配置协议

 

是一种C-S模型(client-server)

 

DHCP工作原理: 所有的消息数据包使用UDP方式发送,UDP端口号为 67(server) — 68(client)


DHCP报文:

1.DHCP discover(发现)

2.DHCP Offer(应答)

3.DHCP request (请求)

4.DHCP ACK(确认)

 

二、DHCP 的工作过程如下

1.DHCP 客户机启动时,客户机在当前的子网中广播 DHCPDISCOVER 报文向 DHCP
服务器申请一个 IP 地址。


2.DHCP 服务器收到 DHCPDISCOVER 报文后,它将从针对那台主机的地址区间中为
它提供一个尚未被分配出去的 IP 地址,并把提供的 IP 地址暂时标记为不可用。服务器以DHCPOFFER 报文送回给主机。如果网络里包含有不止一个的 DHCP 服务器,则客户机可
能收到好几个 DHCPOFFER 报文,客户机通常只承认第一个 DHCPOFFER。


3.客户端收到 DHCPOFFER 后,向服务器发送一个含有有关 DHCP 服务器提供的 IP
地址的 DHCPREQUEST 报文。如果客户端没有收到 DHCPOFFER 报文并且还记得以前的网
络配置,此时使用以前的网络配置(如果该配置仍然在有效期限内)。


4.DHCP 服务器向客户机发回一个含有原先被发出的 IP 地址及其分配方案的一个应答报文(DHCPACK)。


5.客户端接受到包含了配置参数的 DHCPACK 报文,利用 ARP 检查网络上是否有相同的 IP 地址。如果检查通过,则客户机接受这个 IP 地址及其参数,如果发现有问题,客户机向服务器发送 DHCPDECLINE 信息,并重新开始新的配置过程。服务器收到DHCPDECLINE 信息,将该地址标为不可用。


6.DHCP 服务器只能将那个 IP 地址分配给 DHCP 客户一定时间,DHCP 客户必须在该次租用过期前对它进行更新。客户机在 50%租借时间过去以后,每隔一段时间就开始请求DHCP 服务器更新当前租借,如果 DHCP 服务器应答则租用延期。如果 DHCP 服务器始终没有应答,在有效租借期的 87.5%,客户应该与任何一个其他的 DHCP 服务器通信,并请求更新它的配置信息。如果客户机不能和所有的 DHCP 服务器取得联系,租借时间到后,它必须放弃当前的 IP 地址并重新发送一个 DHCPDISCOVER 报文开始上述的 IP 地址获得过程。


7.客户端可以主动向服务器发出 DHCPRELEASE 报文,将当前的 IP 地址释放。

 

2.DHCP作用

作用:

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。 

 

DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:

 

1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。 

 

2. DHCP应当可以给用户分配永久固定的IP地址。

 

3. DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。   

4. DHCP服务器应当向现有的BOOTP客户端提供服务。

 

DHCP有三种机制分配IP地址:

 

1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。 

 

2) 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。

 

3) 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

 

三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。 

 

DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互。BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器。RFC 951和RFC 1542对BOOTP协议进行了详细描述。 

 

3.DHCP厂商

一、租约过程

客户端从DHCP服务器获得IP地址的过程叫做DHCP的租约过程。

 

IP地址的有效使用时间段称为租用期,租用期满之前,客户端必须向DHCP服务器请求继续租用。服务器接受请求后才能继续使用,否则无条件放弃。

 

默认情况下,路由器隔离广播包,不会将收到的广播包从一个子网发送到另一个子网。当DHCP服务器和客户端不在同一个子网时,充当客户端默认网关的路由器将广播包发送到DHCP服务器所在的子网,这一功能就称为DHCP中继(DHCP Relay)。

 

DHCP在工作过程中涉及到的报文种类及其作用如下:

 

1、DHCP DISCOVER:客户端开始DHCP过程的第一个报文,是请求IP地址和其它配置参数的广播报文。

 

2、DHCP OFFER:服务器对DHCP DISCOVER报文的响应,是包含有效IP地址及配置的单播(或广播)报文。

 

3、DHCP REQUEST:客户端对DHCP OFFER报文的响应,表示接受相关配置。客户端续延IP地址租期时也会发出该报文。

 

4、DHCP DECLINE:当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。

 

5、DHCP ACK :服务器对客户端的DHCP REQUEST报文的确认响应报文。客户端收到此报文后,才真正获得了IP地址和相关的配置信息。

 

6、DHCP NAK:服务器对客户端的DHCP REQUEST报文的拒绝响应报文。客户端收到此报文后,会重新开始新的DHCP过程。

 

7、DHCP RELEASE:客户端主动释放服务器分配的IP地址。当服务器收到此报文后,则回收该IP地址,并可以将其分配给其它的客户端。

 

8、DHCP INFORM:客户端获得IP地址后,发送此报文请求获取服务器的其它一些网络配置信息,如DNS等。

 

DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。为了能继续使用原先的IP地址,DHCP客户端会向DHCP服务器发送续租的请求。

 

二、续租的工作流程描述如下:

 

1、在使用租期过去50%时刻处, 客户端向服务器发送单播DHCP REQUEST报文续延租期。

 

2、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期过去87.5%时刻处,向服务器发送广播DHCP REQUEST报文续延租期。

 

3、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期到期时,客户端自动放弃使用这个IP地址,并开始新的DHCP过程。