一、DHCP 概述 

1、DHCP 简介

手动设置每一台计算机的IP地址是管理员最不愿意做的一件事,于是出现了自动配置IP地址的方法,这就是动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)。DHCP可以自动为局域网中的每一台计算机分配IP地址,并完成每台计算机的TCP/IP配置,包括IP地址、子网掩码、网关及DNS服务器等。DHCP服务器能够从预先设置的IP地址池中自动给主机分配IP地址,它不仅能够解决IP地址冲突的问题,还能及时回收IP地址以提高IP地址的利用率。

需要动态分配IP地址的情况包括以下3种:

  • 网络的规模较大,网络中需要分配IP地址的主机很多,特别是要在网络中增加和删除网络主机或者要重新配置网络时,使用手动分配工作量很大,而且常常会因为用户不遵守规则而出现错误,如导致IP地址的冲突等。
  • 网络中的主机多,而 IP 地址不够用,这时也可以使用 DHCP 服务器来解决这一问题。例如,某个网络上有200台计算机,采用静态IP地址时,每台计算机都需要预留一个IP地址,即共需要200个IP地址。然而,这200台计算机并不同时开机,甚至可能只有20台同时开机,这样就浪费了180个IP地址。这种情况对互联网服务供应商(Internet Service Provider,ISP)来说是一个十分严重的问题。如果 ISP 有100 000个用户,是否需要100 000个IP地址?解决这个问题的方法就是使用DHCP服务。
  • DHCP服务使得移动客户可以在不同的子网中移动,并在他们连接到网络时自动获得网络中的IP地址。随着笔记本电脑的普及,移动办公的方式很常见。当计算机从一个网络移动到另一个网络时,每次移动也需要改变IP地址,并且移动的计算机在每个网络都需要占用一个IP地址。

利用拨号上网实际上就是从ISP那里动态获得一个共有的IP地址。

DHCP允许3种类型的地址分配:

  • 自动分配方式。当DHCP客户端第一次成功地从DHCP服务器端租用到IP地址之后,就永远使用这个地址。
  • 动态分配方式。当DHCP客户端第一次从DHCP服务器端租用到IP地址之后,并非永久地使用该地址,只要租约到期,客户端就得释放这个IP地址,以让给其他工作站使用。当然,客户端可以比其他主机更优先地更新租约,或是租用其他IP地址。
  • 手动分配方式。DHCP 客户端的IP地址是由网络管理员指定的,DHCP服务器只是把指定的IP地址告诉给客户端。
2、DHCP服务的工作过程

1. DHCP工作站第一次登录网络

当DHCP客户机启动登录网络时,通过以下步骤从DHCP服务器获得租约。

① DHCP客户机在本地子网中先发送DHCP Discover报文。此报文以广播的形式发送,因为客户机现在不知道DHCP服务器的IP地址。

② 在DHCP服务器收到DHCP客户机广播的DHCP Discover报文后,它向DHCP客户机发送DHCP Offer报文,其中包括一个可租用的IP地址。

如果没有DHCP服务器对客户机的请求做出反应,可能发生以下两种情况:

  1. 如果客户使用的是Windows 2000及后续版本的Windows操作系统,且自动设置IP地址的功能处于激活状态,那么客户端将自动从Microsoft保留IP地址段中选择一个自动专用IP地址(Automatic Private IP Addressing,APIPA)作为自己的IP地址。自动专用IP地址的范围是169.254.0.1~169.254.255.254。使用自动专用IP地址可以确保在DHCP服务器不可用时,DHCP客户端之间仍然可以利用自动专用IP地址进行通信。所以,即使网络中没有DHCP服务器,计算机之间仍能通过网上邻居发现彼此。
  2. 如果使用其他操作系统或自动设置IP地址的功能被禁止,则客户机无法获得IP地址,初始化失败。但客户机在后台会每隔5分钟发送4次DHCP Discover报文,直到它收到DHCP Offer报文。

③ 一旦客户机收到 DHCP Offer 报文,它就会发送 DHCP Request报文到服务器,表示它将使用服务器所提供的IP地址。

④ DHCP 服务器在收到 DHCP Request 报文后,立即发送DHCP YACK 确认报文,以确定此租约成立,且此报文还包含其他DHCP选项信息。

客户机收到确认信息后,利用其中的信息配置它的 TCP/IP 并加入网络中。

上述过程如下图所示:

Windows Server 搭建DHCP服务器实战_DHCP

2. DHCP工作站第二次登录网络

DHCP客户机获得IP地址后再次登录网络时,就不需要再发送DHCP Discover报文了,而是直接发送包含前一次所分配的IP地址的DHCP Request报文。DHCP服务器收到DHCP Request报文后,会尝试让客户机继续使用原来的IP地址,并回答一个DHCP YACK(确认信息)报文。

如果DHCP服务器无法分配给客户机原来的IP地址,则回答一个DHCP NACK(不确认信息)报文。当客户机接收到DHCP NACK报文后,就必须重新发送DHCP Discover报文来请求新的IP地址。

3. DHCP租约的更新

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

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

二、DHCP服务器搭建实战

网络拓扑如下:

Windows Server 搭建DHCP服务器实战_DHCP_02

请注意以下两点:

  1. 请将这些计算机所连接的虚拟网络的DHCP服务器功能禁用;如果利用物理计算机练习,请将网络中其他DHCP服务器关闭或停用,如停用IP共享设备或宽带路由器内的DHCP服务器功能。
  2. 若DC与DHCP1的硬盘是从同一个虚拟硬盘复制来的,则需要执行C:\windows\System32\Sysprep内的程序sysprep.exe,并勾选“通用”复选框。
1、安装DHCP服务器角色

DNS1已经安装了活动目录集成的DNS服务器。

下面在其上安装DHCP服务器:

STEP 1 选择“开始”→“Windows 管理工具”→“服务器管理器”→“仪表板”→“添加角色和功能”命令,在弹出的对话框中持续单击“下一步”按钮,直到出现下图所示的“选择服务器角色”窗口时勾选“DHCP服务器”复选框,在弹出的“添加角色和功能向导”对话框中单击“添加功能”按钮。

“选择服务器角色”对话框:

Windows Server 搭建DHCP服务器实战_运维_03

STEP 2 持续单击“下一步”按钮,最后单击“安装”按钮,开始安装DHCP服务器。安装完毕后,单击“关闭”按钮,完成DHCP服务器角色的安装。

STEP 3 单击“关闭”按钮关闭向导,DHCP服务器安装完成。选择“开始”→“Windows管理工具”→“DHCP”命令,打开“DHCP”控制台,可以在此配置和管理DHCP服务器。

DHCP控制台:

Windows Server 搭建DHCP服务器实战_IP_04

由于DHCP是安装在域控制器上的,尚没有被“授权”,且IP作用域尚没有新建和“激活”,所以在“IPv4”处显示向下的红色箭头。

2、授权DHCP服务器

Windows Server为使用活动目录的网络提供了集成的安全性支持。针对DHCP服务器,它提供了授权的功能。使用这一功能可以对网络中配置正确的合法DHCP服务器进行授权,允许它们对客户端自动分配IP地址。同时,还能够检测未授权的非法 DHCP 服务器,以及防止这些服务器在网络中启动或运行,从而提高了网络的安全性。

1. 对域中的DHCP服务器进行授权

如果DHCP服务器是域的成员,并且在安装DHCP服务的过程中没有选择授权,那么在安装完成后就必须先进行授权,才能为客户端计算机提供IP地址,独立服务器不需要授权。步骤如下。

用鼠标右键单击DHCP 服务器 dns1.long.com,选择快捷菜单中的“授权”命令,即可为DHCP服务器授权,重新打开“DHCP”控制台。

Windows Server 搭建DHCP服务器实战_DHCP_05

显示DHCP服务器已授权,IPV4前面由红色向下箭头变为了绿色对勾。

2. 为什么要授权DHCP服务器

由于 DHCP 服务器为客户端自动分配 IP地址时均采用广播机制,而且客户端在发送DHCP Request报文进行IP租用选择时,也只是简单地选择第一个收到的 DHCP Offer 报文,这意味着在整个 IP 租用过程中,网络中所有的DHCP服务器都是平等的。如果网络中的DHCP服务器都是正确配置的,则网络将能够正常运行。如果网络中出现了错误配置的 DHCP 服务器,则可能会引发网络故障。

例如,错误配置的DHCP 服务器可能会为客户端分配不正确的 IP 地址,导致该客户端无法进行正常的网络通信。

在下图所示的网络环境中,配置正确的DHCP服务器DHCP1可以为客户端提供的是符合网络规划的IP地址192.168.10.51~150/24,而配置错误的非法DHCP服务器bad_dhcp为客户端提供的却是不符合网络规划的 IP 地址10.0.0.21~100/24。

网络中出现非法的DHCP服务器:

Windows Server 搭建DHCP服务器实战_运维_06

对网络中的 DHCP 客户端client1来说,由于在自动获得IP地址的过程中,两台DHCP服务器具有平等的被选择权,因此client将有50%的可能性获得一个由 bad_dhcp提供的 IP地址,这意味着网络出现故障的可能性将高达50%。

为了解决这一问题,Windows Server 引入了DHCP 服务器的授权机制。通过授权机制, DHCP服务器在服务于客户端之前,需要验证是否已在AD中被授权。如果未经授权,将不能为客户端分配IP地址。这样就避免了由于网络中出现错误配置的DHCP服务器而导致的大多数意外网络故障。

注意:

  1. 工作组环境中,DHCP服务器肯定是独立的服务器,无须授权(也不能授权)也能向客户端提供IP地址。
  2. 域环境中,域控制器或域成员身份的DHCP服务器能够被授权,为客户端提供IP地址。
  3. 域环境中,独立服务器身份的DHCP服务器不能被授权,若域中有被授权的DHCP服务器,则该服务器不能为客户端提供IP地址;若域中没有被授权的DHCP服务器,则该服务器可以为客户端提供IP地址。
3、管理DHCP作用域

在Windows Server 2016中,作用域可以在安装DHCP服务的过程中创建,也可以在安装完成后在“DHCP”控制台中创建。

1. 创建DHCP作用域

一台 DHCP 服务器可以创建多个不同的作用域。如果在安装时没有建立作用域,也可以单独建立DHCP作用域。具体步骤如下。

STEP 1 在 DNS1上打开“DHCP”控制台,展开服务器名,用鼠标右键单击“IPv4”选项,在