一种DNS解析方法及装置与流程

文档序号:17817476发布日期:2019-06-05 21:56阅读:156来源:国知局
一种DNS解析方法及装置与流程
本说明书实施例涉及网络通信
技术领域
,尤其涉及一种dns解析方法及装置。
背景技术
:当用户设备通过不同运营商的链路访问网络时,需要由对应运营商的dns服务器进行域名解析,例如,电信用户需通过电信链路,向电信dns服务器发送域名解析请求报文,并根据返回的应答报文访问网络。由于中国南北方运营商分布不均,为了避免跨运营商访问的拥堵情况,现有技术中通常会由负载均衡设备接收各用户设备的dns请求报文,并分配至不同链路的dns服务器进行解析,再将接收到的dns服务器响应的应答报文转发至用户设备。但是,当负载均衡设备接收的dns请求报文,超出了各服务器所能处理的数量,服务器响应应答报文将会产生延迟,甚至无法正常响应,影响用户上网体验。技术实现要素:有鉴于此,本说明书实施例提供一种dns解析方法及装置,应用于负载均衡设备,技术方案如下:一种dns解析方法,其特征在于,应用于负载均衡设备,所述方法包括:接收dns请求报文,获得该报文请求解析的目标域名;确定预先保存的dns解析表项中,所述目标域名对应的解析请求次数是否达到预设解析频率阈值;若达到阈值,则根据dns解析表项中记录的域名解析结果,向发送所述dns请求报文的客户端返回dns应答报文;若未达到阈值,则获得各备选链路的带宽利用率,并根据所述带宽利用率确定各备选链路的优先级排序;以及,根据所述优先级排序,确定用于本次dns解析的目标链路;其中,带宽利用率小的链路优先级高;将所接收的dns请求报文通过所述目标链路发送至dns服务器,并接收dns服务器返回的dns应答报文;将dns服务器返回的dns应答报文通过所述目标链路发送至发送所述dns请求报文的客户端,并根据该dns请求报文与dns应答报文更新所述dns解析表项,以便后续根据更新后的dns解析表项进行dns解析。一种dns解析装置,其特征在于,应用于负载均衡设备,所述装置包括:报文接收模块,用于接收dns请求报文,获得该报文请求解析的目标域名;表项查询模块,用于确定预先保存的dns解析表项中,所述目标域名对应的解析请求次数是否达到预设解析频率阈值;链路选择模块,用于在未达到阈值的情况下,获得各备选链路的带宽利用率,并根据所述带宽利用率确定各备选链路的优先级排序;以及,根据所述优先级排序,确定用于本次dns解析的目标链路;其中,带宽利用率小的链路优先级高;应答获得模块,用于在达到阈值的情况下,根据dns解析表项中记录的域名解析结果,向发送所述dns请求报文的客户端返回dns应答报文;以及,在未达到阈值的情况下,将所接收的dns请求报文通过所述目标链路发送至dns服务器,并接收dns服务器返回的dns应答报文;表项更新模块,用于将dns服务器返回的dns应答报文通过所述目标链路发送至发送所述dns请求报文的客户端,并根据该dns请求报文与dns应答报文更新所述dns解析表项,以便后续根据更新后的dns解析表项进行dns解析。本说明书实施例所提供的技术方案,首先,负载均衡设备可以根据各条链路的带宽利用率选择最优的链路处理dns请求报文,其次,负载均衡设备可以记录及更新各条链路针对同一域名的解析结果,并在对应域名解析结果达到预设的解析频率阈值的情况下,通过所记录的解析结果直接返回dns应答报文,而不需要进一步向dns服务器重复获取解析结果,从而减轻负载均衡设备、链路以及dns服务器的压力。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本说明书实施例dns解析方法的流程示意图;图2是本说明书实施例dns解析装置的一种结构示意图;图3是本说明书实施例表项更新模块的结构示意图;图4是本说明书实施例dns解析装置的另一种结构示意图;图5是本说明书实施例条件监测子模块的结构示意图。具体实施方式为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。针对现有技术存在的问题,本说明书提供一种dns解析方法,应用于负载均衡设备,参见图1所示,该方法可以包括以下步骤:s101,接收dns请求报文,获得该报文请求解析的目标域名;s102,确定预先保存的dns解析表项中,所述目标域名对应的解析请求次数是否达到预设解析频率阈值;本说明书实施例中,负载均衡设备可以预先保存dns解析表项,该表项中通过各条记录,分别记录负载均衡设备接收到的若干dns请求报文对应的若干信息,本说明书实施例并不限定所记录的具体参数类型及参数个数,本领域技术人员可以根据实际需求灵活地选择。在本说明书实施例的一种具体实施方式中,负载均衡设备预先保存dns解析表项中,解析参数可以包括以下参数中的一种或多种:发送dns请求报文的源地址、dns请求报文请求解析的域名、记录老化时间、进行dns解析的dns服务器、处理dns请求报文的目标链路、dns解析请求次数、dns解析结果。其中,源地址可以通过多种方式表示,例如,可以为发送dns请求报文的客户端的源ip地址、客户端的mac地址;又如,可使用不同掩码进行多维度表示,也可直接表示为掩码为0,以匹配所有源地址;等等,本说明书实施例对此不做限定。例如,负载均衡设备预先保存dns解析表项可以如下表1所示,表中每一行均为一条记录:源地址域名老化时间dns服务器目标链路解析次数解析结果表1假设负载均衡设备接收到某一dns请求报文,源地址为10.18.68.69、请求解析的域名为www.abc.com,负载均衡设备接收到该dns请求报文后,可以选定目标链路为链路1,从而确定对应的dns服务器为服务器1,老化时间可以为当前时间、对预设时长的倒计时等形式,并且可以以ttl值的形式记录,本说明书实施例对此不做限定。负载均衡设备具体可以通过多种方式判断所确定的目标链路对应的域名解析结果是否达到预设解析频率阈值,本领域技术人员可以根据实际需求灵活地设置,本说明书实施例对此不做限定。在本说明书实施例的另一种具体实施方式中,可以如表1所示,对域名解析次数进行记录,并且在域名解析次数达到预设阈值(如3次)的情况下,确定目标链路对应的域名解析结果达到预设解析频率阈值。s103a,若达到阈值,则根据dns解析表项中记录的域名解析结果,向发送所述dns请求报文的客户端返回dns应答报文;若目标链路对应的域名解析结果达到预设解析频率阈值,如dns解析表项中记录的次数达到3次,则可以不必向dns服务器请求域名解析,而直接通过dns解析表项中记录的解析结果,向发送所述dns请求报文的客户端返回dns应答报文。s103b,若未达到阈值,则获得各备选链路的带宽利用率,并根据所述带宽利用率确定各备选链路的优先级排序;以及,根据所述优先级排序,确定用于本次dns解析的目标链路;其中,带宽利用率小的链路优先级高;由于中国南北方运营商分布不均,为了避免跨运营商访问的拥堵情况,服务提供商通常会提供不同运营商链路,当流量经过负载均衡设备,负载均衡设备通过选择链路可以为不同运营商的用户,分配对应运营商的链路,例如,让电信用户通过电信链路访问,联通用户通过联通链路访问,移动用户通过移动链路访问等,从而提高了用户访问的速度。本说明书实施例中,负载均衡设备可以与多条链路(如多个运营商的链路)连接,并在收到dns请求报文后,选择最优或者较优的链路处理该dns请求报文。因此,负载均衡设备收到dns请求报文后,可以首先获得各备选链路的带宽利用率,并根据所述带宽利用率确定各备选链路的优先级排序。本说明书实施例中,负载均衡设备具体可以通过多种方式根据所述带宽利用率确定各备选链路的优先级排序并选定目标链路,本领域技术人员可以根据实际需求灵活地设置,本说明书实施例对此不做限定。在本说明书实施例的一种具体实施方式中,负载均衡设备可以使用最小带宽利用率算法,确定各备选链路的优先级排序,从而选择优先级较高即带宽利用率较小的目标链路。此外,虽然负载均衡设备能够缓解跨运营商访问的问题,但是可能会造成带宽资源的浪费。例如,假设出口有多条属于不同运营商的链路,在网络出口部署一条电信链路,一条联通链路。内网用户pc网络配置均配置电信dns地址,用户均向电信的dns服务器进行域名解析,回复相应的域名解析结果一般为电信的ip地址,用户后续通过ip访问资源均使用电信链路出口,这样就有可能导致电信链路出现拥塞而联通链路带宽资源闲置浪费的情况出现。因此,可以通过dns透明代理解决这一问题。在多链路场景下,启用dns透明代理设备,收到dns请求报文后,会将其分配到不同链路的dns服务器进行解析,并将dns服务器响应的dns应答报文转发给发送请求报文的客户端。具体地,在本说明书实施例的另一种具体实施方式中,每条链路还可以存在一个或多个dns透明代理服务器,负载均衡设备在选定目标链路后,可以进一步地查找该条链路上的可用的dns透明代理服务器,如果负载均衡设备所选择的目标链路存在多个dns透明代理服务器,则可以选择其中一个dns透明代理服务器处理接收到的dns请求报文。同理地,负载均衡设备具体可以通过多种方式选择dns透明代理服务器,本领域技术人员可以根据实际需求灵活地设置,本说明书实施例对此不做限定。作为一个例子,负载均衡设备可以使用轮询算法选择一个可用的dns透明代理服务器。s104,将所接收的dns请求报文通过所述目标链路发送至dns服务器,并接收dns服务器返回的dns应答报文;s105,将dns服务器返回的dns应答报文通过所述目标链路发送至发送所述dns请求报文的客户端,并根据该dns请求报文与dns应答报文更新所述dns解析表项,以便后续根据更新后的dns解析表项进行dns解析。负载均衡设备具体可以通过多种方式根据该dns请求报文与dns应答报文更新所述dns解析表项,本领域技术人员可以根据实际需求灵活地设置,本说明书实施例对此不做限定。在本说明书实施例的一种具体实施方式中,负载均衡设备可以首先确定所述dns解析表项中记录的若干解析参数,例如,源地址、dns服务器、目标链路、等等,然后获得该dns请求报文与dns应答报文中所述解析参数的参数值,并根据所获得的若干参数值,更新和/或增加所述dns解析表项中记录的参数值。假设负载均衡设备接收到某一dns请求报文,源地址为10.18.68.69、请求解析的域名为www.abc.com,负载均衡设备接收到该dns请求报文后,可以选定目标链路为链路1,从而确定对应的dns服务器为服务器1,老化时间可以为当前时间、对预设时长的倒计时等形式,并且可以以ttl值的形式记录,本说明书实施例对此不做限定。假设经查找确定当前dns解析表项中并不存在参数值如上所述的记录,即相当于解析次数为0次,则可以首先通过链路1向服务器1请求应答报文,并根据应答报文确定解析结果,从而记录到dns解析表项中,记录结果可以如表2所示:源地址域名老化时间dns服务器目标链路解析次数解析结果10.18.68.69www.abc.com1min服务器1链路111.1.1.1表2为了避免dns解析表项中所记录的域名解析结果错误、或者记录数据过于冗余消耗dns解析设备的资源,可以预先设置老化条件,并监测dns解析表项的各条记录是否达到预设老化条件,若是,则将该条记录从所述dns解析表项中删除。可以预先为dns解析表项的各条记录设置多种老化条件,并且dns解析设备具体可以通过多种方式监测dns解析表项的各条记录是否达到预设老化条件,本领域技术人员可以根据实际需求灵活地设置,本说明书实施例对此不做限定。在本说明书实施例的一种具体实施方式中,老化条件可以为:老化时间超过预设阈值(如1分钟)、监测到域名解析结果错误、监测到目标链路不通、等等。相应地,dns解析设备在监测该条记录是否达到预设老化条件时,可以首先获得该条记录中的老化时间,然后,判断所获得的老化时间是否达到预设阈值;若是,则确定该条记录达到预设老化条件;或者,可以首先获得该条记录中的域名解析结果的地址和/或dns服务器地址,并将所获得的地址作为目标地址;以及,通过该条记录中的目标链路,向所述目标地址发送探测报文,并根据所述目标链路的数据情况和/或所述目标地址的响应情况,确定该条记录是否达到预设老化条件。其中,根据所述目标链路的数据情况和/或所述目标地址的响应情况,确定该条记录是否达到预设老化条件,具体地,可以统计所述目标链路在预设时段内的丢包率、延时、和/或通过数的数值,并在所统计数值满足预设条件的情况下,确定该条记录达到预设老化条件;和/或确定是否接收到所述目标地址发送的响应报文,所述响应报文用于响应所述探测报文;若否,则确定该条记录达到预设老化条件。例如,依据链路健康监测质量检测结果可以实时计算该链路丢包率(探测失败次数/探测总次数*100%),如果丢包率超过该值则认为链路有故障。又如,依据链路健康监测质量检测结果可以实时计算该链路平均延时(探测成功延时总和/探测成功次数),如果平均延时超过该值则认为链路有故障。再如,健康监测配置中,依据重试次数可以实时判断每个目标探测是否通过(最近连续检测失败数大于重试次数则判断监测目标不通过)。统计链路健康监测组内检查通过目标总数,如果实际通过目标总数小于至少通过目标数则认为链路有故障,否则认为链路正常。通过目标链路的数据情况和/或所述目标地址的响应情况,来确定该条记录是否达到预设老化条件时,如果确认达到预设老化条件,可以认为目标链路或者目标地址出现异常,则可以将该条记录从dns解析表项中删除,并且,不再向对应的dns服务器发送dns请求报文,避免因链路或服务器异常出现dns解析错误。相应于上述方法实施例,本说明书实施例还提供一种dns解析装置,应用于负载均衡设备,参见图2所示,该装置可以包括:报文接收模块110,用于接收dns请求报文,获得该报文请求解析的目标域名;表项查询模块120,用于确定预先保存的dns解析表项中,所述目标域名对应的解析请求次数是否达到预设解析频率阈值;链路选择模块130,用于在达到阈值的情况下,获得各备选链路的带宽利用率,并根据所述带宽利用率确定各备选链路的优先级排序;以及,根据所述优先级排序,确定用于本次dns解析的目标链路;其中,带宽利用率小的链路优先级高;应答获得模块140,用于在达到阈值的情况下,根据dns解析表项中记录的域名解析结果,向发送所述dns请求报文的客户端返回dns应答报文;以及,在未达到阈值的情况下,将所接收的dns请求报文通过所述目标链路发送至dns服务器,并接收dns服务器返回的dns应答报文;表项更新模块150,用于将dns服务器返回的dns应答报文通过所述目标链路发送至发送所述dns请求报文的客户端,并根据该dns请求报文与dns应答报文更新所述dns解析表项,以便后续根据更新后的dns解析表项进行dns解析。在本说明书实施例的一种具体实施方式中,参见图3所示,所述表项更新模块150,可以包括:参数确定子模块151,用于确定所述dns解析表项中记录的若干解析参数;参数值获得子模块152,用于获得该dns请求报文与dns应答报文中所述解析参数的参数值;表象更新子模块153,用于根据所获得的若干参数值,更新和/或增加所述dns解析表项中记录的参数值。在本说明书实施例的一种具体实施方式中,所述解析参数可以包括以下参数中的一种或多种:发送dns请求报文的源地址、dns请求报文请求解析的域名、记录老化时间、进行dns解析的dns服务器、处理dns请求报文的目标链路、dns解析请求次数、dns解析结果。在本说明书实施例的一种具体实施方式中,参见图4所示,所述装置还可以包括表项监测模块160,具体可以包括:条件监测子模块161,用于针对所述dns解析表项的任一条记录:监测该条记录是否达到预设老化条件;记录删除子模块162,用于在所述dns解析表项的任一条记录达到预设老化条件的情况下,将该条记录从所述dns解析表项中删除。在本说明书实施例的一种具体实施方式中,参见图5所示,所述条件监测子模块161,可以包括:时间监测单元161a,用于获得该条记录中的老化时间,并判断所获得的老化时间是否达到预设阈值;若是,则确定该条记录达到预设老化条件;和/或状态监测单元161b,用于获得该条记录中的域名解析结果的地址和/或dns服务器地址,并将所获得的地址作为目标地址;以及,通过该条记录中的目标链路,向所述目标地址发送探测报文,并根据所述目标链路的数据情况和/或所述目标地址的响应情况,确定该条记录是否达到预设老化条件。在本说明书实施例的一种具体实施方式中,所述状态监测单元具体可以用于:统计所述目标链路在预设时段内的丢包率、延时、和/或通过数的数值,并在所统计数值满足预设条件的情况下,确定该条记录达到预设老化条件;和/或确定是否接收到所述目标地址发送的响应报文,所述响应报文用于响应所述探测报文;若否,则确定该条记录达到预设老化条件。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。以上所述仅为本说明书实施例的较佳实施例而已,并不用以限制本说明书实施例,凡在本说明书实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书实施例保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1