DHCP测试指导书Word格式文档下载.docx
《DHCP测试指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《DHCP测试指导书Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
![DHCP测试指导书Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-11/22/2ca89226-4b9d-497a-b302-0243632dab98/2ca89226-4b9d-497a-b302-0243632dab981.gif)
2.1DHCP工作过程7
2.1.1动态获取IP地址7
2.1.2重用曾经分配的IP地址9
2.1.3更新租约10
2.1.4DHCP客户端主动释放IP地址11
2.1.5获取除IP地址外的配置信息11
2.2DHCP中继工作过程11
3DHCP应用限制12
4DHCP扩展功能13
4.1DHCP安全功能13
4.2DHCPSnooping功能14
4.2.1DHCPSnooping基本监听功能14
4.2.2DHCPSnooping信任功能14
4.2.3DHCPOption82功能14
4.2.4自动配置功能15
5DHCP报文格式16
6DHCP的典型组网案例17
6.1在本网段内申请地址组网17
6.2跨网段申请地址组网18
6.3DHCPSnooping应用组网18
6.4自动配置应用组网19
6.5DHCP应用综合组网20
7参考文献20
8DHCP设计规格20
9DHCP命令行手册20
10DHCP测试指导21
10.1功能测试21
10.2容错测试21
10.3组合测试21
10.4压力测试21
10.5性能测试22
10.6安全性测试22
10.7协议标准符合度测试22
10.8稳定性测试22
11CheckList23
缩略语清单:
参考资料清单
包括作为测试依据的测试标准文档;
1DHCP简介
1.1产生背景
概述XXX功能模块。
连接到Internet的计算机需要在发送或接收数据报前知道其IP地址和其他信息,如网关地址、使用的子网掩码和域名服务器的地址。
计算机可以通过BOOTP协议获取这些信息。
BOOTP协议(BootstrapProtocol)是一种较早出现的远程启动的协议,通过与远程服务器通信以获取通信所需的必要信息,主要用于无磁盘的客户端从服务器得到自己的IP地址、服务器的IP地址、启动映像文件名、网关IP地址等等。
BOOTP设计用于相对静态的环境,每台主机都有一个永久的网络连接。
管理人员创建一个BOOTP配置文件,该文件定义了每台主机的一组BOOTP参数。
由于配置通常保持不变,该文件不会经常改变。
典型情况下,配置将保持数星期不变。
随着网络规模的不断扩大、网络复杂度的不断提高,网络配置也变得越来越复杂,在计算机经常移动(如便携机或无线网络)和计算机的数量超过可分配的IP地址等情况下,原有针对静态主机配置的BOOTP协议已经越来越不能满足实际需求。
为方便用户快速地接入和退出网络、提高IP地址资源的利用率,需要在BOOTP基础上制定一种自动机制来进行IP地址的分配。
为此,IETF设计了一个新的协议,即DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)。
1.2技术优点
描述XXX功能模块技术背景、技术继承关系等。
DHCP可以说是BOOTP的增强版本。
它采用客户端/服务器的通信模式。
所有的IP网络配置参数都由DHCP服务器集中管理,并负责处理客户端的DHCP请求;
而客户端则会使用服务器分配的IP网络参数进行通信。
针对客户端的不同需求,DHCP提供三种IP地址分配策略:
手工分配地址:
由管理员为少数特定客户端(如WWW服务器等)静态绑定固定的IP地址,通过DHCP将配置的固定IP地址发给客户端;
自动分配地址:
DHCP为客户端分配租期为无限长的IP地址;
动态分配地址:
DHCP为客户端分配有有效期限的IP地址,到达使用期限后,客户端需要重新申请地址。
管理员可以选择DHCP采用哪种策略响应每个网络或每台主机。
DHCP从两个方面扩充了BOOTP:
DHCP允许计算机快速、动态的获取IP地址。
为使用DHCP的动态地址分配机制,管理员必须配置DHCP服务器,使其能提供一组IP地址,称之为地址池。
任何时候一旦有新的计算机连接到网络上,该计算机就与服务器联系,并申请一个IP地址。
服务器从配置的地址池中选择一个地址,并将它分配给该计算机。
与BOOTP相比,DHCP可以为客户端提供更加丰富的网络配置信息。
1.3相关术语
描述XXX功能模块问题解决方案、应该领域等。
DHCP服务器:
DHCP服务的提供者,通过DHCP报文与DHCP客户端交互,为各种类型的客户端分配合适的IP地址,并可以根据需要为客户端分配其它网络参数。
DHCP客户端:
是整个DHCP过程的触发者和驱动者,通过DHCP报文和DHCP服务器交互,得到IP地址和其他网络参数。
DHCP中继:
DHCP报文的中继转发者。
它在处于不同网段间的DHCP客户端和服务器之间承担中继服务,解决了DHCP客户端和DHCP服务器必须位于同一网段的问题。
DHCPSnooping:
DHCP服务的二层监听功能。
利用该功能可以从接收到的DHCP-ACK和DHCP-REQUEST报文中提取并记录IP地址和MAC地址信
2DHCP工作原理
详细描述XXX功能模块的工作原理,包括工作方式、实现方式、协议
2.1DHCP工作过程
由于在IP地址动态获取过程中采用广播方式发送报文,因此要求DHCP客户端和服务器位于同一个网段内。
如果DHCP客户端和DHCP服务器位于不同的网段,则需要通过DHCP中继来中继转发DHCP报文。
通过DHCP中继完成动态配置的过程中,客户端与服务器的处理方式与不通过DHCP中继时的处理方式基本相同。
下面仅以DHCP客户端与DHCP服务器在同一网段的情况为例,说明DHCP协议的工作过程。
DHCP中继的工作过程,请参见“DHCP中继工作过程”。
2.1.1动态获取IP地址
为了动态获取并使用一个合法的IP地址,需要经历以下几个阶段:
(1)发现阶段:
即DHCP客户端寻找DHCP服务器的阶段。
(2)提供阶段:
即DHCP服务器提供IP地址的阶段。
(3)选择阶段:
即DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。
(4)确认阶段:
即DHCP服务器确认所提供的IP地址的阶段。
IP地址的动态获取过程如图2所示,下面将详细介绍每个阶段的工作过程。
1.发现阶段
在发现阶段,DHCP客户端通过发送DHCP-DISCOVER报文来寻找DHCP服务器。
由于DHCP服务器的IP地址对于客户端来说是未知的,所以DHCP客户端以广播方式发送DHCP-DISCOVER报文。
所有收到DHCP-DISCOVER报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置。
2.提供阶段
网络中接收到DHCP-DISCOVER报文的DHCP服务器,会选择一个合适的IP地址,连同IP地址租约期限和其他配置信息(如网关地址,域名服务器地址等)一同通过DHCP-OFFER报文发送给DHCP客户端。
DHCP服务器通过地址池保存可供分配的IP地址和其他配置信息。
当DHCP服务器接收到DHCP请求报文后,将从IP地址池中取得空闲的IP地址及其他的参数,发送给DHCP客户端。
DHCP服务器为客户端分配IP地址的优先次序如下:
(1)与客户端MAC地址或客户端ID静态绑定的IP地址;
(2)DHCP服务器记录的曾经分配给客户端的IP地址;
(3)客户端发送的DHCP-DISCOVER报文中Option50字段指定的IP地址;
(4)在DHCP地址池中,顺序查找可供分配的IP地址,最先找到的IP地址;
(5)如果未找到可用的IP地址,则依次查询租约过期、曾经发生过冲突的IP地址,如果找到则进行分配,否则将不予处理。
DHCP服务器为客户端分配IP地址时,服务器首先需要确认所分配的IP没有被网络上的其他设备所使用。
DHCP服务器通过发送ICMPEchoRequest(ping)报文对分配的IP进行探测。
如果在规定的时间内没有应答,那么服务器就会再次发送ping报文。
到达规定的次数后,如果仍没有应答,则所分配的IP地址可用。
否则将探测的IP地址记录为冲突地址,并重新选择IP地址进行分配。
3.选择阶段
如果有多台DHCP服务器向DHCP客户端回应DHCP-OFFER报文,则DHCP客户端只接受第一个收到的DHCP-OFFER报文。
然后以广播方式发送DHCP-REQUEST请求报文,该报文中包含Option54(服务器标识选项),即它选择的DHCP服务器的IP地址信息。
以广播方式发送DHCP-REQUEST请求报文,是为了通知所有的DHCP服务器,它将选择Option54中标识的DHCP服务器提供的IP地址,其他DHCP服务器可以重新使用曾提供的IP地址。
4.确认阶段
收到DHCP客户端发送的DHCP-REQUEST请求报文后,DHCP服务器根DHCPREQUEST
报文中携带的MAC地址来查找有没有相应的租约记录。
如果有,则发送DHCP-ACK报文作为应答,通知DHCP客户端可以使用分配的IP地址。
DHCP客户端收到DHCP服务器返回的DHCP-ACK确认报文后,会以广播的方式发送免费ARP报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内没有收到回应,客户端才使用此地址。
否则,客户端会发送DHCP-DECLINE报文给DHCP服务器,通知DHCP服务器该地址不可用,并重新申请IP地址。
如果DHCP服务器收到DHCP-REQUEST报文后,没有找到相应的租约记录,或者由于某些原因无法正常分配IP地址,则发送DHCP-NAK报文作为应答,通知DHCP客户端无法分配合适IP地址。
DHCP客户端需要重新发送DHCP-DISCOVER报文来请求新的IP地址。
2.1.2重用曾经分配的IP地址
DHCP客户端每次重新登录网络时,不需要再发送DHCP-DISCOVER报文,而是直接发送包含前一次分配的IP地址的DHCP-REQUEST请求报文,即报文中的Option50(请求的IP地址选项)字段填入曾经使用过的IP地址。
DHCP服务器收到这一报文后,判断DHCP客户端是否可以使用请求的地址:
如果可以使用请求的地址,DHCP服务器将回复DHCP-ACK确认报文。
收到DHCP-ACK报文后,DHCP客户端可以继续使用该地址进行通信。
如图3所示。
如果请求的IP地址已无法再分配给DHCP客户端(例如,此IP地址已分配给其它DHCP客户端使用),则DHCP服务器将回复DHCP-NAK否认报文。
DHCP客户端收到此报文后,必须重新发送DHCP-DISCOVER报文来请求新的IP地址。
如图4所示。
2.1.3更新租约
DHCP服务器分配给DHCP客户端的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回分配的IP地址。
如果DHCP客户端要延长其IP租约,则必须更新其IP租约。
(1)IP租约期限达到一半(T1)时,DHCP客户端会自动以单播的方式,向DHCP服务器发送DHCP-REQUEST报文,请求更新IP地址租约。
如果收到DHCP-ACK报文,则租约更新成功;
如果收到DHCP-NAK报文,则重新发起申请过程。
(2)到达租约期限的87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动向DHCP服务器发送更新其IP租约的广播报文。
图5所示,为租约达到87.5%,广播发送DHCP-REQUEST报文后,收到DHCP服务器回应的DHCP-ACK报文,租约更新成功的情况。
2.1.4DHCP客户端主动释放IP地址
DHCP客户端不再使用分配的IP地址时,会主动向DHCP服务器发送DHCPRELEASE报文,通知DHCP服务器释放IP地址的租约。
DHCP服务器会保留这个DHCP客户端的配置信息,以便该客户端重新申请地址时,重用这些参数。
2.1.5获取除IP地址外的配置信息
DHCP客户端获取IP地址后,如果需要从DHCP服务器获取更为详细的配置信息,则发送DHCP-INFORM报文向DHCP服务器进行请求。
DHCP客户端通过Option55(请求参数列表选项),指明需要从服务器获取哪些网络配置参数。
DHCP服务器收到该报文后,将通过DHCP-ACK报文为客户端分配它所需要的网络参数。
2.2DHCP中继工作过程
原始的DHCP协议要求客户端和服务器只能在同一个子网内,不可以跨网段工作。
因此,为进行动态主机配置需要在所有网段上都设置一个DHCP服务器,这显然是不经济的。
DHCP中继的引入解决了这一问题,它在处于不同网段间的DHCP客户端和服务器之间承担中继服务,将DHCP协议报文跨网段中继到目的DHCP服务器,于是不同网络上的DHCP客户端可以共同使用一个DHCP服务器。
DHCP中继的工作过程如图6所示。
DHCP客户端发送请求报文给DHCP服务器,DHCP中继收到该报文并适当处理后,发送给指定的位于其它网段上的DHCP服务器。
服务器根据请求报文中提供的必要信息,通过DHCP中继将配置信息返回给客户端,完成对客户端的动态配置。
(1)DHCP中继接收到DHCP-DISCOVER或DHCP-REQUEST报文后,将进行如下处理:
为防止DHCP报文形成环路,抛弃报文头中hops字段的值大于限定跳数的DHCP请求报文。
否则,继续进行下面的操作。
检查giaddr字段。
如果是0,需要将giaddr字段设置为接收请求报文的接口IP地址。
如果接口有多个IP地址,可选择其一。
以后从该接口接收的所有请求报文都使用该IP地址。
如果giaddr字段不是0,则不修改该字段。
将hops字段增加1,表明又经过一次DHCP中继。
将请求报文的TTL设置为DHCP中继设备的TTL缺省值,而不是原来请求报文的TTL减1。
对中继报文的环路问题和跳数限制问题都可以通过hops字段来解决。
DHCP请求报文的目的地址修改为DHCP服务器或下一个DHCP中继的IP地址。
从而,将DHCP请求报文中继转发给DHCP服务器或下一个DHCP中继。
(2)DHCP服务器根据giaddr字段为客户端分配IP地址等参数,并将DHCP应答报文发送给giaddr字段标识的DHCP中继。
DHCP中继接收到DHCP应答报文后,会进行如下处理:
DHCP中继假设所有的应答报文都是发给直连的DHCP客户端。
giaddr字段用来识别与客户端直连的接口。
如果giaddr不是本地接口的地址,DHCP中继将丢弃应答报文。
DHCP中继检查报文的广播标志位。
如果广播标志位为1,则将DHCP应答报文广播发送给DHCP客户端;
否则将DHCP应答报文单播发送给DHCP客户端,其目的地址为yiaddr,链路层地址为chaddr。
3DHCP应用限制
DHCP具有如下缺点:
(1)当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;
(2)DHCP服务器不能跨网段与客户端通信,除非通过DHCP中继转发报文。
4DHCP扩展功能
4.1DHCP安全功能
DHCP安全的主要功能是管理DHCP中继的用户地址表(包括动态添加、手工添加、手工删除以及查询),并通过与ARP模块配合实现禁止非正常获取IP地址的用户上网。
这样就可以有效的进行地址规划和分配,实现对用户的控制。
如图7所示,DHCP安全实现的基本功能如下:
(1)合法用户IP
地址表的管理确保所有合法用户都记录在DHCP中继的用户地址表项中。
当客户端通过DHCP中继从DHCP服务器获取到IP地址时,DHCP中继可以自动记录客户端IP地址与MAC地址的绑定关系,生成DHCP中继的动态用户地址表项。
同时,为满足用户采用合法固定IP地址访问外部网络的需求,DHCP中继也支持静态用户地址表项配置,即在DHCP中继上手工配置IP地址与MAC地址的绑定关系。
DHCP中继还支持用户表项的手工删除和查询功能。
(2)禁止非正常获取IP地址的用户上网的功能
该功能需要ARP功能配合。
对于和用户地址表中MAC地址与IP地址不匹配的ARP请求,DHCP中继不会返回ARP应答。
(3)表项老化功能
由于某些三层设备无法处理DHCP客户端发出的DHCP-RELEASE报文(单播报文直接进行硬件三层转发,不会送给CPU处理),造成DHCP客户端主动释放IP地址后,DHCP中继用户地址表中依然保留用户的MAC地址与IP地址绑定信息,使用户地址表项无法老化。
为了解决这个问题,目前设备提供握手功能来实现DHCP用户地址表项的老化。
握手功能即DHCP中继模拟DHCP客户端定期向DHCP服务器发送握手请求报文DHCP-REQUEST,报文的内容根据用户地址表项的内容来构建,但源MAC地址使用DHCP中继接口的MAC地址,以和正常发送的DHCP-REQUEST报文进行区分。
服务器收到DHCP-REQUEST报文后,检测申请的IP地址是否可以分配,若可以分配则回应一个DHCP-ACK报文,若不可以分配则回应一个DHCP-NAK报文。
DHCP中继收到服务器回应的报文后,进行判断:
若收到了DHCP-ACK报文,则证明用户表项中的IP地址已经被释放,DHCP中继将删除该表项;
若收到了DHCP-NAK报文,则证明用户表项中的IP地址还没有被用户释放,DHCP中继将继续保留该表项。
对于部分DHCP服务器,一旦租约过期就会不响应中继的握手请求报文。
针对这种情况,设备上设置了握手请求报文的最大发送次数。
如果DHCP中继发送DHCPREQUEST报文的次数达到最大值后,仍没有收到应答,DHCP中继则认为租约已经过期,将该表项删除。
4.2DHCPSnooping功能
4.2.1DHCPSnooping基本监听功能
DHCPSnooping即DHCP服务的二层监听功能,开启DHCPSnooping功能后,设备就可以从接收到DHCP-ACK和DHCP-REQUEST报文中提取并记录IP地址和MAC地址信息。
出于安全性的考虑,安全部门需要记录用户上网时所用的IP地址,确认用户申请的IP地址和用户使用的主机的MAC地址的对应关系。
可以通过DHCPSnooping功能监听DHCP-REQUEST报文和DHCP-ACK报文,并记录用户获取的IP地址信息。
4.2.2DHCPSnooping信任功能
DHCPSnooping的信任功能,可以为用户提供进一步的安全性保证DHCPSnooping信任功能可以控制DHCP服务器应答报文的来源,以防止网络中可能存在的伪造或非法DHCP服务器为其他主机分配IP地址及其他配置信息。
DHCPSnooping信任功能将端口分为信任端口和不信任端口:
信任端口是与合法的DHCP服务器直接或间接连接的端口。
信任端口对接收到的DHCP报文正常转发,从而保证了DHCP客户端获取正确的IP地址。
不信任端口是不与合法的DHCP服务器连接的端口。
从不信任端口接收到DHCP服务器响应的DHCP-ACK、DHCP-NAK和DHCP-OFFER报文会被丢弃,从而防止了DHCP客户端获得错误的IP地址。
4.2.3DHCPOption82功能
在传统的DHCP动态分配IP地址方式中,同一VLAN的用户得到的IP地址所拥有的权限是完全相同的。
网络管理者不能对同一VLAN中特定的用户进行有效的控制。
普通的DHCP中继代理不支持Option82,也不能够区分不同的客户端,从而无法结合DHCP动态分配IP地址的应用来控制客户端对网络资源的访问,给网络的安全控制提出了严峻的挑战。
RFC3046定义了DHCPRelayAgentInformationOption(Option82),在DHCP请求报文中附加一些选项信息,使DHCP服务器能够更精确的确定用户的位置,从而对不同的用户采取不同的地址分配策略。
Option82包含两个子选项CircuitID(Sub-option1)和RemoteID(Sub-option2)。
如图8所示,Option82的工作过程为:
(1)用户未通过认证、未获得动态IP地址前,只有认证报文和DHCP报文可以通过DHCPSnooping/DHCP中继设备。
(2)客户端向认证服务器发出认证请求,经过DHCPSnooping/DHCP中继设备的转发到达认证服务器。
其中,认证服务器能够管理用户的权限信息。
(3)认证服务器对用户的合法性进行认证之后,通过认证应答报文把用户的权限告知客户端。
(4)认证通过的合法用户根据认证服务器下发的权限,再向DHCP服务器发起地址请求,同时将权限信息携带在Option82选项字段中。
(5)支持DHCPOption82地址分配策略的DHCP服务器根据Option82字段中的特定权限值为用户分配相应的IP地址。
通过将Option82与实际的认证系统、支持Option82地址分配策略的DHCP服务器结合,能够做到使用Option82的CircuitID和RemoteID子选项按不同的用户权限给用户分配不同的IP地址。
一方面能更精确的进行IP地址管理,另一方面可以让设备进行“源IP地址”的策略路由,从而达到不同IP地址的用户有不同的路由规则、不同的上网权限的目的。
目前我司产品的DHCPSnooping、DHCP中继均已经支持Option82功能,能够在DHCP报文中添加和剥离用户的位置信息。
4.2.4自动配置功能
自动配置功能是设备在空配置启动时自动获取并执行配置文件的功能。
当设备在空配置启动时,系统会自动将设备的指定接口(如VLAN接口1或第一个以太网接口)设置为DHCP客户端,并向DHCP服务器获取IP地址及后续获取配置文件所需要的信息(例如:
TFTP服务器的IP地址、TFTP服务器名、启动文件名等)。
如果获取到相关信息,则DHCP客户端就可发起TFTP请求,从指定的TFTP服务器获取配置文件,之后设备就使用获取到的配置文件进行设备初始化工作。
如果没有获取到相关信息,设备就使用空配置文件进行设备初始化工作。
5DHCP报文格式
DHCP报文格式如图1所示。
DHCP报文的各个字段的具体说明如下:
op:
报文的操作类型,分为请求报文和响应报文,1为请求报文;
2为响应报文。
具体的报文类型在option字段中标识。
htype:
硬件地址