地址管理方法和装置、服务器与流程

文档序号:20884393发布日期:2020-05-26 17:23阅读:215来源:国知局
地址管理方法和装置、服务器与流程

本公开涉及通信技术领域,更具体地,涉及一种地址管理方法和装置、服务器。



背景技术:

ipv6(internetprotocolversion6,互联网协议第6版)的地址分配方式包括自动配置方式和手工配置方式。其中,自动配置方式以slaac(无状态地址自动配置)方式和有状态dhcpv6(动态主机配置协议v6)方式为主。

在实现本公开构思的过程中,发明人发现现有技术中至少存在以下问题:slaac和dhcpv6经常结合在一起使用,手工配置方式与自动配置方式也在网络中并存。其中,现有两步方式的dhcpv6分配地址的方式,服务器无法确认其分配的哪些地址被采用,并因此导致地址的大量浪费的可能。且服务器无法管理手工配置方式分配的地址和slaac方式分配的地址。



技术实现要素:

本公开实施例提供了一种地址管理方法,该方法应用于第一服务器,该方法包括:获得客户端发送的针对第一地址的反馈消息;以及根据反馈消息,将第一地址存入针对反馈消息的地址池。其中,第一地址包括第一服务器分配的地址;或者,第一服务器为多个服务器中的任一服务器,第一地址为所述多个服务器中的任一服务器分配的地址。

根据本公开的实施例,上述地址池包括针对每个服务器的冲突地址池和未分配地址池;根据反馈消息,将第一地址存入与反馈消息对应的地址池中包括:若反馈消息指示第一地址已被占用,将第一地址存入针对产生第一地址的服务器的冲突地址池;并且/或者若反馈消息指示释放第一地址,将第一地址存入产生针对第一地址的服务器的未分配地址池,。其中,针对第一服务器的冲突地址池包括预存的第二地址,第二地址包括采用无状态地址自动配置方式分配的地址和/或手工配置方式分配的地址。

根据本公开的实施例,上述地址池包括针对每个服务器的未分配地址池和临时地址池;上述方法还包括:获得客户端发送的地址获取请求;响应于地址获取请求,确定是否向客户端分配地址;在确定向客户端分配地址的情况下,向客户端分配针对第一服务器的未分配地址池中的第三地址;以及将第三地址存入针对第一服务器的临时地址池中。其中,第一服务器为多个服务器中的任一服务器。

根据本公开的实施例,上述确定是否向客户端分配地址包括:确定第一服务器是否具有分配权限;以及在第一服务器具有分配权限时,确定向客户端分配地址。其中,多个服务器包括主服务器和备用服务器;主服务器具有所述分配权限。

根据本公开的实施例,上述备用服务器不具有分配权限。上述地址管理方法还包括在第一服务器为备用服务器的情况下:若主服务器宕机,向多个服务器中除主服务器外的所有服务器广播第一服务器的优先级;以及在第一服务器的优先级最高的情况下,向第一服务器配置分配权限。

根据本公开的实施例,上述反馈消息还包括指示续租第一地址的消息;地址池还包括针对每个服务器的已分配地址池。上述根据反馈消息,将第一地址存入与反馈消息对应的地址池包括:确定分配第一地址的服务器为第二服务器;根据存储的针对第二服务器的地址池的信息,确定针对第二服务器的临时地址池和已分配地址池是否包括第一地址;以及在确定不包括第一地址的情况下,向客户端分配针对第一服务器的未分配地址中的第四地址。其中,第一服务器存储有针对其他服务器的地址池。

根据本公开的实施例,上述地址池包括针对每个服务器的已分配地址池和临时地址池。上述反馈消息包括指示第一地址被采用的消息,根据反馈消息,将第一地址存入与反馈消息对应的地址池包括:若第一地址是第一服务器分配的地址,将第一地址放入针对第一服务器的已分配地址池;若第一地址是其他服务器分配的地址,将第一地址放入针对所述其他服务器的临时地址池。

根据本公开的实施例,上述地址池还包括针对每个服务器的未分配地址池;上述方法还包括:若针对其他服务器的临时地址池中的第五地址的存储时长大于第一预定时长,将第五地址转入针对所述其他服务器的未分配地址池;若针对第一服务器的临时地址池中的第六地址的存储时长大于第二预定时长,将第六地址转入针对第一服务器的未分配地址池。其中,第一预定时长大于第二预定时长,第一服务器存储有针对其他服务器的地址池。

根据本公开的实施例,上述反馈消息还包括指示续租第一地址的消息;上述根据反馈消息,将第一地址存入与反馈消息对应的地址池包括:确定第一地址是否位于针对所述其他服务器的临时地址池;以及在第一地址位于针对其他服务器的临时地址池的情况下,将第一地址转入针对其他服务器的已分配地址池。其中,第一服务器存储有针对其他服务器的地址池。

根据本公开的实施例,上述方法还包括:响应于第三服务器的开启,向第三服务器发送针对第一服务器的地址池的信息,以指示第三服务器存储针对第一服务器的地址池;或者响应于接收到第四服务器发送的针对第四服务器的地址池的信息,存储针对第四服务器的地址池。其中,第一服务器为多个服务器中的任一服务器。

本公开的另一方面提供了一种地址管理装置,该装置设置于第一服务器,该装置包括:反馈消息获得模块,用于获得客户端发送的针对第一地址的反馈消息;以及地址处理模块,用于根据反馈消息,将第一地址存入针对反馈消息的地址池。其中,第一地址包括第一服务器分配的地址;或者,第一服务器为多个服务器中的任一服务器,第一地址为多个服务器中的任一服务器分配的地址。

本公开的另一方面提供了一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序。其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的地址管理方法。

本公开的另一方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述的地址管理方法。

本公开的另一方面提供了一种计算机程序产品,包括计算机可读指令,其中,所述计算机可读指令被执行时用于执行上述的地址管理方法。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的地址管理方法和装置、服务器的应用场景图;

图2示意性示出了根据本公开示例性实施例一的应用于第一服务器的地址管理方法的流程图;

图3示意性示出了根据本公开示例性实施例二的应用于第一服务器的地址管理方法的流程图;

图4示意性示出了根据本公开示例性实施例三的应用于第一服务器的地址管理方法的流程图;

图5示意性示出了根据本公开实施例的地址管理装置的结构框图;以及

图6示意性示出了根据本公开实施例的适于执行地址管理方法的服务器的结构框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

本公开的实施例提供了一种地址管理方法,应用于第一服务器,该方法包括:获得客户端发送的针对第一地址的反馈消息;以及根据反馈消息,将第一地址存入针对反馈消息的地址池。其中,第一地址包括第一服务器分配的地址;或者,第一服务器为多个服务器中的任一服务器,第一地址为多个服务器中的任一服务器分配的地址。

根据本公开的实施例,第一服务器通过根据反馈消息来维护地址池,可以至少部分地提高地址池管理效率及准确性。第一服务器通过接收针对多个服务器中任一服务器分配的第一地址的反馈消息,来将第一地址存入对应的地址池中,可以使得第一服务器知晓多个服务器分配的地址的状态,并因此可以至少部分地避免可能的地址冲突,有效提升对分配地址的管理。

图1示意性示出了根据本公开实施例的地址管理方法和装置、服务器的应用场景100。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的应用场景100可以包括服务器,终端设备121、122、123和网络130。终端设备121、122、123与服务器通过网络130直连。

其中,服务器可以为一个或多个。在服务器为一个服务器时,该一个服务器负责预定地址段中地址的分配和管理。在服务器为多个服务器时,多个服务器111、112、113中每个服务器可以具有根据负载分担方式负责不同地址的分配。例如,可以将同一地址段的地址划分为多个地址子范围,每个服务器负责一个子范围。或者,可以为不同服务器配置不同地址段,每个服务器负责不同的地址段。

其中,终端设备121、122、123在需要获取地址、对地址进行续租、或者通过重复地址检测(duplicateaddressdetect)确定获取的地址被其他终端设备占用时向服务器反馈地址冲突消息时,例如可以通过广播的方式反馈,以使得多个服务器均可以接收到该反馈消息,并根据该反馈消息对地址进行管理。其中,重复地址检测(dad)是在客户端在使用ipv6地址之前进行的,目的是探测该ipv6地址是否被其它终端设备使用。客户端在检测ipv6地址后,若检测确定该ipv6地址未被其他终端设备占用,且采用该ipv6地址时,则发送dad消息,服务器通过监控此消息,确认地址被采用。若检测确定该ipv6地址被其他终端设备占用,则会向服务器反馈dhcpdecline消息,以指示地址已被占用。

根据本公开的实施例,例如可以为该多个服务器分配优先级,该优先级例如可以根据服务器的处理能力等性能参数进行设定。该多个服务器可以均具有向客户端分配地址的权限,或者可以多个服务器中仅优先级最高的主服务器具有分配地址的权限,而除主服务器外的其他服务器作为备用服务器对全局地址进行管理。在主服务器宕机或重启时,选择备用服务器中优先级最高的服务器作为主服务器,根据对全局地址的管理结果进行地址分配。通过该多个服务器的设置及该多个服务器对地址的管理,相较于备用服务器仅监视主服务器的状态的技术方案,可以至少部分地避免分配地址的服务器因宕机或重启导致的地址管理混乱的情况。再者,多个服务器通过根据接收的客户端的反馈消息来实现地址管理,相较于主服务器与备用服务器之间实时共享租约信息的技术方案,可以至少部分地避免服务器之间交互过于频繁,逻辑复杂、效率低下,不适用于小型网络dhcpv6服务器的问题。

根据本公开的实施例,服务器与客户端之间例如可以通过dhcpv6的两步交互方法或四步交互方法进行通信。例如,服务器与客户端之间例如可以通过solicit/advertise/request/reply报文交互来完成地址申请和分配过程;或者通过solicit/reply报文交互快速完成地址申请和分配过程。

根据本公开的实施例,在服务器分配地址后,若客户端未反馈消息,则服务器无法知晓分配的地址是否被采用。为了避免分配重复地址,一般将已分配的地址废弃,但这无疑会导致地址的大量浪费。为了便于对地址进行管理,多个服务器例如还可以结合终端设备的反馈消息来维护有多个地址池,不同的地址池放置处于不同状态的地址,以此至少可以部分地避免服务器因分配地址后未收到客户端反馈导致的地址管理混乱,地址大量浪费的情况。

根据本公开的实施例,为了避免不同分配方式分配的地址重复或冲突,例如可以将通过手工配置方式或slaac方式分配的地址预存入对应的地址池,从而至少部分地避免服务器对该手工配置方式或slaac方式分配的地址进行重复分配,至少部分地避免地址重复或冲突,在一定程度上实现对手工配置方式或slaac方式分配的地址的管理。其中,slaac为无状态地址自动配置,在该方式下,服务器不像dhcp一样需要维护一个本地数据库来维护地址分配状态,服务器只进行广播前缀地址,客户端收到这种广播后再根据自己使用的eui64算法生成全球唯一的ipv6地址,进行自我配置。

需要说明的是,本公开实施例所提供的地址管理方法一般可以由服务器111、112、113中的任意一个服务器执行。相应地,本公开实施例所提供的地址管理装置一般可以设置于服务器111、112、113中的任意一个或每一个中。本公开实施例的地址管理方法可以应用于单个服务器场景,或者多个服务器场景。

应该理解,上述服务器111、112、113,终端设备121、122、123和网络130和的类型和数目仅仅是示意性的,根据实现需要,可以具有任意类型和数目的服务器111、112、113和终端设备121、122、123。后续内容中提及的客户端可以为终端设备121、122、123中任意一个设备。

图2示意性示出了根据本公开示例性实施例一的应用于第一服务器的地址管理方法的流程图。

如图2所示,该实施例的地址管理方法例如可以应用于第一服务器,该方法可以包括操作s210~操作s220。

在操作s210,获得客户端发送的针对第一地址的反馈消息。

根据本公开的实施例,客户端例如可以在以下至少一种情况下反馈消息:在接收到服务器分配的第一地址后,向服务器反馈指示第一地址被采用的消息(dad消息);在通过dad检测确定第一地址被其他客户端占用时,向服务器反馈指示第一地址已被占用的消息(dhcpv6decline消息);在第一地址的租约到期且确定需要继续租用第一地址时,向服务器反馈指示续租第一地址的消息(dhcpv6renew消息);在确定不再租用第一地址时,向服务器反馈指示释放第一地址的消息(dhcpv6release消息)等。其中,反馈消息中携带有该第一地址。

在操作s220,根据反馈消息,将第一地址存入针对反馈消息的地址池。

根据公开的实施例,为了便于对地址进行管理,服务器可以维护有地址池,不同的地址池用于维护处于不同状态的地址。例如,可以为已被占用的地址维护冲突地址池,为未分配的地址维护未分配地址池、为已被采用的地址维护已分配地址池。因此,对于指示第一地址已被占用的反馈消息,可以将该反馈消息携带的第一地址存入冲突地址池。对于指示释放第一地址的反馈消息,可以将该反馈消息携带的第一地址存入未分配地址池。对于指示第一地址已被客户端采用的指示消息,若该第一地址是第一服务器分配的,则可以将该第一地址放入已分配地址池。

根据本公开的实施例,为了避免因手工配置方式或slaac方式分配的地址与服务器分配的地址相同而造成冲突,可以将手工配置方式或slaac方式分配的地址作为第二地址预存入冲突地址池。

根据本公开的实施例,为了避免在客户端未使用第一服务器分配的地址,而第一服务器因无法确定该分配的地址是否被采用导致该分配的地址被浪费的情况,可以将第一服务器分配的地址维护在临时地址池中。同时可以为该临时地址池中的地址设定存储时限,该存储时限例如可以为第二预定时长。若该临时地址池中第六地址为第一服务器分配的地址、且该第一地址位于临时地址池中的时长大于该第二预定时长,则将该第六地址转入未分配地址池,以便于对该第六地址进行重新分配。其中,第二预定时长可以根据实际需求进行设定,该第二预定时长例如可以根据dad检测的时长进行确定,例如可以为30s,本公开对此不作限定。其中,若第一服务器在该第二预定时长中收到了客户端指示该第六地址被采用的反馈消息,则可以将该第六地址由临时地址池转入已分配地址池。若第一服务器在该第二预定时长中收到了客户端指示该第六地址被其他客户端占用的反馈消息,则可以将该第六地址由临时地址池转入冲突地址池。

根据本公开的实施例,通过上述多个地址池的维护,在反馈消息为指示续租第一地址的消息时,第一服务器可以先确定该第一地址是否位于已分配地址池中。若位于已分配地址池中,则维持该第一地址位于已分配地址池的状态。若该已分配地址池中没有该第一地址,则确定该第一地址是否位于临时地址池中,若位于临时地址池,则将该第一地址转入已分配地址池。若临时地址池和已分配地址池中均未找到该第一地址,考虑到可能该第一地址被丢失,为了保证客户端可以正常租用地址,第一服务器可以向客户端重新分配未分配地址池中的地址。

根据本公开的实施例,上述的第一地址例如可以为第一服务器向客户端分配的地址。此种情况下,本公开实施例的地址管理方法可以应用于单个服务器场景。即网络拓扑结构中,仅包括该第一服务器,该第一服务器通过前述地址池的维护,可以至少部分地提高对地址分配和管理的有效性。

根据本公开的实施例,上述的第一服务器可以为包括多个服务器的网络拓扑结构中的任意一个服务器,上述第一地址例如可以为第一服务器分配的地址,或者多个服务器中除第一服务器外的其他服务器中的任意一个分配的地址,多个服务器中的每个服务器均可以维护有针对该每个服务器的地址池。

根据本公开的实施例,在设置有该临时地址池时,且第一服务器为多个服务器中的任意一个服务器时,若该第一服务器收到客户端发送的地址获取请求,则第一服务器可以执行以下操作:先响应于该地址获取请求,确定是否向客户端分配地址。在确定向客户端分配地址的情况下,向客户端分配未分配地址池中的第三地址,并将该第三地址存入针对自身的临时地址池中。其中,确定是否向客户端分配地址例如可以包括:先确定第一服务器是否具有分配地址的分配权限,在第一服务器具有分配权限时,确定向客户端分配地址。其中,分配权限例如可以为分配地址的分配权限。

根据本公开的实施例,在多个服务器场景下,可以为每个服务器设定分配地址的分配权限,在客户端发送地址获取请求时,可以通过广播的方式将该地址获取请求发送给多个服务器中的每个服务器,每个服务器从自身维护的未分配地址池中获取一个地址反馈给客户端。客户端可以在接收到多个服务器各自发送的地址后,例如可以根据地址获取时间的先后顺序等特性选择一个地址进行采用。此时,多个服务器可以将分配的地址为被采用地址的服务器设定为主服务器,多个服务器中的其他服务器设定为备用服务器。此种情况下,前述第一服务器在获得地址获取请求时,可以响应于该地址获取请求,确定向客户端分配地址。

根据本公开的实施例,在多个服务器场景下,例如可以为每个服务器设定优先级,该优先级例如可以根据多个服务器中每个服务器的处理速度、存储空间大小、启动时间等参数进行设定。其中,多个服务器中的每个服务器广播其自身优先级,由多个服务器通过选举确定优先级最高的服务器为主服务器,除主服务器外的其他服务器为备用服务器。为了避免不必要的功耗,可以仅设定主服务器具有分配地址的分配权限,而除主服务器外的其他服务器不具有分配地址的分配权限。此时,第一服务器确定是否向客户端分配地址的操作可以包括:先确定第一服务器是否为主服务器。若第一服务器为主服务器,确定该第一服务器具有分配地址的分配权限,此时确定向客户端分配地址。若第一服务器不是主服务器,则确定第一服务器不具有分配地址的分配权限,直接丢弃该地址获取请求。

根据本公开的实施例,在多个服务器场景下,若备用服务器不具有分配权限,为了避免因多个服务器中的主服务器因重启或宕机或重启导致的无法对客户端的反馈消息进行处理,可以从多个服务器中选择除主服务器外的备用服务器中的一个作为主服务器。因此,应用于该第一服务器的地址管理方法还可以包括以下操作:若主服务器宕机,向多个服务器中除主服务器外的所有服务器广播第一服务器的优先级;以及在第一服务器的优先级最高的情况下,向第一服务器配置分配权限。即从备用服务器中选择优先级最高的服务器替代原服务器,以便于继续进行地址分配和管理。

为了便于替换后的主服务器能够对原主服务器负责分配的地址段或地址子范围进行管理,每个备用服务器例如均应备份有针对主服务器的地址池。例如,在每新开启一个服务器时,考虑到该新开启的服务器无法知晓网络拓扑结构中的哪个服务器为主服务器,则该新开启的服务器可以向网络拓扑结构中的所有服务器广播开启消息。响应于所有服务器响应于该开启消息的反馈消息,确定主服务器。为了对针对主服务器的地址池进行备份,该新开启的服务器可以向主服务器发送获取请求,以使得主服务器响应于该获取请求,通过两者之间的信息传输通道将针对主服务器的地址池的信息发送给该新开启的服务器,以指示该新开启的服务器存储针对该主服务器的地址池。或者,也可以在主服务器接收到开启消息后,主动通过新开启的服务器与其之间的信息传输通道将针对主服务器的地址池的信息发送给该新开启的服务器,以指示该新开启的服务器存储针对该主服务器的地址池。

因此,若第一服务器为主服务器时,应用于该第一服务器的地址管理方法还可以包括以下操作:响应于第三服务器的开启,向第三服务器发送针对第一服务器的地址池的信息,以指示第三服务器存储该针对第一服务器的地址池。若该第一服务器为新开启的服务器时,应用于该第一服务器的地址管理方法还可以包括以下操作:响应于接收到第四服务器发送的针对第四服务器的地址池的信息,存储针对第四服务器的地址池,此处,第四服务器例如可以为主服务器。其中,针对每个服务器的地址池的信息例如可以为:该每个服务器维护的多个地址池中稳定状态的地址池,该稳定状态的地址池例如可以包括未分配地址池、已分配地址池和冲突地址池,不包括临时地址池。

根据本公开的实施例,在第一服务器替代原主服务器、且该第一服务器中备份有针对原主服务器的地址池的信息的情况下,若收到客户端发送的指示续租第一地址的反馈消息时,应执行以下操作:先确定分配第一地址的服务器,若确定该服务器为原主服务器(例如第二服务器),则根据第一服务器存储的针对第二服务器的地址池,确定针对该第二服务器的临时地址池和已分配地址池是否包括该第一地址。若针对该第二服务器的临时地址池和已分配地址池包括该第一地址,则将该第一地址放在针对第二服务器的已分配地址池中,并向客户端反馈答复消息,以说明续租成功。若确定针对该第二服务器的临时地址池和已分配地址池不包括该第一地址,则重新向客户端分配地址,具体例如可以是向客户端分配针对第一服务器的未分配地址池中的第四地址。该第四地址为未分配地址池中的任意一个地址。若针对该第一服务器的未分配地址池中没有地址,再从针对第二服务器的未分配地址池中获取地址进行分配。综上可知,第一服务器通过备份针对原主服务器的地址池,可以在后续接收到反馈消息时,对原主服务器的地址池进行更新,以保证原主服务器的地址池中地址的维护准确无误。

根据本公开的实施例,在原主服务器重新启动后,该第一服务器可以将更新后的原主服务器的地址池的信息发送给原主服务器,以便于原主服务器根据该更新后的地址池的信息对其本地的地址池进行更新。

根据本公开的实施例,为了提高整个网络拓扑结构冗余性,多个服务器中的每个服务器例如还可以对针对其他服务器的地址池均进行备份。因此,第一服务器可以备份有针对多个服务器中除该第一服务器外的其他服务器的地址池。此时,为了实现对备份的地址池的更新,在第一服务器接收到指示第一地址被采用的反馈消息时,将第一地址存入与反馈消息对应的地址池的操作s220例如可以包括:若第一地址是第一服务器分配的地址,将第一地址放入针对第一服务器的已分配地址池;若第一地址是其他服务器分配的地址,将第一地址放入针对其他服务器的临时地址池。其中,为了保证地址维护的准确性,此处的临时地址池例如可以为第一服务器为分配第一地址的服务器设定的临时地址池。可以理解的是,此处将第一地址放入针对其他服务器的临时地址池,而不放入针对其他服务器的已分配地址池,是为了避免因该反馈消息不准确导致的管理混乱的情况。

根据本公开的实施例,考虑到第一服务器为其他服务器建立的临时地址池中的地址为其他服务器分配的被客户端采用的地址,若该采用的地址的租期到期,则其他服务器会将该采用的地址从已分配地址池转入未分配地址池。为了使得该第一服务器备份的针对该采用的地址的状态与其他服务器中该采用的地址的状态同步,可以为针对其他服务器的临时地址池中的地址设定老化时间,该老化时间例如可以大于或等于该采用的地址的租约时长,在针对其他服务器的临时地址池中的地址的存储时长大于该老化时间,则将该存储时长大于老化时长的地址转入针对产生该地址的服务器的未分配地址池中。因此,应用于该第一服务器的地址管理方法还包括:若针对其他服务器的临时地址池中的第五地址的存储时长大于第一预定时长,将第五地址转入针对其他服务器的未分配地址池。其中,该第一预定时长例如可以为前述老化时间的时长。该第一预定时长小于前述的第二预定时长。

根据本公开的实施例,若第一服务器收到指示续租第一地址的反馈消息,且该反馈消息携带的第一地址为其他服务器分配的地址时,可以准确地确定该第一地址被客户端采用。此时,应用于第一服务器的地址管理方法还可以包括以下操作:先确定该第一地址是否位于针对其他服务器的临时地址池中。若存在,则将该第一地址转入针对其他服务器的已分配地址池中。

以下结合图3对第一服务器为主服务器时,应用于该第一服务器的地址管理方法进行描述。图3示意性示出了根据本公开示例性实施例二的应用于第一服务器的地址管理方法的流程图。

如图3所示,dhcpv6服务器(第一服务器,主服务器)在通过两步交互快速分配地址时,对ip相关租约和地址池的管理步骤例如可以包括操作s301~操作s317。

在操作s301,主服务器(主server)收到客户端发送的ip地址分配请求(地址获取请求)。

在操作s302,判断主服务器中是否存在空闲ip地址。若主服务器存在空闲ip地址(即未分配地址池中存在ip地址),则执行下一步,不存在则执行操作s315。在一实施例中,主服务器收到地址分配请求时,可以直接从未分配地址池中选择ip地址进行分配。若未分配地址池中ip地址的资源耗尽,则从临时地址池中获取分配的ip地址。若临时地址池中的ip地址的资源也耗尽,则从冲突地址池中获取分配的ip地址。若该三个地址池均资源耗尽,则执行操作s315。

在操作s303,主服务器发送dhcpv6reply消息给客户端,消息携带操作s302获取的分配的ip地址。

在操作s304,根据分配的ip地址建立临时租约(启动租约定时器),并将该ip地址存入临时地址池,启动状态检测定时器(即用于进行dad检测的设备)和租约定时器。接下来存在四种情况:

租约定时器未超时之前,如果收到dhcpv6release消息,则执行操作s310;若收到ip地址对应的dad消息,执行操作s305;若收到dhcpv6decline消息,则执行操作s308;若租约定时器超时则执行操作s311。

在操作305,收到dad消息,指示ip地址已被客户端准备使用,若检查发现分配的ip地址在临时地址池内,执行下一步。

在操作s306,将ip地址对应的临时租约及该ip地址转入已分配地址池,租约不再是临时租约。

在操作s307,客户端获取到分配的ip地址,ip地址对应的租约定时器保持,相关处理结束。接下来的处理主要分三种情况:

如后期收到dhcpv6release消息或租约超期,则执行操作s314;

收到dhcpv6decline消息,则执行操作s313;

其他处理同现有协议处理,此处不再详述。

在操作s308,租约定时器超期之前,收到dhcpv6decline消息,则删除临时租约,同时执行操作s309。

在操作s309,将dhcpv6decline消息指示冲突的ip地址转到冲突地址池中的冲突列表。

在操作s310,租约定时器超期之前,收到dhcpv6release消息,删除临时租约,同时执行操作s312。

在操作s311,租约定时器超期,删除临时租约,同时执行操作s312。

在操作s312,将ip地址重新放入未分配地址池,该ip地址可重新再分配。

在操作s313,ip地址对应租约属于已分配地址池后,如收到dhcpv6decline消息,则删除租约,同时将该消息指示的ip地址移入未分配地址池。

在操作s314,如租约超期,或收到dhcpv6release消息,删除已分配地址池里的租约,同时执行操作s312。

在操作s315,主服务器给客户端回复dhcpv6reply消息,消息指示无可用ip地址。

在操作s316,主服务器正常运行过程中,如收到dad消息,且dad指示的ip地址在未分配地址池,说明该ip地址被非dhcpv6方式配置,因此,将该ip地址放入冲突地址池。

在操作s317:租约进入到已分配地址池后,ip地址处理进入稳态的常规处理场景。

根据本公开的实施例,在服务器与客户端之间通过四步交互方法通信,且第一服务器为主服务器时,该第一服务器对ip相关租约和地址池的管理步骤与图3描述的各步骤相同,在此不再赘述。

以下结合图4对第一服务器为备用服务器时,应用于该第一服务器的地址管理方法进行描述。图4示意性示出了根据本公开示例性实施例三的应用于第一服务器的地址管理方法的流程图。

如图4所示,dhcpv6服务器(第一服务器)作为备份服务器时对p相关租约和地址池的管理步骤例如可以包括操作s401~操作s411。

在操作s401,备用服务器在收到dad消息时,获取dad消息里指示的ip地址,同时执行操作s402。

在操作s402,判断dad消息指示的ip地址是否属于本备用服务器的地址池的管理范围。若dad消息指示的ip地址在本备用服务器地址池管理范围,则执行操作s412,不在本备用服务器地址池管理范围,则执行下一步。

在操作s403,轮询所述备用服务器备份的针对其他服务器(其他server)的地址池,执行操作s404的判决。

在操作s404,如果dad消息指示的ip地址在针对其他服务器的地址池中,则执行操作s405,不符合则执行操作s409。

在操作s405,存储dad消息指示的ip地址到针对其他服务器的临时地址池,启动ip地址的老化时间定时器,老化时间到来前,如要有三种情况需要处理:

收到dhcpv6renew消息,执行操作s406;

收到dhcpv6decline消息,执行操作s407;

收到dhcpv6release消息,执行操作s408;

在操作s406,收到dhcpv6renew消息,表明客户端更新租约,该ip地址属于dhcpv6方式分配的地址,将该ip地址转入到针对分配该ip地址的其他服务器的已分配地址池;

在操作s407,收到dhcpv6decline消息,表明其他服务器分配的ip地址存在冲突,将该ip地址转入到针对分配该ip地址的其他地址池的冲突地址池;

在操作s408,收到dhcpv6release消息,表明该ip地址被客户端释放,将该ip地址转入针对产生该ip地址的其他服务器的未分配地址池。

在操作s409,判断当前的其他服务器是否为多个其他服务器中的最后一个服务器,不是回到操作s403,是则执行操作s410。

在操作s410,该dad消息与针对所有服务器的所有地址池无关(不在所述所有地址池中),无需处理,丢弃dad消息。

在操作s411,针对其他服务器的临时地址池内ip地址的老化定时器到达,将ip地址转入到针对其他服务器的未分配地址池。

在操作s412,执行本服务器的dad消息处理流程,该处理流程详见图3中的操作s305~操作s306。

根据本公开的实施例,在服务器与客户端之间通过四步交互方法通信,且第一服务器为备用服务器时,该第一服务器对ip相关租约和地址池的管理步骤与图4描述的方法类似,区别仅在于,通过四步交互方法进行通信时,可以引入dad检测也可以不引入dad检测。在不引入dad检测时,该备用服务器可以在接收客户端反馈的指示采用ip地址的dhcpv6request消息后执行操作s402~操作s411。在通过操作s402确定该采用的ip地址为第一服务器分配的地址时,执行以下操作:执行本服务器的dhcpv6request消息的处理流程。在引入dad检测时,在通过操作s405将采用的ip地址放入临时地址池后,还可以在接收到dad消息时,将该采用的ip地址转入已分配地址池。

综上可知,本公开的实施例的应用于服务器的地址管理方法,通过基于dad检测和dhcpv6的耦合,可以优化两步交互快速分配方式和四步交互分配方式中dhcpv6服务器的地址管理。基于dad检测和dhcpv6耦合,可以实现对网络配置ip地址(手工配置、slaac和其他dhcpv6server配置地址)的有限管理,降低dhcpv6server分配地址冲突几率。基于dad检测和dhcpv6的耦合,可以实现dhcpv6服务器的冗余方案。图5示意性示出了根据本公开实施例的地址管理装置的结构框图。

如图5所示,本公开实施例的地址管理装置500可以包括反馈消息获得模块510和地址处理模块520。该地址管理装置500可以设置于第一服务器中。

反馈消息获得模块510用于获得客户端发送的针对第一地址的反馈消息(操作s210)。其中,第一地址包括第一服务器分配的地址;或者,第一服务器为多个服务器中的任一服务器,第一地址为多个服务器中的任一服务器分配的地址。

地址处理模块520用于根据所述反馈消息,将所述第一地址存入针对所述反馈消息的地址池(操作s220)。

根据本公开的实施例,该地址管理装置500例如可以用于执行前述图2~图4中任意一个图中的地址管理方法,在此不再赘述。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,反馈消息获得模块510和地址处理模块520中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,反馈消息获得模块510和地址处理模块520中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,反馈消息获得模块510和地址处理模块520中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图6示意性示出了根据本公开实施例的适于执行地址管理方法的服务器的结构框图。图6示出的服务器仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图6所示,根据本公开实施例的服务器600包括处理器601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在ram603中,存储有服务器600操作所需的各种程序和数据。处理器601、rom602以及ram603通过总线604彼此相连。处理器601通过执行rom602和/或ram603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom602和ram603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,服务器600还可以包括输入/输出(i/o)接口605,输入/输出(i/o)接口605也连接至总线604。服务器600还可以包括连接至i/o接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom602和/或ram603和/或rom602和ram603以外的一个或多个存储器。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1