域名递归查询方法、装置、递归服务器以及DNS系统转让专利

申请号 : CN202011092591.1

文献号 : CN114363287B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈戈唐宏梁洁庄一嵘陈步华海锦霞余媛陈麒薛沛林尹之帆叶何亮

申请人 : 中国电信股份有限公司

摘要 :

本公开提供了一种域名递归查询方法、装置、递归服务器以及DNS系统、存储介质,涉及通信技术领域,其中的方法包括:在接收的域名递归查询请求中确定符合预设的标签添加规则的域名递归查询请求,并在此域名递归查询请求中加入ECS标签信息;利用智能网卡基于ECS标签信息,从域名递归查询请求中分检出ECS递归查询请求;利用智能网卡基于预设的匹配规则,对ECS递归查询请求进行匹配处理,基于匹配处理结果对ECS递归查询请求进行相应的处理。本公开的方法、装置、递归服务器以及DNS系统、存储介质,能够有效提升递归查询的效率,保护了运营商的用户网络信息,提升运营商CDN的差异化服务能力,有效降低了资源消耗。

权利要求 :

1.一种域名递归查询方法,应用于递归服务器中,包括:在接收的域名递归查询请求中确定符合预设的标签添加规则的域名递归查询请求,并在此域名递归查询请求中加入ECS标签信息;

利用智能网卡基于所述ECS标签信息,从所述域名递归查询请求中分检出ECS递归查询请求;其中,所述递归服务器中设置有所述智能网卡;

利用智能网卡基于预设的匹配规则,对所述ECS递归查询请求进行匹配处理,基于匹配处理结果对所述ECS递归查询请求进行相应的处理。

2.如权利要求1所述的方法,所述在接收的域名递归查询请求中确定符合预设的标签添加规则的域名递归查询请求包括:接收域名系统DNS缓存上报的所述域名递归查询请求;

判断上报所述域名递归查询请求的DNS缓存是否为DNS分区缓存;

如果是,则确定此域名递归查询请求符合所述标签添加规则,如果否,则确定此域名递归查询请求不符合所述标签添加规则。

3.如权利要求2所述的方法,所述ECS标签信息包括:ECS码;所述方法包括:获取预设的ECS码,在符合所述标签添加规则的域名递归查询请求中添加所述ECS码。

4.如权利要求3所述的方法,所述域名递归查询请求包括:DNS查询请求;所述方法还包括:将所述DNS查询请求报文的报头中的OPCODE字段值设置为所述ECS码;

获取所述DNS分区缓存的分区缓存编号,将所述分区缓存编号添加在所述DNS查询请求报文的报头中的ID字段中。

5.如权利要求4所述的方法,所述基于所述ECS标签信息,从所述域名递归查询请求中分检出ECS递归查询请求包括:判断所述DNS查询请求报文的报头中的OPCODE字段值是否为所述ECS码;

如果是,则确定此DNS查询请求为所述ECS递归查询请求;如果否,则确定此DNS查询请求不为所述ECS递归查询请求。

6.如权利要求5所述的方法,所述基于预设的匹配规则,对所述ECS递归查询请求进行匹配处理包括:获取全局负载均衡服务器GSLB中的内容分发网络CDN域名;

判断所述DNS查询请求报文中的域名是否与所述CDN域名相匹配;

如果是,则确定此DNS查询请求报文符合所述匹配规则;如果否,则确定此DNS查询请求报文不符合所述匹配规则。

7.如权利要求6所述的方法,所述基于匹配处理结果对所述ECS递归查询请求进行相应的处理包括:在符合所述匹配规则的DNS查询请求报文中增加EDNS OPT信息,并将此DNS查询请求报文发送给所述GSLB;

利用所述智能网卡接收所述GSLB返回的CDN节点IP地址并返回至所述DNS分区缓存。

8.如权利要求7所述的方法,所述EDNS OPT信息包括用户子网信息;所述方法包括:从所述DNS查询请求报文的报头中获取所述分区缓存编号;

基于所述分区缓存编号生成用户子网信息。

9.一种域名递归查询装置,应用于递归服务器中,包括:标签模块,用于在接收的域名递归查询请求中确定符合预设的标签添加规则的域名递归查询请求,并在此域名递归查询请求中加入ECS标签信息;

分检模块,用于利用智能网卡基于所述ECS标签信息,从所述域名递归查询请求中分检出ECS递归查询请求;其中,所述递归服务器中设置有所述智能网卡;

匹配处理模块,用于利用智能网卡基于预设的匹配规则,对所述ECS递归查询请求进行匹配处理,基于匹配处理结果对所述ECS递归查询请求进行相应的处理。

10.如权利要求9所述的装置,其中,

所述标签模块,具体用于接收域名系统DNS缓存上报的所述域名递归查询请求;判断上报所述域名递归查询请求的DNS缓存是否为DNS分区缓存;如果是,则确定此域名递归查询请求符合所述标签添加规则,如果否,则确定此域名递归查询请求不符合所述标签添加规则。

11.如权利要求10所述的装置,所述ECS标签信息包括:ECS码;其中,所述标签模块,还用于获取预设的ECS码,在符合所述标签添加规则的域名递归查询请求中添加所述ECS码。

12.如权利要求11所述的装置,所述域名递归查询请求包括:DNS查询请求;其中,所述标签模块,具体用于将所述DNS查询请求报文的报头中的OPCODE字段值设置为所述ECS码;获取所述DNS分区缓存的分区缓存编号,将所述分区缓存编号添加在所述DNS查询请求报文的报头中的ID字段中。

13.如权利要求12所述的装置,其中,

所述分检模块,用于判断所述DNS查询请求报文的报头中的OPCODE字段值是否为所述ECS码;如果是,则确定此DNS查询请求为所述ECS递归查询请求;如果否,则确定此DNS查询请求不为所述ECS递归查询请求。

14.如权利要求13所述的装置,其中,

所述匹配处理模块,用于获取全局负载均衡服务器GSLB中的内容分发网络CDN域名;判断所述DNS查询请求报文中的域名是否与所述CDN域名相匹配;如果是,则确定此DNS查询请求报文符合所述匹配规则;如果否,则确定此DNS查询请求报文不符合所述匹配规则。

15.如权利要求14所述的装置,其中,

所述匹配处理模块,还用于在符合所述匹配规则的DNS查询请求报文中增加EDNS OPT信息,并将此DNS查询请求报文发送给所述GSLB;利用所述智能网卡接收所述GSLB返回的CDN节点IP地址并返回至所述DNS分区缓存。

16.如权利要求15所述的装置,所述EDNS OPT信息包括用户子网信息;其中,所述匹配处理模块,还用于从所述DNS查询请求报文的报头中获取所述分区缓存编号;

基于所述分区缓存编号生成用户子网信息。

17.一种域名递归查询装置,包括:

存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至8中任一项所述的方法。

18.一种递归服务器,包括:

如权利要求9至17任一项所述的域名递归查询装置。

19.一种DNS系统,包括:

如权利要求18所述的递归服务器。

20.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如权利要求1至8中任一项所述的方法。

说明书 :

域名递归查询方法、装置、递归服务器以及DNS系统

技术领域

[0001] 本公开涉及通信技术领域,尤其涉及一种域名递归查询方法、装置、递归服务器以及DNS系统、存储介质。

背景技术

[0002] CDN(Content Delivery Network,内容分发网络)GSLB(Global Server Load Balancing,全局负载均衡服务器)通常使用DNS(Domain Name System,域名系统)调度技术,其基本原理是客户端通过DNS请求获取CDN服务节点的IP地址。在DNS地址解释过程中,CDN GSLB不直接与客户端交互,而是通过Local DNS向CDN GSLB进行查询,因此,CDN GSLB只能根据Local DNS的查询地址(递归服务地址)来估计用户IP地址。IETF发布了ECS(EDNS‑Client‑Subnet)协议,该协议会在DNS请求包中附加请求域名解析的用户IP地址,因此,CDN通过ECS获取用户精准IP网段。但是,ECS协议也带来了新问题:如果Local DNS对所有域名打开ECS功能,容易泄露隐私,而且也不利于运营商的差异化服务;如果Local DNS通过跟踪DNS递归过程,对指定的CDN服务域名打开ECS功能,则Local DNS递归性能会受到影响。

发明内容

[0003] 有鉴于此,本公开要解决的一个技术问题是提供一种域名递归查询方法、装置、递归服务器以及DNS系统、存储介质。
[0004] 根据本公开的第一方面,提供一种域名递归查询方法,应用于递归服务器中,包括:在接收的域名递归查询请求中确定符合预设的标签添加规则的域名递归查询请求,并在此域名递归查询请求中加入ECS标签信息;利用智能网卡基于所述ECS标签信息,从所述域名递归查询请求中分检出ECS递归查询请求;其中,所述递归服务器中设置有所述智能网卡;利用智能网卡基于预设的匹配规则,对所述ECS递归查询请求进行匹配处理,基于匹配处理结果对所述ECS递归查询请求进行相应的处理。
[0005] 可选地,所述在接收的域名递归查询请求中确定符合预设的标签添加规则的域名递归查询请求包括:接收域名系统DNS缓存上报的所述域名递归查询请求;判断上报所述域名递归查询请求的DNS缓存是否为DNS分区缓存;如果是,则确定此域名递归查询请求符合所述标签添加规则,如果否,则确定此域名递归查询请求不符合所述标签添加规则。
[0006] 可选地,所述ECS标签信息包括:ECS码;所述方法包括:获取预设的ECS码,在符合所述标签添加规则的域名递归查询请求中添加所述ECS码。
[0007] 可选地,所述域名递归查询请求包括:DNS查询请求;所述方法还包括:将所述DNS查询请求报文的报头中的OPCODE字段值设置为所述ECS码;获取所述DNS分区缓存的分区缓存编号,将所述分区缓存编号添加在所述DNS查询请求报文的报头中的ID字段中。
[0008] 可选地,所述基于所述ECS标签信息,从所述域名递归查询请求中分检出ECS递归查询请求包括:判断所述DNS查询请求报文的报头中的OPCODE字段值是否为所述ECS码;如果是,则确定此DNS查询请求为所述ECS递归查询请求;如果否,则确定此DNS查询请求不为所述ECS递归查询请求。
[0009] 可选地,所述基于预设的匹配规则,对所述ECS递归查询请求进行匹配处理包括:获取全局负载均衡服务器GSLB中的内容分发网络CDN域名;判断所述DNS查询请求报文中的域名是否与所述CDN域名相匹配;如果是,则确定此DNS查询请求报文符合所述匹配规则;如果否,则确定此DNS查询请求报文不符合所述匹配规则。
[0010] 可选地,所述基于匹配处理结果对所述ECS递归查询请求进行相应的处理包括:在符合所述匹配规则的DNS查询请求报文中增加EDNS OPT信息,并将此DNS查询请求报文发送给所述GSLB;利用所述智能网卡接收所述GSLB返回的CDN节点IP地址并返回至所述DNS分区缓存。
[0011] 可选地,所述EDNS OPT信息包括用户子网信息;所述方法包括:从所述DNS查询请求报文的报头中获取所述分区缓存编号;基于所述分区缓存编号生成用户子网信息。
[0012] 根据本公开的第二方面,提供一种域名递归查询装置,应用于递归服务器中,包括:标签模块,用于在接收的域名递归查询请求中确定符合预设的标签添加规则的域名递归查询请求,并在此域名递归查询请求中加入ECS标签信息;分检模块,用于利用智能网卡基于所述ECS标签信息,从所述域名递归查询请求中分检出ECS递归查询请求;其中,所述递归服务器中设置有所述智能网卡;匹配处理模块,用于利用智能网卡基于预设的匹配规则,对所述ECS递归查询请求进行匹配处理,基于匹配处理结果对所述ECS递归查询请求进行相应的处理。
[0013] 可选地,所述标签模块,具体用于接收域名系统DNS缓存上报的所述域名递归查询请求;判断上报所述域名递归查询请求的DNS缓存是否为DNS分区缓存;如果是,则确定此域名递归查询请求符合所述标签添加规则,如果否,则确定此域名递归查询请求不符合所述标签添加规则。
[0014] 可选地,所述ECS标签信息包括:ECS码;其中,所述标签模块,还用于获取预设的ECS码,在符合所述标签添加规则的域名递归查询请求中添加所述ECS码。
[0015] 可选地,所述域名递归查询请求包括:DNS查询请求;其中,所述标签模块,具体用于将所述DNS查询请求报文的报头中的OPCODE字段值设置为所述ECS码;获取所述DNS分区缓存的分区缓存编号,将所述分区缓存编号添加在所述DNS查询请求报文的报头中的ID字段中。
[0016] 可选地,所述分检模块,用于判断所述DNS查询请求报文的报头中的OPCODE字段值是否为所述ECS码;如果是,则确定此DNS查询请求为所述ECS递归查询请求;如果否,则确定此DNS查询请求不为所述ECS递归查询请求。
[0017] 可选地,所述匹配处理模块,用于获取全局负载均衡服务器GSLB中的内容分发网络CDN域名;判断所述DNS查询请求报文中的域名是否与所述CDN域名相匹配;如果是,则确定此DNS查询请求报文符合所述匹配规则;如果否,则确定此DNS查询请求报文不符合所述匹配规则。
[0018] 可选地,所述匹配处理模块,还用于在符合所述匹配规则的DNS查询请求报文中增加EDNS OPT信息,并将此DNS查询请求报文发送给所述GSLB;利用所述智能网卡接收所述GSLB返回的CDN节点IP地址并返回至所述DNS分区缓存。
[0019] 可选地,所述EDNS OPT信息包括用户子网信息;其中,所述匹配处理模块,还用于从所述DNS查询请求报文的报头中获取所述分区缓存编号;基于所述分区缓存编号生成用户子网信息。
[0020] 根据本公开的第三方面,提供一种域名递归查询装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的方法。
[0021] 根据本公开的第四方面,提供一种递归服务器,包括:如上所述的域名递归查询装置。
[0022] 根据本公开的第五方面,提供一种DNS系统,包括:如上所述的递归服务器。
[0023] 根据本公开的第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如上述的方法。
[0024] 本公开的域名递归查询方法、装置、递归服务器以及DNS系统、存储介质,确定符合预设的标签添加规则的域名递归查询请求并加入ECS标签信息,利用智能网卡基于ECS标签信息分检出ECS递归查询请求,利用智能网卡基于预设的匹配规则进行匹配处理,对ECS递归查询请求进行相应的处理;能够有效提升递归查询的效率,提升了用户体验;仅对CDN GSLB发送ECS查询报文,保护了运营商的用户网络信息;提升运营商CDN的差异化服务能力,有效降低了资源消耗。

附图说明

[0025] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026] 图1为根据本公开的域名递归查询方法的一个实施例的流程示意图;
[0027] 图2A为现有技术中通过Local DNS进行递归查询的示意图,图2B为本公开的利用智能网卡通过Local DNS进行递归查询的示意图;
[0028] 图3为根据本公开的域名递归查询方法的一个实施例的逻辑处理示意图;
[0029] 图4为DNS报文的报头示意图;
[0030] 图5为根据本公开的域名递归查询方法的另一个实施例的流程示意图;
[0031] 图6为根据本公开的域名递归查询装置的一个实施例的模块示意图;
[0032] 图7为根据本公开的域名递归查询装置的另一个实施例的模块示意图。

具体实施方式

[0033] 下面参照附图对本公开进行更全面的描述,其中说明本公开的示例性实施例。下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。下面结合各个图和实施例对本公开的技术方案进行多方面的描述。
[0034] 随着VR、云游戏等边缘应用快速发展,多种应用对于网络的时延、接入带宽、网络质量提出了越来越高的要求。作为这些应用的内容分发服务平台,现有CDN的在IDC或骨干网集中式部署架构已难以满足这些业务与应用需求,CDN节点需下沉至城域网边缘。
[0035] 互联网CDN GSLB广泛使用DNS调度技术,其基本原理是客户端通过DNS请求来获取CDN服务节点的IP地址。在DNS地址解释过程中,CDN GSLB不直接与客户端交互,而是通过Local DNS去CDN GSLB查询,因此,CDN GSLB只能根据Local DNS的查询地址(递归服务地址)来估计用户IP地址。现有运营商Local DNS绝大部分以省为单位部署,因此,CDN GSLB无法从Local DNS的查询地址中识别出用户所处的精确位置(例如用户处于哪个域域网、哪个BRAS等)。为解决以上问题,IETF发布了ECS(EDNS‑Client‑Subnet)协议,该协议会在DNS请求包中附加请求域名解析的用户IP地址,这样CDN通过ECS可获取用户精准IP网段。
[0036] 但是,ECS协议也带来了新的问题:如果Local DNS对所有域名打开ECS功能,则CP可得到用户IP网段信息,能够非常方便编制用户归属表,容易泄露隐私,而且也不利于运营商的差异化服务;如果Local DNS通过跟踪DNS递归过程,仅对指定的CDN服务域名打开ECS功能,由于现有方案需要通过CPU查找CDN域名表,Local DNS递归性能会受到极大影响。
[0037] 图1为根据本公开的域名递归查询方法的一个实施例的流程示意图,本公开的域名递归查询方法应用于递归服务器中,递归服务器为DNS递归服务器等;如图1所示:
[0038] 步骤101,在接收的域名递归查询请求中确定符合预设的标签添加规则的域名递归查询请求,并在此域名递归查询请求中加入ECS标签信息。
[0039] 在一个实施例中,域名递归查询是指客户端向DNS服务器发出域名解析请求后,服务器通过从根区开始寻找该域名授权服务器的方式遍历域名空间,最后通过与授权服务器交互获得域名对应的应答记录,再返回给客户端。Edns‑client‑subnet(ECS)是Google提出的DNS扩展协议,可应用于DNS智能调度、CDN等领域,主要作用是在域名递归查询时通过扩展option字段,将用户的源IP传递给权威DNS,为用户提供更精准的解析结果。
[0040] 步骤102,利用智能网卡基于ECS标签信息,从域名递归查询请求中分检出ECS递归查询请求;其中,递归服务器中设置有智能网卡。
[0041] 智能网卡(Intelligent Network Interface Card,iNIC)是一种以网络处理器为核心的高性能网络接入卡,它采用多核多线程的网络处理器架构,主要用于实现虚拟交换、安全隔离、服务质量(Quality of Service,QoS)等特性。
[0042] 步骤103,利用智能网卡基于预设的匹配规则,对ECS递归查询请求进行匹配处理,基于匹配处理结果对ECS递归查询请求进行相应的处理。
[0043] 本公开的域名递归查询方法制定了针对ECS查询报文的处理流程,将原来需到递归服务器的CPU处理的任务转移到智能网卡处理,提升了递归查询性能。
[0044] 在一个实施例中,确定符合预设的标签添加规则的域名递归查询请求可以使用多种方法。例如,接收域名系统DNS缓存上报的域名递归查询请求,判断上报域名递归查询请求的DNS缓存是否为DNS分区缓存;如果是,则确定此域名递归查询请求符合标签添加规则,如果否,则确定此域名递归查询请求不符合标签添加规则。
[0045] 用户终端发送的域名递归查询请求可以被缓存在不同的DNS缓存中,DNS缓存可以有多种,例如普通DNS缓存、DNS分片缓存等。可以对不同的行政区域、网络分区、用户群、单位等设置不同的DNS分片缓存,属于不同行政区域、网络分区、用户群、单位等的用户终端发送的域名递归查询请求,分别缓存在对应的DNS分片缓存中。对于普通DNS缓存中的域名递归查询请求,使用现有的域名递归查询方法。对于DNS分片缓存中的域名递归查询请求,需要在域名递归查询请求中加入ECS标签信息。
[0046] ECS标签信息可以有多种,例如,ECS标签信息包括ECS码。ECS码可以设置,例如ECS码为15等。获取预设的ECS码,在符合标签添加规则的域名递归查询请求中添加ECS码。
[0047] 在一个实施例中,域名递归查询请求包括DNS查询请求;将DNS查询请求报文的报头中的OPCODE字段值设置为ECS码;获取DNS分区缓存的分区缓存编号,将分区缓存编号添加在DNS查询请求报文的报头中的ID字段中。
[0048] 从域名递归查询请求中分检出ECS递归查询请求可以使用多种方法。例如,判断DNS查询请求报文的报头中的OPCODE字段值是否为ECS码;如果是,则确定此DNS查询请求为ECS递归查询请求;如果否,则确定此DNS查询请求不为ECS递归查询请求。
[0049] 如图2A所示,在现有方案中,通常把Local DNS的递归服务模块区分为普通递归模块和ECS递归模块。ECS递归模块接收DNS分区缓存的递归请求,向签约的域名服务器及CDN GSLB发送ECS报文。由于分区缓存的引入极大增加了递归查询量,现有方案中的ECS递归模块对每个DNS查询对比GSLB域名,消耗了大量的CPU资源;同时,在出现DDOS攻击的情况下,ECSECS递归模块处理海量的ECS查询,容易对Local DNS服务器造成过载,形成重大安全事故。
[0050] 如图2B所示,本公开的域名递归查询方法使用统一递归进程,不区分ECS与非ECS查询;使用递归智能网卡,由智能网卡检查发出的报文,符合条件的报文将增加ECS标签信息。通过智能网卡,可以实现线速处理ECS报文,不增加CPU消耗。
[0051] 在一个实施例中,对ECS递归查询请求进行匹配处理可以使用多种方法。例如,获取全局负载均衡服务器GSLB中的内容分发网络CDN域名,CDN域名为签约CDN域名等。判断DNS查询请求报文中的域名是否与CDN域名相匹配;如果是,则确定此DNS查询请求报文符合匹配规则;如果否,则确定此DNS查询请求报文不符合匹配规则。对于不符合匹配规则的DNS查询请求报文,使用现有的递归查询方法处理DNS查询请求报文。
[0052] 基于匹配处理结果对ECS递归查询请求进行相应的处理可以使用多种方法。例如,在符合匹配规则的DNS查询请求报文中增加EDNS OPT信息,并将此DNS查询请求报文发送给GSLB。利用智能网卡接收GSLB返回的CDN节点IP地址并返回至DNS分区缓存。GSLB可以使用现有的方法对DNS查询请求报文进行处理,获取CDN节点IP地址。
[0053] 在一个实施例中,扩展DNS机制EDNS(Extension Mechanisms for DNS)是在遵循已有的DNS消息格式的基础上增加一些字段,来支持更多的DNS请求业务。EDNS中引入了一种新的伪资源记录OPT(Resource Record),OPT不包含任何DNS数据,OPT RR不能被cache、不能被转发、不能被存储在zone文件中。每个DNS报文中只能有一个OPT伪资源记录。
[0054] EDNS OPT信息包括用户子网信息等。从DNS查询请求报文的报头中获取分区缓存编号,基于分区缓存编号生成用户子网信息。全局负载均衡GSLB可以实现负载均衡,在多个CDN节点之间进行均衡。DNS查询请求报文中包括EDNS OPT信息,EDNS OPT信息包括基于分区缓存编号生成的用户子网信息。同一个域名可以有多个CDN节点,GSLB根据基于分区缓存编号生成的用户子网信息,对于不同的分区缓存编号提供不同的CDN节点IP地址并返回,可以实现负载均衡。
[0055] 在一个实施例中,如图3所示,递归服务器设置有智能网卡,利用智能网卡的可编程能力可以实现多个功能模块。递归服务器的CPU用于处理标签模块和递归模块,在智能网卡中可以设置分检模块和处理模块,通过智能网卡进行相应的处理。
[0056] 标签模块:对分区缓存上报的DNS查询报文,更新报头中的OPCODE字段值为15;将分区缓存编号写入DNS查询报文的报头中ID字段的前10位,ID字段的后6位作为顺序号。智能网卡的分捡模块:根据OPCODE值分捡DNS查询报文。智能网卡的处理模块:为每个CDN GSLB的主域名建立一个“匹配—处理”模块,当匹配了主CDN域名则为该DNS查询报文增加EDNS OPT信息;EDNS OPT中的用户子网信息,由标签模块的分区缓存编号确定。
[0057] DNS查询请求报文的报头格式如图4所示,标签模块对分区缓存上报的DNS查询请求报文,更新其报头中的OPCODE值为15(ECS码),而对普通缓存或递归返回的DNS报文不进行处理。
[0058] 标签模块需更新DNS查询请求报文的报头中的ID字段,将DNS分区缓存编号写入ID字段的前10位,ID字段的后6位作为顺序号。该DNS查询请求报文的报头中的ID字段值作为同一递归过程的唯一标识,在后续DNS递归过程中不会被改写,因此,后续递归流程中可进一步基于本字段进行相应的处理。
[0059] 图5为根据本公开的域名递归查询方法的另一个实施例的流程示意图,如图5所示:
[0060] 步骤501,发送DNS查询请求报文,用于查询ABC.COM的IP地址。
[0061] 步骤502,将DNS查询请求报文的报头中的OPCODE字段值设置为15,将DNS分区缓存编号写入DNS查询请求报文的报头中ID字段的前10位,ID字段的后6位作为顺序号。
[0062] 步骤503,发送DNS查询请求报文,进行递归查询。
[0063] 步骤504,根据OPCODE字段值分检DNS查询请求报文,发送分检出的DNS查询请求报文,作为ECS递归查询请求。
[0064] 步骤505,如果DNS查询请求报文中的域名与GSLB中的内容分发网络CDN域名不匹配,则发送请求。
[0065] 步骤506,步骤507:根据递归服务器地址返回GSLB中的CDN域名CNAME。
[0066] 步骤508,发送DNS查询请求报文,进行递归查询。
[0067] 步骤509,根据DNS查询请求报文的报头中的ID字段,继续发送递归请求。
[0068] 步骤510,如果DNS查询请求报文中的域名与CNAME匹配,在DNS查询请求报文中基于分区缓存编号增加OPT信息,发送DNS查询请求报文,进行递归查询。
[0069] 步骤511,步骤512,步骤513:根据OPT ESC信息查询CDN节点IP,并返回。
[0070] 在实际应用中,为避免改动现有Local DNS软件架构及组网,可以通过在现有递归服务器上安装智能网卡,升级递归软件应用本公开的域名递归查询方法,缓存与该新递归服务器是一种松耦合的关系。
[0071] 在一个实施例中,如图6所示,本公开提供一种域名递归查询装置60,应用于递归服务器中,包括:标签模块61、分检模块62和匹配处理模块63。标签模块61在接收的域名递归查询请求中确定符合预设的标签添加规则的域名递归查询请求,并在此域名递归查询请求中加入ECS标签信息。递归服务器中设置有智能网卡。分检模块62和匹配处理模块63可以设置在智能网卡中。
[0072] 分检模块62利用智能网卡基于ECS标签信息,从域名递归查询请求中分检出ECS递归查询请求。匹配处理模块63利用智能网卡基于预设的匹配规则,对ECS递归查询请求进行匹配处理,基于匹配处理结果对ECS递归查询请求进行相应的处理。
[0073] 在一个实施例中,标签模块61接收域名系统DNS缓存上报的域名递归查询请求,判断上报域名递归查询请求的DNS缓存是否为DNS分区缓存;如果是,则标签模块61确定此域名递归查询请求符合标签添加规则,如果否,则标签模块61确定此域名递归查询请求不符合标签添加规则。
[0074] ECS标签信息包括ECS码等。标签模块61获取预设的ECS码,在符合标签添加规则的域名递归查询请求中添加ECS码。域名递归查询请求包括DNS查询请求等。标签模块61将DNS查询请求报文的报头中的OPCODE字段值设置为ECS码;标签模块61获取DNS分区缓存的分区缓存编号,将分区缓存编号添加在DNS查询请求报文的报头中的ID字段中。
[0075] 在一个实施例中,分检模块62判断DNS查询请求报文的报头中的OPCODE字段值是否为ECS码;如果是,则分检模块62确定此DNS查询请求为ECS递归查询请求;如果否,则分检模块62确定此DNS查询请求不为ECS递归查询请求。
[0076] 匹配处理模块63获取全局负载均衡服务器GSLB中的内容分发网络CDN域名,判断DNS查询请求报文中的域名是否与CDN域名相匹配;如果是,则匹配处理模块63确定此DNS查询请求报文符合匹配规则;如果否,则匹配处理模块63确定此DNS查询请求报文不符合匹配规则。
[0077] 匹配处理模块63在符合匹配规则的DNS查询请求报文中增加EDNS OPT信息,并将此DNS查询请求报文发送给GSLB;匹配处理模块63利用智能网卡接收GSLB返回的CDN节点IP地址并返回至DNS分区缓存。
[0078] EDNS OPT信息包括用户子网信息。匹配处理模块63还用于从DNS查询请求报文的报头中获取分区缓存编号,基于分区缓存编号生成用户子网信息。
[0079] 图7为根据本公开的域名递归查询装置的另一个实施例的模块示意图。如图7所示,该装置可包括存储器71、处理器72、通信接口73以及总线74。存储器71用于存储指令,处理器72耦合到存储器71,处理器72被配置为基于存储器71存储的指令执行实现上述的域名递归查询方法。
[0080] 存储器71可以为高速RAM存储器、非易失性存储器(non‑volatile memory)等,存储器71也可以是存储器阵列。存储器71还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器72可以为中央处理器CPU,或专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本公开的域名递归查询方法的一个或多个集成电路。
[0081] 在一个实施例中,本公开提供一种递归服务器,包括如上任一实施例中的域名递归查询装置。
[0082] 在一个实施例中,本公开提供一种DNS系统,包括如上任一实施例中的递归服务器。
[0083] 在一个实施例中,本公开提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一个实施例中的域名递归查询方法。
[0084] 上述实施例中的域名递归查询方法、装置、递归服务器以及DNS系统、存储介质,确定符合预设的标签添加规则的域名递归查询请求并加入ECS标签信息,利用智能网卡基于ECS标签信息分检出ECS递归查询请求,利用智能网卡基于预设的匹配规则进行匹配处理,对ECS递归查询请求进行相应的处理;能够有效提升递归查询的效率,提升了用户体验;仅对CDN GSLB发送ECS查询报文,保护了运营商的用户网络信息;适用于运营商自建CDN精准调度应用场景,提升运营商CDN的差异化服务能力,有效降低了递归服务器的资源消耗。
[0085] 可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
[0086] 本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。