DNS日志分析方法、DNS日志分析系统及计算机可读存储介质与流程

文档序号:25730409发布日期:2021-07-02 21:18阅读:300来源:国知局
本发明涉及dns数据分析领域,具体涉及一种dns日志分析方法、dns日志分析系统及计算机可读存储介质。
背景技术
::当前dns数据分析领域中正面临着一个难题,运营商dns解析日志数据量巨大,每天可达8t以上,解码分析服务器处理能力有限,通常采用智能分流器将dns解析日志分配到多台采集、解码分析服务器上,为了达到线速地分析dns解析日志,需要配置大量的日志解构、索引入库、分析服务器,对于运营商来说会需要大量的机房空间及高昂的分析成本。现有技术中,为解决上述问题,会采用开源日志管理(logstash),是一个开源数据收集引擎,具有实时管道功能。logstash可以动态地将来自不同数据源的数据统一起来,然后logstash过滤器解析各个事件,识别已命名的字段以构建结构,将它们转换成通用格式,并将数据标准化到选择的目的地存储起来。但是,logstash的问题是它的性能以及资源消耗,其默认的堆大小是1gb,而为了解决性能和资源问题,通常在数据解码后在解构入库前增加一级缓存存储,以匹配两端的速率不一致问题。由此,logstash及各种过滤器插件对数据的处理会大量地占用服务器资源。因此,亟待一种技术方案,能够将dns日志的解构计算从logstash类似技术中解放出来,简化dns日志的解析计算,提高dns日志的解构、入库、索引等的解析效率,同时避免产生大量的服务器资源占用,减少中间缓存和分析设备。技术实现要素:针对以上问题,本发明提供了一种dns日志分析方法,简化了dns日志的解构、入库、索引等步骤,提高了dns日志解析效率,同时减少了中间缓存和分析设备。本发明提供的一种dns日志分析方法,包括步骤s1,定义一个匹配域,并将包含匹配域的流表项插入流表中;步骤s2,数据包输入智能分流器后,统计与包含匹配域的流表项匹配的数据包;步骤s3,在匹配域的可用字段中写入标记;步骤s4,将匹配域的可用字段中写入了标记的流表项与数据包共同输出智能分流器;步骤s5,解码分析服务器根据匹配域中的标记,解析数据包并生成dns日志。基于openflow协议,智能分流器能够通过用户定义的流表项来匹配和处理数据包,将数据包发往后续处理器中,这些步骤是智能分流器本身工作的步骤。而上述步骤中,智能分流器基于openflow协议定义了一个新的匹配域,可以根据包含自定义匹配域的流表项对数据包进行处理;同时在匹配域的可用字段中写入标记,使得解码分析服务器根据匹配域中的标记即可进行dns日志解构、索引入库、分析等动作,无需进行大量的dns日志解析计算工作。即在现有技术中,智能分流器和解码分析服务器分别都需要对数据包进行大量的解析计算,本发明提供的dns日志分析方法,只需在智能分流器中进行解析计算,并给数据包打上标记,后续的解码分析服务器只需要根据标记进行dns日志解构、索引入库、分析,将两次大量的数据计算分析过程,简化为一次在智能分流器中数据计算分析,大大简化了dns日志的解析计算,提高了dns日志解析效率,同时节省了进行dns日志的解析计算产生大量的服务器资源占用,减少中间缓存和分析设备。在本发明的较优技术方案中,dns日志分析方法的步骤s2,通过openflow的计量表统计与包含自定义匹配域的流表项匹配的数据包。openflow的计量表用于关联流表项,能够对匹配流表项的数据包执行服务质量(qos)策略,包括对匹配流表项的数据包进行分类统计等。进一步地,在本发明的较优技术方案中,dns日志分析方法还将openflow的计量表的计数日志和数据包共同输出智能分流器。后续的解码分析服务器即可通过与数据包共同输出openflow的计量表的计数日志和标记,了解与包含自定义匹配域的流表项匹配的数据包的数量和标记的相关内容,形成带有统计数据的dns日志,进一步地节省了dns日志的计算步骤,提高了dns日志解析效率。优选地,在本发明的较优技术方案中,dns日志分析方法的步骤s3中,通过流表项的动作在匹配域的可用字段中写入标记。数据包与包含自定义匹配域的流表项匹配成功,流表项中可以规定相应的动作(action),将标记写入可用字段中。因为openflow中流表项的功能本身即为通过动作(action)匹配和处理数据包,通过动作(action)将标记写入可用字段利用了openflow自身的规则,无需附加的动作和流程即可实现标记功能。优选地,在本发明的较优技术方案中,dns日志分析方法中的匹配域的可用字段包括vlanid字段、vlan优先级字段、mpls字段、mpls优先级字段、目标mac字段中的一种或多种。因为写入标记的步骤是在智能分流器中完成的,而上述的vlanid字段、vlan优先级字段、mpls字段、mpls优先级字段、目标mac字段等是在智能分流器的前序设备中发挥作用的,而在智能分流器及后续的处理器中没有实际作用。因此,选择在上述字段中写入标记,覆盖掉的数据对智能分流器及后续的处理器是没有意义的,不会影响到后续的解析步骤。在本发明的较优技术方案提供的dns日志分析方法中,标记包括对源ip地址、解析结果ip地址、解析域名中的一种或多种进行的编码。dns日志解析时同样会涉及源ip地址、解析结果ip地址、解析域名三个维度的解码分析,因此通过源ip地址、解析结果ip地址、解析域名三个维度对数据包进行分类标记,能够大大减少dns日志的解析计算。而且,对源ip地址、解析结果ip地址、解析域名三个维度的编码可以根据dns日志的解析要求进行进一步细化,如根据源ip地址的运营商、地理位置、解析结果的类型、域名的应用等不同的依据进行编码,使得dns日志解析时不用进行大量的解析计算也能够得到详细分类的解析结果。在本发明的较优技术方案中,还提供了一种dns日志分析系统,包括智能分流器,包括虚拟交换机模块;解码分析服务器;上述的dns日志分析系统能够执行:步骤s1,定义一个匹配域,并将包含匹配域的流表项插入流表中;步骤s2,数据包输入智能分流器后,统计与包含匹配域的流表项匹配的数据包;步骤s3,在匹配域的可用字段中写入标记;步骤s4,将匹配域的可用字段中写入了标记的流表项与数据包共同输出智能分流器;步骤s5,解码分析服务器根据匹配域中的标记,解析数据包并生成dns日志。上述的dns日志分析系统中,数据包在智能分流器中进行解析计算,并给数据包打上标记,后续的解码分析服务器只需要根据标记进行dns日志解构、索引入库、分析,将智能分流器和解码分析服务器两次大量的数据计算分析过程,简化为一次在智能分流器中数据计算分析,大大简化了dns日志的解析计算步骤,提高了dns日志解析效率,同时节省了进行dns日志的解析计算产生大量的服务器资源占用,减少中间缓存和分析设备。在本发明的较优技术方案中,还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的dns日志分析方法的步骤。附图说明图1是本发明一个实施方式中提供的一种dns日志分析方法的示意图;图2是图1实施方式中提供的一种dns日志分析系统的示意图。附图标记:1-dns日志分析系统,2-智能分流器,3-解码分析服务器。具体实施方式下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明的保护范围。openflow是一种网络通信协议,属于数据链路层,能够控制网上交换器或路由器的转发平面,借此改变网络数据包所走的网络路径。一个openflow的交换机中可以有多个流表(flowtable),一个流表又可以包含有多个流表项,网络数据包可以与各流表中的流表项匹配,即网络数据包可以与多个流表项匹配,然后根据匹配的流表项来匹配和处理网络数据包。openflow的一个流表项,包括matchfields:匹配域,交换机使用这些项来匹配数据包;preority:匹配优先级,0表示优先级最低,交换机依据优先级从大到小匹配流表项;counters:用于统计匹配该表项的数据包和字节数;instructions:匹配流表项后,需要执行的指令集;timeout:流表项的过期时间;cookie:用于标识流表项,由controller来设定,用于区分流表项,交换机不使用该值;flags:用于修改管理表项的行为。本发明的实施方式中提供了一种dns日志分析方法,其流程如图1所示,具体包括步骤s1,定义一个匹配域,并将包含匹配域的流表项插入流表中;步骤s2,数据包输入智能分流器后,统计与包含匹配域的流表项匹配的数据包;步骤s3,在匹配域的可用字段中写入标记;步骤s4,将匹配域的可用字段中写入了标记的流表项与数据包共同输出智能分流器;步骤s5,解码分析服务器根据匹配域中的标记,解析数据包并生成dns日志。而上述步骤中,首先,智能分流器基于openflow协议定义了一个新的匹配域,也就是说智能分流器可以根据包含自定义匹配域的流表项对与该流表项数据包进行处理;目前openflow协议支持两种定义匹配域的格式,用的较多的是oxm格式(openflowextensiblematch),即tlv格式(类型,长度和值)。同时,在匹配域的可用字段中写入标记,通过标记能够关联dns日志解析相关的信息,并将匹配域的可用字段中写入了标记的流表项与数据包共同输出智能分流器,然后,解码分析服务器接收到数据包,能够根据匹配域中的标记直接了解到dns日志解析相关的信息,即可进行dns日志解构、索引入库、分析等动作。本实施方式提供的dns日志分析方法,只需在智能分流器中进行解析计算,并给数据包打上标记,而后续的解码分析服务器再根据标记关联dns日志解析相关的信息,进行dns日志解构、索引入库、分析,将本来需要在智能分流器和解码分析服务器中分别完成的两次大量的数据计算分析过程,简化为一次在智能分流器中数据计算分析,大大简化了dns日志的解析计算,提高了dns日志解析效率,同时节省了进行dns日志的解析计算产生大量的服务器资源占用,减少中间缓存和分析设备。优选地,在本实施方式提供的dns日志解析方法的步骤s2中,通过openflow的计量表统计与包含匹配域的流表项匹配的数据包。在openflow1.3版本中,扩展了计量表(metertable),metertable是由多个计量项(meterentry)构成的,用于关联的流表项,能够对匹配流表项的网络数据包执行服务质量(qos)策略。meterentry的具体结构如下:meteridentifiermeterbandscountersmeteridentifier:一个32位无符号整数,作为一个meterentry的唯一标识;meterbands:一个无序的meterband集合,每个meterband指明了带宽速率以及处理数据包的行为;counters:被该meterentry处理过的数据包的统计量。通过计量表(metertable)能够统计与包含匹配域的流表项匹配的数据包的相关数据,如与包含匹配域的流表项匹配的数据包总数、流量、时间、不同的标记分别对应的数据包数量、流量、时间等。进一步地,在本实施方式中,将openflow的计量表的计数日志与数据包共同输出智能分流器。即后续的解码分析服务器能够通过计数日志直接了解到与包含匹配域的流表项匹配的数据包的相关数据,如与包含匹配域的流表项匹配的数据包总数,不同的标记分别对应的数据包数量等,由此可以省略大量的dns解析计算直接生成相关的dns解析日志。优选地,在本发明的实施方式提供的dns日志分析方法的步骤s3中,通过流表项的动作在匹配域的可用字段中写入标记。根据openflow协议,所有openflow的流表项都被组织在不同的流表(flowtable)中,在同一个流表中按规则的优先级进行先后匹配。一个openflow的交换机至少包含一个可以包含多个流表,从0到n依次编号排列。openflow规范中定义了流水线式的处理流程,当数据包进入交换机后,必须从flowtable0开始依次匹配。流表可以使用goto语句按次序从小到大越级跳转,但不能从某一flowtable向前跳转至编号更小的flowtable。当数据包成功匹配一条流表项后,将首先更新该流表项对应的统计数据(又称计数器,如:成功匹配数据包总数目和总字节数等),然后根据规则流表项中的指令进行相应动作(action)。比如:跳转至后续某一flowtable继续处理,修改或者立即执行该数据包对应的动作(action)等。当数据包已经处于最后一个flowtable时,其对应的动作设定中的所有action将被执行,包括转发至某一端口,修改数据包某一字段,丢弃数据包等。其中,主要的动作(action)包括:output{port_no}:将网络数据包转发到指定的端口;group{group_id}:使用指定的group来处理网络包;drop:丢弃网络包;push-tag/pop-tagethertype:添加/去除协议标签;set-fieldfield_typevalue:修改数据包头。通过动作(action)将标记写入可用字段利用了openflow自身的规则,无需附加的动作和流程即可实现标记功能,使得标记动作方便完成的同时不会增加额外的动作或流量负担。优选地,在本实施方式中,匹配域中的可用字段包括vlanid字段、vlan优先级字段、mpls字段、mpls优先级字段、目标mac字段中的一种或多种。匹配域的结构如下表:mac:媒体存取控制位址,mpls:多协议标签交换,vlan:虚拟局域网。其中,vlanid字段、vlan优先级字段、mpls字段、mpls优先级字段、目标mac字段在智能分流器及之后的分析储存设备中已经不具备使用意义,因此覆盖这些字段不会对数据包后续的解析产生影响,可以对这些字段进行重用。另外,此处也可以采用其他的字段作为可用字段进行标记,只要能够保证覆盖可用字段不会对后续的解析存储等动作产生影响即可。在本发明的实施方式提供的dns日志分析方法中,标记包括对源ip地址、解析结果ip地址、解析域名中的一种或多种进行的编码。其编码的依据也可以是源ip地址、解析结果ip地址、解析域名相关的任意信息。如根据源ip地址相关的运营商、省市、区县,还有解析域名相关的应用、单位、特定库、类型、解析结果相关的类型idc、cdn、其他类型。由此,通过上述的标记和计数日志相结合,解码分析服务器无需进行大量的解析计算即可获得详细分类的dns解析结果,生成相应的dns日志,通过分析系统可由下表显示:此外,dns解析结果还可以通过分析系统以扇形图、折线图等形式清晰明了地将数据展现出来。统计表中的数据可以根据解析需求,进行增删,以获得用户理想的dns日志及解析结果统计。如图2所示,在本发明的实施方式中,还提供了一种dns日志分析系统1,包括智能分流器2,包括虚拟交换机模块;解码分析服务器3,与智能分流器2连接;上述的dns日志分析系统能够执行:步骤s1,定义一个匹配域,并将包含匹配域的流表项插入流表中;步骤s2,数据包输入智能分流器后,统计与包含匹配域的流表项匹配的数据包;步骤s3,在匹配域的可用字段中写入标记;步骤s4,将匹配域的可用字段中写入了标记的流表项与数据包共同输出智能分流器;步骤s5,解码分析服务器根据匹配域中的标记,解析数据包并生成dns日志。在上述的dns日志分析系统1中,智能分流器2执行步骤s1-s4,定义一个匹配域,数据包在智能分流器2中进行解析计算,并给数据包打上标记,后续的解码分析服务器3执行步骤s5,根据标记进行dns日志解构、索引入库、分析。由此,将需要分别在智能分流器2和解码分析服务器3中进行两次大量的数据计算分析过程,简化为一次在智能分流器2中数据计算分析,大大简化了dns日志的解析计算步骤,提高了dns日志解析效率,同时节省了进行dns日志的解析计算产生大量的服务器资源占用,减少中间缓存和分析设备。另外,在dns日志分析系统1实际应用中,根据数据的解析要求,智能分流器2和解码分析服务器3之间还可能连接有其他缓存和分析设备,只要智能分流器2和解码分析服务器3之间的连接前后顺序保持智能分流器2在解码分析服务器3之前即可。在本发明的实施方式中还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的dns日志分析方法的步骤。至此,已经结合附图描述了本发明的技术方案。但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于上述具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1