彭求明
任何一台终端(笔记本电脑、台式机、手机、平板电脑、网络摄像头等)要能接入到互联网中,必须要配置IP地址、子网掩码、默认网关等信息,这些信息可以使用手工静态配置,但需要用户具备一定的技术背景,在用户经常变更的网络或较大型的网络中,采用手工静态配置工作量大、容易出错、还可能会造成IP地址冲突等问题,因此在企业网络、校园网络、家庭网络中基本上都是通过DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)自动获取IP地址、子网掩码、默认网关等信息,实现终端设备在网络中的即插即用,可见DHCP的使用非常广泛。因此对于计算机相关专业的学生就很有必要学习DHCP的基本原理、掌握其基本配置。
DHCP作为一种应用层协议,使用的是客户端—服务器通信模型,客户端可以使用Windows系统的笔记本电脑或台式机,服务器既可以是专用Windows或Linux服务器。如果没有真实的服务器设备,也可以在计算机里安装VMware Workstation虚拟机,再在虚拟机里装Windows系统作为DHCP客户端,虚拟机里装Windows Server服务器版操作系统作为DHCP服务器。在中等规模及以下的企业网中,无需单独部署DHCP服务器,使用华为企业级路由器即可充当DHCP服务器,这样省掉了单独部署DHCP服务器的成本,因此对于网络工程师、网络系统建设与运维等专业的学生就很有必要掌握企业级路由器来充当DHCP服务器的工作原理、配置命令,由于在物理真机上做DHCP实验,对设备、数量、场地等都有要求,并且操作起来还比较麻烦,因此本文是在华为eNSP(Enterprise Network Simulation Platform,企业网络仿真平台)模拟器中,用企业级路由器来模拟DHCP服务器、PC或路由器来模拟DHCP客户端,来完成DHCP实验。
要想让华为企业级路由器提供DHCP服务器功能,管理员可以使用两种方式进行配置:
1)基于接口地址池的配置方式:路由器能够为接口连接的同一IP子网中的DHCP客户端动态分配IP地址等信息;
2)基于全局地址池的配置方式:通过配置全局地址池,路由器不仅能够为与本地接口同属于一个IP子网的DHCP客户端分配IP地址等信息,还能够为非直连的DHCP客户端分配IP地址等信息。
本实验采用基于接口地址池的配置方式,拓扑图如下所示:AR1的GE0/0/1接口充当DHCP服务器,PC10和PC11充当 DHCP客户端;AR1的GE0/0/2接口充当DHCP服务器,AR2的GE0/0/2接口充当DHCP客户端。
图1
基于接口地址池,把华为路由器接口配置为DHCP服务器,步骤如下:
1)启动整个网络拓扑,在系统视图下利用sysname命令,把AR1路由器更名为AR1_DHCP_SERVER,把AR2路由器更名为AR2。
2)配置AR1_DHCP_SERVER路由器两个接口的IP地址和子网掩码:
[AR1_DHCP_SERVER]interface G0/0/1
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]ip address 10.0.10.1 24
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]quit
[AR1_DHCP_SERVER]interface G0/0/2
[AR1_DHCP_SERVER-GigabitEthernet0/0/2]ip address 10.0.20.1 24
3)使用系统视图命令为路由器启用DHCP服务,分别在G0/0/1和G0/0/2接口视图下启用DHCP服务器功能,基于接口地址池的DHCP服务器必须要做的配置就已完成。那么网关地址就是此接口的IP地址,可分配的地址池就是本子网除了此接口IP地址外的所有主机地址。
[AR1_DHCP_SERVER]dhcp enable
[AR1_DHCP_SERVER]interface G0/0/1
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp select interface
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]quit
[AR1_DHCP_SERVER]interface G0/0/2
[AR1_DHCP_SERVER-GigabitEthernet0/0/2]dhcp select interface
4)分别在PC10的E0/0/1接口、PC11的E0/0/1接口、AR2的G0/0/2接口上Wireshark抓包,在显示过滤器中输入"bootp"或"dhcp",只显示dhcp协议的报文。
5)把PC10的IPv4配置由默认的静态改成DHCP,点击“应用”立即生效,然后在命令行里执行ipconfig就能查看到G0/0/1接口作为DHCP服务器动态分配的IPv4地址等信息,PC11的操作也一样。
PC>ipconfig
6)要想让AR2的G0/0/2接口IP地址由DHCP分配,需要先在AR2的系统下启用DHCP服务,再在此接口视图下启用DHCP客户端功能,然后就能查看到此接口的IP地址等信息是由AR1的G0/0/2接口作为DHCP服务器动态分配的。
[AR2]dhcp enable
[AR2]interface G0/0/2
[AR2-GigabitEthernet0/0/2]ip address dhcp-alloc
[AR2-GigabitEthernet0/0/2]display ip interface G0/0/2
7)查看AR1的两个接口IP地址池信息:
至此,DHCP的基本工作流程已经结束,以PC10上抓取的报文为例,DHCP客户端和DHCP服务器之间交互的报文截图如图2:
图2
(1)由于刚刚连接到网络中的客户端(或叫终端)既没有IP地址,也不知道DHCP服务器的IP地址,因此客户端会在本地网络中发送一条DHCP Discover广播消息,来发现DHCP服务器。
(2)如果网络中部署了一台或多台DHCP服务器,那么它(们)收到DHCP Discover消息后,会选取一个未分配的IP地址,向DHCP客户端响应DHCP Offer消息,此消息中提供了分配给客户端的IP地址和其它信息。如果存在多个DHCP服务器,每个DHCP服务器都会响应DHCP Offer消息。
(3)客户端如果准备接受(其中一台)DHCP服务器的提供,那么它就会向网络中广播一条DHCP Request消息,请求使用(其中一台)DHCP服务器通过DHCP Offer消息提供的IP地址,鉴于这是一条广播消息,因此网络中所有在步骤(2)发送DHCP Offer的DHCP服务器都会接收到客户端发送的DHCP请求消息,当然只有其中一台DHCP服务器会发现客户端是在向自己请求使用IP地址,而其它DHCP服务器在发现客户端向另一台服务器请求使用IP地址之后,就会将这条DHCP请求消息视为隐式的拒绝服务消息。
(4)提供了DHCP Offer消息中IP地址的那台DHCP服务器在接收到DHCP请求后,如果发现对方所请求的IP地址仍然可用,那么DHCP服务器就会向请求IP地址的客户端发送一条DHCP ACK消息,这条消息的目的是向客户端确认其请求的IP地址仍然可用,如果已经不可用,那么DHCP服务器就会向客户端发送一条DHCP NAK消息。DHCP客户端在接收到DHCP服务器确认消息后,就会开始使用此确认消息中分配的IP地址等信息。
8)DHCP服务器除了分配必须的IP地址、子网掩码、网关外,还可以做其它可选配置,进行配置优化,为了演示这些优化配置,我们先在PC10、PC11命令行里输入ipconfig/release
PC>ipconfig/release
DHCP客户端就会主动向DHCP服务器发送DHCP Release消息,释放由DHCP服务器动态分配的IPv4地址等信息,DHCP服务器收到DHCP释放消息后,就把此IP地址置为空闲状态,之后可以把该IP地址分配给其它DHCP客户端,报文截图如图3:
图3
9)DHCP优化配置
(1)在AR1的G0/0/1接口视图上配置分配给DHCP客户端的DNS地址:
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp server dns-list 10.0.10.1
(2)在AR1的G0/0/1接口视图上修改IP地址租期,默认租期为1天,修改为2天12小时30分钟:
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp server lease day 2 hour 12 minute 30
(3)在AR1的G0/0/1接口视图上排除一些IP地址,不分配给DHCP客户端:
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp server excluded-ip-address 10.0.10.200 10.0.10.254
(4)在AR1的G0/0/1接口视图上为指定MAC地址的客户端固定分配一个IP地址。分配的IP地址必须在接口地址池范围中,并且未被动态分配出去。把PC11固定分配IP地址10.0.10.11
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp server static-bind ip-address 10.0.10.11 mac-address 5489-9899-01B9
10)分别在PC10、PC11命令行里输入ipconfig/renew,DHCP服务器重新给DHCP客户端动态分配IPv4地址等信息,DHCP客户端和服务器之间交互流程跟上面的基本工作流程一样,只不过DHCP服务器按照上面优化配置给客户端分配。
PC>ipconfig/renew
11)查看AR1的G0/0/1接口IP地址池信息:
至此,动态主机配置暂时告一段落。由于DHCP动态分配的IP地址往往会有租期,因此之后客户端与服务器双方会围绕IP地址续租周期性的进行通信。
华为企业级路由器基于接口地址池的DHCP服务器配置方式,基本配置简单,而且还可以做各种优化配置,在eNSP模拟器中完成此实验,不仅方便,也能理解其工作原理。