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

文档序号:17126223发布日期:2019-03-16 00:28阅读:177来源:国知局
域名解析方法和装置与流程

本申请涉及网络通信技术领域,特别设计一种域名解析方法和装置。



背景技术:

域名系统(domainnamesystem,dns)是鲜有的同时应用传输控制协议(transmissioncontrolprotocol,tcp)和用户数据报文协议(userdatagramprotocol,udp)两种传输协议的分布式数据库,提供域名与互联网协议(internetprotocol,ip)地址的映射关系,让用户更方便的访问互联网,无需记忆复杂的ip地址。

终端或者下游dns服务器,可以通过tcp或者udp连接向上游dns服务器发送dns请求报文,来获取域名对应的ip地址。网关dns代理设备收到下游dns服务器或者终端发来的dns请求报文,先查找本地的域名与ip地址数据库,若找到,直接回复dns应答报文;若未找到,若网关dns代理设备采用的是迭代查询方式,则向终端或者下游dns服务器发送上游dns服务器的ip地址,若网关dns代理设备配置有多个上游dns服务器,会将这些上游dns服务器的ip地址都发送给终端或下游dns服务器,若dns代理设备采用的是递归查询方式,网关dns代理设备会向上游dns服务器发送dns请求报文,当dns代理设备配置有多个上游dns服务器时,网关dns代理设备会向每个上游dns服务器都发送一个dns请求报文,然后将回复最快的上游dns服务器的ip地址发送给终端或者下游dns服务器。

上述域名解析方法中,若网关dns代理设备采用的是迭代查询方式,会向终端或者下游dns服务器返回多个上游dns服务器的ip地址,终端或者下游dns服务器会向每个上游dns服务器发送dns请求报文,会造成带宽浪费,并增加网关dns代理设备压力;若网关dns代理设备采用的是递归查询方式,需要向每个上游dns服务器发送一个dns请求报文,这同样会造成带宽浪费,并增加网关dns代理设备压力。



技术实现要素:

有鉴于此,本申请提供一种域名解析方法和装置,以解决带宽浪费以及增加网关dns代理设备的压力的问题。

具体地,本申请是通过如下技术方案实现的:

一种域名解析方法,应用于网关域名系统dns代理设备中,所述方法包括:

接收终端或者下游dns服务器发送的携带域名的dns请求报文;

在本地的域名与ip地址数据库中查找所述域名;

若在所述域名与ip地址数据库未查找到所述域名,则确定预先从连接的至少两个上游dns服务器中选出的第一上游dns服务器;

将所述第一上游dns服务器的ip地址携带在dns响应报文中发送给所述终端或者所述下游dns服务;或者,从所述第一上游dns服务器获取所述域名对应的ip地址,将从所述第一上游dns服务器获取的ip地址携带在dns响应报文中发送给所述终端或者所述下游dns服务器。

一种域名解析装置,应用于网关dns代理设备中,所述装置包括:

接收模块,用于接收终端或者下游dns服务器发送的携带域名的dns请求报文;

查找模块,用于在本地的域名与ip地址数据库中查找所述域名;

确定模块,用于若在所述域名与ip地址数据库未查找到所述域名,则确定预先从连接的至少两个上游dns服务器中选出的第一上游dns服务器;

发送模块,用于将所述第一上游dns服务器的ip地址携带在dns响应报文中发送给所述终端或者所述下游dns服务;或者,从所述第一上游dns服务器获取所述域名对应的ip地址,将从所述第一上游dns服务器获取的ip地址携带在dns响应报文中发送给所述终端或者所述下游dns服务器。

由以上本申请提供的技术方案可见,网关dns代理设备接收终端或者下游dns服务器发送的携带域名的dns请求报文后,若在本地的域名与ip地址数据库未查找到该域名,直接将预先从连接的至少两个上游dns服务器中选出的第一上游dns服务器的ip地址携带在dns响应报文中发送给终端或者下游dns服务,由于只需要向终端或者下游dns服务器返回一个上游dns服务器的ip地址,终端或者下游dns服务器也只会向该上游dns发送dns请求报文,从而可以大大减少带宽浪费,减小网关dns代理设备的压力;网关dns代理设还可以将从第一上游dns服务器获取该域名对应的ip地址携带在dns响应报文中发送给终端或者下游dns服务器,由于网关dns代理设备只向一个上游dns服务器发送dns请求报文,同样也可以大大减少带宽浪费,减小网关dns代理设备的压力。

附图说明

图1为本申请示出的一种域名解析方法的流程图;

图2为本申请示出的一种域名解析装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了解决上述问题,本发明实施例提供了一种域名解析方法,可以大大减少带宽浪费,减小网关dns代理设备的压力。请参见图1,图1为本申请示出的一种域名解析方法的流程图,应用于网关dns代理设备中。

s11:接收终端或者下游dns服务器发送的携带域名的dns请求报文。

s12:在本地的域名与ip地址数据库中查找域名。

s13:若在域名与ip地址数据库未查找到域名,则确定预先从连接的至少两个上游dns服务器中选出的第一上游dns服务器。

s14:将第一上游dns服务器的ip地址携带在dns响应报文中发送给终端或者下游dns服务;或者,从第一上游dns服务器获取域名对应的ip地址,将从第一上游dns服务器获取的ip地址携带在dns响应报文中发送给终端或者下游dns服务器。

由以上本申请提供的技术方案可见,网关dns代理设备接收终端或者下游dns服务器发送的携带域名的dns请求报文后,若在本地的域名与ip地址数据库未查找到该域名,直接将预先从连接的至少两个上游dns服务器中选出的第一上游dns服务器的ip地址携带在dns响应报文中发送给终端或者下游dns服务,由于只需要向终端或者下游dns服务器返回一个上游dns服务器的ip地址,终端或者下游dns服务器也只会向该上游dns发送dns请求报文,从而可以大大减少带宽浪费,减小网关dns代理设备的压力;网关dns代理设还可以将从第一上游dns服务器获取该域名对应的ip地址携带在dns响应报文中发送给终端或者下游dns服务器,由于网关dns代理设备只向一个上游dns服务器发送dns请求报文,同样也可以大大减少带宽浪费,减小网关dns代理设备的压力。

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

若在域名与ip地址数据库查找到域名,则在域名与ip地址数据库获取域名对应的ip地址;

将在域名与ip地址数据库获取的ip地址携带在dns响应报文中发送给终端或者下游dns服务器。

若本地域名与ip地址数据库中可以查找到终端或者下游dns服务器请求的域名的ip地址,可以直接将其返回给终端或者下游dns服务器。

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

确定连接的各个上游dns服务器的延时时长;

将延时时长最小的上游dns服务器确定为第一上游dns服务器。

网关dns代理设备可以预先从连接的多个上游dns服务器中选出第一上游dns服务器,在网关dns代理设备与多个上游dns服务器建立通信连接后,就可以直接根据各个上游dns服务器的延时时长来选出第一上游dns服务器。具体可以选取延时时长最小的上游dns服务器作为第一上游dns服务器,因为从该上游dns服务器获取ip地址使用的时间最短,也就是与该上游dns服务通信的耗时最少,从而可以提升处理效率。

具体的,上述确定连接的各个上游dns服务器的延时时长,具体包括:

针对每个上游dns服务器,执行:

向连接的当前上游dns服务器发送设定数量的选定协议请求报文;

接收当前上游dns服务器发送的设定数量的选定协议响应报文后,计算当前上游dns服务器返回设定数量的选定协议响应报文的总时长;

将总时长除以设定数量,得到当前上游dns服务器的延时时长。

设定数量可以根据实际需要进行设定,例如可以设定为5个、6个、10个等等,选定协议也可以根据实际需要进行选取,例如,可以选取为互联网控制报文协议(internetcontrolmessageprotocol,icmp),可以根据向上游dns服务器发送icmp请求报文和接收icmp响应报文的平均耗时得到该上游dns服务器的延时时长。

具体的,上述s14中从第一上游dns服务器获取域名对应的ip地址,具体包括:

向第一上游dns服务器发送携带域名的dns请求报文,以使第一上游dns服务器获取域名对应的ip地址,并发送携带ip地址的dns响应报文;

接收dns响应报文后,获取dns响应报文中携带的ip地址。

第一上游dns服务器获取域名对应的ip地址过程与我能够给网关dns代理服务器的过程是类似的,这里不再一一赘述。

网关dns代理设备可以采用迭代查询方式或者递归查询方式,下面分别介绍在这两个方式下的处理过程。

假设网关dns代理设备连接了多个上游dns服务器,那么就会配置多个上游dns服务器的ip地址,每次改动上游dns服务器的ip地址时,网关dns代理设备向每个上游dns服务器发送五个icmp请求报文,各个上游dns服务器收到网关dns代理设备发送的icmp请求报文后,发送icmp响应报文作为应答,网关dns代理设备记录每个上游dns服务器返回的五个icmp响应报文所用的总时间,计算出网关dns代理设备向每个上游dns服务器发送icmp请求报文到接收到icmp响应报文所用的平均时间,并标记平均时间最短的上游dns服务器。

对于采用迭代查询方式的网关dns代理设备,当接收到终端或者下游dns服务器发送的携带域名的dns请求报文后,若在本地的域名与ip地址数据库中未找到该域名,则将标记的平均时间最短的上游dns服务器的ip地址携带在dns响应报文中给终端或者下游dns服务器,终端或者下游dns服务器可以向该平均时间最短的上游dns服务器发送dns请求报文,平均时间最短的上游dns服务器收到dns请求报文后,处理过程与网关dns代理设备的处理过程是类似的,这里不再赘述。

对于采用递归查询方式的网关dns代理设备,当接收到终端或者下游dns服务器发送携带域名的dns请求报文后,若在本地的域名与ip地址数据库中未找到该域名,则向标记的平均时间最短的上游dns服务器发送dns请求报文,标记的平均时间最短的上游dns服务器收到dns请求报文后,获取对应的ip地址,获取过程与网关dns代理设备的处理过程是类似的,这里不再赘述,标记的平均时间最短的上游dns服务器将携带获取到的ip地址的dns响应报文发送给网关dns代理设备,网关dns代理设备将该ip地址发送给终端或者下游dns服务器。

请参见图2,图2为本申请示出的一种域名解析装置的结构示意图,应用于网关dns代理设备中,该装置包括:

接收模块21,用于接收终端或者下游dns服务器发送的携带域名的dns请求报文;

查找模块22,用于在本地的域名与ip地址数据库中查找域名;

确定模块23,用于若在域名与ip地址数据库未查找到域名,则确定预先从连接的至少两个上游dns服务器中选出的第一上游dns服务器;

发送模块24,用于将第一上游dns服务器的ip地址携带在dns响应报文中发送给终端或者下游dns服务;或者,从第一上游dns服务器获取域名对应的ip地址,将从第一上游dns服务器获取的ip地址携带在dns响应报文中发送给终端或者下游dns服务器。

由以上本申请提供的技术方案可见,网关dns代理设备接收终端或者下游dns服务器发送的携带域名的dns请求报文后,若在本地的域名与ip地址数据库未查找到该域名,直接将预先从连接的至少两个上游dns服务器中选出的第一上游dns服务器的ip地址携带在dns响应报文中发送给终端或者下游dns服务,由于只需要向终端或者下游dns服务器返回一个上游dns服务器的ip地址,终端或者下游dns服务器也只会向该上游dns发送dns请求报文,从而可以大大减少带宽浪费,减小网关dns代理设备的压力;网关dns代理设还可以将从第一上游dns服务器获取该域名对应的ip地址携带在dns响应报文中发送给终端或者下游dns服务器,由于网关dns代理设备只向一个上游dns服务器发送dns请求报文,同样也可以大大减少带宽浪费,减小网关dns代理设备的压力。

可选的,上述装置还包括获取模块,用于:若在域名与ip地址数据库查找到域名,则在域名与ip地址数据库获取域名对应的ip地址;

发送模块,还用于将在域名与ip地址数据库获取的ip地址携带在dns响应报文中发送给终端或者下游dns服务器。

可选的,确定模块23,还用于:

确定连接的各个上游dns服务器的延时时长;

将延时时长最小的上游dns服务器确定为第一上游dns服务器。

具体的,确定模块23,用于确定连接的各个上游dns服务器的延时时长,具体用于:

针对每个上游dns服务器,执行:

向连接的当前上游dns服务器发送设定数量的选定协议请求报文;

接收当前上游dns服务器发送的设定数量的选定协议响应报文后,计算当前上游dns服务器返回设定数量的选定协议响应报文的总时长;

将总时长除以设定数量,得到当前上游dns服务器的延时时长。

具体的,发送模块24,用于从第一上游dns服务器获取域名对应的ip地址,具体用于:

向第一上游dns服务器发送携带域名的dns请求报文,以使第一上游dns服务器获取域名对应的ip地址,并发送携带ip地址的dns响应报文;

接收dns响应报文后,获取dns响应报文中携带的ip地址。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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