一种链路调度方法及装置与流程

文档序号:12494094阅读:267来源:国知局
一种链路调度方法及装置与流程

本发明涉及信息通信技术领域,特别涉及一种链路调度方法及装置。



背景技术:

在基于DNS(Domain Name System,域名系统)的链路负载分担典型应用组网中,客户端作为访问内网服务器的外部互联网用户,访问内网服务器(即提供数据业务的服务器)时,其现有的工作流程为:首先客户端向本地DNS服务器(作为DNS代理服务器)发起DNS请求报文,其中,该DNS请求报文中包含域名信息;本地DNS服务器再将根据该DNS请求报文生成的另一DNS请求报文发送给LB device(Load Balancing Device,链路负载均衡设备,下文简称LB设备);该LB device根据预先设置的调度算法从多条链路中选择最优链路,并将该最优链路对应的链路IP地址通过DNS应答报文发送给该本地DNS服务器;该本地DNS服务器将接收到的该链路IP地址后,缓存该链路IP地址与该域名信息的对应关系,并将该链路IP地址发送给客户端,客户端获取该本地DNS服务器发送的该链路IP地址,并根据该链路IP地址执行后续的访问内网服务器的动作,其中,对于该DNS请求报文与该另一DNS请求报文,其各自对应的来源地址与目的地址不同,其所各自携带的具体的数据信息相同。

对于现有的工作流程来说,当本地DNS服务器缓存链路IP地址与域名信息的对应关系后,再次接收到客户端发送的关于该域名信息的DNS请求报文后,会直接向该客户端发送关于所对应的链路IP地址的DNS应答报文,不会再向LB device进行请求。可见,现有的工作流程使得发送关于同一域名信息的所有的客户端,都通过同一个链路IP地址进行内网服务器的访问,所有的流量都在一条链路上进行传输,造成该链路负载过大。



技术实现要素:

本发明实施例公开了一种链路调度方法及装置,以实现在客户端使用域名系统DNS代理的情况下的链路的负载分担。具体方案如下:

一方面,本发明实施例提供了一种链路调度方法,应用于域名系统DNS代 理服务器,所述方法包括:

接收客户端发送的第一DNS请求报文,所述第一DNS请求报文携带域名信息;

确定从负载均衡LB设备请求得到的所述域名信息对应的资源池,其中,所述资源池中包括至少一个链路信息,每一链路信息包括与所述域名信息对应的链路IP地址,所述链路信息与链路IP地址具有唯一对应性;

从所述资源池中包含的所述至少一个链路信息中,确定目标链路信息;

向所述客户端发送携带所述目标链路信息包括的目标链路IP地址的第一DNS应答报文。

一方面,本发明实施例还提供了一种链路调度方法,应用于负载均衡LB设备,所述方法包括:

接收DNS代理服务器发送的第二DNS请求报文,所述第二DNS请求报文中携带域名信息,所述域名信息为客户端向所述DNS代理服务器发送的第一DNS请求报文携带的域名信息;

根据所述域名信息生成包含至少一个链路信息的资源池,其中,每一链路信息包括所述域名信息对应的链路IP地址,所述链路信息与链路IP地址具有唯一对应性;

生成与所述第二DNS请求报文所对应的第二DNS应答报文,其中,所述第二DNS应答报文中携带所述资源池;

向所述DNS代理服务器发送所述第二DNS应答报文,所述第二DNS应答报文携带所述资源池,以使:所述DNS代理服务器从所述资源池中确定目标链路信息,并向所述客户端发送携带所述目标链路信息包括的目标链路IP地址的第一DNS应答报文。

一方面,本发明实施例还提供了一种链路调度装置,应用于域名系统DNS代理服务器,所述装置包括:第一请求报文接收模块、资源池确定模块、第一目标信息确定模块和第一应答报文发送模块;

所述第一请求报文接收模块:用于接收客户端发送的第一DNS请求报文, 所述第一DNS请求报文携带域名信息;

所述资源池确定模块:用于确定从负载均衡LB设备请求得到的所述域名信息对应的资源池,其中,所述资源池中包括至少一个链路信息,每一链路信息包括与所述域名信息对应的链路IP地址,所述链路信息与链路IP地址具有唯一对应性;

所述第一目标信息确定模块:用于从所述资源池中包含的所述至少一个链路信息中,确定目标链路信息;

所述第一应答报文发送模块:用于向所述客户端发送携带所述目标链路信息包括的目标链路IP地址的第一DNS应答报文。

另一方面,本发明实施例还提供了一种链路调度装置,应用于负载均衡LB设备,所述装置包括:第二请求报文接收模块、资源池生成模块、第二应答报文生成模块和第二应答报文发送模块;

所述第二请求报文接收模块:用于接收DNS代理服务器发送的第二DNS请求报文,所述第二DNS请求报文中携带域名信息,所述域名信息为客户端向所述DNS代理服务器发送的第一DNS请求报文携带的域名信息;

所述资源池生成模块:用于根据所述域名信息生成包含至少一个链路信息的资源池,其中,每一链路信息包括所述域名信息对应的链路IP地址,所述链路信息与链路IP地址具有唯一对应性;

所述第二应答报文生成模块:用于生成与所述第二DNS请求报文所对应的第二DNS应答报文,其中,所述第二DNS应答报文中携带所述资源池;

所述第二应答报文发送模块:用于向所述DNS代理服务器发送所述第二DNS应答报文,所述第二DNS应答报文携带所述资源池,以使:所述DNS代理服务器从所述资源池中确定目标链路信息,并向所述客户端发送携带所述目标链路信息包括的目标链路IP地址的第一DNS应答报文。

在本方案中,与现有技术不同的是,该DNS代理服务器在接收到携带域名信息第一DNS请求报文后,首先确定从负载均衡LB设备请求得到的该域名信息对应的资源池,该资源池中包括至少一个链路信息,从该资源池中所包括的至少一个链路信息中,确定的目标链路信息,并将携带该目标链路信息所对应的 目标链路IP地址的第一DNS应答报文发送给客户端,以实现在客户端使用域名系统DNS代理的情况下的链路的负载分担。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种链路调度方法的流程示意图;

图2为本发明实施例所提供的一种链路调度方法的另一流程示意图;

图3为本发明实施例所提供的一种链路调度装置的结构示意图;

图4为本发明实施例所提供的一种链路调度装置的另一结构示意图;

图5为本发明实施例所提供的关于域名系统DNS的组网图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种链路调度方法及装置,以实现在客户端使用域名系统DNS代理的情况下的链路的负载分担。

下面首先对本发明实施例所提供的一种链路调度方法进行介绍。

需要说明的是,本发明实施例所提供的一种链路调度方法,可以应用于域名系统DNS代理服务器。其中,该DNS代理服务器与负载均衡LB设备相通信,该DNS代理服务器中具有一定的存储空间,以用来存储接收到的包含至少一个链路信息的资源池,并且,对资源池中所包含的至少一个链路信息进行选择。该存储空间可以是本地携带的存储空间,也可以是扩容的存储空间。

另外,需要强调的是,本发明实施例后续所提及到的“第一DNS请求报文”中的“第一”和“第二DNS请求报文”中的“第二”仅仅用于从命名上区分DNS代理服务器与LB设备所接收的DNS请求报文,并不具有任何限定意义。该第一DNS请求报文与第二DNS请求报文,其各自所对应的来源地址与目的地址不同,其所携带的数据信息相同。

本发明实施例提供了一种链路调度方法,如图1所示,可以包括如下步骤:

S101:接收客户端发送的第一DNS请求报文,该第一DNS请求报文携带域名信息;

可以理解的是,当客户端有访问内网服务器的需求时,该客户端可以向该DNS代理服务器发送第一DNS请求报文,此时,该DNS代理服务器接收该第一DNS请求报文,该第一DNS请求报文中携带域名信息。其中,该接收客户端发送的第一DNS请求报文可以采用现有技术,在此不做赘述。举例而言,该内网服务器的域名信息为www.test.com时,该第一DNS请求报文携带的该域名信息可以为www.test.com。

S102:确定从负载均衡LB设备请求得到的该域名信息对应的资源池,其中,该资源池中包括至少一个链路信息,每一链路信息包括与该域名信息对应的链路IP地址,该链路信息与链路IP地址具有唯一对应性;

其中,该DNS代理服务器接收到携带域名信息的第一DNS请求报文后,为了向客户端反馈所请求域名信息对应的链路IP地址,可以确定从LB设备请求得到的该域名信息对应的资源池,进而基于该资源池执行后续的处理。可以理解的是,该资源池可以是非本次请求所得到的该域名信息对应的资源池(即已存储于本地的资源池),也可以是本次请求所得到的该域名信息对应的资源池。另外,客户端可以根据该资源池中所包括每一个链路信息,访问到该域名信息对应的内网服务器,继而进行数据业务的进行。其中,该资源池的确定可以采用现有技术,在此不做赘述。

本实施例中,该LB设备基于该域名确定的是至少一个较优的链路信息,其中,该确定至少一个较优的链路信息可以采用现有的任一种链路选择机制,所对应的选择机制可以是带宽繁忙程度机制,可以将各链路信息根据当前链路的繁忙程度从低到高进行排序,选取该排序中的排序靠前的若干个繁忙程度低的 链路信息,组成资源池;或者是将繁忙程度采用现有技术进行量化,选取繁忙程度低于某一阈值的链路信息,组合成资源池。

S103:从该资源池中包含的该至少一个链路信息中,确定目标链路信息;

可以理解的是,当该DNS代理服务器确定出从该LB设备请求得到的该域名信息对应的资源池时,该DNS代理服务器可以根据预先设置的链路调度算法,从资源池中所包含的至少一个链路信息中,确定出目标链路信息,其中该预先设置的链路调度算法可以为轮询选择算法、随机选择算法或者最小连接数选择算法,其中,该预先设置的链路调度算法可以根据实际情况,进行调整。

举例而言,该资源池中包含的至少一个链路信息分别为链路信息1、链路信息2以及链路信息3,该每一链路信息中包含唯一对应的链路IP地址,分别为:链路信息1-链路IP地址1、链路信息2-链路IP地址2以及链路信息3-链路IP地址3。当该预先设置的链路调度算法为轮询选择算法时,该链路信息1、链路信息2以及链路信息3可以是循环被确定为目标链路信息,进行后续的流程;当该预先设置的链路调度算法为随机选择算法,则可以随机的从该链路信息1、链路信息2以及链路信息3中选择一个链路信息,确定为目标链路信息;当该预先设置的链路调度算法为最小连接数选择算法时,则可以选择该链路信息1、链路信息2以及链路信息3中分别对应的链路IP地址1、链路IP地址2以及链路IP地址3中的连接数最小的链路信息,将该连接数最小的链路信息确定为目标链路信息。

S104:向该客户端发送携带该目标链路信息所对应的目标链路IP地址的第一DNS应答报文。

需要说明的是,在该DNS代理服务器确定目标链路信息后,会向该客户端发送携带该目标链路信息所对应的目标链路IP地址的第一DNS应答报文,以使该客户端在接收到该第一DNS应答报文后,解析出该目标链路IP地址,根据该目标链路IP地址,访问该域名信息对应的内网服务器。其中,该发送携带该目标链路信息所对应的目标链路IP地址的第一DNS应答报文可以采用现有技术,在此不做赘述。

应用本发明实施例,该DNS代理服务器在接收到携带域名信息第一DNS请求报文后,首先确定从负载均衡LB设备请求得到的该域名信息对应的资源 池,该资源池中包括至少一个链路信息,从该资源池中所包括的至少一个链路信息中,确定的目标链路信息,并将携带该目标链路信息所对应的目标链路IP地址的第一DNS应答报文发送给客户端,实现在客户端使用域名系统DNS代理的情况下的链路的负载分担。

更进一步的,需要说明的是,对于DNS代理服务器接收到的该携带域名信息的第一DNS请求报文,其可能是该DNS代理服务器第一次接收到关于该域名信息的第一DNS请求报文,也可能是该DNS代理服务器非第一次接收到关于该域名信息的第一DNS请求报文。当为第一次时,该DNS代理服务器本地不会存储有从该LB设备请求得到的关于该待访问域名信息的资源池。当为非第一次时,该DNS代理服务器本地可能会存储有从该LB设备请求得到的关于该域名信息的资源池,也可能未存储有关于该域名信息的资源池。因此,为了保证对于第一DNS请求报文的应答,当本地未存储有从该LB设备请求得到的该域名信息对应的资源池时,此时,本发明实施例所提供的一种链路调度方法还可以包括:

向该LB设备发送第二DNS请求报文,该第二DNS请求报文携带该域名信息,以使该LB设备生成该域名信息对应的资源池;

接收该LB设备发送的携带该资源池的第二DNS应答报文。

可以理解的是,在确定从负载均衡LB设备请求得到的该域名信息对应的资源池时,确定出该DNS代理服务器的本地未存储该域名信息对应的资源池时,该DNS代理服务器需要向该LB设备请求该域名信息对应的资源池,即向该LB设备发送携带该域名信息的第二DNS请求报文,接收该LB设备发送的携带该域名信息对应的资源池,并且在接收到该资源池后,从该资源池中包含的该至少一个链路信息中,确定目标链路信息,并向该客户端发送携带该目标链路信息所对应的目标链路IP地址的第一DNS应答报文。该生成第二DNS请求报文可以采用现有技术,在此不做赘述。其中,在接收到该资源池后,该DNS代理服务器可以存储该域名信息与资源池的对应关系。

在一种具体实现方式中,为了使该LB设备能够分辨出是否需要向DNS 代理服务器发送该域名信息对应的资源池,该第二DNS请求报文中还可以携带预定字段;

该LB设备在判断出该预定字段有效时,可以根据该第二DNS请求报文,生成该域名信息对应的资源池,并将该资源池发送给DNS代理服务器。当判断出预定字段无效时,该LB设备可以向该DNS代理服务器发送DNS错误报文,该DNS代理服务器接收到该DNS错误报文后,可以重新向该LB设备发送第二DNS请求报文或者转入现有技术的流程;或者,该LB设备可以将该携带预定字段第二DNS请求报文静默丢弃,此时,该DNS代理服务器在一定时间内未接收到该LB设备发送的针对第二DNS请求报文生成的第二DNS应答报文或者DNS错误报文时,也可以重新向该LB设备发送第二DNS请求报文或者转入现有技术的流程;当然较优的是,在向该LB设备发送第二DNS请求报文的次数超过预定次数后,再转入现有技术的流程。

需要强调的是,该预设字段可以为该DNS代理服务器与LB设备预先协商好的当前的域名系统DNS协议未规定的且合法的字段。在一种具体实现方式中,该预定字段可以为该第二DNS请求报文的类型type字段。举例而言,该内网服务器对应的域名信息为www.test.com,则该第二DNS请求报文携带的域名信息为www.test.com,携带的type字段(预定字段)可以为resource pool(0x0099)。

进一步的,该DNS代理服务器本地所存储的资源池的存储时间较长后,该资源池中所包括的至少一个链路信息所对应的链路IP地址就不一定是当前时间对应的较优的链路IP地址了,举例而言:该域名信息针对的内网服务器所对应的且存在于资源池内的链路IP地址所对应连接数过多,而该域名信息针对的内网服务器所对应的且不存在于资源池内的链路IP地址处于空闲状态,显然此时不存在于资源池内的链路IP地址被浪费,而存在与资源池内的链路IP地址负载过重,这样,该资源池中所包括的至少一个链路信息所对应的链路IP地址就不一定是当前时间对应的较优的链路IP地址了。为了更好的实现链路IP地址的负载分担,提高链路IP地址的利用率,在一种实现方式中,所述资源池中还可以包含关于该资源池的老化时间;

本发明实施例所提供的一种链路调度方法还可以包括:

当该资源池存储于该DNS代理服务器的存储时间超过该老化时间时,丢弃该资源池。

可以理解的是,当资源池被丢弃后,当DNS代理服务器接收到关于被丢弃的资源池所对应的域名信息的第一DNS请求后,需要重新向LB设备请求获得资源池,或者,当该资源池被丢弃时,该DNS代理服务器重新向该LB设备发送携带该域名信息的第二DNS请求报文,向该LB设备重新请求该域名信息对应的资源池。其中,老化时间的具体值可以根据实际情况进行设定,在此不做限定。

进一步的,对于该资源池中所包括的至少一个链路信息来说,每一个链路信息所对应的链路IP地址所能负载的连接数都会存在极限值,并且针对不同的链路IP地址,该极限值也会存在不同,为了更好的利用该系统中的链路IP地址,提高链路IP地址的利用率,所述链路信息还包括与链路IP地址对应的可分配数量;

本发明实施例所提供的一种链路调度方法还可以包括:

在向该客户端发送携带该目标链路信息所对应的目标链路IP地址的第一DNS应答报文之后,将该目标链路IP地址所对应的该可分配数量减一,直至对应的可分配数量为0时,该目标链路IP地址不再用于分配;并且,

当该至少一个链路信息中包括的与链路IP地址对应的可分配数量都为0时,丢弃该资源池。

进一步的,在该DNS代理服务器接收到该携带域名信息的第一DNS请求报文后,可以在本地存储该域名信息。为了更好的提高该DNS代理服务器的处理性能,本发明实施例所提供的一种链路调度方法还可以包括:

当丢弃该资源池时,向该LB设备发送第二DNS请求报文,该第二DNS请求报文携带该域名信息,以使该LB设备重新生成该域名信息对应的资源池;

接收该LB设备发送的携带重新生成的该域名信息对应的资源池的第二DNS应答报文。

可以理解的是,在该已请求到的资源池被丢弃时,可以直接向该LB设备发送携带该域名信息的第二DNS请求报文,以避免在再次接收到第一DNS请求报文时,再向LB设备请求,增加DNS代理服务器的处理负担,同时,可以提 高对于第一DNS请求报文的处理效率。其中,可以周期性的向该LB设备发送携带该域名信息的第二DNS请求报文,直至请求到该域名信息对应的资源池。

具体的,当该DNS代理服务器接收到客户端发送的携带域名信息的第一DNS请求报文后,确定从LB设备请求得到的该域名信息对应的资源池,从该资源池中包含的至少一个链路信息中,确定目标链路信息,并将携带目标链路信息包括的目标链路IP地址的第一DNS应答报文发送给客户端;并且,当达到丢弃该资源池的丢弃机制时,丢弃该资源池。当丢弃该资源池时,该DNS代理服务器可以直接向该LB设备发送携带该域名信息的第二DNS请求报文,向该LB设备重新请求该域名信息对应的资源池,或者在再次接收到携带该域名信息的第一DNS请求报文后,向该LB设备重新请求该域名信息对应的资源池。其中,该丢弃机制包括资源池存储于DNS代理服务器的存储时间超过老化时间,以及该资源池中的至少一个链路信息中包括的与链路IP地址对应的可分配数量都为0。

相应于上述方法实施例,本发明实施例还提供了一种链路调度方法,可以应用于负载均衡LB设备,该LB设备与DNS代理服务器相通信,如图2所示,可以包括步骤:

S201:接收DNS代理服务器发送的第二DNS请求报文,该第二DNS请求报文中携带域名信息,该域名信息为客户端向该DNS代理服务器发送的第一DNS请求报文携带的域名信息;

需要说明的是,在一种具体实现方式中,当该DNS代理服务器确定出本地未存储有从该LB设备请求得到的该域名信息对应的资源池时,该DNS代理服务器向该LB设备发送携带该域名信息的第二DNS请求报文,该LB设备可以采用现有技术接收该DNS代理服务器发送的该第二DNS请求报文,并根据该携带的域名信息进行后续的流程。

S202:根据该域名信息生成包含至少一个链路信息的资源池,其中,每一链路信息包括该域名信息对应的链路IP地址,该链路信息与链路IP地址具有唯一对应性;

可以理解的是,该LB设备自接收到该第二DNS请求报文后,根据该域名 信息,生成包含至少一个链路信息的资源池。与现有技术不同的是,现有技术是选取当前最优的链路信息,在本发明实施例中选取的是当前较优的至少一个链路信息。

S203:生成与该第二DNS请求报文所对应的第二DNS应答报文,其中,该第二DNS应答报文中携带该资源池;

其中,该生成第二DNS应答报文可以采用现有技术,在此不做赘述。可以理解的是,该LB设备可以同时处理多路第二DNS请求报文,该生成的第二DNS应答报文与所接收到的第二DNS请求报文具有对应性,并该LB设备通过该对应性,将该生成的第二DNS应答报文发送给对应的DNS代理服务器。举例而言,该对应性可以通过该应答报文以及请求报文的来源IP地址以及目标IP地址确定,

S204:向该DNS代理服务器发送该第二DNS应答报文,该第二DNS应答报文携带该资源池,以使:该DNS代理服务器从该资源池中确定目标链路信息,并向该客户端发送携带该目标链路信息包括的目标链路IP地址的第一DNS应答报文。

需要说明的是,将该第二DNS应答报文发送至该DNS代理服务器可以采用现有技术,在此不做赘述。

应用本发明实施例,该LB设备在接收到DNS代理服务器发送的携带域名信息的第二DNS请求报文后,根据该域名信息生成包含至少一个链路信息的资源池,并将该资源池发送给该DNS代理服务器,以使:该DNS代理服务器在接收到携带该域名信息的任一第一DNS请求报文后,从该资源池中包含的该至少一个链路信息中,确定目标链路信息;向该客户端发送携带该目标链路信息所对应的目标链路IP地址的第一DNS应答报文。以实现在客户端使用域名系统DNS代理的情况下的链路的负载分担。

进一步的,在一种具体实现方式中,为了使该LB设备能够分辨出是否需要向DNS代理服务器发送该域名信息对应的资源池,该第二DNS请求报文中还可以携带预定字段;

本发明实施例所提供的一种链路调度方法,还可以包括:

判断该预定字段是否有效;当判断有效时,执行S202。

可以理解的是,当该LB设备判断该预设字段为有效时,该第二DNS请求报文可以被确定为是请求该域名信息对应的资源池的请求,该LB设备则可以根据该域名信息生成包含至少一个链路信息的资源池,以反馈给该DNS代理服务器。在一种具体实现方式中,当该LB设备判断该预定字段无效时,该LB设备可以根据现有的DNS协议,针对该第二DNS请求报文向DNS代理服务器返回DNS错误报文,其中,该DNS错误报文中可以携带不同的错误码,以使该DNS代理服务器根据该错误码可以识别是该第二DNS请求报文出现了错误,抑或是该LB设备不支持本发明实施例所提供的方案,进而使该DNS代理服务器决策是重新发送第二DNS请求报文以请求资源池还是转入现有技术的流程。需要说明的是,当该LB设备判断该预定字段无效时,该LB设备可能会将该第二DNS请求报文静默丢弃,针对于该DNS代理服务器,在一定时间内未接收到该LB设备返回的针对携带该域名信息的第二DNS请求报文的第二DNS应答报文或者DNS错误报文时,可以重新发送第二DNS请求报文以请求资源池,或者,可以直接转入现有技术的流程。

进一步的,该DNS代理服务器本地所存储的资源池的存储时间较长后,该资源池中所包括的至少一个链路信息所对应的链路IP地址就不一定是当前时间对应的较优的链路IP地址了,举例而言:该域名信息针对的内网服务器所对应的且存在于资源池内的链路IP地址所对应连接数过多,而该域名信息针对的内网服务器所对应的且不存在于资源池内的链路IP地址处于空闲状态,显然此时不存在于资源池内的链路IP地址被浪费,而存在与资源池内的链路IP地址负载过重,这样,该资源池中所包括的至少一个链路信息所对应的链路IP地址就不一定是当前时间对应的较优的链路IP地址了。为了更好的实现链路IP地址的负载分担,提高链路IP地址的利用率,在一种实现方式中,所述资源池中还可以包含关于该资源池的老化时间;

该DNS代理服务器当该资源池存储于该DNS代理服务器的存储时间超过该老化时间时,丢弃该资源池。

可以理解的是,当资源池被丢弃后,当DNS代理服务器接收到关于被丢弃的资源池所对应的域名信息的第一DNS请求后,需要重新向LB设备请求获得资源池,或者,当该资源池被丢弃时,该DNS代理服务器重新向该LB设备发送携 带该域名信息的第二DNS请求报文,向该LB设备重新请求该域名信息对应的资源池。其中,老化时间的具体值可以根据实际情况进行设定,在此不做限定。

进一步的,对于该资源池中所包括的至少一个链路信息来说,每一个链路信息所对应的链路IP地址所能负载的连接数都会存在极限值,并且针对不同的链路IP地址,该极限值也会存在不同,为了更好的利用该系统中的链路IP地址,提高链路IP地址的利用率,所述链路信息还包括与链路IP地址对应的可分配数量,以使该DNS代理服务器在向该客户端发送携带该目标链路信息包括的目标链路IP地址的第一DNS应答报文之后,将该目标链路IP地址对应的可分配数量减一,直至对应的可分配数量为0时,该目标链路IP地址不再用于分配;并且,

该DNS代理服务器当判断出该至少一个链路信息包括的与链路IP地址对应的可分配数量都为0时,丢弃该资源池。

为了更清楚的介绍本发明实施例所提供的方案,下面结合图5,通过具体应用实例对本发明实施例所提供的链路调度方法进行介绍。

图5所示为关于域名系统DNS的组网图,其中,Local DNS为本发明实施例所提到的DNS代理服务器;Client host为本发明实施例所提到的客户端;Cluster表示一个网络群,分别包括网络运营商ISP-1、ISP-2、ISP-3,三条通往内网服务器Intermal server的链路,分别为Link1、Link2、Link3(分别对应链路IP地址:1.0.0.1、2.0.0.1和3.0.0.1);LB device为本发明实施例所提到的LB设备;Internal server为本发明实施例所提到的内网服务器,该内网服务器的域名信息为www.test.com。

在一种实现方式中,工作流程可以为:Client host向Local DNS发送携带域名信息www.test.com的第一DNS请求报文,该Local DNS确定从负载均衡LB设备请求得到的该域名信息“www.test.com”对应的包含至少一个链路信息的资源池,从资源池中选择一个链路信息,将该链路信息所对应的链路IP地址(第一DNS应答报文)发送给Client host。当确定出本地未存储有从该LB设备请求得到的该域名信息“www.test.com”对应的包含至少一个链路信息的资源池,向LB device发送携带域名信息“www.test.com”的第二DNS请求报文,该LB device 根据第二DNS请求报文中携带的域名信息“www.test.com”,确定包含至少一个链路信息的资源池,并将该资源池(第二DNS应答报文)发送给Local DNS。

可见,通过该工作流程,可以实现Client host在使用Local DNS代理的情况下实现链路的负载分担。

相应于上述方法实施例,本发明实施例还提供了一种链路调度装置,如图3所示,可以应用于域名系统DNS代理服务器,所述装置可以包括:第一请求报文接收模块301、资源池确定模块302、第一目标信息确定模块303和第一应答报文发送模块304;

所述第一请求报文接收模块301:用于接收客户端发送的第一DNS请求报文,所述第一DNS请求报文携带域名信息;

所述资源池确定模块302:用于确定从负载均衡LB设备请求得到的所述域名信息对应的资源池,其中,所述资源池中包括至少一个链路信息,每一链路信息包括与所述域名信息对应的链路IP地址,所述链路信息与链路IP地址具有唯一对应性;

所述第一目标信息确定模块303:用于从所述资源池中包含的所述至少一个链路信息中,确定目标链路信息;

所述第一应答报文发送模块304:用于向所述客户端发送携带所述目标链路信息包括的目标链路IP地址的第一DNS应答报文。

应用本发明实施例,该DNS代理服务器在接收到携带域名信息第一DNS请求报文后,首先确定从负载均衡LB设备请求得到的该域名信息对应的资源池,该资源池中包括至少一个链路信息,从该资源池中所包括的至少一个链路信息中,确定的目标链路信息,并将携带该目标链路信息所对应的目标链路IP地址的第一DNS应答报文发送给客户端,以实现在客户端使用域名系统DNS代理的情况下的链路的负载分担。

具体的,本发明实施例所提供的一种链路调度装置还可以包括第二请求报文发送模块和第二应答报文接收模块;

所述第二请求报文发送模块:用于当本地未存储有从所述LB设备请求得到 的所述域名信息对应的资源池时,向所述LB设备发送第二DNS请求报文,所述第二DNS请求报文携带所述域名信息,以使所述LB设备生成所述域名信息对应的资源池;

所述第二应答报文接收模块:用于接收所述LB设备发送的携带所述资源池的第二DNS应答报文。

具体的,所述第二DNS请求报文中还携带预定字段;

所述LB设备在判断出所述预定字段有效时,执行所述生成所述域名信息对应的资源池的步骤。

具体的,所述资源池中还包含关于所述资源池的老化时间;

本发明实施例所提供的一种链路调度装置还可以包括第一丢弃模块;

所述第一丢弃模块:用于当所述资源池存储于所述DNS代理服务器的存储时间超过所述老化时间时,丢弃所述资源池。

具体的,所述链路信息还包括与链路IP地址对应的可分配数量;

本发明实施例所提供的一种链路调度装置还可以包括可分配数量减一模块和第二丢弃模块;

所述可分配数量减一模块:用于在向所述客户端发送携带所述目标链路信息包括的所述目标链路IP地址的第一DNS应答报文之后,将所述目标链路IP地址对应的可分配数量减一,直至对应的可分配数量为0时,所述目标链路IP地址不再用于分配;

所述第二丢弃模块:用于当所述至少一个链路信息中包括的与链路IP地址对应的可分配数量都为0时,丢弃所述资源池。

本发明实施例所提供的一种链路调度装置还可以包括第三请求报文发送模块和第三应答报文接收模块;

所述第三请求报文发送模块:用于当丢弃所述资源池时,向所述LB设备发送第二DNS请求报文,所述第二DNS请求报文携带所述域名信息,以使所述LB设备重新生成所述域名信息对应的资源池;

所述第三应答报文接收模块:用于接收所述LB设备发送的携带重新生成的 所述域名信息对应的资源池的第二DNS应答报文。

相应于上述方法实施例,本发明实施例还提供了一种链路调度装置,可以应用于负载均衡LB设备,如图4所示,所述装置可以包括:第二请求报文接收模块401、资源池生成模块402、第二应答报文生成模块403和第二应答报文发送模块404;

所述第二请求报文接收模块401:用于接收DNS代理服务器发送的第二DNS请求报文,所述第二DNS请求报文中携带域名信息,所述域名信息为客户端向所述DNS代理服务器发送的第一DNS请求报文携带的域名信息;

所述资源池生成模块402:用于根据所述域名信息生成包含至少一个链路信息的资源池,其中,每一链路信息包括所述域名信息对应的链路IP地址,所述链路信息与链路IP地址具有唯一对应性;

所述第二应答报文生成模块403:用于生成与所述第二DNS请求报文所对应的第二DNS应答报文,其中,所述第二DNS应答报文中携带所述资源池;

所述第二应答报文发送模块404:用于向所述DNS代理服务器发送所述第二DNS应答报文,所述第二DNS应答报文携带所述资源池,以使:所述DNS代理服务器从所述资源池中确定目标链路信息,并向所述客户端发送携带所述目标链路信息包括的目标链路IP地址的第一DNS应答报文。

应用本发明实施例,该LB设备在接收到DNS代理服务器发送的携带域名信息的第二DNS请求报文后,根据该域名信息生成包含至少一个链路信息的资源池,并将该资源池发送给该DNS代理服务器,以使:该DNS代理服务器在接收到携带该域名信息的任一第一DNS请求报文后,从该资源池中包含的该至少一个链路信息中,确定目标链路信息;向该客户端发送携带该目标链路信息所对应的目标链路IP地址的第一DNS应答报文。以实现在客户端使用域名系统DNS代理的情况下的链路的负载分担。

具体的,所述第二DNS请求报文中还可以携带预定字段:

本发明实施例所提供的一种链路调度装置还可以包括字段判断模块;

所述字段判断模块:用于判断所述预定字段是否有效;当判断有效时,触发所述资源池生成模块402。

具体的,所述资源池中还可以包含关于所述资源池的老化时间;

所述DNS代理服务器当判断出所述资源池存储于所述DNS代理服务器的存储时间超过所述老化时间时,丢弃所述资源池。

具体的,所述链路信息还包括与链路IP地址对应的可分配数量,以使所述DNS代理服务器在向所述客户端发送携带所述目标链路信息包括的目标链路IP地址的第一DNS应答报文之后,将所述目标链路IP地址对应的可分配数量减一,直至对应的可分配数量为0时,所述目标链路IP地址不再用于分配;并且,

所述DNS代理服务器当判断出所述至少一个链路信息包括的与链路IP地址对应的可分配数量都为0时,丢弃所述资源池。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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