域名解析方法、系统及设备与流程

文档序号:14612907发布日期:2018-06-05 21:17阅读:171来源:国知局
域名解析方法、系统及设备与流程

本发明涉及内容分发网络技术领域,特别涉及一种域名解析方法、系统及设备。



背景技术:

在CDN(Content Delivery Network,内容分发网络)技术领域当中,GSLB设备能够(Global Server Load Balance,全局负载均衡)基于DNS(Domain Name System,域名系统)技术把互联网用户的请求调度到离用户最近的边缘缓存节点。

在普遍情况下,服务同一个地区的边缘缓存节点有多个,每个边缘缓存节点的处理能力可能不同。此时GSLB会根据每个边缘缓存节点的处理能力配置服务优先级,GSLB会依据边缘缓存节点的服务优先级分配节点IP到本地DNS服务器。

为了减少DNS请求数量,本地DNS服务器会缓存从GSLB获得的解析结果。本地DNS服务器所服务的用户数量千差万别,而GSLB并不知道本地DNS服务器所服务的用户数,所以GSLB按配置的服务优先级分配边缘缓存节点不能准确的实现负载均衡,甚至可能出现处理能力小的边缘缓存节点反而访问量大的情况,因此会造成用户访问缓慢甚至域名解析系统不能服务的情况。



技术实现要素:

本发明所要解决的一个技术问题是:提供一种负载更加均衡的域名解析方案。

根据本发明实施例的一个方面,提供了一种域名解析方法,包括:全局负载均衡GSLB设备接收本地域名系统DNS服务器发送的DNS查询请求,所述DNS查询请求包括本地DNS服务器的IP地址;GSLB设备根据本地DNS服务器的IP地址,确定与本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级;GSLB设备向本地DNS服务器返回所述多个边缘缓存节点的IP地址以及服务优先级,以便本地DNS服务器根据多个边缘缓存节点的服务优先级向所述用户分配边缘缓存节点的IP地址。

在一些实施例中,确定与本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级包括:GSLB设备确定与本地DNS服务器属于相同区域的多个边缘缓存节点;GSLB设备根据所述多个边缘缓存节点的性能指标确定所述多个边缘缓存节点的服务优先级。

根据本发明实施例的另一个方面,提供了一种基于域名解析的负载均衡方法,包括:本地DNS服务器接收用户发起的DNS查询请求;本地DNS服务器获取所述本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级;本地DNS服务器根据获取的多个边缘缓存节点的服务优先级向所述用户分配边缘缓存节点的IP地址。

在一些实施例中,本地DNS服务器获取所述本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级包括:本地DNS服务器向GSLB设备发送DNS查询请求,所述DNS查询请求包括本地DNS服务器的IP地址,以便GSLB设备根据本地DNS服务器的IP地址,确定与本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级;本地DNS服务器接收GSLB设备发送的所述多个边缘缓存节点的IP地址以及服务优先级。

在一些实施例中,该方法还包括:本地DNS服务器将接收到的所述多个边缘缓存节点的IP地址以及服务优先级在本地存储为带优先级的DNS资源记录。

在一些实施例中,本地DNS服务器获取所述本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级包括:本地DNS服务器在本地查询带优先级的DNS资源记录,以获取本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。

在一些实施例中,本地DNS服务器根据所述多个边缘缓存节点的服务优先级向所述用户分配边缘缓存节点的IP地址包括:本地DNS服务器计算各个边缘缓存节点的服务优先级与所有边缘缓存节点的服务优先级总合的比值;本地DNS服务器以各个边缘缓存节点的所述比值为概率,向所述用户随机分配各个边缘缓存节点的IP地址。

根据本发明实施例的又一个方面,提供了一种GSLB设备,包括:消息接收模块,用于接收本地域名系统DNS服务器发送的DNS查询请求,所述DNS查询请求包括本地DNS服务器的IP地址;资源确定模块,用于根据本地DNS服务器的IP地址,确定与本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级;消息发送模块,用于向本地DNS服务器返回所述多个边缘缓存节点的IP地址以及服务优先级,以便本地DNS服务器根据服务优先级向所述用户分配边缘缓存节点的IP地址。

在一些实施例中,资源确定模块包括:地址确定单元,用于确定与本地DNS服务器的IP地址属于相同区域的多个边缘缓存节点;权重确定单元,用于根据所述多个边缘缓存节点的性能指标确定所述多个边缘缓存节点的服务优先级。

根据本发明实施例的另一个方面,提供了一种本地DNS服务器,包括:信息接收模块,用于接收用户发起的DNS查询请求;资源获取模块,用于获取所述本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级;资源分配模块,用于根据获取的多个边缘缓存节点的服务优先级向所述用户分配边缘缓存节点的IP地址。

在一些实施例中,资源获取模块包括:信息发送单元,用于向GSLB设备发送DNS查询请求,所述DNS查询请求包括本地DNS服务器的IP地址,以便GSLB设备根据本地DNS服务器,确定与本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级;信息接收单元,用于接收GSLB设备发送的所述多个边缘缓存节点的IP地址以及服务优先级。

在一些实施例中,资源获取模块还包括:资源存储单元,用于将接收到的所述多个边缘缓存节点的IP地址以及服务优先级在本地存储为带优先级的DNS资源记录。

在一些实施例中,资源获取模块还包括:资源查询单元,用于在本地查询带优先级的DNS资源记录,以获取本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。

在一些实施例中,资源分配模块包括:比值计算单元,用于计算各个边缘缓存节点的服务优先级与所有边缘缓存节点的服务优先级总合的比值;地址分配单元,用于以各个边缘缓存节点的所述比值为概率,向所述用户随机分配各个边缘缓存节点的IP地址。

根据本发明实施例的再一个方面,提供了一种域名解析系统,包括上述的GSLB设备以及上述的DNS服务器。

在一些实施例中,该系统还包括授权DNS服务器,所述授权DNS服务器包括:请求接收模块,用于接收所述本地DNS服务器发送的DNS查询请求;请求响应模块,用于向所述本地DNS服务器发送主机别名记录,以便所述本地DNS通过所述主机别名记录向所述GSLB发送DNS查询请求。

本发明中,GSLB设备接收DNS服务器发送的DNS查询请求,GSLB设备根据发起DNS查询请求的用户的IP地址,确定与本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级;GSLB设备向本地DNS服务器返回多个边缘缓存节点的IP地址以及服务优先级,本地DNS服务器根据多个边缘缓存节点的服务优先级向用户分配边缘缓存节点的IP地址。从而提供了一种负载更加均衡的域名解析方案,实现了根据边缘缓存节点的服务能力,向边缘缓存节点均衡分配访问用户。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

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

图1示出本发明域名解析方法的一个实施例的流程示意图。

图2示出GSLB向本地DNS服务器返回的域名解析响应。

图3示出本发明本地DNS服务器获取本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级的方法的一个实施例的流程示意图。

图4示出APRE记录的相关参数配置的示意图。

图5示出APRE的数据结构示意图。

图6示出本发明GSLB设备的一个实施例的结构示意图。

图7示出本发明本地DNS服务器的一个实施例的结构示意图。

图8示出本发明域名解析系统的一个实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

发明人考虑到,现有技术中GSLB设备按边缘缓存节点的处理能力分派访问用户,只能以本地DNS服务器为分配颗粒度,造成边缘缓存节点的用户访问量与GSLB所期望的分派比例不一致。因此,发明人提出基于DNS技术的按边缘缓存节点的处理能力进行精确负载均衡的方法。

首先结合图1描述本发明域名解析方法的一个实施例。

图1示出本发明域名解析方法的一个实施例的流程示意图。如图1所示,在域名解析系统中,包括本地DNS服务器以及GSLB设备。本实施例的域名解析方法包括:

步骤S102,用户向本地DNS服务器发送DNS查询请求,本地DNS服务器接收用户发起的DNS查询请求。

在本地DNS服务器所服务区域中一般存在多个用户,因此在普遍情况下,多个用户可能向同一个本地DNS服务器发起DNS查询请求。

步骤S104,本地DNS服务器获取本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。

例如图2所示,现有技术中,用户请求对域名www.test.com进行访问时,本地DNS服务器向用户返回服务优先级最高的边缘缓存节点IP地址218.30.108.32。而在本发明步骤S102中,本地DNS服务器向用户返回优先级最高的四个边缘缓存节点IP地址,分别为第一边缘缓存节点IP地址218.30.108.32、第二边缘缓存节点IP地址218.30.108.32:50、第三边缘缓存节点IP地址219.11.101.234:30、第四边缘缓存节点IP地址219.11.101.234:20。其中,四个边缘缓存节点的服务优先级例如可以依次为第一边缘缓存节点服务优先级70、第二边缘缓存节点服务优先级20、第三边缘缓存节点服务优先级15、第四边缘缓存节点服务优先级15。

步骤S106,本地DNS服务器根据获取的多个边缘缓存节点的服务优先级向用户分配边缘缓存节点的IP地址。

其中,本地DNS服务器可以先计算各个边缘缓存节点的服务优先级与所有边缘缓存节点的服务优先级总合的比值。然后,本地DNS服务器以各个边缘缓存节点的比值为概率,向用户随机分配各个边缘缓存节点的IP地址。

以第一边缘缓存节点为例,第一边缘缓存节点的服务优先级与所有边缘缓存节点的服务优先级的比值为70/100=70%。然后,本地DNS服务器将该用户70%的DNS查询请求分配至第一边缘缓存节点。其它边缘缓存节点的情况参照类似的方法进行处理。

上述实施例中,通过本地DNS服务器根据多个边缘缓存节点的服务优先级向用户随机分配边缘缓存节点的IP地址,提供了一种负载更加均衡的域名解析方案,实现了根据边缘缓存节点的服务能力,向边缘缓存节点均衡分配访问用户。

下面结合图3描述本地DNS服务器获取本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级的方法。

图3示出本发明本地DNS服务器获取本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级的方法的一个实施例的流程示意图。如图3所示,在图1所示的实施例基础上,本实施例的步骤S104包括:

步骤S3042,本地DNS服务器向GSLB设备发送DNS查询请求,GSLB设备接收本地域名系统DNS服务器发送的DNS查询请求。其中,DNS查询请求包括本地DNS服务器的IP地址。

例如,本地DNS服务器首先向授权DNS服务器发送DNS查询请求。授权DNS服务器接收到DNS查询请求后,向本地DNS服务器返回主机别名记录。本地DNS通过主机别名记录向GSLB发送DNS查询请求。

步骤S3044,GSLB设备根据本地DNS服务器的IP地址,确定与本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。

其中,GSLB设备可以先确定与本地DNS服务器属于相同区域的多个边缘缓存节点。然后,GSLB设备根据各个边缘缓存节点的性能指标,确定多个边缘缓存节点的服务优先级。

步骤S3046,GSLB设备向本地DNS服务器返回多个边缘缓存节点的IP地址以及服务优先级,本地DNS服务器接收GSLB设备发送的多个边缘缓存节点的IP地址以及服务优先级。

根据现有技术中的DNS记录协议,GSLB设备以主机IP记录(简称为A记录)的方式向本地DNS服务器返回边缘缓存节点的IP地址。为了GSLB设备向本地DNS服务器返回多个边缘缓存节点的IP地址以及服务优先级,可以在现有的DNS记录协议中增加新的DNS记录协议类型。例如,增加RR(Resource Record,资源记录)类型APRE,其具体数值可以由IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)来分配。APRE记录的相关参数配置可以例如图4所示。其中,与现有技术中的主机IP记录(简称为A记录)的主要区别在于,APRE记录占用五个字节。其中,前四个字节用于存储边缘缓存节点的IP地址,第五个字节用于存储边缘缓存节点的服务优先级。APRE的数据结构可以例如图5所示。

本领域技术人员应理解,GSLB返回给本地DNS服务器的DNS响应数据包可以包括两种RR记录。如果本地DNS服务器支持APRE记录,则GSLB向本地DNS服务器返回A记录和APRE记录,本地DNS服务器使用报文后部的APRE记录,忽略前部的A记录。如果本地DNS服务器不支持APRE记录,则GSLB向本地DNS服务器返回A记录和APRE记录后,本地DNS服务器仅使用位于报文前部的A记录,忽略后部的APRE记录,从而使得不同设备能够兼容APRE记录。

上述实施例中,能够根据本地DNS真正服务的访问用户数进行边缘缓存节点的访问,按照边缘节点的处理能力更加精确分派互联网用户的访问量。从而避免了GSLB将本地DNS当作用户来分配边缘缓存节点所造成的各边缘缓存节点访问量与处理能力不一致的情况。

优选的,步骤S104还可以包括:

步骤S3048,本地DNS服务器将接收到的多个边缘缓存节点的IP地址以及服务优先级在本地存储为带优先级的DNS资源记录,以便该用户再次发起进行DNS查询时本地DNS服务器根据DNS资源记录进行相应的反馈。

例如图2所示,参数600代表带优先级的DNS资源记录的生存时间为600秒,也就是说在600秒时间内该带优先级的DNS资源记录有效,该用户再次发起进行DNS查询时本地DNS服务器根据DNS资源记录进行响应的反馈。

步骤S3041,本地DNS服务器在本地查询带优先级的DNS资源记录。

若本地DNS服务器本地存储了带优先级的DNS资源记录,则本地DNS服务器可以直接获得本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。若本地DNS服务器本地未存储带优先级的DNS资源记录,则执行步骤S3042至步骤S3046以获取本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。

上述实施例中,本地DNS服务器可以在本地存储了带优先级的DNS资源记录的情况下,不再向GSLB获取本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级,直接根据存储的带优先级的DNS资源记录向用户分配边缘缓存节点的IP地址,从而提高了域名解析的整体效率。

下面结合图6描述本发明GSLB设备的一个实施例。

图6示出本发明GSLB设备的一个实施例的结构示意图。如图6所示,该实施例中的GSLB设备60包括:

消息接收模块602,用于接收本地域名系统DNS服务器发送的DNS查询请求,DNS查询请求包括本地DNS服务器的IP地址。

资源确定模块604,用于根据本地DNS服务器的IP地址,确定与本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。

消息发送模块606,用于向本地DNS服务器返回多个边缘缓存节点的IP地址以及服务优先级,以便本地DNS服务器根据服务优先级向用户分配边缘缓存节点的IP地址。

在一个实施例中,资源确定模块604包括:

地址确定单元6042,用于确定与本地DNS服务器属于相同区域的多个边缘缓存节点;

权重确定单元6044,用于根据多个边缘缓存节点的性能指标确定多个边缘缓存节点的服务优先级。

下面结合图7描述本发明本地DNS服务器的一个实施例。

图7示出本发明本地DNS服务器的一个实施例的结构示意图。如图7所示,该实施例中的本地DNS服务器70包括:

信息接收模块702,用于接收用户发起的DNS查询请求。

资源获取模块704,用于获取DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。

资源分配模块706,用于根据获取的多个边缘缓存节点的服务优先级向用户分配边缘缓存节点的IP地址。

在一个实施例中,资源获取模块704包括:

信息发送单元7042,用于向GSLB设备发送DNS查询请求,DNS查询请求包括本地DNS服务器的IP地址,以便GSLB设备根据本地DNS服务器,确定与本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。

信息接收单元7044,用于接收GSLB设备发送的多个边缘缓存节点的IP地址以及服务优先级。

在一个实施例中,资源获取模块704还包括:资源存储单元7046,用于将接收到的多个边缘缓存节点的IP地址以及服务优先级在本地存储为带优先级的DNS资源记录。

在一个实施例中,资源获取模块704进一步包括:资源查询单元7041,用于在本地查询带优先级的DNS资源记录,以获取本地DNS服务器对应的多个边缘缓存节点的IP地址以及服务优先级。

在一个实施例中,资源分配模块706包括:

比值计算单元7062,用于计算各个边缘缓存节点的服务优先级与所有边缘缓存节点的服务优先级总合的比值;

地址分配单元7064,用于以各个边缘缓存节点的比值为概率,向用户随机分配各个边缘缓存节点的IP地址。

下面结合图8描述本发明域名解析系统的一个实施例。

图8示出本发明域名解析系统的一个实施例的结构示意图。如图8所示,该实施例中的域名解析系统80包括GSLB设备60以及本地DNS服务器70。

在一个实施例中,域名解析系统80还包括授权DNS服务器802,授权DNS服务器802包括:

请求接收模块8022,用于接收本地DNS服务器发送的DNS查询请求。

请求响应模块8024,用于向本地DNS服务器发送主机别名记录,以便本地DNS通过主机别名记录向GSLB发送DNS查询请求。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

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

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