一种域名解析的方法和域名服务器的制造方法

文档序号:8005564阅读:185来源:国知局
一种域名解析的方法和域名服务器的制造方法
【专利摘要】本发明涉及互联网【技术领域】,尤其涉及一种域名解析的方法和域名服务器。用以解决现有技术中,当客户端的网络地址和递归域名服务器的网络地址不在同一个网络地址段时,客户端收到的网络地址记录排序不合理的问题。本发明公开的域名解析的方法包括:从与递归域名服务器发出的客户端的网络地址匹配的Sortlist中确定目标Sortlist;根据目标Sortlist,确定目标网络地址。由于本发明实施例中根据客户端的网络地址确定目标Sortlist,因此当客户端的网络地址和递归域名服务器的网络地址不在同一网络地址段时,客户端也能收到经过合理排序的网络地址记录。
【专利说明】一种域名解析的方法和域名服务器
【技术领域】
[0001]本发明涉及互联网【技术领域】,尤其涉及一种域名解析的方法和域名服务器。
【背景技术】
[0002]当互联网用户通过域名(Domain Name,DN)访问网络内容资源的时候,域名服务器(Domain Name Server, DNS)会对域名进行解析,将便于记忆的域名转换为网络地址(比如IPv4地址或IPv6地址)。多数情况下,一个域名对应多个网络地址,对于大部分客户端而言,都是直接选择排在第一位的网络地址作为要访问的网络地址。
[0003]按照域名服务层次,域名服务器一般可划分为根域名服务器、顶级域名服务器、权威域名服务和递归域名服务四个层次。当客户端上的用户通过域名访问网络内容资源时,其域名解析请求会首先发到递归域名服务器上,若递归域名服务器上没有找到要解析的域名对应的网络地址时,递归域名服务器会向权威域名服务器发出域名解析请求。
[0004]权威域名服务器上安装有DNS软件,用于在收到递归域名服务器发来的域名解析请求时解析域名。大部分的DNS软件(比如Bind软件)都支持Sortlist语句,该语句其用于将一个域名对应的多个网络地址进行排序。
[0005]比如在权威域名服务器上有两条Sortlist记录,分别为:
[0006]Sortlist {
[0007]{192.168.1.0/24 ;
[0008]{192.168.1.0/24;
[0009]{192.168.2.0/24; 192.168.3.0/24
[0010]和
[0011]Sortlist {
[0012]{10.0.1.0/24 ;
[0013]{10.0.1.0/24;
[0014]{10.0.2.0/24; 10.0.3.0/24;} ;
[0015]其中,各Sortllist第一行的网络地址段用于与发送域名解析请求的递归域名服务器的网络地址进行比较,若递归域名服务器的网络地址位于网络地址段192.168.1.0/24中,则使用第一个Sortlist,若递归域名服务器的网络地址位于网络地址段10.0.1.0/24中,则使用第二个Sortlist。
[0016]从Sortlist的第二行开始的地址段用于将域名对应的网络地址记录进行排序。当同一行上有多个地址段时,表示若对同一个域名同时存在该行上的多个网络地址段中的记录,则返回的这些记录之间的顺序是随机的。
[0017]如,当该权威域名服务器收到来自网络地址处于192.168.1.0/24地址段内的递归域名服务器发送的域名解析请求时,如果该权威域名服务器上存储的该域名对应的网络地址记录集包含处于192.168.1.0/24地址段内的记录,则将这些记录排在返回给递归域名服务器的网络地址的前面;否则,如果其上存储的该域名对应的网络地址记录集包含处于192.168.2.0/24或者192.168.3.0/24地址段内的记录,则将这些记录排在返回给递归域名服务器的网络地址的前面。如果上述情况都不满足,则不进行任何排序优化逻辑,以默认方式做出应答。递归域名服务器收到网络地址后,将网络地址返回给发起DNS查询请求的客户端。
[0018]如,对于域名www.a.com,该权威域名服务器上存储了以下8个网络地址:
[0019]www.a.com 192.168.1.1
[0020]www.a.com 192.168.2.2
[0021]www.a.com 192.168.3.3
[0022]www.a.com 192.168.4.4
[0023]www.a.com 10.0.1.1
[0024]www.a.com 10.0.2.2
[0025]www.a.com 10.0.3.3
[0026]www.a.com 10.0.4.4
[0027]若网络地址为192.168.1.5的客户端通过网络地址为192.168.1.6的递归域名服务,发送域名解析请求,要求解析WWW.a.com,则客户端收到的结果为:
[0028]www.a.com 192.168.1.1
[0029]www.a.com 192.168.2.2
[0030]www.a.com 192.168.3.3
[0031]www.a.com 192.168.4.4
[0032]www.a.com 10.0.1.1
[0033]www.a.com 10.0.2.2
[0034]www.a.com 10.0.3.3
[0035]www.a.com 10.0.4.4
[0036]其中,192.168.2.2和192.168.3.3这两条记录之间的顺序随机,后五条的记录之间的顺序随机,但整体顺序固定。
[0037]若网络地址为192.168.1.5的客户端通过网络地址为10.0.1.5的递归域名服务,发送域名解析请求,要求解析WWW.a.com,则客户端收到的结果为:
[0038]www.a.com 10.0.1.1
[0039]www.a.com 10.0.2.2
[0040]www.a.com 10.0.3.3
[0041]www.a.com 10.0.4.4
[0042]www.a.com 192.168.1.1
[0043]www.a.com 192.168.2.2
[0044]www.a.com 192.168.3.3
[0045]www.a.com 192.168.4.4
[0046]其中,第二条记录和第三条记录之间的顺序随机,后五条记录之间的顺序随机,但整体顺序固定。
[0047]从上述例子可以看出,在现有域名解析服务体系下,权威域名服务器利用递归域名服务器的网络地址进行域名解析。当客户端的网络地址与其对应的递归域名服务器的网络地址处于不同的网络地址段时(比如,位于北京的客户端使用位于上海的递归域名服务器进行域名解析(往往处于不同城市的网络设备具有位于不同地址段的网络地址,甚至同一城市不同区域的网络设备也具有位于不同地址段的网络地址))。根据现有的资源记录的排序方法,客户端很可能收到不合理的资源记录顺序的应答。如上例,当网络地址为192.168.1.5的客户端通过网络地址为10.0.1.5的递归域名服务发送DNS查询请求,要求解析www.a.com,则客户端收到的结果中,并没有将与客户端相同网络地址段的192.168.1.1的网络地址排在记录的最前面,而将与递归服务器相同地址段的10.0.1.1排在最前面。这样会大大降低客户端访问WWW.a.com的速度。
[0048]综上所述,目前还没有一种有效的方法,能够解决客户端的网络地址和递归域名服务器的网络地址不在同一个网络地址段时,客户端收到的网络地址记录排序不合理的问题,进而提高客户端访问网络内容资源的速度。

【发明内容】

[0049]本发明实施例提供一种域名解析的方法和一种域名服务器,用以解决现有技术中,当客户端的网络地址和递归域名服务器的网络地址不在同一个网络地址段时,客户端收到的网络地址记录排序不合理的问题。
[0050]本发明实施例提供一种域名解析的方法,包括:
[0051]从与递归域名服务器发出的客户端的网络地址匹配的Sortlist中,确定目标Sortlist ;
[0052]根据所述目标Sortlist,确定与所述递归域名服务器发出的请求解析的域名对应的目标网络地址;
[0053]将所述目标网络地址返回给所述递归域名服务器。
[0054]采用本发明实施例提供的方法,由于根据客户端的网络地址确定目标Sortlist,因此当客户端的网络地址和递归域名服务器的网络地址不在同一网络地址段时,客户端也能收到经过合理排序的网络地址记录,进而能够快速访问网络内容资源。
[0055]本发明实施例还提供了一种域名服务器,包括:
[0056]网络地址匹配模块,用于从与递归域名服务器发出的客户端的网络地址匹配的Sortlist 中,确定目标 Sortlist ;
[0057]目标网络地址确定模块,用于根据所述目标Sortlist,确定与所述递归域名服务器发出的请求解析的域名对应的目标网络地址;
[0058]发送模块,用于将所述目标网络地址返回给所述递归域名服务器。
[0059]采用本发明实施例提供的域名服务器,由于根据客户端的网络地址确定目标Sortlist,因此当客户端的网络地址和递归域名服务器的网络地址不在同一网络地址段时,客户端也能收到经过合理排序的网络地址记录,进而客户端能够快速访问网络内容资源。
【专利附图】

【附图说明】
[0060]图1为本发明实施例提供的域名解析的方法过程示意图;
[0061]图2为本发明实施例一的域名解析方法的流程图;[0062]图3为本发明实施例提供的域名服务器的结构示意图。
【具体实施方式】
[0063]扩展DNS 协议(Extension DNS,EDNS)是 DNS 扩展协议。EDNSO-Client-Subnet 协议是对EDNS协议报文内容进一步规定的协议。根据EDNSO-Client-Subnet协议,当递归域名服务器接收到客户端的域名解析请求时,将客户端的网络地址封装在域名解析请求对应的EDNS报文的扩展段里,随域名解析请求一起发给权威域名服务器。其中,非递归域名解析请求是相对于递归域名解析请求而言的,指不需要被请求的权威域名服务器进行递归动作,若权威域名服务器加载的域中或者缓存中存在被查询的域名对应的网络地址记录,则直接将网络地址记录作为域名解析结果返回给发起请求的递归域名服务器,若没有,则返回域名不存在或查询失败的结果。通常,非递归域名解析请求由递归域名服务器发给权威域名服务器(包括根域服务器以及顶级域名服务器)。
[0064]根据EDNSO-Client-Subnet协议,为保护上网用户隐私,可以将客户端的网络地址以一定长度的掩码进行掩码运算,递归域名服务器将进行掩码运算后的客户端的网络地址封装在EDNS报文里面,发给权威域名服务器请求解析域名对应的网络地址。权威域名服务器向递归域名服务器返回查询结果时,在响应的EDNS报文的扩展段中写入一个“范围码”。“范围码”本质是一个网络地址掩码,其含义为:将向该递归域名服务器发起域名解析请求的客户端网络地址与该“范围码”进行掩码运算,所得网络地址段内的客户端,在请求解析同一个域名时,都将获得与本次解析相同的结果。该递归域名服务器将此次域名解析的结果进行缓存,供后续的域名解析使用,在域名解析结果缓存生命期(Time To Live,TTL)过期前,属于此网络地址段内的客户端发起对该相同域名的域名解析请求时,将直接从该递归域名服务器的缓存中获得应答,而不必再由该递归域名服务器向权威服务器发起域名解析请求。
[0065]比如,来自于网络地址为1.1.1.1的客户端发来的请求查询www.abc.com的网络地址,递归域名服务器向权威域名服务器发出域名解析请求,从权威服务器获得范围码16,以及查询结果:2.2.2.2,则此条记录(2.2.2.2)在缓存生命周期内适用于1.1.0.0?
1.1.255.255内的所有客户端。
[0066]与现有的权威域名服务器利用递归域名服务器而不是客户端的网络地址进行域名解析的方法不同,本发明实施例中,当权威域名服务器接收到递归域名服务器发来的域名解析请求时,对请求的EDNS报文的扩展段进行解析,从中获取域名递归查询请求发起方(即客户端)的网络地址(可选地,也可为经过一定长度的掩码运算后的结果),并依据客户端的网络地址匹配Sortlist,利用与客户端的网络地址匹配得到的Sortlist得到请求解析的域名对应的目标网络地址。
[0067]本发明实施例中提到的“域名解析请求”即为发送给域名服务器的请求解析某域名的请求,其含义与“DNS查询请求”、“DNS解析请求”、“域名查询请求”相同;本发明实施例中提到的“域名解析响应”,即为域名服务器发出的携带域名对应的网络地址的响应,其含义与“DNS查询响应”、“DNS解析响应”、“域名解析响应”相同。
[0068]如图1所示,本发明实施例提供的域名解析的方法步骤如下:
[0069]SlOl:从与递归域名服务器发出的客户端的网络地址匹配的Sortlist中,确定目标 Sortlist ;
[0070]S102:根据所述目标Sortlist,确定与所述递归域名服务器发出的请求解析的域名对应的目标网络地址;
[0071]S103:将所述目标网络地址返回给所述递归域名服务器。
[0072]步骤SlOl中,与客户端的网络地址匹配的Sortlist需满足:客户端的网络地址落在该Sortlist特定网络地址段中,其中特定网络地址段用于匹配所述客户端的网络地址。这里,客户端的网络地址可以为EDNS协议中规定的经过掩码处理后的网络地址,也可为未经过掩码处理后的网络地址。
[0073]如,递归域名服务器发出的客户端的网络地址为:192.168.1.5,权威域名服务器上有下述两条Sortlist记录:
[0074]Sortlist {
[0075]{192.168.1.0/24 ;
[0076]{192.168.1.0/24;
[0077]{192.168.2.0/24; 192.168.3.0/24
[0078]和
[0079]Sortlist {
[0080]{10.0.1.0/24 ;
[0081]{10.0.1.0/24;
[0082]{10.0.2.0/24; 10.0.3.0/24
[0083]则上述第一个Sortlist为与客户端的网络地址匹配的Sortlist。
[0084]再比如,客户端的网络地址为经过掩码处理后的客户端的网络地址192.168.0.0,权威域名服务器上仅存在上述两个Sortlist,则可确定不存在与客户端的网络地址匹配的Sortlist。
[0085]步骤S102中,根据目标Sortlist,确定与所述递归域名服务器发出的请求解析的域名对应的目标网络地址的具体方案可包括但不限于以下两种:
[0086]方案一、目标网络地址包括经目标Sortlist匹配得到的与请求解析的域名对应的网络地址;
[0087]方案二、目标网络地址包括与请求解析的域名对应的全部网络地址;其中,目标网络地址中,经目标Sortlist匹配得到的与请求解析的域名对应的网络地址排在最前面。
[0088]上述两个可选的方案在具体应用时,可以通过设置开关来实现,比如,设置Sortlist匹配开关为ON时,采用方案一;设置Sortlist匹配开关为OFF时,采用方案二。
[0089]其中,通过目标Sortlist匹配得到与请求解析的域名对应的网络地址的具体方法可包括但不限于下述方法:
[0090]根据目标Sortlist中用于确定目标网络地址的网络地址段,对请求解析的域名对应的全部网络地址进行匹配,落在用于确定目标网络地址的网络地址段内的网络地址为匹配的网络地址。如,目标Sortlist为:
[0091]Sortlist {
[0092]{192.168.1.0/24 ;
[0093]{192.168.1.0/24;[0094]{192.168.2.0/24; 192.168.3.0/24;} ;} ;};
[0095]在现有的DNS软件(比如Bind软件)所支持Sortlist语句中,Sortlist第二行和第三行的网络地址段为用于确定目标网络地址的网络地址段。随着技术的发展,对Sortlist的定义可能发生变化,本发明实施例的方法中,是根据用于确定目标网络地址的网络地址段对对请求解析的域名对应的全部网络地址进行匹配,不仅适用于现有的Sortlist定义,也适用于以后各种可能的Sortlist的定义。
[0096]与请求解析的域名www.a.com对应的全部网络地址为:
[0097]www.a.com 192.168.1.1
[0098]www.a.com 192.168.2.2
[0099]www.a.com 192.168.3.3
[0100]www.a.com 192.168.4.4
[0101]www.a.com 10.0.1.1
[0102]www.a.com 10.0.2.2
[0103]www.a.com 10.0.3.3
[0104]www.a.com 10.0.4.4
[0105]则网络地址192.168.1.1、192.168.2.2 和 192.168.3.3 为经目标 Sortlist 匹配得到的与请求解析的域名WWW.a.com对应的网络地址。
[0106]步骤S102中,确定的目标网络地址是根据目标Sortlist排序后的网络地址。根据目标Sortlist对网络地址进行排序的方法可与现有技术中的方法相同。比如,在上述Sortlist的例子中,根据Sortlist第二行确定的网络地址应该排在目标网络地址的最前面,随后排列的是根据Sortlist第三行确定的网络地址。Sortlist第三行中包括两个网络地址段,根据这两个网络地址段分别确定的网络地址之间的排列顺序随机。
[0107]若根据方案一确定目标网络地址,则确定的目标网络地址为:
[0108]www.a.com 192.168.1.1
[0109]www.a.com 192.168.2.2
[0110]www.a.com 192.168.3.3
[0111]或者
[0112]www.a.com 192.168.1.1
[0113]www.a.com 192.168.3.3
[0114]www.a.com 192.168.2.2
[0115]若根据方案二确定目标网络地址,则确定的目标网络地址为:
[0116]www.a.com 192.168.1.1
[0117]www.a.com 192.168.2.2
[0118]www.a.com 192.168.3.3
[0119]www.a.com 192.168.4.4
[0120]www.a.com 10.0.1.1
[0121]www.a.com 10.0.2.2
[0122]www.a.com 10.0.3.3
[0123]www.a.com 10.0.4.4[0124]其中,第二条和第三条记录之间的顺序随机,第4-8条记录之间的顺序随机,整体顺序规定。
[0125]在方案一中,由于目标网络地址仅包括经目标Sortlist匹配得到的与请求解析的域名对应的网络地址,减少了返回给递归域名服务器的数据量,缩小了递归域名服务器的处理和数据存储量。同时,也可以防止递归服务器或者客户端打乱网络地址的排序或者刻意使用排在后面的网络地址。
[0126]在方案二中,目标网络地址包括与请求解析的域名对应的全部网络地址,经目标Sortlist匹配得到的与请求解析的域名对应的网络地址排在最前面,这样既实现了优先选用经目标Sortlist匹配得到的网络地址,又能保证当客户端无法访问经目标Sortlist匹配得到的网络地址时,还可以访问与请求解析的域名对应的其他网络地址。
[0127]在上述两种方案中,经目标Sortlist匹配得到的与请求解析的域名对应的网络地址排在目标网络地址的最前面。这样,客户端在收到目标网络地址后,可以优先使用排在最前面的经目标Sortlist匹配得到网络地址,因此可实现客户端快速访问网络内容资源的目的。
[0128]当存在多个与客户端的网络地址匹配的Sortlist时,可随机选择其中一个Sortlist作为目标Sortlist,也可采用下面的优选方案确定Sortlist。
[0129]优选地,步骤SlOl包括:
[0130]将与客户端的网络地址匹配的Sortlist中,特定网络地址段最小的Sortlist作为目标Sortlist ;
[0131]其中,特定网络地址段用于匹配客户端的网络地址。
[0132]在现有的DNS软件(比如Bind软件)所支持Sortlist语句中,第一行中的网络地址段用于匹配客户端的网络地址。
[0133]下面举例说明特定网络地址段最小的Sortlist的含义。
[0134]若客户端的网络地址为192.168.1.1,经过掩码24运算后,为192.168.1.0。在权威域名服务器中,与192.168.0.0匹配的Sortlist包括以下两条记录。
[0135]Sortlist {
[0136]{192.168.1.0/24 ;
[0137]{192.168.1.0/24;
[0138]{192.168.2.0/24; 192.168.3.0/24;} ;
[0139]和
[0140]Sortlist {
[0141]{192.168.0.0/16 ;
[0142]{192.168.0.0/16;
[0143]{192.169.0.0/16; 192.167.0.0/16
[0144]上述两个Sortlist中,第一个Sortlist的特定网络地址段为192.168.1.0/24,第二个Sortlist的特定网络地址段为192.168.0.0/16,在第一个Sortlist中,特定网络地址段的掩码为24,比第二个Sortlist的特定网络地址段的掩码16长,因此,第一个Sortlist为与客户端的网络地址匹配的Sortlist中,特定网络地址段最小的Sortlist。
[0145]下面,举例说明该优选方案及其有益技术效果。[0146]请求解析的域名为www.a.com,与请求解析的域名www.a.com对应的全部网络地址为:
[0147]www.a.com 192.168.1.1
[0148]www.a.com 192.168.2.2
[0149]www.a.com 192.168.3.3
[0150]www.a.com 192.168.4.4
[0151]www.a.com 192.167.1.1
[0152]www.a.com 192.169.2.2
[0153]www.a.com 10.0.3.3
[0154]www.a.com 10.0.4.4
[0155]若根据上述方案一确定目标网络地址,即目标网络地址包括经目标Sortlist匹配得到的与请求解析的域名对应的网络地址。则根据特定网络地址段最小的Sortlist,即第一个Sortlist确定的目标网络地址为:
[0156]www.a.com 192.168.1.1
[0157]www.a.com 192.168.2.2
[0158]www.a.com 192.168.3.3
[0159]而根据第二个Sortlist确定的目标网络地址为:
[0160]www.a.com 192.168.1.1
[0161]www.a.com 192.168.2.2
[0162]www.a.com 192.168.3.3
[0163]www.a.com 192.168.4.4
[0164]www.a.com 192.169.2.2
[0165]www.a.com 192.167.1.1
[0166]比根据第一个Sortlist确定的目标网络地址多。因此,将与所述客户端的网络地址匹配的Sort list中,特定网络地址段最小的Sort I i st作为目标Sort I i st,可实现更精确地确定目标网络地址的目的。
[0167]优选地,当不存在与所述递归域名服务器发出的客户端的网络地址匹配的Sortlist时,根据所述递归域名服务器的网络地址确定目标Sortlist。
[0168]比如,客户端的网络地址为192.168.1.5,递归域名服务器的网络地址为192.168.1.6,递归域名服务器发出的客户端的网络地址为经过掩码16运算后的网络地址192.168.0.0,权威域名服务器上有下述两条Sortlist记录:
[0169]Sortlist {
[0170]{192.168.1.0/24 ;
[0171]{192.168.1.0/24;
[0172]{192.168.2.0/24; 192.168.3.0/24
[0173]和
[0174]Sortlist {
[0175]{10.0.1.0/24 ;
[0176]{10.0.1.0/24;[0177]{10.0.2.0/24; 10.0.3.0/24;} ;
[0178]不存在与掩码后的客户端的网络地址匹配的Sortlist,但第一条Sortlist与递归域名服务器的网络地址匹配,采用本优选方案,根据递归域名服务器的网络地址确定第一个Sortlist为目标Sortlist,进而确定目标网络地址,即可实现域名解析结果的优化。
[0179]当存在多个与递归服务器的网络地址匹配的Sortlist时,可随机选择其中一个Sortlist作为目标Sortlist,也可采用下面的优选方案确定Sortlist。
[0180]优选地,根据递归域名服务器的网络地址确定目标Sortlist,包括:
[0181]将与递归域名服务器的网络地址匹配的Sortlist中,特定网络地址段最小的Sortlist 作为目标 Sortlist ;
[0182]其中,特定网络地址段用于匹配递归域名服务器的网络地址。
[0183]对于特定网络地址段的说明同前面的描述,区别在于,本优选方案是在与递归域名服务器的网络地址进行匹配,而非客户端的网络地址。
[0184]优选地,根据目标Sortlist,确定与所述递归域名服务器发出的请求解析的域名对应的目标网络地址之后,本发明实施例提供的方法还包括:
[0185]根据目标Sortlist,确定所述域名解析请求对应的范围码,并将该范围码返回给递归域名服务器,以使递归域名服务器根据该范围码、客户端的网络地址确定第一网络地址段,并在收到其他对所述请求解析的域名的域名解析请求,且该其他域名解析请求对应的客户端的网络地址落在该第一网络地址段中时,直接将所述目标网络地址置于与该其他域名解析请求对应的域名解析响应中返回给与该其他域名解析请求对应的客户端。
[0186]该优选方案中,递归域名服务器在收到目标网络地址和范围码后,将客户端网络地址与该范围码进行掩码运算,所得网络地址段内的客户端,在请求解析同一个域名时,都将获得与本次解析相同的结果。该递归域名服务器将此次域名解析的结果进行缓存,供后续的域名解析使用,可选地,可以为该域名解析结果设置一个缓存生命期(Time To Live,TTL),在该TTL过期前,属于此网络地址段内的客户端发起对该相同域名的域名解析请求时,将直接从该递归域名服务器的缓存中获得应答,而不必再由该递归域名服务器向权威服务器发起域名解析请求。
[0187]可选地,范围码等于目标Sortlist的特定网络地址段的掩码。比如,目标Sortlist 为:
[0188]Sortlist {
[0189]{192.168.1.0/24 ;
[0190]{192.168.1.0/24;
[0191]{192.168.2.0/24; 192.168.3.0/24;} ;
[0192]特定网络地址段为用于匹配客户端的网络地址(当存在与客户端的网络地址匹配的Sortlist时)或用于匹配递归服务器的网络地址(当不存在与客户端的网络地址匹配的Sortlist,当存在与递归域名服务器的网络地址匹配的Sortlist时)的网络地址段,在本例中为192.168.1.0/24,该网络地址段的掩码为24,则确定范围码等于24。可选地,可以使范围码比特定网络地址段的掩码大预设的值或小预设的值,比如16。
[0193]范围码越大,递归域名服务器缓存的目标网络地址所适用的客户端的网络地址将越少,则权威域名服务器将收到越多的递归域名服务器发来的域名解析请求;反之,范围码越小,递归域名服务器缓存的网络地址所适用的客户端的网络地址将越多,Sortlist的匹配也就越粗糙。
[0194]优选地,本发明实施例提供的方法还包括:
[0195]当不存在与客户端的网络地址匹配的Sortlist,也不存在与递归域名服务器的网络地址匹配的Sortlist时,确定所述目标网络地址包括与请求解析的域名对应的全部网络地址;
[0196]若需要排除不匹配的客户端的网络地址,则根据各Sortlist和客户端的网络地址确定范围码,否则设置范围码为无效;
[0197]将所述目标网络地址和所述范围码返回给所述递归域名服务器,以使所述递归域名服务器根据所述范围码、所述客户端的网络地址确定第二网络地址段,并在所述递归域名服务器收到其他对所述请求解析的域名的域名解析请求,且该其他域名解析请求对应的客户端的网络地址落在所述第二网络地址段中时,直接将所述目标网络地址置于与该其他域名解析请求对应的域名解析响应中返回给与该其他域名解析请求对应的客户端。
[0198]在具体应用时,可通过开关来设置是否需要排除不匹配的客户端的网络地址。比如设置地址空洞开关为ON时,确定需要排除不匹配的客户端的网络地址,此时,根据各Sortlist和客户端的网络地址确定范围码;设置地址空洞开关为OFF时,确定不需要排除不匹配的客户端的网络地址,此时,设置范围码为无效。
[0199]在上述优选的方案中,目标网络地址中各网络地址排列的顺序为默认的顺序。比如:权威域名服务器中存储该要解析的域名对应的网络地址的顺序,或者为采用轮询方式确定的网络地址的顺序(比如,在权威域名服务器中存储了某域名对应的8个网络地址,这8个网络地址按照前后顺序进行编号,排在最前面的网络地址的编号为1,以此类推,排在最后面的网络地址的编号为8。当收到一个解析该域名对应的网络地址的域名解析请求后,按照从I到8的顺序返回这8个网络地址,当收到下一个解析该域名对应的网络地址的域名解析请求后,按照从2到8再到I的顺序返回这8个网络地址,以此类推)。以上目标网络地址的排序方式仅为示例,实际方式不限于此,只要能将要返回的目标网络地址按照一定的顺序排列即可。
[0200]在该优选的方案中,当设置地址空洞开关为ON时,确定需要排除不匹配的客户端的网络地址,此时,根据各Sortlist和客户端的网络地址确定范围码。这里,给出一个根据各Sortlist确定范围码方法的示例,具体实现的方法可不限于下列示例:
[0201]为了简化描述,假定只存在一个Sortlist
[0202]Sortlist {
[0203]{15.168.1.0/24 ;
[0204]{15.168.1.0/24;
[0205]{15.168.2.0/24; 15.168.3.0/24
[0206]递归域名服务器发来的域名解析请求中携带的客户端的网络地址为10.10.1.5,递归域名服务器的网络地址为10.10.1.6,则即不存在与客户端的网络地址匹配的Sortlist,也不存在与递归域名服务器的网络地址匹配的Sortlist。
[0207]本示例中,根据各Sortlist和客户端的网络地址确定范围码的方法包括如下步骤:[0208]首先,根据各Sortlist将整个网络地址空间进行分段,在本实例中,整个网络地址被分为:IPSegmentl:0.0.0.0 ?15.168.0.255、IPSegment2:15.168.1.0 ?192.168.1.255 和 IPSegment3:15.168.2.0 ?255.255.255.255 三段;
[0209]然后,确定客户端的网络地址所归属的网络地址段IPSegementTarget,在本示例中,客户端的网络地址落在了 0.0.0.0?15.168.0.255这个网络地址段内,因此IPSegementTarget 为 IPSegmentl ;
[0210]接下来,设置掩码初始值mask等于32,进行下列的循环运算,循环运算中包括如下子步骤:
[0211]子步骤1、将客户端的IP地址与掩码mask进行掩码运算,得到网络地址段IPSegmentTemp ;
[0212]子步骤2、将子步骤I中掩码运算得到的网络地址段IPSegmentTemp与IPSegementTarget 进行比较,若 IPSegmentTemp 超出了 IPSegementTarget 的范围(包括两个 IP 地址段 IPSegmentTemp 和 IPSegementTarget 仅部分重叠,和 IPSegementTarget 落在IPSegmentTemp内两种情况),则退出循环体,否则mask减I。
[0213]最后,确定范围码等于mask+1。
[0214]上述步骤中,由于当mask=32时,客户端的IP地址与mask掩码运算的结果即为客户端的IP地址,而客户端的IP地址就是在网络地址段IPSegementTarget内的,所以循环也可以从mask=31开始。
[0215]本示例中,最终得到的范围码为:6
[0216]在掩码运算中,掩码越小,网络地址与该掩码进行掩码运算后得到的网络地址段包括的网络地址越多,因此,这里范围码的含义为:当客户端的网络地址与该范围码进行掩码运算后,得到的网络地址段落在IPSegementTarget内,并且与其他也能使客户端的网络地址经过掩码运算得到的网络地址段落在IPSegementTarget内的掩码相比,经过该范围码进行掩码运算后的得到的网络地址段中包含的网络地址最多。
[0217]这样,当递归域名服务器收到该范围码后,就可以在最大范围内确定不能与Sortlist匹配的客户端的网络地址,从而最大限度地避免向权威域名服务器发出域名解析请求。
[0218]上述优选的方案中,若确定不需要排除不匹配的客户端的网络地址,则设置范围码为无效。其中,对于现有的IPv4和IPv6协议,可通过使范围码等于O来设置范围码无效。设置范围码无效的方式不限于此,这里仅为举例。
[0219]下面,通过实施例一来说明本发明实施例提供的一种优选的域名解析的方法。如图2所示,实施例一的方法包括如下步骤:
[0220]S201:接收递归域名服务器发来的域名解析请求,其中该请求中包括经过掩码处理后的客户端的网络地址和要解析的域名;
[0221]S202:确定是否存在与客户端的网络地址匹配的Sortlist,若存在,则执行步骤S203,若否,则执行步骤S207 ;
[0222]S203:确定与客户端的网络地址匹配的最小Sortlist (即与客户端的网络地址匹配的Sortlist中,特定网络地址段最小的Sortlist);
[0223]S204:确定Sortlist匹配开关是否为0N,若是,则执行步骤S205,若否,则执行步骤 S206 ;
[0224]S205:确定目标网络地址仅包括根据与客户端的网络地址匹配的最小Sortlist确定的网络地址,且目标网络地址中的网络地址按照该最小Sortlist确定的顺序排序,并确定范围码为该最小Sortlist的特定网络地址段的掩码,之后执行步骤S215 ;
[0225]S206:确定目标网络地址包括所有的该域名对应的网络地址,其中根据S204步骤中确定的最小Sortlist所确定的网络地址排在目标网络地址的最如面,并确定范围码为最小Sortlist的特定网络地址段的掩码,之后执行步骤S215 ;
[0226]S207:确定是否存在与递归域名服务器的网络地址匹配的Sortlist,若是,则执行步骤S208,若否,则执行步骤S212 ;
[0227]S208:确定与递归域名服务器的网络地址匹配的最小Sortlist (即与递归域名服务器的网络地址匹配的Sortlist中,特定网络地址段最小的Sortlist),之后执行S209 ;
[0228]S209:确定Sortlist匹配开关是否为0N,若是,则执行步骤S210,否则执行步骤S211 ;
[0229]S210:确定目标网络地址仅包括根据与递归域名服务器的网络地址匹配的最小Sortlist确定的网络地址,且目标网络地址按照该最小Sortlist确定的顺序排序,并确定范围码为该最小Sortlist的特定网络地址段的掩码,之后执行步骤S215 ;
[0230]S211:确定目标网络地址包括所有该域名对应的网络地址,其中根据S208步骤中确定的最小Sortlist所确定的网络地址排在最前面,并确定范围码为该最小Sortlist对应的地址段的掩码,之后执行步骤S215 ;
[0231]S212:判断地址空洞开关是否为0N,若是,则执行步骤S213,否则执行步骤S214 ;
[0232]S213:确定目标网络地址包括所有该域名对应的网络地址,且按照默认的顺序排序,范围码为根据各Sortlist和客户端的网络地址确定的掩码;
[0233]S214:确定目标网络地址包括所有该域名对应的网络地址,且按照默认的顺序排序,范围码为O;
[0234]S215:向递归域名服务器返回网络地址列表和范围码。
[0235]下面,通过一个域名解析过程来本发明实施例一的方法。
[0236]假设在权威域名服务器上存在与【背景技术】中同样的两条Sortlist记录,对于域名WWW.a.com,该权威域名服务器也同样存储了同样的8个网络地址。若采用本发明实施例提供的方法,当网络地址为10.0.1.5的客户端通过网络地址为192.168.1.6的递归域名服务器,请求解析WWW.a.com,当Sortlist匹配开关为OFF时,客户端收到的结果为:
[0237]www.a.com 10.0.1.1
[0238]www.a.com 10.0.2.2
[0239]www.a.com 10.0.3.3
[0240]www.a.com 10.0.4.4
[0241]www.a.com 192.168.1.1
[0242]www.a.com 192.168.2.2
[0243]www.a.com 192.168.3.3
[0244]www.a.com 192.168.4.4
[0245]其中,第二条记录和第三条记录之间的顺序随机,后五条记录之间的顺序随机,但整体顺序固定。
[0246]当Sortlist匹配开关为ON时,客户端收到的结果为:
[0247]www.a.com 10.0.1.1
[0248]www.a.com 10.0.2.2
[0249]www.a.com 10.0.3.3
[0250]其中,后两条记录之间的顺序随机,整体顺序固定。
[0251]其中,最小Sortlist 为:
[0252]Sortlist {
[0253]{10.0.1.0/24 ;
[0254]{10.0.1.0/24;
[0255]{10.0.2.0/24; 10.0.3.0/24
[0256]上述例子中,返回的范围码为最小Sortlist的特定网络地址段的掩码,为24。
[0257]上面的例子中,存在与客户端网络地址匹配的Sortlist,下面举一个不存在与客户端网络地址匹配的Sortlist,但存在与递归域名服务器的网络地址匹配的Sortlist的情形。
[0258]网络地址为20.20.20.20的客户端通过网络地址为192.168.1.6的递归域名服务器,请求解析WWW.a.com,当采用本发明实施例提供的方法时,由于不存在客户端的网络地址匹配的Sort I i st,所以将递归域名服务器的网络地址与Sort I i st进行匹配,由于匹配的只有一个Sortlist,所以该Sortlist即为与递归域名服务器的网络地址匹配的最小Sortlist:
[0259]Sortlist {
[0260]{192.168.1.0/24 ;
[0261]{192.168.1.0/24;
[0262]{192.168.2.0/24; 192.168.3.0/24;} ;} ;};
[0263]当Sortlist匹配开关为0FF,客户端收到的结果为:
[0264]www.a.com 192.168.1.1
[0265]www.a.com 192.168.2.2
[0266]www.a.com 192.168.3.3
[0267]www.a.com 192.168.4.4
[0268]www.a.com 10.0.1.1
[0269]www.a.com 10.0.2.2
[0270]www.a.com 10.0.3.3
[0271]www.a.com 10.0.4.4
[0272]其中,第二条记录和第三条记录之间的顺序随机,后五条记录之间的顺序随机,但整体顺序固定。
[0273]当Sortlist匹配开关为ON时,客户端收到的结果为:
[0274]www.a.com 192.168.1.1
[0275]www.a.com 192.168.2.2
[0276]www.a.com 192.168.3.3[0277]其中仅包括根据最小Sortlist确定的网络地址后两条记录之间的顺序随机,整体顺序固定。
[0278]上述例子中,返回的范围码为最小Sortlist的特定网络地址段的掩码,为24。
[0279]基于同一发明构思,本发明实施例中还提供了一种域名服务器,由于该域名服务器解决问题的原理与本发明实施例提供的域名解析的方法相似,因此该域名服务器的实施可以参见域名解析的方法的实施,重复之处不再赘述。
[0280]图3为本发明实施例提供的域名服务器的结构示意图。如图3所示,该域名服务器具体包括:
[0281]网络地址匹配模块301,用于从与递归域名服务器发出的客户端的网络地址匹配的Sortlist中,确定目标Sortlist ;
[0282]目标网络地址确定模块302,用于根据目标Sortlist,确定与递归域名服务器发出的请求解析的域名对应的目标网络地址;
[0283]发送模块303,用于将目标网络地址返回给所述递归域名服务器。
[0284]优选地,网络地址匹配模块301具体用于:
[0285]将与客户端的网络地址匹配的Sortlist中,特定网络地址段最小的Sortlist作为目标Sortlist ;
[0286]其中,特定网络地址段用于匹配客户端的网络地址。
[0287]优选地,网络地址匹配模块301还用于:
[0288]当不存在与递归域名服务器发出的客户端的网络地址匹配的Sortlist时,根据递归域名服务器的网络地址确定目标Sortlist。
[0289]优选地,网络地址匹配模块301具体用于:
[0290]将与递归域名服务器的网络地址匹配的Sortlist中,特定网络地址段最小的Sortlist 作为目标 Sortlist ;
[0291]其中,所述特定网络地址段用于匹配所述递归域名服务器的网络地址。
[0292]域名服务器还包括:
[0293]第一范围码确定模块,用于根据目标Sortlist,确定所述域名解析请求对应的范围码;
[0294]发送模块303还用于:将第一范围码确定模块确定的范围码返回给所述递归域名服务器,以使递归域名服务器根据范围码、客户端的网络地址确定第一网络地址段,并在收到其他对所述请求解析的域名的域名解析请求,且该其他域名解析请求对应的客户端的网络地址落在第一网络地址段中时,直接将目标网络地址置于与该其他域名解析请求对应的域名解析响应中返回给与该其他域名解析请求对应的客户端。
[0295]优选地,目标网络地址包括经目标Sortlist匹配得到的与请求解析的域名对应的网络地址;或者
[0296]目标网络地址包括与请求解析的域名对应的全部网络地址;其中,目标网络地址中,经目标Sortlist匹配得到的与请求解析的域名对应的网络地址排在最前面。
[0297]目标网络地址确定模块还用于:
[0298]当不存在与客户端的网络地址匹配的Sortlist,也不存在与递归域名服务器的网络地址匹配的Sortlist时,确定目标网络地址包括与请求解析的域名对应的全部网络地址;
[0299]域名服务器还包括:第二范围码确定模块,用于当需要排除不匹配的客户端的网络地址时,根据各Sortlist和客户端的网络地址确定范围码,否则设置范围码为无效;
[0300]所述发送模块还用于:将目标网络地址和第二范围码确定模块确定的范围码返回给所述递归域名服务器,以使所述递归域名服务器根据范围码、客户端的网络地址确定第二网络地址段,并在递归域名服务器收到其他对所述请求解析的域名的域名解析请求,且该其他域名解析请求对应的客户端的网络地址落在第二网络地址段中时,直接将目标网络地址置于与该其他域名解析请求对应的域名解析响应中返回给与该其他域名解析请求对应的客户端。
[0301]优选地,根据各Sortlist和客户端的网络地址确定范围码,包括:
[0302]根据各Sortlist将整个网络地址空间分成的多个网络地址段,并将多个网络地址段中客户端的网络地址所属的网络地址段作为目标网络地址段;将客户端的网络地址与目标掩码进行掩码运算,得到临时网络地址段;判断临时网络地址段是否超出所述目标网络地址段的范围,若是,则将目标掩码减去预设的步长值后作为范围码;否则,将目标掩码增加预设的步长值后,返回将客户端的网络地址与目标掩码进行掩码运算的步骤。
[0303]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0304]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0305]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0306]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0307]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0308]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种域名解析的方法,其特征在于,包括: 从与递归域名服务器发出的客户端的网络地址匹配的Sortlist中,确定目标Sortlist ; 根据所述目标Sortlist,确定与所述递归域名服务器发出的请求解析的域名对应的目标网络地址; 将所述目标网络地址返回给所述递归域名服务器。
2.如权利要求1所述的方法,其特征在于,根据所述目标Sortlist,确定与所述递归域名服务器发出的请求解析的域名对应的目标网络地址之前,该方法还包括: 当不存在与所述递归域名服务器发出的客户端的网络地址匹配的Sortlist时,根据所述递归域名服务器的网络地址确定目标Sortlist。
3.如权利要求1或2所述的方法,其特征在于,根据所述目标Sortlist,确定与所述递归域名服务器发出的请求解析的域名对应的目标网络地址之后,该方法还包括: 根据所述目标Sortlist,确定所述域名解析请求对应的范围码,并将所述范围码返回给所述递归域名服务器,以使所述递归域名服务器根据所述范围码、所述客户端的网络地址确定第一网络地址段,并在收到其他对所述请求解析的域名的域名解析请求,且该其他域名解析请求对应的客户端的网络地址落在所述第一网络地址段中时,直接将所述目标网络地址置于与该其他域名解析请求对应的域名解析响应中返回给与该其他域名解析请求对应的客户端。
4.如权利要求1或2所述的方法,其特征在于, 所述目标网络地址包括经 所述目标Sortlist匹配得到的与请求解析的域名对应的网络地址;或者 所述目标网络地址包括与请求解析的域名对应的全部网络地址;其中,目标网络地址中,经所述目标Sortlist匹配得到的与请求解析的域名对应的网络地址排在最前面。
5.如权利要求1所述的方法,其特征在于,该方法还包括: 当不存在与客户端的网络地址匹配的Sortlist,也不存在与递归域名服务器的网络地址匹配的Sortlist时,确定所述目标网络地址包括与请求解析的域名对应的全部网络地址; 若需要排除不匹配的客户端的网络地址,则根据各Sortlist和客户端的网络地址确定范围码,否则设置范围码为无效; 将所述目标网络地址和所述范围码返回给所述递归域名服务器,以使所述递归域名服务器根据所述范围码、所述客户端的网络地址确定第二网络地址段,并在所述递归域名服务器收到其他对所述请求解析的域名的域名解析请求,且该其他域名解析请求对应的客户端的网络地址落在所述第二网络地址段中时,直接将所述目标网络地址置于与该其他域名解析请求对应的域名解析响应中返回给与该其他域名解析请求对应的客户端。
6.如权利要求5所述的方法,其特征在于,所述根据各Sortlist和客户端的网络地址确定范围码,包括: 根据各Sortlist将整个网络地址空间分成的多个网络地址段,并将多个网络地址段中客户端的网络地址所属的网络地址段作为目标网络地址段; 将客户端的网络地址与目标掩码进行掩码运算,得到临时网络地址段;判断临时网络地址段是否超出所述目标网络地址段的范围,若是,则将目标掩码减去预设的步长值后作为范围码;否则,将目标掩码增加预设的步长值后,返回将客户端的网络地址与目标掩码进行掩码运算的步骤。
7.—种域名服务器,其特征在于,包括: 网络地址匹配模块,用于从与递归域名服务器发出的客户端的网络地址匹配的Sortlist 中,确定目标 Sortlist ; 目标网络地址确定模块,用于根据所述目标Sortlist,确定与所述递归域名服务器发出的请求解析的域名对应的目标网络地址; 发送模块,用于将所述目标网络地址返回给所述递归域名服务器。
8.如权利要求7所述的域名服务器,其特征在于,所述域名服务器还包括: 第一范围码确定模块,用于根据所述目标Sortlist,确定所述域名解析请求对应的范围码; 所述发送模块还用于:将所述第一范围码确定模块确定的范围码返回给所述递归域名服务器,以使所述递归域名服务器根据所述范围码、所述客户端的网络地址确定第一网络地址段,并在收到其他对所述请求解析的域名的域名解析请求,且该其他域名解析请求对应的客户端的网络地址落在所述第一网络地址段中时,直接将所述目标网络地址置于与该其他域名解析请求对应的域名解析响应中返回给与该其他域名解析请求对应的客户端。
9.如权利要求7所述的域名服务器,其特征在于,目标网络地址确定模块还用于: 当不存在与客户端的网络地址匹配的Sortlist,也不存在与递归域名服务器的网络地址匹配的Sortlist时,确定所述目标网络地址包括与请求解析的域名对应的全部网络地址; 所述域名服务器还包括:第二 范围码确定模块,用于当需要排除不匹配的客户端的网络地址时,根据各Sortlist和客户端的网络地址确定范围码,否则设置范围码为无效; 所述发送模块还用于:将所述目标网络地址和所述第二范围码确定模块确定的范围码返回给所述递归域名服务器,以使所述递归域名服务器根据所述范围码、所述客户端的网络地址确定第二网络地址段,并在所述递归域名服务器收到其他域名解析请求,且该其他对所述请求解析的域名的域名解析请求对应的客户端的网络地址落在所述第二网络地址段中时,直接将所述目标网络地址置于与该其他域名解析请求对应的域名解析响应中返回给与该其他域名解析请求对应的客户端。
10.如权利要求9所述的域名服务器,其特征在于,所述根据各Sortlist和客户端的网络地址确定范围码,包括: 根据各Sortlist将整个网络地址空间分成的多个网络地址段,并将多个网络地址段中客户端的网络地址所属的网络地址段作为目标网络地址段;将客户端的网络地址与目标掩码进行掩码运算,得到临时网络地址段;判断临时网络地址段是否超出所述目标网络地址段的范围,若是,则将目标掩码减去预设的步长值后作为范围码;否则,将目标掩码增加预设的步长值后,返回将客户端的网络地址与目标掩码进行掩码运算的步骤。
【文档编号】H04L29/12GK103491201SQ201310379181
【公开日】2014年1月1日 申请日期:2013年8月27日 优先权日:2013年8月27日
【发明者】王鑫宇, 李孟, 陈奇, 黄东, 李健松, 宗劼 申请人:北京蓝汛通信技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1