一、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服务器对客户机的请求做出反应,可能发生以下两种情况:
- 如果客户使用的是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服务器,计算机之间仍能通过网上邻居发现彼此。
- 如果使用其他操作系统或自动设置IP地址的功能被禁止,则客户机无法获得IP地址,初始化失败。但客户机在后台会每隔5分钟发送4次DHCP Discover报文,直到它收到DHCP Offer报文。
③ 一旦客户机收到 DHCP Offer 报文,它就会发送 DHCP Request报文到服务器,表示它将使用服务器所提供的IP地址。
④ DHCP 服务器在收到 DHCP Request 报文后,立即发送DHCP YACK 确认报文,以确定此租约成立,且此报文还包含其他DHCP选项信息。
客户机收到确认信息后,利用其中的信息配置它的 TCP/IP 并加入网络中。
上述过程如下图所示:
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服务器搭建实战
网络拓扑如下:
请注意以下两点:
- 请将这些计算机所连接的虚拟网络的DHCP服务器功能禁用;如果利用物理计算机练习,请将网络中其他DHCP服务器关闭或停用,如停用IP共享设备或宽带路由器内的DHCP服务器功能。
- 若DC与DHCP1的硬盘是从同一个虚拟硬盘复制来的,则需要执行C:\windows\System32\Sysprep内的程序sysprep.exe,并勾选“通用”复选框。
1、安装DHCP服务器角色
DNS1已经安装了活动目录集成的DNS服务器。
下面在其上安装DHCP服务器:
STEP 1 选择“开始”→“Windows 管理工具”→“服务器管理器”→“仪表板”→“添加角色和功能”命令,在弹出的对话框中持续单击“下一步”按钮,直到出现下图所示的“选择服务器角色”窗口时勾选“DHCP服务器”复选框,在弹出的“添加角色和功能向导”对话框中单击“添加功能”按钮。
“选择服务器角色”对话框:
STEP 2 持续单击“下一步”按钮,最后单击“安装”按钮,开始安装DHCP服务器。安装完毕后,单击“关闭”按钮,完成DHCP服务器角色的安装。
STEP 3 单击“关闭”按钮关闭向导,DHCP服务器安装完成。选择“开始”→“Windows管理工具”→“DHCP”命令,打开“DHCP”控制台,可以在此配置和管理DHCP服务器。
DHCP控制台:
由于DHCP是安装在域控制器上的,尚没有被“授权”,且IP作用域尚没有新建和“激活”,所以在“IPv4”处显示向下的红色箭头。
2、授权DHCP服务器
Windows Server为使用活动目录的网络提供了集成的安全性支持。针对DHCP服务器,它提供了授权的功能。使用这一功能可以对网络中配置正确的合法DHCP服务器进行授权,允许它们对客户端自动分配IP地址。同时,还能够检测未授权的非法 DHCP 服务器,以及防止这些服务器在网络中启动或运行,从而提高了网络的安全性。
1. 对域中的DHCP服务器进行授权
如果DHCP服务器是域的成员,并且在安装DHCP服务的过程中没有选择授权,那么在安装完成后就必须先进行授权,才能为客户端计算机提供IP地址,独立服务器不需要授权。步骤如下。
用鼠标右键单击DHCP 服务器 dns1.long.com,选择快捷菜单中的“授权”命令,即可为DHCP服务器授权,重新打开“DHCP”控制台。
显示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服务器:
对网络中的 DHCP 客户端client1来说,由于在自动获得IP地址的过程中,两台DHCP服务器具有平等的被选择权,因此client将有50%的可能性获得一个由 bad_dhcp提供的 IP地址,这意味着网络出现故障的可能性将高达50%。
为了解决这一问题,Windows Server 引入了DHCP 服务器的授权机制。通过授权机制, DHCP服务器在服务于客户端之前,需要验证是否已在AD中被授权。如果未经授权,将不能为客户端分配IP地址。这样就避免了由于网络中出现错误配置的DHCP服务器而导致的大多数意外网络故障。
注意:
- 工作组环境中,DHCP服务器肯定是独立的服务器,无须授权(也不能授权)也能向客户端提供IP地址。
- 域环境中,域控制器或域成员身份的DHCP服务器能够被授权,为客户端提供IP地址。
- 域环境中,独立服务器身份的DHCP服务器不能被授权,若域中有被授权的DHCP服务器,则该服务器不能为客户端提供IP地址;若域中没有被授权的DHCP服务器,则该服务器可以为客户端提供IP地址。
3、管理DHCP作用域
在Windows Server 2016中,作用域可以在安装DHCP服务的过程中创建,也可以在安装完成后在“DHCP”控制台中创建。
1. 创建DHCP作用域
一台 DHCP 服务器可以创建多个不同的作用域。如果在安装时没有建立作用域,也可以单独建立DHCP作用域。具体步骤如下。
STEP 1 在 DNS1上打开“DHCP”控制台,展开服务器名,用鼠标右键单击“IPv4”选项,在弹出的快捷菜单中选择“新建作用域”命令,运行新建作用域向导。
STEP 2 单击“下一步”按钮,显示“作用域名”对话框,在“名称”文本框中键入新作用域的名称,用来与其他作用域相区分。本例为“作用域1”。
STEP 3 单击“下一步”按钮,显示下图所示的“IP地址范围”对话框。在“起始IP地址”和“结束IP地址”文本框中键入欲分配的IP地址范围。
“IP地址范围”对话框:
STEP 4 单击“下一步”按钮,显示下图所示的“添加排除和延迟”对话框,设置客户端的排除地址。在“起始 IP 地址”和“结束 IP地址”文本框中键入欲排除的 IP 地址或 IP 地址段,单击“添加”按钮,添加到“排除的地址范围”列表框中。
“添加排除和延迟”对话框:
STEP 5 单击“下一步”按钮,显示“租用期限”对话框,设置客户端租用IP地址的时间。
STEP 6 单击“下一步”按钮,显示“配置DHCP选项”对话框,提示是否配置DHCP选项,选中默认的“是,我想现在配置这些选项”单选按钮。
STEP 7 单击“下一步”按钮,显示下图所示的“路由器(默认网关)”对话框,在“IP地址”文本框中键入要分配的网关,单击“添加”按钮添加到列表框中,这里为192.168.10.254。
“路由器(默认网关)”对话框:
STEP 8 单击“下一步”按钮,显示“域名称和DNS服务器”对话框。在“父域”文本框中输入进行DNS解析时所使用的父域,在“IP地址”文本框中输入DNS服务器的IP地址,单击“添加”按钮添加到列表框中,如图所示。
“域名称和DNS服务器”对话框:
这里为192.168.10.1。
STEP 9 单击“下一步”按钮,显示“WINS 服务器”对话框,设置 WINS 服务器。如果网络中没有配置WINS服务器,则不必设置。
STEP 10 单击“下一步”按钮,显示“激活作用域”对话框,询问是否要激活作用域。建议选中默认的“是,我想现在激活此作用域”单选按钮。
STEP 11 单击“下一步”按钮,显示“正在完成新建作用域向导”对话框。
STEP 12 单击“完成”按钮,作用域创建完成并自动激活。
2. 建立多个IP作用域
可以在一台DHCP服务器内建立多个IP作用域,以便对多个子网内的DHCP客户端提供服务,下图所示的DHCP服务器内有两个IP作用域。
超级作用域应用实例:
一个用来提供IP地址给左边网络内的客户端,此网络的网络标识符为192.168.10.0;另一个IP作用域用来提供IP地址给右边网络内的客户端,其网络标识符为192.168.20.0。
右侧网络的客户端在向DHCP服务器租用IP地址时,DHCP服务器会选择192.168.20.0作用域的IP地址,而不是192.168.10.0作用域的IP地址:右侧客户端所发出的租用IP数据包,是通过路由器转发的,路由器会在这个数据包内的GIADDR(gateway IP address)字段中填入路由器的IP地址(192.168.20.254),因此 DHCP服务器便可以通过此IP地址得知DHCP客户端位于192.168.20.0的网段内,选择192.168.20.0作用域的IP地址给客户端。
除了GIADDR之外,有些网络环境中的路由器还需要使用DHCP option 82内的更多信息来判断应该出租什么IP地址给客户端。
左侧网络的客户端在向DHCP服务器租用IP地址时,DHCP服务器会选择192.168.10.0作用域的IP地址,而不是192.168.20.0作用域的IP地址:左侧客户端所发出的租用IP数据包,是直接由DHCP 服务器来接收的,因此数据包内的 GIADDR 字段中的路由器 IP 地址为0.0.0.0,当DHCP服务器发现此IP地址为0.0.0.0时,就知道是同一个网段(192.168.10.0)内的客户端要租用IP地址,因此它会选择192.168.10.0作用域的IP地址给客户端。
4、保留特定的IP地址
如果用户想保留特定的IP地址给指定的客户机,以便DHCP客户机在每次启动时都获得相同的IP地址,就需要将该IP地址与客户机的MAC地址绑定。设置步骤如下。
STEP 1 打开“DHCP”控制台,在左窗格中单击作用域中的“保留”选项。
STEP 2 选择“操作”→“新建保留”命令,打开“新建保留”对话框,如图所示。
“新建保留”对话框:
STEP 3 在“IP地址”文本框中输入要保留的IP地址。本例为192.168.10.200。
STEP 4 在“MAC地址”文本框中输入IP地址要保留给哪一个网卡。本例为“000C2917CF7A”,可以在目标客户机的命令提示符下执行“ipconfig /all”命令查询MAC(物理)地址。
STEP 5 在“保留名称”文本框中输入客户名称。注意此名称只是一般的说明文字,并不是用户账号的名称,但此处不能为空白。
STEP 6 如果有需要,可以在“描述”文本框内输入一些描述此客户的说明性文字。
添加完成后,用户可单击作用域中的“地址租约”选项进行查看。大部分情况下,客户机使用的仍然是以前的IP地址,也可用以下命令进行更新。
- ipconfig /release:释放现有IP。
- ipconfig /renew:更新IP。
STEP 7 在MAC地址为000C2917CF7A的计算机Client2上进行测试,该计算机的IP地址获取方式为自动获取。
保留地址测试结果:
如果在设置保留地址时,网络上有多台DHCP服务器存在,用户需要在其他服务器中将此保留地址排除,使客户机可以获得正确的保留地址。
5、配置DHCP选项
DHCP服务器除了可以为DHCP客户机提供IP地址外,还可以设置DHCP客户机启动时的工作环境,如可以设置客户机登录的域名称、DNS服务器、WINS服务器、路由器、默认网关等。
1. DHCP选项
在客户机启动或更新租约时,DHCP 服务器可以自动设置客户机启动后的TCP/IP环境。由于目前大多数DHCP客户端均不能支持全部的DHCP选项,因此在实际应用中,通常只需对一些常用的DHCP选项进行配置,常用的DHCP选项如下表所示。
常用的DHCP选项:
DHCP服务器提供了许多选项,如默认网关、域名、DNS、WINS、路由器等。
选项包括以下4种类型:
- 默认服务器选项:这些选项的设置影响“DHCP”控制台窗口下该服务器的所有作用域中的客户和类选项。
- 作用域选项:这些选项的设置只影响该作用域下的地址租约。
- 类选项:这些选项的设置只影响被指定使用该DHCP类ID的客户机。
- 保留客户选项:这些选项的设置只影响指定的保留客户。
如果在服务器选项与作用域选项中设置了不同的选项,则作用域选项起作用,即在应用时,作用域选项将覆盖服务器选项。同理,类选项会覆盖作用域选项、保留客户选项覆盖以上3种选项,它们的优先级表示如下。
保留客户选项 > 类选项 > 作用域选项 > 默认服务器选项。
2. 配置DHCP服务器选项和作用域选项
为了进一步了解选项设置,以在作用域中添加DNS选项为例说明DHCP的选项设置。
STEP 1 打开DHCP控制台,在左窗格中展开服务器,单击“作用域选项”选项,选择“操作”→“配置选项”命令。
STEP 2 打开“作用域选项”对话框,如下图所示。
设置作用域选项:
在“常规”选项卡的“可用选项”列表中勾选“006 DNS服务器”复选框,输入IP地址,单击“确定”按钮结束。
3. 配置DHCP类别选项
1)类别选项概述
通过策略为特定的客户端计算机分配不同的 IP 地址与选项时,可以通过 DHCP 客户端所发送的供应商类别、用户类来区分客户端计算机。
● 用户类:可以为某些DHCP客户端计算机设置用户类标识符,例如,标识符为“IT”,当这些客户端向DHCP服务器租用IP地址时,会将这个类标识符一并发送给服务器,而服务器会依据此类别标识符来为这些客户端分配专用的选项设置。
● 供应商类别:可以根据操作系统厂商所提供的供应商类别标识符来设置选项。Windows Server网络操作系统的DHCP服务器已具备识别Windows客户端的能力,并通过以下4个内置的供应商类别选项来设置客户端的DHCP选项。
- DHCP Standard Options:适用于所有的客户端。
- Microsoft Windows 2000选项:适用于 Windows 2000操作系统(含)后的客户端。
- Microsoft Windows 98选项:适用于 Windows 98/ME操作系统的客户端。
- Microsoft选项:适用于其他的Windows客户端。
如果要支持其他操作系统的客户端,就先查询其供应商类别标识符,然后在 DHCP 服务器内新建此供应商类别标识符,并针对这些客户端来设置选项。Android 系统的供应商类别标识符的前6码为dhcpcd,因此可以利用dhcpcd*来代表所有的Android设备。
2)用户类实例的问题需求
假设客户端client1的用户类标识符为“IT”。当client1向DHCP服务器租用IP地址时,会将此标识符“IT”传递给服务器,我们希望服务器根据此标识符来分配客户端的IP地址,IP地址的范围为192.168.10. 150/24~ 192.168.10.180/24,并且将客户端的DNS服务器的IP地址设置为192.168.10.1。
3)在DHCP服务器DNS1上新建用户类标识符
STEP 1 选中“IPv4”选项后,单击鼠标右键,在弹出的快捷菜单中选择“定义用户类”命令,如下图所示。
定义用户类:
STEP 2 单击“添加”按钮,假设在显示名称处将其设置为“技术部”,直接在ASCII处输入用户类标识符“IT”后,单击“确定”按钮,注意此处区分大小写,例如,“IT”与“it”是不同的,如图所示。
添加用户类IT:
若要新建供应商类别标识符,则选中“IPv4”选项后,单击鼠标右键,在弹出的快捷菜单中选择“定义供应商类”命令。
4)在DHCP服务器内针对标识符“IT”设置类别选项
假设客户端计算机是通过前面所建立的作用域“作用域1”来租用IP地址的,因此我们要通过此作用域的策略来将DNS服务器的IP地址192.168.10.1分配给用户类标识符为“IT”的客户端。
STEP 1 选中“作用域1”内的“策略”选项后,单击鼠标右键,在弹出的快捷菜单中选择“新建策略”命令,如下图所示。
新建策略:
STEP 2 设置此策略的名称(假设是TestIT)后单击“下一步”按钮。
STEP 3 单击“添加”按钮来设置筛选条件,在弹出的对话框中将“条件”下拉列表框的“用户类”设置为“技术部”(其标识符为IT ),单击“确定”按钮,如下图所示。
设置用户类为技术部:
STEP 4 回到前一个界面,单击“下一步”按钮。
STEP 5 根据需求,我们要在此策略内分配IP地址,如下图所示,设置IP地址的范围为192.168.10.150/24~192.168.10.180/24。
设置IP地址的范围:
STEP 6 将DNS服务器的IP地址设置为192.168.10.1,单击“下一步”按钮,如下图所示。
设置IP地址的范围:
STEP 7 出现摘要界面时单击“完成”按钮。
STEP 8 下图所示的TestIT为刚才所建立的策略,DHCP服务器会将这个策略内的设置分配给客户端计算机。
TestIT策略已启用:
5)DHCP客户端的设置
STEP 1 需要先将DHCP客户端的用户类标识符设置为“IT”,假设客户端为client1,选择“开始”→“Windows 系统”命令,打开“Windows 系统”对话框,用鼠标右键单击“命令提示符”选项,在弹出的快捷菜单中选择“更多”→“以管理员身份运行”命令,利用“ipcoiifig/setclassid”命令来设置用户类标识符(类标识符区分大小写),如下图所示。
在客户端设置用户类标识符:
图中的“Ethernet0”是网络连接的名称,Windows 10操作系统的客户端可以用鼠标右键单击“开始”菜单,在弹出的快捷菜单中选择“命令提示符”命令,输入“control”后,按Enter键,选择“网络和Internet”→“网络和共享中心”命令来查看,每一个网络连接都可以设置一个用户类标识符,如下图所示。
查看“网络连接”名称:
STEP 2 客户端设置完成后,可以利用ipconfig /all命令来检查,如下图所示。
STEP 3 到这台用户类标识符为“IT”的客户端计算机上利用ipconfig /renew命令来向服务器租用 IP 地址或更新 IP 租约,此时它所得到的 DNS 服务器的 IP 地址会是我们所设置的192.168.10.1,所得到的IP地址也应处在所设的IP地址范围之内,可在客户端计算机上利用ipconfig /all命令查看。
客户端测试成功:
可在客户端计算机上执行ipconfig /setclassid“Ethernet0”命令来删除用户类标识符。
6、DHCP中继代理
如果DHCP服务器与客户端分别位于不同的网络,由于DHCP消息以广播为主,而连接这两个网络的路由器不会将此广播消息转发到另外一个网络,因此限制了DHCP的有效使用范围。
1. 跨网络DHCP服务器的使用
此时可采用以下方法来解决这个问题。
在每一个网络内都安装一台DHCP服务器,它们各自对所属网络内的客户端提供服务。
1)选用符合RFC 1542规范的路由器
此路由器可以将DHCP消息转发到不同的网络。下图所示为左侧DHCP客户端A通过路由器转发DHCP消息的步骤,图中的数字就是其工作顺序。
通过路由器转发DHCP消息:
- DHCP客户端A利用广播消息(DHCPDISCOVER)查找DHCP服务器。
- 路由器收到此消息后,将此广播消息转发到另一个网络。
- 另一个网络内的DHCP服务器收到此消息后,直接响应一个消息(DHCPOFFER)给路由器。
- 路由器将此消息广播(DHCPOFFER)给DHCP客户端A。
- 之后由客户端所发出的DHCPREQUEST消息以及由服务器发出的DHCPACK消息也都是通过路由器来转发的。
2)如果路由器不符合RFC 1542规范
可在没有DHCP服务器的网络内将一台Windows服务器设置为DHCP中继代理(DHCP Relay Agent)来解决问题,因为它具备将DHCP消息直接转发给DHCP服务器的功能。
下面说明DHCP客户端A通过DHCP中继代理的工作步骤。
- DHCP客户端A利用广播消息(DHCPDISCOVER)查找DHCP服务器。
- DHCP中继代理收到此消息后,通过路由器将其直接发送给另一个网络内的DHCP服务器。
- DHCP服务器通过路由器直接响应消息(DHCPOFFER)给DHCP中继代理。
- DHCP中继代理将此消息广播(DHCPOFFER)给DHCP客户端A。
之后由客户端所发出的DHCPREQUEST 消息以及由服务器发出的 DHCPACK消息也都是通过DHCP中继代理来转发的。
2. 中继代理网络拓扑图
我们以下图为例来说明如何设置DHCP中继代理。当DHCP中继代理GW1收到DHCP客户端的DHCP消息时会将其转发到“网络B”的DHCP服务器。
完整的中继代理实训网络拓扑图:
GW1担任DHCP中继代理,同时代替路由器实现网络间的路由功能。DHCP1和GW1的网卡1(对应的IP地址为192.168.10.254/24)的虚拟机网络连接模式使用自定义网络的“VMnet1”,client1、clien2和GW1的网卡2(对应的IP地址为192.168.20.254/24)的虚拟机网络连接模式使用自定义网络的“VMnet2”。注意:自定义网络的子网可以通过选择虚拟机的“编辑”→“虚拟网络编辑器”命令进行添加。
3. 在DHCP1上新建两个作用域
以管理员身份登录计算机DHCP1,打开“DHCP”控制台,新建两个作用域“DHCP10” 和“DHCP20”。DHCP10作用域要求:IP地址范围是192.168.10.21~192.168.10.200,默认网关是192.168.10.254。DHCP20作用域要求:IP地址范围是192.168.20.21~192.168.20.200,默认网关是192.168.20.254。设置完成后,可以自行测试,保证DHCP服务成功配置。
4. 在GW1上安装路由和远程访问
我们需要在 GW1上安装远程访问角色,然后通过其所提供的路由和远程访问服务来设置DHCP中继代理,GW1是双网卡。
STEP 1 打开“服务器管理器”窗口,单击“仪表板”处的“添加角色和功能”按钮,持续单击“下一步”按钮,直到出现下图所示的“选择服务器角色”界面时,勾选“远程访问”复选框。
添加“远程访问”角色和功能:
STEP 2 持续单击“下一步”按钮,直到出现下图所示的“选取角色服务”界面时,勾选“Direct Access和VPN (RAS)”复选框,单击“下一步”按钮,在新弹出的“添加角色和功能向导”对话框中单击“添加功能”→“确定”按钮。
选择角色服务:
STEP 3 持续单击“下一步”按钮,直到出现“确认安装所选内容”界面时,单击“安装”按钮,完成安装后单击“关闭”按钮,重新启动计算机并登录。
STEP 4 在“服务器管理器”界面选择右上方的“工具”→“路由和远程访问”命令,弹出“路由和远程访问”窗口,如图所示。
配置并启用路由和远程访问:
选中本地计算机后,单击鼠标右键, 在弹出的快捷菜单中选择“配置并启用路由和远程访问”命令,单击“下一步”按钮。
STEP 5 在下图所示的对话框中选中“自定义配置”单选按钮,单击“下一步”按钮。
自定义配置:
STEP 6 在下图所示的对话框中勾选“LAN路由”复选框后单击“下一步”→ “完成”按钮(此时若出现“无法启动路由和远程访问”警告界面,不必理会,直接单击“确定”按钮即可)。
选择“LAN路由”:
STEP 7 在下图所示的对话框中单击“启动服务”按钮。
5. 在GW1上设置中继代理
STEP 1 选中IPv4之下的“常规”选项后,单击鼠标右键,在弹出的快捷菜单中选择“新增路由协议”命令,在弹出的“新路由协议”对话框中选择“DHCP Relay Agent”选项后,单击“确定”按钮,如图所示。
新增路由协议:
STEP 2 选中“DHCP 中继代理”选项后单击“属性”按钮,在“服务器地址”文本框中输入DHCP服务器的IP地址(192.168.10.1)后单击“确定”按钮,如图所示。
添加DHCP服务器的IP地址:
STEP 3 选中“DHCP 中继代理”选项后单击鼠标右键,在弹出的快捷菜单中选择“新增接口”命令,选择“Ethernet1”选项,单击“确定”按钮,如图所示。
新增接口:
当DHCP中继代理收到通过“Ethernet1”传输的 DHCP 数据包时,就会将它转发给 DHCP 服务器。这里所选择的以太网就是图中IP地址为192.168.20.254的网络接口(通过未被选择的网络接口所发送过来的DHCP数据包,并不会被转发给DHCP服务器)。
这里Ethernet0连接在VMnet1上,其IP地址是192.168.10.254;Ethernet1连接在VMnet2上,其IP地址是192.168.20.254。
STEP 4 在下图所示的对话框中直接单击“确定”按钮即可。
中继DHCP数据包:
- 跃点计数阈值。跃点计数阈值表示 DHCP 数据包在转发过程中最多能够经过多少个 RFC 1542路由器。
- 启动阈值。在DHCP中继代理收到DHCP数据包后,会等此处的时间过后再将数据包转发给远程DHCP服务器。如果本地与远程网络内都有DHCP服务器,而又希望由本地网络的DHCP 服务器优先提供服务,则此时可以通过此处的设置来延迟将消息发送到远程 DHCP服务器,因为在这段时间内可以让同一网络内的DHCP服务器有机会先响应客户端的请求。
STEP 5 测试是否能成功路由。为了测试方便,请将GW1和DHCP1的防火墙关闭。使用ping命令进行测试,两台计算机间应该通信顺畅。
6. 在client1上测试DHCP中继
将客户端client1的IP地址设置为自动获取,在命令提示符下进行测试,如图所示。
在client1上测试DHCP中继成功:
7、配置超级作用域
超级作用域是运行Windows Server 2016的DHCP服务器的一种管理功能。当DHCP服务器上有多个作用域时,就可组成超级作用域,作为单个实体来管理。
超级作用域常用于多网配置,多网是指在同一物理网段上使用两个或多个 DHCP服务器以管理分离的逻辑IP网络。在多网配置中,可以使用DHCP超级作用域来组合多个作用域,为网络中的客户机提供来自多个作用域的租约。
1. 超级作用域网络环境
其网络拓扑图如图所示:
在图中,GW1是网关服务器,可以由带3块网卡的Windows Server 2016充当,3块网卡分别连接虚拟机的VMnet1、VMnet2和VMnet3。DHCP1是DHCP 服务器,作用域1的“003 路由器”选项为192.168.10.254,作用域2的“003 路由器”选项为192.168.20.254,作用域3的“003 路由器”选项为192.168.30.254。
3台客户端分别连接到虚拟机的VMnet1、VMnet2和VMnet3,DHCP客户端的IP地址获取方式是自动获取:
- DHCP客户端1应该获取到192.168.10.0/24网络中的IP地址,网关是192.168.10.254。
- DHCP客户端2应该获取到192.168.20.0/24网络中的IP地址,网关是192.168.20.254。
- DHCP客户端3应该获取到192.168.30.0/24网络中的IP地址,网关是192.168.30.254。图中是获取到有示例IP地址。
如果GW1由Windows Server 来替代,需满足以下两个条件:
- 安装3块网卡,启用路由。
- GW1必须和 DHCP1集成到一台 Windows Server 上。因为Windows Server 替代路由器无法转发DHCP广播报文,除非在GW1上部署DHCP中继代理。
2. 超级作用域设置方法
1)在GW1上安装路由和远程访问
在GW1上安装路由和远程访问,安装完成后进行路由测试。
2)在DHCP1上新建“超级作用域”
STEP 1 在“DHCP”控制台中,按要求分别新建作用域1、作用域2和作用域3。
STEP 2 用鼠标右键单击DHCP服务器下的“IPv4”选项,在弹出的快捷菜单中选择“新建超级作用域”命令,打开“新建超级作用域向导”对话框。在“选择作用域”对话框中,可选择要加入超级作用域管理的作用域。本例中将作用域1、作用域2和作用域3全部选择,如图所示。
STEP 3 超级作用域创建以后会显示在“DHCP”控制台中,如图所示。
超级作用域:
还可以将其他作用域也添加到该超级作用域中。
DHCP客户端向DHCP服务器租用IP地址时,服务器会从超级作用域中的任何一个普通作用域中选择一个IP地址。超级作用域可以解决多网结构中的某些DHCP部署问题。比较典型的情况是,当前活动作用域的可用地址池几乎已耗尽,而又要向网络添加更多的计算机时,可使用另一个IP网络地址范围以扩展同一物理网段的地址空间。
超级作用域只是一个简单的容器,删除超级作用域时并不会删除其中的子作用域。
3)在DHCP客户端进行测试
分别在DHCP客户端1、DHCP客户端2和DHCP客户端3上进行测试。
8、配置DHCP客户端和测试
目前常用的操作系统均可作为DHCP客户端,本任务仅以Windows平台为客户端。
1. 配置DHCP客户端
在Windows平台中配置DHCP客户端非常简单:
- 在客户端client1上,打开“Internet协议版本4(TCP/IPv4)属性”对话框。
- 选中“自动获得IP地址”和“自动获得DNS服务器地址”两个单选按钮即可。
由于DHCP客户机是在开机的时候自动获得IP地址的,因此并不能保证每次获得的IP地址是相同的。
2. 测试DHCP客户端
在DHCP客户端上打开命令提示符窗口,使用ipconfig /all和ping命令对DHCP客户端进行测试。
3. 手动释放DHCP客户端IP地址租约
在DHCP客户端上打开命令提示符窗口,使用ipconfig /release命令手动释放DHCP客户端IP地址租约。
4. 手动更新DHCP客户端IP地址租约
在DHCP客户端上打开命令提示符窗口,使用ipconfig /renew命令手动更新DHCP客户端IP地址租约。
5. 在DHCP服务器上验证租约
使用具有管理员权限的用户账户登录 DHCP 服务器,打开“DHCP”控制台。在左侧控制台树中双击 DHCP 服务器,在展开的树中双击作用域,然后单击“地址租约”选项,将能够看到从当前DHCP服务器的当前作用域中租用IP地址的租约,如图所示。
IP地址租约:
6. 客户端的备用设置
客户端如果因故无法向DHCP服务器租用到IP地址,客户端会每隔5分钟自动去找DHCP服务器租用IP地址,在未租用到IP地址之前,客户端可以暂时使用其他IP地址,此IP地址可以通过下图的“备用配置”选项卡进行设置。
- 自动专用IP地址(Automatic Private IP Addressing, APIPA):这是默认值,当客户端无法从DHCP服务器租用到IP地址时,它们会自动使用169.254.0.0/16格式的专用IP地址。
- 用户配置:客户端会自动使用此处的 IP 地址与设置值。它特别适合客户端计算机需要在不同网络中使用的场合,例如,客户端为笔记本电脑,这台计算机在公司是向DHCP服务器租用IP地址的,但拿回家使用时,如果家里没有DHCP服务器,无法租用到IP地址,就自动使用此处所设置的IP地址。
9、部署复杂网络的DHCP服务器
根据网络的规模,可在网络中安装一台或多台DHCP服务器。对于较复杂的网络,主要涉及以下几种情况:在单物理子网中配置多个DHCP服务器、多宿主DHCP服务器和跨网段的DHCP中继代理。
1. 在单物理子网中配置多个DHCP服务器
在一些比较重要的网络中,通常单个物理子网中需要配置多个DHCP服务器。这样有两大好处:一是提供容错,如果一个DHCP 服务器出现故障或不可用,则另一个服务器就可以取代它,并继续提供租用新的地址或续租现有地址的服务;二是负载均衡,起到在网络中平衡DHCP服务器的作用。
为了平衡DHCP服务器的使用,较好的方法是使用80/20规则划分两个DHCP服务器之间的作用域地址。例如,将服务器1配置成可使用大多数地址(约80%),则服务器2可以配置成让客户机使用其他地址(约20%)。
80/20规则的典型应用示例:
可以利用 DHCP 拆分作用域配置向导来帮助自动在备用服务器上建立作用域,并自动将这主、辅两台服务器的 IP 地址分配率设置好。
2. 多宿主DHCP服务器
多宿主DHCP服务器是指一台DHCP服务器为多个独立的网段提供服务,其中每个网络连接都必须连入独立的物理网络。这种情况要求在计算机上使用额外的硬件,典型的情况是安装多个网卡。
例如,某个DHCP服务器连接了两个网络,网卡1的IP地址为192.168.10.100,网卡2的IP 地址为192.168.10.200,在服务器上创建两个作用域,一个面向的网络为192.168.10.0,另一个面向的网络为192.168.20.0。这样当与网卡1位于同一网段的DHCP客户机访问DHCP服务器时,将从与网卡1对应的作用域中获取IP地址;同样,与网卡2位于同一网段的DHCP客户机也将获得相应的IP地址。
10、维护DHCP数据库
DHCP服务器的数据库文件内存储着DHCP的配置数据,如IP作用域、出租地址、保留地址与选项设置等,系统默认将数据库文件存储在%Systemroot%\System32\dhcp文件夹内,如下图所示。
DHCP数据库:
其中最主要的是数据库文件dhcp.mdb,其他是辅助文件,请勿随意更改或删除这些文件,否则DHCP服务器可能无法正常运行。
可以用鼠标右键单击DHCP服务器后,在弹出的快捷菜单中选择“内容”→“数据库路径”命令来变更存储数据库的文件夹。
1. 数据库的备份
可以对DHCP数据库进行备份,以便数据库有问题时利用它来修复。
- 自动备份:DHCP服务默认会每隔60分钟就自动将DHCP数据库文件备份到图中的dhcp\backup\new文件夹内。如果要更改此间隔时间,就修改Backuplnterval注册表的设置值,它位于以下路径内:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters
- 手动备份:可以用鼠标右键单击DHCP服务器后,在弹出的快捷菜单中选择“备份”命令手动