IP地址列表维护方法和装置及网关设备与流程

文档序号:21361600发布日期:2020-07-04 04:35阅读:297来源:国知局
IP地址列表维护方法和装置及网关设备与流程

本公开涉及网络地址解析领域,尤其涉及一种ip地址列表维护方法和装置及网关设备。



背景技术:

在相当多的网络方案中(例如智能路由),运维人员需要维护一张特定网络服务与ip地址的对应表,这里所指的网络服务相当广泛,包括但不限于特定的网站,微信,office365,各种手游等等。一个服务一般会对应多个域名,而每个域名又会对应多个ip地址,对于网络方案来说,这些ip地址即是实施策略的关键参数。对于大型服务,这个ip地址列表是大量的、动态的,不公开的,在大公司之间,一般会达成战略联盟由服务提供者主动分享ip地址表,但在绝大数场景中,这是不现实的,必须从技术层面主动收集。现有技术中,可使用dpi(深层包检测技术)对常用的数百种服务进行识别,这种方式对于常用的服务比较成熟,识别准确率也在90%以上。

对于小型(非异地组网)方案,更常用的技术是通过周期性的dns的解析也能获取足够多的ip列表,且几乎没有额外的性能开销。dns方式虽然轻量高效,但是由于dns存在“view”的机制,不同地域(即不同ip段)的客户端即访问同一台dns解析同一个域名,也会得到一系列完全不同的ip地址。dns的这个机制的本意是结合cdn有效地提高上网速度,而副作用是对地址的维护带来莫大的困难。



技术实现要素:

有鉴于此,本公开提出了一种ip地址列表维护方法,其特征在于,包括:

获取预设待截获域名;

接受终端的dns请求并将所述dns请求进行转发到dns服务器;

获取所述dns服务器的响应报文;

分析所述响应报文得到网站域名;

将所述网站域名与所述待截获域名进行匹配得到匹配结果;

若所述匹配结果包含所述待截获域名,记录所述待截获域名对应的访问地址;

将所述访问地址存入数据库。

在一种可能的实现方式中,所述访问地址为a记录或aaaa记录;

所述数据库为mysql数据库。

在一种可能的实现方式中,获取所述dns服务器的响应报文的方式包括:

部署采集器和设置镜像端口进行旁路采集中的至少一种。

在一种可能的实现方式中,还包括:

检测所述数据库中的访问地址的预设时间内的访问次数;

若所述访问地址在预设时间内未被访问,将所述访问地址删除。

在一种可能的实现方式中,分析所述响应报文得到网站域名包括:

获取所述响应报文的正文;

分析所述正文的问题查询区域得到a记录或aaaa记录;

通过所述a记录或aaaa记录得到网站域名。

在一种可能的实现方式中,所述预设时间的范围为1小时—24小时。

在一种可能的实现方式中,通过53端口获取所述dns服务器的响应报文。

根据本公开的一方面,提供了一种ip地址列表维护装置,包括待截获域名获取模块、dns请求转发模块、响应报文获取模块、响应报文分析模块和访问地址记录模块;

所述待截获域名获取模块,被配置为获取预设待截获域名;

所述dns请求转发模块,被配置为接受终端的dns请求并将所述dns请求进行转发到dns服务器;

所述响应报文获取模块,被配置为获取所述dns服务器的响应报文;

所述响应报文分析模块,被配置为分析所述响应报文得到网站域名;

将所述网站域名与所述待截获域名进行匹配得到匹配结果;

所述访问地址记录模块,被配置为若所述匹配结果包含所述待截获域名,记录所述待截获域名对应的访问地址;

将所述访问地址存入数据库。

根据本公开的另一方面,提供了一种网关设备,包括前面所述的一种ip地址列表维护装置。

根据本公开的另一方面,提供了一种ip地址列表维护设备,其特征在于,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。

根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现前面任一所述的方法。通过设置要截获的域名,接受终端的dns请求并将dns请求进行转发到dns服务器,获取dns服务器的响应报文并分析响应报文得到网站域名,将网站域名与待截获域名进行匹配得到匹配结果,若匹配结果包含待截获域名,记录待截获域名对应的访问地址,将访问地址存入数据库。本专利采用的方法,是在网络设备中直接截获客户的dns报文,并从中提取ip地址记录(a记录、aaaa记录)。由于dns是公共的,不加密的协议,而且端口也是固定的udp53(偶尔会有tcp53,一般可以忽略),因此只需以极小的代价(侦听udp53)就能按需获取特定服务的完整ip列表,在使用中完成自动学习,并让所有用户获益。对于非特定服务,a记录会被自动抛弃,完全不影响用户隐私。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出本公开实施例的ip地址列表维护方法的流程图;

图2示出本公开实施例的ip地址列表维护装置的框图;

图3示出本公开实施例的ip地址列表维护设备的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

图1示出根据本公开一实施例的ip地址列表维护方法的流程图。如图1所示,该ip地址列表维护方法包括:

步骤s100,获取预设待截获域名,步骤s200,接受终端的dns请求并将dns请求进行转发到dns服务器,步骤s300,获取dns服务器的响应报文,步骤s400,分析响应报文得到网站域名,将网站域名与待截获域名进行匹配得到匹配结果,步骤s500,若匹配结果包含待截获域名,记录待截获域名对应的访问地址,将访问地址存入数据库。

通过设置要截获的域名,接受终端的dns请求并将dns请求进行转发到dns服务器,获取dns服务器的响应报文并分析响应报文得到网站域名,将网站域名与待截获域名进行匹配得到匹配结果,若匹配结果包含待截获域名,记录待截获域名对应的访问地址,将访问地址存入数据库。本专利采用的方法,是在网络设备中直接截获客户的dns报文,并从中提取ip地址记录(a记录、aaaa记录)。由于dns是公共的,不加密的协议,而且端口也是固定的udp53(偶尔会有tcp53,一般可以忽略),因此只需以极小的代价(侦听udp53)就能按需获取特定服务的完整ip列表,在使用中完成自动学习,并让所有用户获益。对于非特定服务,a记录会被自动抛弃,完全不影响用户隐私。

具体的,参见图1,执行步骤s100,获取预设待截获域名。

在一种可能的实现方式中,人工设置需要截获的域名,可以设置多个需要截获的域名,例如:在网络设备中部署一个采集器,用来截获设置的域名,设置的域名包括“www.weibo.com”、“www.qq.com”和“www.sina.com”。

需要说明的是,对于已经纳管的网络设备(一般是开源路由器),可直接部署采集器。对于第三方网络设备可以通过设置镜像端口实现旁路采集。采集器的部署和实现镜像端口实现旁路采集可以使用本领域的常规技术手段,此处不进行限定。

进一步的,参见图1,执行步骤s200,接受终端的dns请求并将dns请求进行转发到dns服务器。

在一种可能的实现方式中,当连接的终端发起dns请求时,接受此终端的dns请求,并进行正常的转发,转发到dns服务器进行dns问询。其中,终端包括电脑设备,手机设备以及服务器设备。例如,一台电脑设备发出了dns请求,此dns请求包括对“www.weibo.com”域名的访问地址的问询,接受dns请求后,将dns请求通过udp连接的方式在53端口转发到外部的dns服务器。

需要指出的是,可以同时连接多个终端,并同时接受多个终端的dns请求。例如:一台手机设备与电脑设备同时发送了dns请求,电脑设备的dns请求包括对“www.weibo.com”域名的访问地址的问询,手机设备的dns请求包括对“www.qq.com”域名的访问地址的问询,接受dns请求后,将两条dns请求通过udp连接的方式在53端口转发到外部的dns服务器。另外的,转发方式不限于udp转发,还会包括tcp方式的转发,其中tcp转发方式的端口也为53端口。

进一步的,参见图1,执行步骤s300,获取dns服务器的响应报文。

在一种可能的实现方式中,当dns服务器接收到网络设备转发的dns请求时,返回dns请求中对应的域名的响应报文,利用在网络设备中部署的采集器或者实现镜像端口旁路采集功能获取响应报文。此处,需要指出的是,在网络设备为纳管的网络设备(如:开源的路由器)时,可以直接在纳管的网络设备中部署采集器进行响应报文的采集获取。在网络设备为第三方网络设备时,则可以通过设置镜像端口的方式来实现旁路采集响应报文。

其中,响应报文中包含dns请求中域名的访问地址,其中,响应报文的格式参见表一:

表一

其中,头部信息(header)包括transactionid(会话标识)是dns报文的id标识,对于请求报文和其对应的响应报文,这个字段是相同的,通过它可以区分dns响应报文是哪个请求的响应。另外的,questions(问题数),answersrrs(回答资源记录数),authoritativerrs(授权资源记录数)additionalrrs(附加资源记录数)各自表示后面的四个区域的数目。questions查询问题区域节的数量,answersrrs表示回答区域的数量,authoritativerrs表示授权区域的数量,additionalrrs区域的数量。在响应报文的正文中,queries(查询问题):由查询名、查询类型、查询类三部分组成。查询名是要查找的名字,它是一个或多个标识符的序列,它的存储方法是先存储每个子域的字符数,再存储相应的字符,依次存储,最后填写一个0字节;查询类型占两个字节,常用的有(a,1)代表ip地址、(ns,2)代表名字服务器、(ptr,12)代表指针记录;查询类占两个字节,通常为(in,1),指互联网地址。

进一步的,在分析响应报文得到网站域名中,首先获取所述响应报文的正文,分析响应报文的正文中的问题查询区域(queries区域)得到a记录或aaaa记录,通过a记录或aaaa记录得到网站域名,其中a记录或aaaa记录还包括域名所对应的ip地址。

进一步的,参见图1,执行步骤s400,分析响应报文得到网站域名,将网站域名与待截获域名进行匹配得到匹配结果。

在一种可能的实现方式中,将得到的响应报文进行解析,解析得到响应报文中的域名,若响应报文中的域名与预设的待截获的域名一致,则得到匹配结果为包含待截获域名,若响应报文中的域名与预设的待截获的域名不一致,则忽略接受到的报文。例如,预设的待截获域名为www.weibo.com,在响应报文中得到如下的a记录:

www.weibo.com.31ina123.125.104.197

www.weibo.com.31ina123.125.104.26

获取其中的域名,判断与设置的域名一致,即匹配结果为:有匹配的域名。

进一步的,参见图1,执行步骤s500,若匹配结果包含待截获域名,记录待截获域名对应的访问地址,并将访问地址存入数据库。

在一种可能的实现方式中,若匹配结果为:有匹配的域名,则将在响应报文中解析到的a记录保存在缓存中,并发送到数据库中保存起来,例如:在解析到如下的a记录时:

www.weibo.com.31ina123.125.104.197

www.weibo.com.31ina123.125.104.26

匹配结果为:有匹配的域名,则将这两条a记录记录在缓存中并发送到mysql服务器进行保存,一个域名对应一个以上的a记录,即对应一个以上的ip地址。

需要指出的是,不仅支持将解析到的a记录保存到数据库中,当解析到aaaa记录的时候,也可以被识别并保存在数据库中,其中,a记录是指向ipv4地址的,aaaa记录是指向ipv6地址的。并且,数据库的使用不限于mysql,能达到所需功能即可。数据库的使用可以采用本领域常规的技术手段,此处不再进行赘述。

另外的,若某个访问地址长期未被更新,检测数据库中的访问地址的预设时间内的访问次数,若访问地址在预设时间内未被访问,将访问地址删除。预设时间可以自由设定,优选的,可以设置在1小时——12小时内。例如:对于域名www.baidu.com的一条a记录如下:

www.baidu.com.31ina220.181.38.148

设置的删除时间为6小时,在6小时内若没有终端访问此a记录中的ip地址,则将此条a记录删除。

需要说明的是,尽管以上述各个步骤作为示例介绍了ip地址列表维护方法如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定ip地址列表维护方法,只要达到所需功能即可。

这样,通过设置要截获的域名,接受终端的dns请求并将dns请求进行转发到dns服务器,获取dns服务器的响应报文并分析响应报文得到网站域名,将网站域名与待截获域名进行匹配得到匹配结果,若匹配结果包含待截获域名,记录待截获域名对应的访问地址,将访问地址存入数据库。本专利采用的方法,是在网络设备中直接截获客户的dns报文,并从中提取ip地址记录(a记录、aaaa记录)。由于dns是公共的,不加密的协议,而且端口也是固定的udp53(偶尔会有tcp53,一般可以忽略),因此只需以极小的代价(侦听udp53)就能按需获取特定服务的完整ip列表,在使用中完成自动学习,并让所有用户获益。对于非特定服务,a记录会被自动抛弃,完全不影响用户隐私。

进一步的,根据本公开的另一方面,还提供了一种ip地址列表维护装置100。由于本公开实施例的ip地址列表维护装置100的工作原理与本公开实施例的ip地址列表维护方法的原理相同或相似,因此重复之处不再赘述。参见图2,本公开实施例的ip地址列表维护装置100包括待截获域名获取模块110、dns请求转发模块120、响应报文获取模块130、响应报文分析模块140和访问地址记录模块150;

待截获域名获取模块110,被配置为获取预设待截获域名;

dns请求转发模块120,被配置为接受终端的dns请求并将dns请求进行转发到dns服务器;

响应报文获取模块130,被配置为获取dns服务器的响应报文;

响应报文分析模块140,被配置为分析响应报文得到网站域名;

将网站域名与待截获域名进行匹配得到匹配结果;

访问地址记录模块150,被配置为若匹配结果包含待截获域名,记录待截获域名对应的访问地址;

将访问地址存入数据库。

更进一步的,根据本公开的另一方面,还提供了一种网关设备。本公开实施例的网关设备包括前面所述的一种ip地址列表维护装置100。

更进一步地,根据本公开的另一方面,还提供了一种ip地址列表维护设备200。参阅图3,本公开实施例ip地址列表维护设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一所述的ip地址列表维护方法。

此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本公开实施例的ip地址列表维护设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。

存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的ip地址列表维护方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行ip地址列表维护设备200的各种功能应用及数据处理。

输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。

根据本公开的另一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器210执行时实现前面任一所述的ip地址列表维护方法。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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