域名解析方法及装置与流程

文档序号:11234888阅读:476来源:国知局
域名解析方法及装置与流程

本申请涉及网络通信技术领域,尤其涉及一种域名解析方法及装置。



背景技术:

在网络通信领域,域名系统(domainnamesystem,dns)是负责提供域名和ip地址之间映射的分布式数据库,是当前全球最大最复杂的分布式层次数据库系统。域名解析(dns解析)根据dns系统中提供的域名与ip地址之间的映射关系,查找用户要访问的任一域名对应的ip地址的过程,从而用户不需记住能够被机器直接读取的ip数串,仅根据更容易记忆的域名即可方便的访问互联网。

参照图1所示的一种dns系统架构,当用户利用客户端110(客户端110除了图1所示的个人电脑,还可以是手机、平板电脑等终端)访问“www.csdn.net”这一域名对应的网页时,客户端110可以作为dns客户端向dns服务器120发起dns解析请求,dns服务器120在接收到该dns解析请求后,根据自身存储的映射关系,查找到域名“www.csdn.net”对应的ip地址为“117.79.93.222”,并将查找到的该ip地址以dns响应的形式返回至客户端110,完成dns解析过程,从而客户端110根据“117.79.93.222”这一ip地址对应的网页服务器进行通信,从而可以获取并向用户展示“www.csdn.net”这一域名对应的网页。

然而,在上述dns解析过程中,dns系统面临着非常严重的安全威胁。首先,dns服务器中极有可能存在漏洞和后门,很容易被人为破坏和攻击,篡改其中存储的域名和ip地址之间的映射关系,使其对dns解析请求返回错误甚至有害的响应结果,进而影响用户的网络安全;其次,客户端等设备与dns服务器之间传输链路的安全机制较弱,部分dns解析请求或dns响应等数据能够被捕获和篡改,进而使得返回的响应结果也是错误甚至有害的。现有针对dns系统安全威胁的防御办法通常为增加dns防火墙、入侵检测系统和漏洞修复策略等,但这些方法都是对已知的安全威胁进行被动的防御,对未知的攻击或者系统漏洞与后门显得无能为力。



技术实现要素:

本申请实施例提供了一种域名解析方法及装置,以解决现有dns系统安全性低,无法应对未知安全威胁的问题。

第一方面,本申请实施例提供了一种域名解析方法,包括:

获取域名解析请求,按照预设分发策略确定一个或多个域名解析目标服务器,并将所述域名解析请求分发至所述域名解析目标服务器;

接收每个域名解析目标服务器返回的域名解析响应;

根据预设裁决策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应。

可选的,将所述域名解析请求分发至所述域名解析目标服务器,包括:

向同一域名解析目标服务器多次发送所述域名解析请求,以使同一域名解析目标服务器针对同一域名解析请求进行多次解析,得到多个域名解析响应;

所述接收每个域名解析目标服务器返回的域名解析响应,包括:

接收同一域名解析目标服务器返回的多个域名解析响应。

可选的,按照预设分发策略确定一个或多个域名解析目标服务器,包括以下至少一项:

按照动态随机策略选择一个或多个域名解析服务器,作为所述域名解析目标服务器;

选择安全性最高的一个或多个域名解析服务器,作为所述域名解析目标服务器;

按照轮询选择策略选择一个或多个域名解析服务器,作为所述域名解析目标服务器。

可选的,根据预设裁决策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应,包括以下至少一项:

按照动态随机策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应;

按照轮询选择策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应;

按照多数表决选择策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应;

以及,按照权重占优选择策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应。

可选的,所述方法还包括:

从所述域名解析响应中提取相应的域名解析服务器的第一地址信息;

按照预设分发策略确定一个或多个域名解析目标服务器,包括:

按照预设分发策略,从所述第一地址信息对应的域名解析服务器,和/或,预设的第二地址信息对应的域名解析服务器中,选择所述域名解析目标服务器。

第二方面,本申请实施例还提供了一种域名解析装置,包括:

分发模块,用于获取域名解析请求,按照预设分发策略确定一个或多个域名解析目标服务器,并将所述域名解析请求分发至所述域名解析目标服务器;

裁决模块,用于接收每个域名解析目标服务器返回的域名解析响应,并根据预设裁决策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应。

可选的,所述分发模块具体被配置为:

在实现将所述域名解析请求分发至所述域名解析目标服务器时,向同一域名解析目标服务器多次发送所述域名解析请求,以使同一域名解析目标服务器针对同一域名解析请求进行多次解析,得到多个域名解析响应;

相应的,所述裁决模块具体被配置为:

在实现接收每个域名解析目标服务器返回的域名解析响应时,接收同一域名解析目标服务器返回的多个域名解析响应。

可选的,所述分发模块具体被配置为,通过以下至少一种方式实现按照预设分发策略确定一个或多个域名解析目标服务器:

按照动态随机策略选择一个或多个域名解析服务器,作为所述域名解析目标服务器;

选择安全性最高的一个或多个域名解析服务器,作为所述域名解析目标服务器;

按照轮询选择策略选择一个或多个域名解析服务器,作为所述域名解析目标服务器。

可选的,所述裁决模块具体被配置为,通过以下至少一种方式实现根据预设裁决策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应:

按照动态随机策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应;

按照轮询选择策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应;

按照多数表决选择策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应;

以及,按照权重占优选择策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应。

可选的,所述装置还包括:

存储模块,用于从所述域名解析响应中提取并保存相应的域名解析服务器的第一地址信息,和/或,保存预设域名解析服务器对应的第二地址信息;

相应的,所述分发模块具体被配置为:

按照预设分发策略,从所述第一地址信息对应的域名解析服务器,和/或,所述第二地址信息对应的预设域名解析服务器中,选择所述域名解析目标服务器。

采用本申请实施例,通过从多个域名解析服务器中选择一个或多个,作为域名解析目标服务器,将同一域名解析请求分别分发至每个域名解析目标服务器,通过这些域名解析目标服务器对同一待解析域名进行解析,得到多个域名解析响应,在从这多个域名解析响应中选择一个,作为目标响应。相对于现有技术中长期且固定采用一个域名解析服务器进行域名解析的情况,本申请实施例可以避免某一域名解析服务器出现安全问题时造成大量域名解析错误的情况,提高域名解析结果的正确率,提高访问安全性。

附图说明

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

图1为现有域名解析系统的结构及通信过程示意图;

图2为本申请实施例提供的一种域名解析方法的流程图;

图3为本申请实施例提供的域名解析方法的信号流图;

图4为本申请实施例提供的另一种域名解析方法的流程图;

图5为本申请实施例提供的一种域名解析装置的结构示意图;

图6为本申请实施例提供的域名解析装置所在系统的结构示意图;

图7为本申请实施例提供的另一种域名解析装置的结构示意图。

具体实施方式

下面结合附图对本申请实施例提供的域名解析方法及装置进行详细阐述。

图2为本申请实施例提供的一种域名解析方法的流程图,该方法包括如下步骤:

s201,获取域名解析请求,按照预设分发策略确定一个或多个域名解析目标服务器,并将所述域名解析请求分发至所述域名解析目标服务器;

s202,接收每个域名解析目标服务器返回的域名解析响应;

s203,根据预设裁决策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应。

假设待解析的域名为a,依照本申请实施例中,可以依照预设分发策略选择出一个或多个域名解析目标服务器,并将域名a对应的域名解析请求发送到所选出的这些域名解析目标服务器中。对于仅选择出一个域名解析目标服务器的情况,每次选择出的域名解析目标服务器不会完全相同,即使某个域名解析服务器存在安全问题(如域名与ip地址映射关系被篡改,或与客户端等设备之间的传输链路的安全机制较弱),因选中该域名解析服务器而得到错误的域名解析响应(错误的ip地址)的次数也是很有限的,相对于现有技术中长期且固定采用一个域名解析服务器进行域名解析的情况,也可以很大程度上提高域名解析结果的正确率,提高访问安全性。

对于依照预设分发策略选出多个域名解析目标服务器的情况,包含域名a的域名解析请求被分发至这多个域名解析目标服务器si(i=1,2,……),每个域名解析目标服务器都会对域名a进行解析,并生成域名解析响应ri(每个域名解析响应ri中均包含了相应域名解析目标服务器si解析出的该域名a对应的ip地址pi);然后按照预设裁决策略,对这多个域名解析目标服务器产生的多个域名解析响应进行裁决,从中选择一个正确性最高的响应,假设选出了r2,作为目标响应,则该目标响应r2中包含的ip地址p2即为本次解析得到的域名a对应的目标ip地址,要访问域名a的终端最终访问的是目标ip地址p2对应的网站服务器。这样,即使某个域名解析目标服务器因自身安全问题返回了错误的域名解析响应,也会在域名解析响应裁决阶段被剔除,不会被选为目标响应,从而提高域名解析结果的正确率,提高访问安全性。

实际应用中,可以在网络中部署多个冗余的域名解析服务器s1~sn,同一域名和ip地址之间的映射关系可以同时存储在集合c的每个域名解析服务器中;同时,可以将实现本实施例所述域名解析方法的程序/指令,配置在有域名解析需求的设备(以下称为域名解析设备)中,如:电脑、手机等终端,或,域名解析过程中所使用的各个域名解析服务器等。

图3通过信号流图的方式展示了本申请实施例提供的域名解析方法实现过程中相关网络设备之间的通信情况。如图3所示,网络中部署有n个域名解析服务器s1、s2、……、sn,以及各个网站的服务器(图3中仅示出了域名为a1、ip地址为ip1的网站服务器1,和域名为a2、ip地址为ip2的网址服务器2);域名解析设备获取到域名a1的解析请求时,通过执行实现本实施例的程序/指令,根据预设分发策略从n个域名解析服务器中挑选域名解析目标服务器,并最终选中了s1和s2两个(步骤1),域名解析设备将域名a1的解析请求分别发送至s1和s2(步骤2-1及2-2),使得s1和s2分别对域名a1进行解析,分别生成域名解析响应r1和r2(步骤3-1和3-2),并将r1和r2返回至域名解析设备中(步骤4-1和4-2);域名解析设备根据预设裁决策略对接收到的域名解析响应进行裁决,最终从r1和r2中选定r1为目标响应(步骤5),从而r1中包含的由s1解析出的ip地址ip1作为目标ip地址,如果该域名解析设备为要访问域名a1的终端,则其可以直接根据ip1与相应的网站服务器1进行双向通信(步骤6),如下载网站服务器1存储的网页数据、向网站服务器1发送网络请求等,如果该域名解析设备为域名解析服务器,则将该目标ip地址返回至相应的终端,使得该终端可以访问网站服务器1。

从上述技术方案可以看出,本实施例提供的域名解析方法,通过从多个域名解析服务器中选择一个或多个,作为域名解析目标服务器,将同一域名解析请求分别分发至每个域名解析目标服务器,通过这些域名解析目标服务器对同一待解析域名进行解析,得到多个域名解析响应,在从这多个域名解析响应中选择一个,作为目标响应。相对于现有技术中长期且固定采用一个域名解析服务器进行域名解析的情况,本申请实施例可以避免某一域名解析服务器出现安全问题(包括已知的安全问题和位置的安全问题)时造成大量域名解析错误的情况,提高域名解析结果的正确率,提高访问安全性。

在本申请一个可行的实施例中,上述步骤s201所述的预设分发策略包括但不限于以下几种:动态随机策略、安全性最高策略、轮询选择策略和预先设定策略等。

假设网络中部署的n个域名解析服务器记为集合c={s1,s2,…,sn},则上述步骤s201即相当于从集合c中选出一个子集合c’={s1,s2,…,sm},其中1≤m≤n,并将域名解析请求发送至该子集合c’中的每个域名解析服务器。

其中,依照动态随机策略,在每次获取到域名解析请求时,都可以利用预设的动态随机算法从集合c中动态随机选择出一个子集合c’。例如,为c中的每个域名解析服务器分配一个数值区间[0,20)、[20,40)等,随机生成m个数值,将各个数值所在数值区间对应的域名解析服务器作为域名解析目标服务器,得到子集合c’。

依照安全性最高策略,在每次获取到域名解析请求时,都从集合c中选择安全性最高的m个域名解析服务器,即得到子集合c’。其中,各个域名解析服务器的安全性可以依据历史数据、各个服务器的性能、负载状态等信息确定。

依照轮询选择策略,在每次获取到域名解析请求时,都从集合c中按照预设的顺序选择m个域名解析服务器,且将上次选择的最后一个域名解析服务器的下一个,作为本次选择的第一个域名解析服务器。例如,上一次选择了s1和s2,则本次从s3开始,可以选择s3和s4,或者s3、s4和s5等(即每次选择的服务器个数m可以不同)。

依据预先设定策略,如果预先对某些域名,或某种类型的域名设定了相应的专用域名解析服务器,则可以将所述专用域名解析服务器记入子集合c’。

本申请实施例中,对于任一域名解析请求,可以同时根据上述预设分发策略中的两种或两种以上来确定域名解析目标服务器。例如,在依据预先设定策略选择了专用域名解析服务器后,还可以基于动态随机策略再选择一个或几个域名解析服务器,也作为域名解析目标服务器,记入子集合c’。

可见,对于除执行本实施例的设备之外的其他任一设备,通过上述预设分发策略选出的域名解析目标服务器都是不可预知的,即使其中某个域名解析服务器出现安全性问题,其被选为域名解析目标服务器的概率也是很小的,不会如现有技术一样,一旦域名解析服务器出现问题后,在问题解决之前会一直出现域名解析错误。因此,本申请实施例可以提高域名解析结果的正确率,提高访问安全性,也增加了通过攻击或篡改域名解析服务器数据达到影响用户访问结果这一目的的难度。

在本申请一个可行的实施例中,上述步骤s203所述的预设裁决策略包括但不限于以下几种:动态随机策略、轮询选择策略、多数表决选择策略和权重占优选择策略等。

其中,依照多数表决选择策略,对接收到的各个域名解析响应进行比较,并统计每种域名解析响应的重复个数,选择重复个数最多的域名解析响应作为目标响应。例如,在接收到的m个域名解析响应r1~rm中,x个域名解析响应中包含的ip地址都为ip1,y个域名解析响应中包含的ip地址都为ip2,且x>y,x+y=m,则选择所述x个域名解析响应中的任意一个,作为目标响应,也即重复个数更多的ip1作为目标ip地址。

依照权重占有策略,比较返回各个域名解析响应的域名解析目标服务器的权重,选择权重最高的域名解析目标服务器返回的域名解析响应作为目标响应。其中,各个域名解析目标服务器的权重可以是预先根据服务器的负载能力、安全等级等设定。

参照图4,在本申请另一实施例中,上述域名解析方法在步骤s203之后,还可以包括:

s204、从所述域名解析响应中提取相应的域名解析服务器的第一地址信息。

基于步骤s204,在下次获取到域名解析请求并执行步骤s201时,可以将提取出的第一地址信息对应的域名解析服务器作为上述集合c中记录的服务器。另外,集合c中也可以包含预先存储在域名解析设备中的第二地址信息对应的域名解析服务器,在执行步骤s201时,直接从相应的存储单元中读取即可。

另外,可以重点提取目标响应对应的域名解析服务器的地址信息,对该域名解析服务器的权重、安全性等级等信息进行更新。例如,目标响应对应的域名解析服务器可以被认为是域名解析正确率更高的服务器,从而可以适当提高其权重值和安全性等级。

在本申请其他可行的实施例中,上述步骤s201中所述的将所述域名解析请求分发至所述域名解析目标服务器,具体可以包括:

向同一域名解析目标服务器多次发送所述域名解析请求,以使同一域名解析目标服务器针对同一域名解析请求进行多次解析,得到多个域名解析响应。

例如,对于选择确定的域名解析目标服务器s1,可以先后三次向其发送同一个域名解析请求,从而使得s1对该域名解析请求中的域名进行三次解析,并先后三次向域名解析设备返回域名解析响应;这样,即使某一次返回域名解析响应的传输链路中,或者某一次发送域名解析请求的传输链路中被篡改数据,导致域名解析设备得到了一个错误的域名解析响应,也会在步骤s203中被裁决剔除,被作为目标响应的概率很小,从而进一步提高域名解析结果的正确率,提高访问安全性。

基于上述域名解析方法,本申请实施例还提供了一种域名解析装置;该装置可以被设置于手机、电脑等终端,或任意域名解析服务器中,或者作为独立的网络装置与上述终端及域名解析服务器进行通信,以执行上述任意实施例提供的域名解析方法。

参见图5所述的该装置的结构框图,以及图6所示的包含该装置在网络架构示意图,该域名解析装置可以包括:

分发模块501,用于获取域名解析请求,按照预设分发策略确定一个或多个域名解析目标服务器,并将所述域名解析请求分发至所述域名解析目标服务器;

裁决模块502,用于接收每个域名解析目标服务器返回的域名解析响应,并根据预设裁决策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应。

从上述技术方案可以看出,本实施例提供的域名解析方法,通过从多个备选的域名解析服务器s1~sn中选择一个或多个,作为域名解析目标服务器,将同一域名解析请求分别分发至每个域名解析目标服务器,通过这些域名解析目标服务器对同一待解析域名进行解析,得到多个域名解析响应,在从这多个域名解析响应中选择一个,作为目标响应。相对于现有技术中长期且固定采用一个域名解析服务器进行域名解析的情况,本申请实施例可以避免某一域名解析服务器出现安全问题(包括已知的安全问题和位置的安全问题)时造成大量域名解析错误的情况,提高域名解析结果的正确率,提高访问安全性。

在本申请一个可行的实施例中,所述分发模块501具体被配置为,通过以下至少一种方式实现按照预设分发策略确定一个或多个域名解析目标服务器:

按照动态随机策略选择一个或多个域名解析服务器,作为所述域名解析目标服务器;

选择安全性最高的一个或多个域名解析服务器,作为所述域名解析目标服务器;

按照轮询选择策略选择一个或多个域名解析服务器,作为所述域名解析目标服务器。

在本申请一个可行的实施例中,所述裁决模块502具体被配置为,通过以下至少一种方式实现根据预设裁决策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应:

按照动态随机策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应;

按照轮询选择策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应;

按照多数表决选择策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应;

以及,按照权重占优选择策略从接收到的所有域名解析响应中选择一个,作为所述域名解析请求对应的目标响应。

可见,应用本申请实施例,对于除上述装置之外的其他任一设备,通过上述预设分发策略选出的域名解析目标服务器都是不可预知的,最终裁决所选定的目标响应也是不可预知的,即使其中某个域名解析服务器出现安全性问题,其被选为域名解析目标服务器的概率也是很小的,即使被选为域名解析目标服务器,其返回的域名解析响应被作为目标响应也是很小的,故不会如现有技术一样,一旦域名解析服务器出现问题后,在问题解决之前会一直出现域名解析错误。因此,本申请实施例可以提高域名解析结果的正确率,提高访问安全性,也增加了通过攻击或篡改域名解析服务器数据达到影响用户访问结果这一目的的难度。

如图7所示,在本申请一个可行的实施例中,上述装置还可以包括:

存储模块503,用于从所述域名解析响应中提取并保存相应的域名解析服务器的第一地址信息,和/或,保存预设域名解析服务器对应的第二地址信息;

相应的,分发模块501具体被配置为:按照预设分发策略,从所述第一地址信息对应的域名解析服务器,和/或,所述第二地址信息对应的预设域名解析服务器中,选择所述域名解析目标服务器。

在本申请一个可行的实施例中,上述分发模块501具体被配置为:在实现将所述域名解析请求分发至所述域名解析目标服务器时,向同一域名解析目标服务器多次发送所述域名解析请求,以使同一域名解析目标服务器针对同一域名解析请求进行多次解析,得到多个域名解析响应;

相应的,裁决模块502具体被配置为:在实现接收每个域名解析目标服务器返回的域名解析响应时,接收同一域名解析目标服务器返回的多个域名解析响应。

采用本实施例,通过向同一域名解析目标服务器多次发送同一域名解析请求,使其多次执行解析操作,并多次返回域名解析响应,降低某一次返回的域名解析响应被选为目标响应的概率,特别能降低对于在传输链路中发送的数据被篡改造成的解析错误,对本次域名解析结果的影响,进一步提高访问安全性。

具体实现中,本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的呼叫方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

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