本申请涉及网络通信技术领域,特别涉及一种域名解析方法及装置。
背景技术:
在网络通信领域,域名系统(DNS)是一个负责提供域名与IP地址映射关系的分布式数据库,是目前全球最大、最复杂的分布式层次化数据库系统。域名解析(DNS解析)就是根据DNS系统提供的域名与IP地址的映射关系,找到用户想要访问的任意域名对应的IP地址的过程。这样,用户就不需要去记住机器能直接读取的IP数字串,而只需根据比较容易记住的域名就可以方便地访问互联网。
参见图1所示的DNS系统架构,当用户使用客户端110(客户端110除了图1所示的个人电脑外,还可以是手机、平板电脑等终端)时,客户端110可以作为DNS客户端向DNS服务器120发起DNS解析请求。DNS服务器120接收到DNS解析请求后,根据自身存储的映射关系查找到域名“ ”对应的IP地址“117.79.93.222”,并将查找到的IP地址以DNS响应的形式返回给客户端110,完成DNS解析过程。由此,客户端110与IP地址“117.79.93.222”对应的网页服务器进行通信,从而获取到域名“ ”对应的网页并展示给用户。
但是在上述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,集合C中的各个域名解析服务器中可以同时保存相同域名与IP地址的映射关系;同时,可以将实现本实施例所述的域名解析方法的程序/指令配置在有域名解析需求的设备(以下称为域名解析设备)中,比如:电脑、手机等终端,或者域名解析过程中用到的各种域名解析服务器。
图3以信号流图的形式示出了本申请实施例提供的域名解析方法实施过程中相关网络设备之间的通信情况,如图3所示,网络中部署了n个域名解析服务器s1,s2,…,sn,以及各个网站的服务器(图3中仅示出了域名为a1、IP地址为ip1的网站服务器1,域名为a2、IP地址为ip2的网站服务器2); 当域名解析设备获得域名a1的解析请求后,通过执行实现本实施例的程序/指令,按照预设的分配策略从n台域名解析服务器中选择域名解析目标服务器,最终选定s1和s2(步骤1),域名解析设备分别向s1和s2发送域名a1的解析请求(步骤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专门配置为:从域名分辨率服务器从域名分辨率服务器中选择与第一个地址信息和/或根据预设分发策略相对应与第二个地址信息相对应的预设域名分辨率服务器。
In a of the , the 501 is to: when the name to the name , send the name to the same name times, so that the same name on the same name and name ;
因此,决策模块502专门配置为:接收由同一域名分辨率目标服务器返回的多个域名分辨率响应。
By this , the same name is sent to the same name times, so that it times and name times, the that a name once is as the . In , it can the of by with data sent in the link on the of this name , .
在特定的实现中,本应用程序的实施例还提供了计算机存储介质,其中计算机存储介质可以存储一个程序,并且在执行程序时,程序可能包括本发明提供的调用方法的每个实施方案中的某些或全部步骤,可以是本发明的磁盘,可以是磁盘,一个读取的存储记忆(英语):
那些在艺术中熟练的人可以清楚地了解,本发明的实施方案可以通过软件加上必要的一般硬件平台来实施。本质上,本发明的实施方案是本质上,或者是对先验艺术的构造的零件,可以在软件产品中进行概述,例如,可以在软件产品中进行宣布,例如,诸如计算机产品,诸如套件,概述,诸如存储媒体,诸如套件,范围计算机设备(可以是个人计算机,服务器或网络设备等),以执行本发明的每个实施例中描述的方法或实施例的某些部分。
在此规范中,对于设备实施例,可以互相引用各种实施方案之间的相同或相似的部分,因为它基本上与方法实施例相似,因此描述相对简单,并且可以将相关的部分转介到方法实施例中的描述。
本发明的上述实施例并不限制本发明的保护范围。
技术特点:
技术摘要
本应用程序的实施例披露了一个域名解决方法和设备,该方法从多个域名分辨率分辨率分辨率分辨率分辨率分辨率为域名分辨率目标目标服务器,将同一域名请求分配到每个域名分辨率分辨率分辨率分辨率分辨率分析目标服务器,从而通过这些域名分辨出一个域名,从这些域名分辨出多个域名,将多个域名响应响应与以前的艺术中的情况相比,将域名分辨率服务器用于域名分辨率很长一段时间,并且固定,本应用程序的实施例可以避免在域名分辨率解决方案时造成大量域名分辨率错误的情况。
技术研发人员:Lei; 李·朱菲(Li ); 马hi隆; 东江; 陈周库; Liu
受保护的技术用户:国家数字开关系统工程技术研究中心
技术开发日:2017.05.11
技术发布日期:2017.09.08
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。