DNS转发服务器的优化选取方法及存储介质与流程

文档序号:24701372发布日期:2021-04-16 12:33阅读:108来源:国知局
DNS转发服务器的优化选取方法及存储介质与流程
dns转发服务器的优化选取方法及存储介质
技术领域
1.本发明涉及互联网域名技术领域,具体地,涉及一种dns转发服务器的优化选取方法。


背景技术:

2.dns递归服务器可以选择使用转发策略,并使用多个不同的转发目的服务器,通常对应不同的运营商网络。出于调度上的优化,可能会给多个转发服务器设置优先级,并在运行过程中优先使用优先级最高的服务器,如果优先级最高的服务器响应超时则选择其他服务器。此时的优先级设置并不一定是基于rtt(往返时延)排序而设置的,可以是综合稳定性、易用性等其他因素得来。
3.不基于rtt排序的选择方式存在一定风险,即优先级最高的转发服务器可能由于种种原因,出现无法返回其dns响应的情况。这种情况下如果总是等待其超时,然后再尝试其它转发服务器,会导致递归性能大幅下降。


技术实现要素:

4.针对现有技术的缺陷,本发明的目的是,提供一种dns转发服务器的优化选取方法,通过对转发服务器的响应表现来判断其是否健康可用,拉黑异常的服务器,保留健康的服务器,进而提高服务器处理请求的效率。
5.本发明采用的技术方案如下:
6.一种dns转发服务器的优化选取方法,包括:
7.为转发服务器列表中的每个服务器设置监控周期,并将所述监控周期划分为若干小的时间窗口;
8.根据在该监控周期内的若干时间窗口对转发的用户请求得到的响应结果判断该服务器是否异常;
9.将异常的服务器从列表中拉黑。
10.进一步地,设置每个转发服务器的监控周期相互独立,计算和判断在一个监控周期内的每一个时间窗口是否为超时的响应结果,并按照如下三个条件进行判断:
11.总的超时时间是否大于预设的阈值;超时的时间窗口个数是否大于预设的阈值;最后超时的时间窗口序号是否晚于设定的时间窗口序号,若均大于预设的阈值且晚于设定的时间窗口序号,则判定为异常服务器。
12.进一步地,当某转发服务器被使用并首次得到超时结果时,所述监控周期的起点被设置为该时间点,并以此将该监控周期等分成若干个时间窗口。
13.进一步地,在检测是否为超时的响应结果时,若不完全满足前述三个条件,则设置所述监控周期一个新的起点,该起点为第一个出现超时的时间窗口的起点,并重新更新时间窗口数量及时间跨度计数。
14.进一步地,在一个监控周期内,若收到用户的多个请求时,如其中一个请求得到应
答,未发生超时响应,则判定该服务器正常,该监控周期结束,直至下一个发生超时的时间点再重新开始计算。
15.进一步地,在一个监控周期内,若收到用户的多个请求时,如多个请求均未发生超时响应,则判定该服务器正常,该监控周期结束,直至下一个发生超时的时间点再重新开始计算。
16.进一步地,当收到用户的请求时,按照优先级顺序先后分配给对应的服务器,当优先级高的服务器响应超时,则转给次高的服务器查询,同时对超时的服务器开始计时。
17.进一步地,定时对拉黑的服务器进行探测,如在该拉黑的服务器能够正常响应,则解除拉黑并恢复至原转发服务器列表中。
18.此外,如连续较多次对拉黑的服务器进行探测,均为超时响应,则对拉黑的服务器进行移除。
19.本发明还提供了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据前述的方法。
20.与现有技术相比,本发明提供的一种dns转发服务器的优化选取方法,达到了如下技术效果:
21.1、通过对转发服务器设置监控周期,并将一个检测周期细分为若干检测时间窗口,通过响应表现来评估某转发服务器是否健康可用,并在认定某个转发服务器异常时,会在处理正常的转发请求时忽略(拉黑)转发列表中的这个服务器,进而一定程度上减少了等待异常服务器响应的时间,提升了dns递归服务器处理请求的性能。
22.2、对异常转发服务器的判断采用多个判断条件,排除网络拥堵等异常状况对服务器异常判断的干扰,减少误判率。
23.3、对出现异常可能的服务器进行持续跟踪,一个监控周期内没有拉黑则滑动监控周期的起点,直到收到未超时的响应。
24.4、对于已经拉黑的服务器定时进行探测,及时对恢复正常的服务器解除拉黑。
附图说明
25.图1是本发明实施例中的dns转发服务器的优化选取方法的原理图。
26.图2是本发明实施例中的监控周期与时间窗口的示意图。
具体实施方式
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例为实施本发明的较佳实施方式,所述描述是以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围应当以权利要求所界定者为准,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.本发明的目的是提供一种dns转发服务器的优化选取方法,通过为转发服务器列表中的每个服务器设置健康状态,并在运行过程中通过响应表现来评估其是否足够健康可用,在认定某个转发服务器异常时,会在处理正常的转发请求时忽略(拉黑)转发列表中的这个服务器,兼顾链路上的优选和转发出现异常时的应对,提高dns递归请求处理的效率。
29.参照图1所示,该方法具体包括如下过程:
30.一、规定一个监控时间的范围,设为监控周期为t,每个服务器的t相互独立,以一个监控周期t作为健康判断的统计标准。
31.二、在一个监控周期t内,按照自定义策略将其划分为多个小的时间窗口t,作为统计的最小颗粒。
32.三、当收到一个请求时,先给优先级最高的服务器(假设没有被拉黑),如果该服务器响应超时,则转给次高的服务器,同时对超时服务器开始计时,也就是说,当转发服务器被使用并第一次得到超时结果时,第一个周期t的起点被设置为这个时间点,t内部可依次划分出整数个t的时间。
33.四、判断此次转发请求的结果,如果是超时,需要更新总的代价消耗。每次的代价是等待超时所消耗的时间,这个代价会不断累计,形成总的超时时间。相反,如果是正常得到应答,则将所有统计计数清零,并重新从步骤3开始统计。
34.其中,在一个统计周期t内,可能有多个请求到来也可能只有一个请求到来,但只要有一个请求转发给对应服务器并没有响应超时,则认为该服务器没有问题,统计周期结束,直到下一个发生超时的时间点到来再从新开始统计。当然,当对服务器的质量要求较为严格时,也可设为收到多个连续未超时响应再认为该服务器没有问题。当收到用户请求时,进行转发并根据响应结果更新对应时间窗口t的参数,当监控周期结束时,进行计算和判断。
35.五、在每个时间窗口t中,如果出现过超时,除了记录超时的时间,还会更新另一个计数,也就是统计出现过转发超时的时间窗口数量,比如有三个时间窗口t内均出现了超时,则记为3次。
36.六、此外,还统计到超时异常的时间跨度是另一个计数,它对应当前出现超时的时间窗口t的序号(序号从1开始累计),比如最后超时的时间段可以是跨度到t1,也可以是跨度到t4等等。
37.七、每个t时间内都有其独立的相关计数,包括该时间段内超时的次数和超时的代价。
38.八、如果在一个监控周期t结束后,总的代价(总的超时时间)超过设置阈值,并且出现过超时的t数量和规则6中描述的时间跨度都大于预设的阈值,则判定此转发服务器异常,可将其暂时从转发服务器列表中拉黑。
39.其中,对异常服务器的判断,本发明设置了三个判断条件:
40.条件一、判断代价消耗,也就是等待超时的总时间。
41.条件二、判断一个t中多少个t存在超时。
42.条件三、判断时间跨度,也就是最后一个有超时的t的序号,是否晚于预设的序号值。
43.前述第二、三点的作用主要是为了排除网络等其他问题的影响,只有在t内出现超时的位置相对平均,而不是非常集中,并且有一定量的超时,才会被认为是转发服务器出现异常,如此减少误判率。
44.九、若不满足全部要求前述的三个条件,则会被认定为可能异常,并进行持续跟踪,继续如下过程:滑动t的起点,将其滑动在在之前第一个t的起点后面的第一个存在超时
的t的起点,同时,更新包含超时的t数量及时间跨度统计等计数,并监控统计转发服务器的状态。
45.十、如果在前述的规则8中,服务器被拉黑,那么会按照自定义的规则在一定时间之后,对该转发服务器进行探测,若探测请求得到响应,表明服务器正常,可将此转发服务器解除拉黑。如果仍然失败,则继续保持拉黑状态,并在相同的探测周期时间后再次探测。此外,还可以设置在连续多次探测,一直失败,则认定服务器出现故障,可以移除。
46.十一、将某个转发服务器拉黑后,会使用列表中优先级紧随其后的那个服务器去请求,从而得到次优结果。
47.此外,替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd

rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
48.为了方便说明,通过一具体的实施例来对本发明的实施过程做具体详述。
49.参照图2所示,以某一时刻,dns递归服务器收到请求,向最高优先级的服务器a进行转发,以服务器a的响应情况检测为例来说明。
50.1、假如服务器a响应超时,dns递归服务器继续根据优先级选择次高优先级的服务器b进行转发,同时针对服务器a的健康检测开始,即开始计时,直到计时时间等于t或是收到正常应答,进行后续判读与处理。将t等分为n段,这里可取n为5,t可以取10s,则t分为t1、t2
……
、t5,ti为对应时间窗口结束的时间点,即t1为第一个时间窗口末2s,t2为4s,t5为10s。
51.2、在开始计时后,dns递归服务器仍会收到请求,并首先向最高优先级的服务器a进行转发。假设a再次超时,并且此时为计时开始到t1之间的时间窗口内,则记录三个信息:一是超时代价,就是这次超时让dns递归服务器等待a响应的时间,每个时间窗口记录当前时间窗口内超时代价的总和(每个时间窗口可能出现多次超时);二是超时时间窗口,就是记t1存在超时;三是最后存在超时的时间窗口,此时为t1。
52.3、如果在计时未到达t且dns递归服务器向服务器a转发并收到正常应答,则结束针对服务器a的健康检测,直到下一次超时再重新开始。
53.4、如果在t1

t2、t2

t3、t3

t4、t4

t5每个时间窗口内dns递归服务器都收到1个请求,每次服务器a均发生超时,如图2中
“△”
所示为超时的时间窗口,则计时时间到达t,进行统计与判断。(1)超时代价:为每个时间窗口超时代价的总和。(2)超时时间窗口个数:每个时间窗口都有超时,也即个数为5。(3)最后超时时间窗口:t5。此时通过设置的阈值对这三
个参数进行判断,如果满足条件,比如设定“拉黑”的判断条件是超时代价大于1s,超时时间窗口大于3个,最后超时时间窗口晚于t3,则进行拉黑。如果不满足条件,则滑动健康检测窗口,即令t1为时间窗口的左端,因为开始计时后t1

t2内出现第一个超时(需要滑动窗口,不算t1前的超时),时间窗口的右端为t5后的一个时间点,同时现在t1’=t2、t2’=t3、t3’=t4、t4’=t5,新增一个t5’。此时t1
’‑
t4’都有之前的计数,此时只需要监控最后一个时间窗口内服务器a的超时情况即可,在计时到达t后再次进行判断。如果t1

t2之间没有超时发生,则滑动到图中t2点(也就是t1’)为起点,也就是新发生的第一个存在超时的时间窗口的起点(不算t1)。
54.5、针对已经拉黑的服务器,不再进行转发并持续进行探测,若探测返回正常响应,则取消拉黑。
55.上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1