DHCP服务器及其进行网络内部设备管理的方法
技术领域
本发明涉及网络协议技术领域,尤其涉及一种DHCP服务器及其进行网络内部设备管理的方法。
背景技术
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP(User Datagram Protocol,用户数据协议)进行协议传输,主要有两个用途包括:
1)给局域网或网络服务供应商自动分配IP地址,减少网管管理人员为每台设备手工指定IP地址的工作量;
2)给用户或者内部网络管理员作为对所有网络内部设备作中央管理的手段,通过查看地址池租约信息查看网络内部设备数量。
DHCP协议本身具有非常广的使用范围,主要是特点是简单易用,能够节省局域网或网络服务供应商手工规划和分配IP地址的工作量,减少运维负担,也是公司、家庭、网络服务供应商的主要应用技术之一。
但是现有DHCP技术本身也存在一些缺点和不足,主要包括:
地址分配时只能判断自己地址池内部地址是否已经分配,对于网络内部手工静态配置的IP地址无法进行判断,有可能存在DHCP地址池中未分配的IP地址已经在网络内部存在,其存在原因有可能是该IP地址被手工配置,那么对于DHCP协议来说,该IP地址还是会被进行自动分配,被分配到该IP地址的设备有可能存在IP地址冲突的情况,同时造成手工配置IP地址设备也出现IP地址冲突情况。
针对上述DHCP技术存在的问题主要解决方案如下:
如果发生手工配置IP地址和DHCP网络端分配IP地址冲突情况,采用ping包方式获取冲突设备ARP(Address Resolution Protocol,地址解析协议)信息和MAC(Media AccessControl)地址,网络管理员进行查询并找到冲突设备后人工进行恢复,或者通过冲突设备的IP地址、ARP信息、MAC地址信息解析出设备名称或其他有用信息,根据该信息查询到冲突设备,上述任何操作或解决方法都需要前提,就是能够通过获取到的相关信息查询到网络中的冲突设备,那么需要有管理人员登记和维护相关信息,如果没有这些信息也无法找到冲突设备解决问题。
可见,上述问题如果没有网络管理人员进行网络维护,只能通过逐台设备排查的方法进行解决,解决时间取决于网络内部设备数量,问题解决效率低下。
发明内容
本发明提供一种DHCP服务器及其进行网络内部设备管理的方法,可以让DHCP协议更加精确的进行地址分配,避免网络中设备IP地址冲突的概率,减少网络管理人员运维工作量。
第一方面,本发明提供一种DHCP服务器进行网络内部设备管理的方法,该方法包括:
到达设定探测周期时,针对地址池中未分配的IP地址,分别构造ARP请求报文并广播;
收到任一基于ARP请求报文回复的ARP回复报文时,获取该ARP请求报文的源IP地址;
确定获取的源IP地址属于地址池中未分配的IP地址时,将该IP地址从地址池中删除。
第二方面,本发明提供一种进行网络内部设备管理的DHCP服务器,包括:
报文广播单元,用于到达设定探测周期时,针对地址池中未分配的IP地址,分别构造ARP请求报文并广播;
地址获取单元,用于收到任一基于ARP请求报文回复的ARP回复报文时,获取该ARP回复报文的源IP地址;
地址删除单元,用于确定获取的源IP地址属于地址池中未分配的IP地址时,将该IP地址从地址池中删除。
本发明实施例的DHCP服务器及其进行网络内部设备管理的方法,具体以下有益效果:
DHCP协议自身能够主动探测和扫描网络内部IP地址,DHCP协议自动根据探测和扫描结果维护自身地址池租约信息表,针对自己未记录的已经分配的IP地址从未分配的IP地址项中删除,从而不再进行该IP地址的分配,减少网络中存在冲突IP地址的问题,进而减少网络管理人员排查定位冲突设备工作量;
扫描机制在服务器发起,对现有被分配IP地址的设备没有任何影响,降低网络设备升级成本。
附图说明
图1为本发明实施例提供的DHCP服务器进行网络内部设备管理的方法流程图;
图2为本发明实施例一DHCP服务器进行网络内部设备管理的方法详细流程图;
图3为本发明实施例二提供的安全认证机制流程图;
图4为本发明实施例中option90字段报文结构示意图;
图5为本发明实施例中安全认证机制详细流程图;
图6为本发明实施例提供的进行网络内部设备管理的DHCP服务器结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
本实施例提供一种DHCP服务器进行网络内部设备管理的方法,是一种IP地址扫描机制,提高DHCP协议自身易用性,IP地址扫描机制可以让DHCP协议更加精确的进行地址分配,避免网络中设备IP地址冲突的概率,减少网络管理人员运维工作量,具体地,如图1所示,该方法包括:
步骤S101,到达设定探测周期时,针对地址池中未分配的IP地址,分别构造ARP请求报文并广播;
ARP请求报文中的目的地址为该未分配的IP地址。
DHCP服务器具有地址池,定期针对地址池范围内未分配的IP地址,构造并广播ARP请求报文,其中针对地址池中每个未分配的IP地址,可以构造多个相同的ARP请求报文并连续广播,如可以针对每个IP地址连续广播3个相同的ARP请求报文;
步骤S102,收到任一基于ARP请求报文回复的ARP回复报文时,获取该ARP回复报文的源IP地址;
记录源IP地址也即记录ARP请求报文的目的IP地址,如果该地址确实属于未分配的IP地址,本实施例可以根据ARP回复报文记录完整表项,具体可以包括IP地址、MAC地址、出接口、VLAN信息。
步骤S103,确定获取的源IP地址属于地址池中未分配的IP地址时,将该IP地址从地址池中删除。
在记录上述完整表项的同时,将该IP地址从可分配地址中删除。如果没有收到ARP回复报文则不进行任何操作,继续保持该IP地址为可分配状态,如果在网络内部有设备申请IP地址则正常分配。对于未分配的IP地址,如果没有收到ARP回复报文,也可以进行记录,但仅记录IP地址、出接口、VLAN信息,后期再次以该IP地址为目的IP地址构造并发送ARP请求报文。
本发明实施例提供的方法可以避免出现DHCP地址池中未分配的IP地址被异常占用的情况发生,避免网络中由于该情况造成的IP地址冲突问题。
将上述方法应用到地址池范围较大的DHCP服务器时,一次性发送大量ARP请求报文会导致局域网内部广播报文数量突增,有可能影响网络稳定性,对于DHCP服务器本身也会造成加大负荷。
作为一种优选实施方式,本实施例在发送ARP请求报文时加入发送速率控制机制,以在避免网络中设备IP地址冲突的同时,尽可能的降低广播报文对于局域网和DHCP服务器自身造成的负荷,减少网络管理人员运维工作量。
本实施例的方法还包括:
根据接收方向上的端口带宽利用率和/或接收方向上的端口广播报文带宽利用率,确定ARP请求报文发送速率,其中,端口带宽利用率越高,ARP请求报文发送速率越小,端口广播报文带宽利用率越高,ARP请求报文发送速率越小;其中,按确定的ARP请求报文发送速率广播ARP请求报文。
接收方向上的端口带宽利用率很高时,表明网络中传输的报文(各种类型的)量很大,易发生端口剩余带宽不足、网络拥塞等现象,相应的ARP请求报文也很可能发送失败或丢失,为此可将ARP请求报文的发送速率设置的低一些,尽可能的避免导致上述问题的出现。
接收方向上的端口广播报文带宽利用率很高,则表明网络中传输有大量的广播报文(各种类型的),而这意味着需要广播域下的所有设备(包括DHCP服务器)均要耗费一定资源来处理这些报文,这时候DHCP服务器如果再发送大量ARP请求报文,不仅会加大自身的负荷,也会造成其它设备负荷的增加。为此可将ARP请求报文的发送速率设置的低一些,尽可能的避免导致上述问题的出现。
确定ARP请求报文的发送速率时,可以根据上述两者任一个对发送速率调整,优选可以根据两者结合对ARP请求报文发送速率进行调整。
进一步的,确定接收方向上的端口带宽利用率,包括:间隔设定读取周期,读取一次接收方向的端口收包速率;根据多次读取的端口收包速率和端口最大速率,确定端口带宽利用率;
进一步的,确定接收方向上的端口广播报文带宽利用率,包括:间隔设定读取周期,读取一次接收方向的端口广播报文收包速率;根据多次读取的端口广播报文收包速率和端口最大速率,确定端口广播报文带宽利用率。
进一步地,确定ARP请求报文发送速率,包括:
根据端口带宽利用率和/或端口广播报文带宽利用率,确定报文发送系数,其中,接收方向上的端口带宽利用率越高,报文发送系数越小,接收方向上的端口广播报文带宽利用率越高,报文发送系数越小;
将预设的ARP请求报文最大发送速率与所述报文发送系数作乘积,得到所述报文发送速率。
进一步地,对于参考两者结合的情况确定报文发送系数时,包括:
根据预先创建的端口带宽利用率范围与端口带宽利用系数之间的映射关系表,确定端口带宽利用率所在范围对应的端口带宽利用系数;
根据预先创建的端口广播报文带宽利用率范围与端口广播报文带宽利用系数之间的映射关系表,确定端口广播报文带宽利用率所在范围对应的端口广播报文带宽利用系数;
将所确定的端口带宽利用系数和端口广播报文带宽利用系数进行加权,得到报文发送系数。
其中,报文发送系数、端口带宽利用系数以及端口广播报文带宽利用系数均需满足如下条件:大于或等于0,且小于或等于1;在上述映射关系表中,端口带宽利用系数随端口带宽利用率范围值的增大而逐渐降低;同样的,端口广播报文带宽利用系数随端口广播报文带宽利用率范围值的增大而逐渐降低。优选的,当端口广播报文带宽利用率高于设定的阈值(例如40%)时,其所对应的端口广播报文带宽利用系数为0。
ARP请求报文最大发送速率可以由本领域普通技术人员根据局域网内部设备或终端总体数量,设备或终端IP地址申请频率,DHCP服务器租约周期,DHCP服务器处理能力得到,例如为1000个/秒。
下面结合图2给出本发明实施例的DHCP服务器启动后进行网络内部设备管理的方法详细流程,主要包括:
步骤201,确定探测功能的状态,如果为使能状态,执行步骤202,否则结束;
探测功能默认为禁止状态,DHCP服务器想进行IP地址扫描时,配置探测功能为使能状态,预先配置探测周期(60秒—600秒),可以配置探测周期默认值为180秒。
步骤202,针对地址池中的地址进行筛选确定DHCP地址未分配列表,列表范围为地址池的全部IP地址中去掉已经分配IP地址的部分;
步骤203,确定是否到达探测周期,若到达,执行步骤204,否则步骤205;
步骤204,根据DHCP地址未分配列表按照动态确定的报文发送速率逐一发送ARP请求报文;
ARP请求报文的源IP地址为地址池网关的IP地址,目的IP地址为DHCP地址未分配列表中的IP地址,源MAC地址为DHCP服务器自身MAC地址,目的MAC地址为全F,vlan信息为该接口封装vlan,每个IP地址发送3个ARP请求报文。
步骤205,继续等待至到达探测周期;
步骤206,针对每个未分配的IP地址对应的ARP请求报文,确定是否收到任一个ARP回复报文,若是,执行步骤207,否则执行步骤207’;
步骤207’,不进行任何变更记录;
步骤207,记录该IP地址、MAC地址(即ARP回复报文的源MAC地址)、出接口信息、vlan信息;
如果收到ARP回复报文,确认该报文的源IP地址是否属于DHCP地址未分配列表中的IP地址;如果属于,则记录该IP地址、MAC地址(即ARP回复报文的源MAC地址)、出接口信息、vlan信息,将该信息存储于DHCP租约表中,租约表中增加“来源”标识,标识该租约“来源”为unknown;
步骤208,将该IP地址增加到DHCP租约表中后,同时将该IP地址从DHCP地址未分配列表中删除,更新DHCP地址未分配列表;
DHCP服务器在下一次探测周期到达时不再发送该IP地址的ARP请求报文。
步骤209,如果未收到ARP回复报文,不进行任何记录变更,仍然保留该IP地址在DHCP地址未分配列表;
到达下一个探测周期后,DHCP服务器再次根据DHCP地址未分配列表按照动态确定的报文发送速率逐一发送ARP请求报文,发送范围是变更后的DHCP地址未分配列表;
探测期间收到其它设备申请IP地址的DHCP discover报文(即发现报文)时,从DHCP地址未分配列表中正常分配,探测机制不影响地址分配处理流程,两个处理流程独立进行。
本实施例中,ARP请求报文发送速率采用动态调整方式,发送机制为根据实时的端口带宽利用率和端口广播报文带宽利用率为依据,动态调整ARP请求报文发送速率,定义端口收包速率为x和端口广播报文收包速率为y,接收方向的端口带宽利用率为N,接收方向的端口广播报文带宽利用率为A;
以30秒为周期计算所述端口带宽利用率N、端口广播报文带宽利用率A的数值,计算端口带宽利用系数和端口广播报文带宽利用系数,每10秒读取一次端口收包速率x和端口广播报文收包速率y;优选的,所述端口带宽利用率N为:最近k次分别读取到的端口收包速率与端口最大速率比值的平均值,所述端口广播报文带宽利用率A为:最近k次分别读取到的端口广播报文收包速率与端口最大速率比值的平均值。其中,k为大于或等于1的整数,典型的所述k为3:
端口带宽利用率为N=(最近第一次端口收包速率x1/端口最大速率*100%+最近第二次端口收包速率x2/端口最大速率*100%+最近第三次端口收包速率x3/端口最大速率*100%)/3;
端口广播报文带宽利用率为A=(最近第一次端口广播报文收包速率y1/端口最大速率*100%+最近第二次端口广播报文收包速率y2/端口最大速率*100%+最近第三次端口广播报文收包速率y3/端口最大速率*100%)/3;
需要说明一点,本发明实施例中,“端口带宽利用率、端口带宽利用系数、端口广播报文带宽利用率、端口广播报文带宽利用系数”中的端口均指的是DHCP服务器上开启了DHCP服务器功能的接口。如果DHCP服务器开启有多个所述接口,那么所有接口独立计算得到利用率后取最小值,以保证网络稳定性优先。ARP请求报文的出接口为开启了DHCP服务器功能的所有接口中的一个接口,该出接口如何确定,为本领域技术人员所公知,在此不再赘述。
获取端口带宽利用率N和广播报文带宽利用率A后,根据下表查找出对应的端口带宽利用系数Z1和端口广播报文带宽利用系数Z2;
对Z1和Z2的结果取平均值得出ARP请求报文发送系数S:
S=(Z1+Z2)/2
定义ARP请求报文最大发送速率为1000个/秒;
ARP请求报文实际发送速率=ARP请求报文最大发送速率1000个/秒*S;
但是,上述方案可能会存在如下问题:如果ARP报文发送速率太慢,探测周期又很短,那么会出现部分IP地址所生成的ARP请求报文没有被广播出去。为此,作为一种优选实施方式,DHCP服务器设定一个变量,该变量存储每个探测周期内发送的最后1个ARP请求报文的地址池IP地址是什么,那么下一个探测周期开始时先检查该变量,仍然从这个IP地址继续顺序发送,比如变量的值为10.0.0.100,那么下一个探测周期开始时就继续从10.0.0.100开始,如果该IP地址已经从DHCP地址未分配列表中删除,那么从DHCP地址未分配列表中选取离这个IP地址最近的下一个IP地址开始进行ARP请求报文的发送,直至最后一个IP地址扫描完后返回DHCP地址未分配列表的第一个IP地址重新开始。
如果DHCP服务器在探测周期内将DHCP地址未分配列表所有IP地址的ARP请求报文都发送完成,那么该变量值置为null,下一个探测周期开始时仍然从DHCP地址未分配列表第一个IP地址开始发送ARP请求报文。
或者,作为另一种实现方式,等到探测DHCP地址未分配列表项扫描更新完毕后,等待设定时间段,再次扫描更新。所述设定时间段即为所述探测周期。所述DHCP地址未分配列表表项的更新,即为上述方案中构造并发送目的IP地址为该表项IP地址的ARP请求报文,然后根据是否收到针对该ARP请求报文的ARP回复报文确定是否删除该表项。并且该方式下的扫描顺序可以是表项顺序或者随机方式,不作具体限定。
实施例二
现有的DHCP协议除了IP地址冲突问题,还存在如下问题:
DHCP没有安全校验机制,如果在网络内部任意接入一台设备,通过抓取DHCP交互报文,就能够获取DHCP服务器地址,relay地址,地址池网段,相关option字段信息等内容,该设备获取信息后也可以向DHCP服务器申请地址,获取网络内部IP地址,DHCP协议报文交互内容采用明文传输,本身也没有安全认证和校验机制,协议整体安全性较差。
针对上述问题,目前有如下解决机制:
如果发生任意一台外部设备接入内部网络获取内部网络IP地址的情况,外部设备不进行任何恶意攻击造成网络异常情况下,网络管理人员无法感知,必须等到网络存在异常情况时进行排查时才能发现,相关网络安全工作则需要由防火墙、杀毒软件等其他软件和硬件机制进行保障;
或者在DHCP服务器搭建时在server端进行强关联绑定,为每个网络内部设备配置id信息,并且将要分配的IP地址和id信息、MAC地址等进行手工绑定,不符合绑定关系的DHCP请求不进行地址分配,该方法需要大量的人工手工绑定操作,与DHCP协议本身快速简单的目的不相符,使用DHCP协议目的就是为了快速简单分配IP地址,如果配置很复杂则会考虑手工指定配置方法,所以DHCP本身缺少一种简单通用性较强的安全认证机制;
或者采用DHCP和AAA认证技术结合,DHCP收到报文后将报文发送给AAA认证服务器进行认证,认证通过后再返回给DHCP服务器认证是否通过的结果,DHCP服务器根据结果判断是否分配地址,该方式需要设备本身支持AAA认证功能,或者在网络内容增加一台支持AAA认证功能的服务器,增加网络复杂度和维护成本。
本实施例针对上述问题,提出一种DHCP地址分配安全校验机制,进一步解决和完善DHCP协议自身存在的上述问题。如图3所示,该方法包括:
步骤S301,接收需要分配IP地址的设备发起的认证请求,所述认证请求包括加密字段,所述加密字段包括加密形式的认证密码;
需要申请IP地址的设备发起包括认证密码的认证请求,认证密码在加密字段,采用加密方式传输。
优选地,如图4所示,该认证密码封装在DHCP discover报文的自定义字段option90字段内进行传输。
步骤S302,对所述认证请求中的加密字段解密,对解密得到的认证密码进行校验;
DHCP服务器收到用于地址申请的DHCP discover报文时,校验是否存在option90字段,如果不存在该字段则不回复DHCP offer报文(简称offer报文)。
如果存在option90字段则进行认证密码解密,解密后进行校验,校验通过则发送offer报文,校验不通过则不回复offer报文。
步骤S303,校验通过后确定其为合法设备,从所述地址池中选取一个未分配的IP地址作,作为本次所分配的IP地址,执行IP地址分配过程。
需要申请IP地址的设备收到DHCP服务器发送的offer报文后,发送DHCP request报文(也即请求报文,简称request报文),此时仍然携带option90字段;
DHCP服务器收到地址申请request报文后,继续校验option90字段,如果不存在则不回复DHCP ack报文(简称ack报文),如果存在option90字段则进行认证密码解密,解密后进行校验,校验通过则发送ack报文,校验不通过则不回复ack报文。在此说明一点:
当对需要分配IP地址的设备所发送的request报文的option90字段校验失败时,确定之前返回给所述设备的DHCP offer报文中携带所分配的IP地址未分配成功,也即所分配的IP地址依然为未分配IP地址;
当对需要分配IP地址的设备所发送的request报文的option90字段校验成功后返回ack报文时,确定之前返回给所述设备的DHCP offer报文中携带所分配的IP地址分配成功,也即所分配的IP地址为已分配IP地址。
本实施例提出的地址申请时安全认证机制,可以让设备申请地址池携带安全认证信息,DHCP服务器针对该安全认证信息进行校验,校验通过后分配地址,不通过拒绝分配地址。
DHCP服务器配置开启安全认证使能功能,配置认证密码,该功能基于每个地址池独立设置,每个地址池可以设置是否开启安全认证功能和认证密码。
下面给出本发明实施例DHCP服务器收到需要分配IP地址的设备发送的DHCPdiscover报文进行安全认证的详细流程,如图5所示,包括:
步骤501,确定安全认证状态,如果是使能状态,执行步骤502,否则执行步骤505;
DHCP服务器配置安全认证使能和认证密码,安全认证功能默认为禁止状态,认证密码至少8位,只能包含数字和字母;
安全认证和认证密码功能配置在地址池中独立配置,并非针对整个DHCP服务器进行配置,如果DHCP服务器存在多个地址池,每个地址池可以独立配置是否开启安全认证功能和认证密码;
需要申请IP地址的设备设置认证密码,同时发出DHCP discover报文,源MAC地址为设备自身MAC地址,目的MAC地址为全F,源IP为0.0.0.0,目的IP地址为255.255.255.255,option90字段封装内容为加密后的认证密码,采用密文方式传送;
DHCP discover报文其他option字段不受本实施例影响,封装内容和原有DHCP协议保持一致;
步骤502,检查DHCP discover报文option90字段,如果存在,执行步骤503,否则执行步骤503’;
步骤503’,丢弃DHCP discover报文;
DHCP服务器检验安全认证功能是否开启,如果开启则先校验DHCPdiscover报文是否包含option90字段,如果不包含则丢弃DHCP discover报文,不回复offer报文;
步骤503,如果DHCP discover报文存在option90字段则进行DHCP discover报文解密;
步骤504,校验DHCP discover报文中option90字段内容,校验通过,执行步骤505,校验失败,执行步骤503’;
步骤505,向发送DHCP discover报文的设备发送offer报文;
在DHCP discover报文解密完成后,根据解密后的内容识别发送该DHCP discover报文的设备所属的DHCP服务器连接的网络,作为目标网络。之后,获取该目标网络对应的地址池的认证密码,将解密得到的DHCP discover报文中的option90字段内容和该地址池设置的认证密码进行校验,如果校验结果一致则从DHCP地址未分配列表中提取IP地址添加在offer报文中返回给发送DHCP discover报文的设备,以将该IP地址分配给该设备,如果校验结果不一致则丢弃报文,不回复offer报文;
在实际应用的组网架构中,DHCP服务器所连接的网络往往不止一个,很可能是两个、三个、甚至更多,每个网络单独设置有一个地址池。为此,为方便管理以及安全性考虑,还可单独为每一个地址池设置认证密码。其中,发送DHCP discover报文的设备具体属于DHCP服务器连接的全部网络中的哪一个网络,其识别过程为现有技术,本领域技术人员公知,在此不再赘述。
步骤506,接收上述设备收到offer报文后回复的DHCP request报文;
上述设备收到DHCP服务器发送的offer报文后进行记录,同时回复DHCP request报文,DHCP request报文中option90字段封装内容为加密后的认证密码,采用密文方式传送;
步骤507,确定DHCP服务器检验安全认证状态,如果使能状态,执行步骤508,如果禁止状态执行步骤511;
步骤508,校验DHCP request报文是否包含option90字段,若是,执行步骤509,若否,执行步骤503’;
步骤509,如果存在option90字段则进行DHCP request报文解密,根据解密后的option90字段内容和上述设备对应地址池设置的认证密码进行校验;
步骤510,确定校验结果是否一致,如果校验结果一致,执行步骤511,否则,执行步骤503’;
步骤511,向上述设备回复ack报文,标记offer报文中添加的IP地址为已分配,从DHCP地址未分配列表中删除该IP地址;
上述设备收到DHCP服务器发送的ack报文后完成DHCP申请流程,在接口下配置DHCP服务器分配的IP地址。
本发明实施例提供的DHCP服务器及其进行网络内部设备管理的方法,可以实现将不属于自身分配的IP地址增加到租约信息中,信息获取更加全面;
扫描机制能够根据端口带宽利用率和端口广播报文带宽利用率计算ARP请求报文发送速率,该机制可以根据网络内部当前使用情况动态调整ARP请求发送速率,避免造成局域网内部广播报文增加和DHCP服务器自身负荷;
DHCP协议靠扩充option字段增加安全校验机制,不影响之前相关标准定义,可以兼容现有协议,保证向下兼容性;
DHCP协议增加了安全校验机制,获取地址时可以选择开启或关闭安全校验机制,如果开启安全校验机制依靠DHCP报文中的option字段密码进行校验,校验正确后才会分配地址,提高协议安全性;
安全校验密码采用数据加密技术,传输过程中option字段采用加密后的报文进行传输,即使被他人截获也无法直接看到密码内容,保证安全性;
DHCP服务器设置校验密码后,所有申请IP地址设备均可采用该密码进行认证,不需要每台设备独立进行其他配置,减少网络管理人员维护工作量;
DHCP服务器可以为每个地址池设置独立密码,连接多个网络情况下,每个网络设置的申请密码不相同,保证每个独立网络的认证密码不相同,增加安全性。
实施例三
本发明实施例提供一种进行网络内部设备管理的DHCP服务器,如图6所示,包括:
报文广播单元601,用于到达设定探测周期时,针对地址池中未分配的IP地址,分别构造ARP请求报文并广播;
地址获取单元602,用于收到任一基于ARP请求报文回复的ARP回复报文时,获取该ARP回复报文的源IP地址;
地址删除单元603,用于确定获取的源IP地址属于地址池中未分配的IP地址时,将该IP地址从地址池中删除。
优选地,所述报文广播单元,用于针对地址池中每个未分配的IP地址,构造多个相同的ARP请求报文并连续广播。
优选地,该DHCP服务器还包括:
速率确定单元,用于根据接收方向上的端口带宽利用率和/或接收方向上的端口广播报文带宽利用率,确定ARP请求报文发送速率,其中,端口带宽利用率越高,ARP请求报文发送速率越小,端口广播报文带宽利用率越高,ARP请求报文发送速率越小;
其中,所述报文广播单元具体用于按确定的ARP请求报文发送速率广播ARP请求报文。
优选地,所述速率确定单元确定接收方向上的端口带宽利用率,包括:
间隔设定读取周期,读取一次接收方向的端口收包速率;
根据多次读取的端口收包速率和端口最大速率,确定端口带宽利用率;
所述速率确定单元确定接收方向上的端口广播报文带宽利用率,包括:
间隔设定读取周期,读取一次接收方向的端口广播报文收包速率;
根据多次读取的端口广播报文速率和端口最大速率,确定端口广播报文带宽利用率。
优选地,所述速率确定单元确定ARP请求报文发送速率,包括:
根据端口带宽利用率和/或端口广播报文带宽利用率,确定报文发送系数,其中,接收方向上的端口带宽利用率越高,报文发送系数越小,接收方向上的端口广播报文带宽利用率越高,报文发送系数越小;
将预设的ARP请求报文最大发送速率与所述报文发送系数作乘积,得到所述报文发送速率。
优选地,所述速率确定单元确定报文发送系数,包括:
根据预先创建的端口带宽利用率范围与端口带宽利用系数之间的映射关系表,确定端口带宽利用率所在范围对应的端口带宽利用系数;
根据预先创建的端口广播报文带宽利用率范围与端口广播报文带宽利用系数之间的映射关系表,确定端口广播报文带宽利用率所在范围对应的端口广播报文带宽利用系数;
将所确定的端口带宽利用系数和端口广播报文带宽利用系数进行加权,得到报文发送系数。
优选地,所述报文广播单元,分别构造ARP请求报文并广播,包括:
在一个设定探测周期内,按照设定的IP地址扫描顺序,依次扫描地址池中各个未分配的IP地址;
针对扫描到的IP地址构造并广播ARP请求报文;
在设定探测周期结束时还未广播完所有ARP请求报文时,用设定变量记录探测周期结束广播的最后一个ARP请求报文所针对的IP地址;
在新的设定探测周期到达时,从设定变量中获取的IP地址开始,按照设定的IP地址扫描顺序,依次扫描地址池中各个未分配的IP地址,针对扫描到的IP地址构造并广播ARP请求报文。
优选地,所述报文广播单元针对地址池中未分配的IP地址,分别构造ARP请求报文并广播,包括:
确定探测功能状态为使能状态时,针对地址池中未分配的IP地址,分别构造ARP请求报文并广播。
优选地,该DHCP服务器,还包括:
认证请求接收单元,用于接收需要分配IP地址的设备发起的认证请求,所述认证请求包括加密字段,所述加密字段包括加密形式的认证密码;
校验单元,用于对所述认证请求中的加密字段解密,对解密得到的认证密码进行校验;
地址分配单元,用于校验通过后确定其为合法设备,从所述地址池中选取一个未分配的IP地址作,作为本次所分配的IP地址,执行IP地址分配过程。
优选地,所述认证请求为DHCP发现报文,所述地址分配单元执行IP地址分配过程,包括:
向所述设备回复DHCP offer报文,所述DHCP offer报文中携带所分配的IP地址;
接收所述设备发送的DHCP请求报文,所述DHCP请求包括加密字段,所述加密字段包括加密形式的认证密码;
对所述DHCP请求报文中的加密字段解密,对解密得到的认证密码进行校验;
校验通过后确定其为合法设备,向所述设备发送确认报文。
优选地,校验单元对所述认证请求中的加密字段解密,包括:
确定安全认证状态为使能状态时,对所述认证请求中的加密字段解密。
优选地,该DHCP服务器还包括:
密码配置单元,用于预先为DHCP服务器所连接的每个网络设置一个地址池,并设置每个地址池的认证密码;
所述校验单元对解密得到的认证密码进行校验,包括:
根据所述认证请求,识别所述设备所属的DHCP服务器所连接的目标网络;
判断解密得到的认证密码与所述目标网络下的地址池的认证密码是否一致,若一致,则校验通过。
实施例四
本发明实施例一种进行网络内部设备管理的DHCP服务器,包括。
存储器,用于存储地址池中未分配的IP地址;
处理器,用于到达设定探测周期时,针对地址池中未分配的IP地址,分别构造ARP请求报文并广播;收到任一基于ARP请求报文回复的ARP回复报文时,获取该ARP回复报文的源IP地址;确定获取的源IP地址属于地址池中未分配的IP地址时,将该IP地址从地址池中删除。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。