发明内容
本申请提供了一种地址分配的方法和装置,以解决目前分配IP地址的方式,会造成DHCP服务器分配的IP地址与静态配置的IP地址冲突的情况,进而影响用户的上网体验的问题。
为了解决上述问题,本申请公开了一种地址分配的方法,所述方法应用于动态主机配置协议DHCP服务器,所述方法包括:
接收地址请求报文;
利用从网络设备中获取地址解析协议ARP表中的第一地址信息与所述DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机。
优选的,从网络设备中获取地址解析协议ARP表中的第一地址信息的方法,包括:
向网络设备发送查询报文,获得所述网络设备发送的反馈信息,所述反馈信息中携带有所述网络设备中ARP表中的第一地址信息;
或者,接收网络设备因ARP表更新而发送的携带有ARP表中第一地址信息的更新报文。
优选的,所述向网络设备发送查询报文,获得所述网络设备发送的反馈信息,所述反馈信息中携带有所述网络设备中ARP表中的第一地址信息,具体包括:
DHCP服务器向网络设备发送查询报文,其中,所述查询报文中携带用于获取所述网络设备中第一地址信息的字段,使网络设备根据所述字段将网络设备中ARP表中的第一地址信息携带在反馈报文中发送至DHCP服务器。
优选的,所述根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机,具体包括:
确定出所述第二地址信息中与所述第一地址信息不同的第三地址信息;
从所述第三地址信息中任一选择出一个未被使用的地址信息分配给主机。
优选的,所述方法还包括:
为所述选择出未被使用的地址信息分配免探测标记;
将携带所述免探测标记的地址信息分配给主机,以使获取所述免探测标记的主机不在发送冲突探测报文。
为了解决上述问题,本申请还公开了一种地址分配的装置,所述装置应用于动态主机配置协议DHCP服务器,所述装置包括:
接收单元,用于接收地址请求报文;
比较单元,用于利用从网络设备中获取的地址解析协议ARP表中的第一地址信息与所述DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机。
优选的,所述装置还包括获取单元;
所述获取单元,用于向网络设备发送查询报文,获得所述网络设备发送的反馈信息,所述反馈信息中携带有所述网络设备中的ARP表中的第一地址信息;
或者,接收网络设备因ARP表更新而发送的携带有ARP表中的第一地址信息的更新报文。
优选的,所述获取单元用于向网络设备发送查询报文,获得所述网络设备发送的反馈信息,所述反馈信息中携带有所述网络设备中的ARP表中的第一地址信息具体包括:
向网络设备发送查询报文,其中,所述查询报文中携带用于获取所述网络设备中第一地址信息的字段,使网络设备根据所述字段将网络设备中的ARP表中的第一地址信息携带在反馈报文中发送至DHCP服务器。
优选的,所述比较单元用于
确定出所述第二地址信息中与所述第一地址信息不同的第三地址信息;
从所述第三地址信息中任一选择出一个未被使用的地址信息分配给主机。
优选的,所述装置还包括:
分配单元,用于为所述选择出未被使用的地址信息分配免探测标记;
通知单元,用于将携带所述免探测标记的地址信息分配主机,以使获取所述免探测标记的主机不发送冲突探测报文。
与现有技术相比,本申请包括以下优点:
本申请,首先,当接收到地址请求报文时,利用从网络设备中获取的地址解析协议ARP表中的第一地址信息与所述DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机,从而减少了地址分配带来的地址冲突的问题。
其次,为选择出未被使用的地址信息分配免探测标记,将携带该免探测标记的地址信息分配给主机,以使获取该免探测标记的主机不在发送冲突检测报文,使主机直接上线,从而提高了主机上线的效率,提升了用户的上线体验,同时也减轻了DHCP服务器的负担。
当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参见图1示出了本申请所述一种地址分配方法的组网示意图,具体包括:网络设备的下挂设备、网络设备和DHCP服务器。
网络设备的下挂设备可以是用户主机,也可以是中间二层设备,也可以为其他设备,对此不做具体限制。
当网络设备的下挂设备包括用户主机和中间二层设备时,用户主机可以通过中间二层设备与网络设备进行连接或者用户主机直接与网络设备进行连接,网络设备与DHCP相连。
用户主机泛指所有通过局域网或广域网接入网络设备的客户终端。
DHCP服务器与用户主机和网络设备进行交互,完成对用户主机IP地址的管理和分配。
当DHCP服务器接收到用户主机发送的地址请求报文时,利用从网络设备中获取地址解析协议ARP表中的第一地址信息与所述DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机,从而解决了地址分配冲突的问题。其中,从ARP表中获取的地址信息应当包括该网络设备下挂的主机被静态配置的地址信息,为了便于描述,将从ARP表中获取的地址信息简称为第一地址信息,将DHCP服务器中用于分配给主机的地址信息(包括已分配、未分配的)称为第二地址信息。
需要说明的是,中间二层设备可以为交换机或者路由器,而网络设备可以为交换机或者路由器或者宽带远程接入服务器(Broadband Remote Access Server,BRAS接入设备),也可以为其他设备,对此本申请不做具体限制。
基于上述组网示意图,参照图2,示出了本申请其中一个实施方式的一种地址分配方法的步骤流程图。所述方法应用于动态主机配置协议DHCP服务器,在本实施方式中,该地址分配方法具体包括:
步骤201:接收地址请求报文。
在实际应用中,可以通过以下方式获得请求报文:
用户主机向DHCP服务器以广播的方式发送发现报文(该发现报文可以是DHCP-DISCOVER报文),DHCP服务器收到DHCP-DISCOVER报文后,会向用户主机回应一个确认报文(该确认报文可以是DHCP-OFFER报文),用户主机根据确认报文选择DHCP服务器,并向选中的DHCP服务器发送请求报文(该请求报文可以是DHCP-REQUEST报文)。
步骤202:利用从网络设备中获取的地址解析协议ARP表中的第一地址信息与所述DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机。
其中,在本实施例中,还提供一种从网络设备中获取地址解析协议ARP表中的第一地址信息的方法。
该方法可以为,网络设备对ARP表进行解析,获取ARP表中的第一地址信息,然后DHCP服务器可以从网络设备中直接获取解析出的第一地址信息,或者DHCP服务器可以从网络设备中获取ARP表,然后DHCP服务器解析获取该ARP表,进而获取ARP表中的第一地址信息,本申请对此不作限定。
在实际应用中,第一地址信息可以为静态地址信息或者动态地址信息,也可以为其他地址信息,对此本申请不做具体限制。
需要说明的是,在本实施例中,网络设备的下挂设备在被分配了地址信息后(包括静态配置的地址信息,以及DHCP服务器在前一时刻分配的地址信息),可以将该地址信息通过报文告知上游的网络设备,当网络设备接收到该报文后,会将报文中的地址信息记录在ARP表中,因此DHCP服务器可以通过网络设备中的ARP表,来获取网络设备的下挂设备的地址信息。
进一步的,将ARP表中的第一地址信息与DHCP服务器中的第二地址信息比较,若第一地址信息与第二地址信息不同,则说明DHCP服务器第二地址信息与第一地址信息不冲突,则可以认为第二地址信息即为第三地址信息,从第三地址信息中随机选择一个地址信息分配给主机。
需要说明的是,DHCP服务器可以与网络设备分开设置,也可以将DHCP服务器设置在网络设备中,也可以将网络设备设置在DHCP服务器中,对此本申请不做具体限制。
本实施方式,首先,当接收到地址请求报文时,利用从网络设备中获取地址解析协议ARP表中的第一地址信息与DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机,从而减少了分配IP地址带来地址冲突的问题。
其次,为选择出未被使用的地址信息分配免探测标记,将携带该免探测标记的地址信息分配给主机,以使获取该免探测标记的主机不在发送冲突检测报文,使主机直接上线,从而提高了主机上线的效率,提升了用户的上线体验,同时也减轻了DHCP服务器的负担。
参照图3,示出了本申请另一个实施方式的一种地址分配方法的步骤流程图。所述方法应用于动态主机配置协议DHCP服务器,在本实施方式中,该地址分配方法具体包括:
步骤301:接收地址请求报文。
在接收地址请求报文之前,还包括:
用户主机向网络设备发送携带地址信息的报文,网络设备对该报文进行解析,并将解析结果记录在自身预置的ARP表项中,其中,所述ARP表项包括但不限于:第一地址信息、MAC地址、接口信息和老化时间等等。
步骤302:利用从网络设备中获取的地址解析协议ARP表中的第一地址信息与所述DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机。
作为其中一个实施方式,DHCP服务器可以通过以下方式获取第一地址信息,具体为:
DHCP服务器向网络设备发送查询报文,获得网络设备发送的反馈信息,其中,反馈信息中携带有网络设备中ARP表中的第一地址信息。
优选的,DHCP服务器向网络设备发送查询报文,获得网络设备发送的反馈信息,反馈信息中携带有网络设备中ARP表中的第一地址信息,具体包括:DHCP服务器向网络设备发送查询报文,其中,所述查询报文中携带用于获取所述网络设备中的第一地址信息的字段,使网络设备根据所述字段将网络设备中的地址解析协议ARP表中的第一地址信息携带在反馈报文中发送至DHCP服务器。
作为其中另一个实施方式,DHCP服务器可以通过以下方式获取第一地址信息,具体为:
当网络设备中的ARP表更新时,可以主动将更新的ARP表中的第一地址信息发送至DHCP服务器,即DHCP服务器接收网络设备因ARP表更新而发送的携带有ARP表中的第一地址信息的更新报文,DHCP服务器解析更新报文,获得ARP表中的第一地址信息。
进一步的,将所述ARP表中的第一地址信息与所述DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机。
作为其中一个实施方式,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机具体为:
当第二地址信息中存在与第一地址信息相同的地址信息时,则确定出第二地址信息中与第一地址信息不同的第三地址信息。
从第三地址信息中任一选择出一个未被使用的地址信息分配给主机。
未被使用的地址信息为可用状态的地址信息,即可以进行分配的地址信息。
进一步的,为所述选择出未被使用的地址信息分配免探测标记。
将携带免探测标记的地址信息分配给主机,以使获取免探测标记的主机不在发送冲突探测报文,使主机收到地址信息后直接上线,从而提高了主机上线的效率。
作为其中另一个实施方式,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机具体为:
确定出第二地址信息中与第一地址信息相同的第四地址信息,对第四地址信息设置标识。
确定出第二地址信息中与第一地址信息相同的第四地址信息,说明第四地址信息在DHCP服务器第二地址信息中已经处于分配状态,不能再将该第四地址进行分配,如果进行分配,则会造成分配地址冲突。
通过以下方式实现对第四地址信息设置标识:其中一种方式,对确定出的第四地址信息中的具体地址信息设置标识,该标识用于表示第四地址信息为不可用状态。
其中另一种方式,对确定出的第四地址信息放入超期队列中,然后对超期队列设置标识,该标识用于表示超期队列中的第四地址信息为不可用状态。
步骤303:根据所述ARP表中的第一地址信息的老化时间更新DHCP服务器地址池中的第二地址信息。
当静态用户下线时或者第一地址信息超过设定的老化时间时,此时ARP表中的第一地址信息老化,此时删除第一地址信息,同时DHCP服务器将超期队列中第四地址信息放回到DHCP服务器的第二地址信息中。
需要说明的是第一地址信息的老化时间可以由本领域技术人员根据需求适当设置,可以是1分钟,也可以是任意时间,如2分钟、5分钟甚至更多,本发明对此不作限制。在确定老化时间时以能反映第一地址信息老化为确定依据。
本实施方式,首先,当接收地址请求报文时,利用从网络设备中获取地址解析协议ARP表中的第一地址信息与DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机,从而减少了地址分配带来的地址冲突的问题。
其次,为选择出未被使用的地址信息分配免探测标记,将携带该免探测标记的地址信息分配给主机,以使获取该免探测标记的主机不在发送冲突检测报文,使主机直接上线,从而提高了主机上线的效率,提升了用户的上线体验,同时也减轻了DHCP服务器的负担。
为了本领域技术人员更好的理解本申请限定的技术方案,参见图4示出了实现本申请一种地址分配方法的应用实例。
本实施例包括:DHCP服务器、其中,DHCP服务器的地址字段为3.3.3.1/24-3.3.10.2/24、BRAS接入设备、中间二层设备和用户主机,其中,用户主机包括:静态用户和动态用户,静态用户包括静态用户1和静态用户2,该静态用户1的第一地址信息为3.3.4.2,该静态用户2的第一地址信息为3.3.3.2,动态用户包括动态用户1和动态用户2。
具体过程如下:
1、静态用户1和静态用户2向BRAS接入设备发送ARP报文,BRAS接入设备对该ARP报文进行解析,并将解析结果记录在自身预置的ARP表项中。
该ARP表项中具体内容如下表所示:
用户主机 |
第一地址信息 |
MAC地址 |
接口Interface |
静态用户1 |
3.3.3.2 |
StMac1 |
IF1 |
静态用户2 |
3.3.4.2 |
StMac2 |
IF2 |
2、当DHCP服务器接收到动态用户1的地址请求报文时,向BRAS接入设备发送查询报文,以获得BRAS接入设备中的ARP表中的第一地址信息。
3、BRAS接入设备向DHCP服务器发送ARP表中的第一地址信息,如第一地址信息为3.3.3.2和第一地址信息为3.3.4.2。
4、DHCP服务器用第一地址信息3.3.3.2和第一地址信息3.3.4.2与DHCP服务器第二地址信息进行比较,若DHCP服务器第二地址信息中有与第一地址信息3.3.3.2和第一地址信息3.3.4.2相同的第四地址信息,则对第四地址信息设置标识,若确定出DHCP服务器第二地址信息中与第一地址信息3.3.3.2和第一地址信息3.3.4.2不同的第三地址信息,则从第三地址信息中任一选择一个未被使用的地址信息分配给动态用户1。从而使DHCP服务器分配给动态用户分配地址信息很难与静态用户的地址信息冲突,提升了动态用户上线效率,减少DHCP服务器的负担。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必需的。
基于上述方法实施例的说明,本申请还提供了相应的一种地址分配的装置实施例,来实现上述方法实施例所述的内容。
参照图5,其示出了本申请其中一个实施例的一种地址分配装置的结构图,所述装置应用于动态主机配置协议DHCP服务器,具体可以包括:
接收单元501,用于接收地址请求报文。
比较单元502,用于利用从网络设备中获取的地址解析协议ARP表中的第一地址信息与所述DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未别使用的地址信息分配给主机。
本申请实施例,首先,当接收到地址请求报文时,利用从网络设备中获取地址解析协议ARP表中的第一地址信息与DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机,从而减少了分配IP地址带来的地址冲突的问题。
其次,为选择出未被使用的地址信息分配免探测标记,将携带该免探测标记的地址信息分配给主机,以使获取该免探测标记的主机不在发送冲突检测报文,使主机直接上线,从而提高了主机上线的效率,提升了用户的上线体验,同时也减轻了DHCP服务器的负担。
参照图6,其示出了本申请其中另一个实施例的一种地址分配装置的结构图,具体可以包括:
接收单元601,用于接收地址请求报文。
比较单元602,用于利用从网络设备中获取的地址解析协议ARP表中的第一地址信息与所述DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机。
获取单元603,用于向网络设备发送查询报文,获取所述网络设备发送的反馈信息,所述反馈信息中携带有所述网络设备中的ARP表中的第一地址信息。
或者,接收网络设备因ARP表更新而发送的携带有ARP表中的第一地质信息的更新报文。
优选的,所述获取单元,用于向网络设备发送查询报文,获得所述网络设备发送的反馈信息,所述反馈信息中携带有所述网络设备中的ARP表中的第一地址信息具体包括具体向网络设备发送查询报文,其中,所述查询报文中携带用于获取所述网络设备中第一地址信息的字段,使网络设备根据所述字段将网络设备中的地址解析协议ARP表中的第一地址信息携带在反馈报文中发送至DHCP服务器。
优选的,所述比较单元用于确定出所述第二地址信息中与第一地址信息不同的第三地址信息;从所述第三地址信息中任一选择出一个未被使用的地址信息分配给主机。
优选的,所述装置还包括:分配单元604,用于为所述选择出未被使用的地址信息分配免探测标记。
通知单元605,用于将携带所述免探测标记的地址信息分配给主机,以使获取所述免探测标记的主机不发送冲突探测报文。
本申请实施例,首先,当接收到地址请求报文时,利用从网络设备中获取地址解析协议ARP表中的第一地址信息与DHCP服务器中的第二地址信息进行比较,根据比较结果从第二地址信息中选择出未被使用的地址信息分配给主机,从而减少了分配IP地址带来地址冲突的问题。
其次,为选择出未被使用的地址信息分配免探测标记,将携带该免探测标记的地址信息分配给主机,以使获取该免探测标记的主机不在发送冲突检测报文,使主机直接上线,从而提高了主机上线的效率,提升了用户的上线体验,同时也减轻了DHCP服务器的负担。
对于上述地址分配的装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处所述方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本申请的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本申请中,“组件”、“装置”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,组件可以、但不限于是运行于处理器的过程、处理器、对象、可执行组件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是组件。一个或多个组件可在执行的过程和/或线程中,并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。组件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一组件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
而且,上文中的“和/或”表示本文既包含了“和”的关系,也包含了“或”的关系,其中:如果方案A与方案B是“和”的关系,则表示某实施例中可以同时包括方案A和方案B;如果方案A与方案B是“或”的关系,则表示某实施例中可以单独包括方案A,或者单独包括方案B。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
以上对本申请所提供的一种地址分配的方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。