本发明专利技术提供了一种层级可扩展的云网络流分析方法及系统,包括:步骤S1:构建按层级的网络流Flow分析结构,并初始化构建的各层级的Flow分析维度信息;步骤S2:将数据包解析为链式层级信息;步骤S3:链式层级信息按层级进行流分析,生成每个层级的流分析结果Flow Record,并进行全局存储。并进行全局存储。并进行全局存储。
【技术实现步骤摘要】
层级可扩展的云网络流分析方法及系统
[0001]本专利技术涉及网络流分析
,具体地,涉及层级可扩展的云网络流分析方法及系统。
技术介绍
[0002]网络流分析是网络分析管理中常用的手段。这种方法首先基于网络数据包(也称为“网络报文”或者“报文”)的五元组和其他所选字段,建立网络流(Flow)。然后按Flow,对数据包进行分组,基于Flow做个各种数据统计和分析。最后,按Flow,组织数据结构输出数据。常见的Netflow和Ipfix是这种技术的典型代表。
[0003]随着容器技术和云技术日趋成熟,被广泛采用,网络架构也日益复杂,出现了多层级(tier)网络,也就是基于底层网络(underlay网络)承载上层网络(overlay网络)的部署方式。underlay网络和overlay网络可以是完全不同的IP地址布局。常见的层级有物理网络、(软件定义的)虚拟机网络、(Kubernetes等技术构建的)容器网络等三个层级,所以有物理网络承载虚拟机网络、虚拟机网络承载容器网络、物理网络承载容器网络等不同的两层级或者三层级的承载方式。承载一般使用VXLAN、GRE、IPinIP等隧道技术来实现。如图1所示使用VXLAN隧道封装的数据包。其中内层(inner)“原始数据包”是被封装的数据包,也就是overlay网络数据包,外层(outer)VXLAN封装数据包是underlay网络数据包。使用不同的隧道技术,报文格式会有所不同,但同样都有内层overlay和外层underlay两个层级。这是一个两层级报文的例子,三层级就是在两层级报文上再封装一个层级。两层级或三层级方式主要在是一个数据中心内的部署方式。如果是“端边云”的复杂分布式环境,或者多地多中心环境,或者基于隧道的采集转发场景,那么层级可能还会增加。
[0004]传统的网络流分析方法,实际上是一种宽表的分析方法。宽表可以是扁平结构,使用Key和Value表示的字段集合,Netflow采用这种方式。宽表也可以是嵌套结构,譬如按协议来嵌套组织信息;但实际上,这种方法可以将嵌套结构展开为唯一的Key,譬如使用“.”来连接嵌套结构的字段名(Json Object的结构读取方式)。所以,两种结构实际上都是一系列字段的集合,而将嵌套结构展开的结构可以形象地称为“大宽表”。对于这些Flow的字段信息,虽然不同方法的表述可能不同,但实际都可以将其分为两类:
[0005]第一类:维度信息(Dimension),用于定义Flow和区别不同Flow的信息,包括(但不限于)五元组(IP地址、IP层协议、传输层端口)、VLAN ID、MPLS Tag、GRE Key、VXLAN、IPv4 Tos、IPv6 Priority/Traffic class等。使用这些信息可以区分不同的TCP会话,或者区分不同的IP主机通信等。
[0006]第二类:度量信息(Measure),按Flow计算和统计获得的各种Flow的相关数据数值,譬如报文总数、字节总数、传输速率、交易量、响应率、成功率、响应时间等等。
[0007]网络流分析实际上就是按一组选定的Dimensions将数据包分组到不同的Flow中,然后计算和统计各种Measures。这组选定用于划分Flow的Dimens ions,称为Flow Key。
[0008]传统的网络流分析因为宽表设计,在云网络环境中有以下几个缺陷。
[0009]第一个缺陷是层级增加带来的扩展性问题。当使用两层级网络时,实际增加几乎一倍的Dimens ions(outer中基本的Dimensions都有了),增加了1/4~1/3的Measures(outer中没有TCP和TCP之上信息,只有相关协议的Measures)。如果增加层级时,Dimensions和Measures会进一步增加。需要指出的是,网络环境中的层级往往是不固定的,如果三层级网路,那么可能同时存在一个层级到三个层级的报文。这时候如何设计宽表存储Dimension和Measure是个巨大的挑战:如果按最大层级,设计包含所有Dimensions和Measures的“大宽表”,那么对于没达到最大层的报文来说,存在大量的空字段的浪费;如果只按一层级设计,那么没有明显浪费,但对于多层级报文,只能分析某一个层级的网络Flow,缺失其他层级的Flow。一种实际的方法是以最内层的Dimens ions和Measures为主,固定增加若干外层Dimens ions和Measures。如果没有外层,那么增加的存储为空字段。如果有外层,则处理外层的Dimensions和Measures。如果有多个外层,则按配置选某一层(譬如最外层,譬如最内的外层)做处理。显然这种方法是个例化的处理,没有通用性:对于Dimens ions和Measures都需要指定,而且不同层级的数据的计算和处理存在关联性。而对整个网络来说,underlay网络的Flow是大量缺失的,不能全面覆盖物理underlay网络和虚拟机underlay网络。
[0010]上述方法还有第二个缺陷,维度爆炸问题。Dimens ion区别于Measure的一个重要方面是:Dimension作为Flow的分组依据(Flow Key),实际决定了数据的存储量。每增加一个Dimension,实际上增加了更精细的数据视角,需要使用更多的宽表中的“行”来存储数据。譬如使用IP Pair(IP地址对)作为Flow来统计主机A和B之间的通信,那么只需要1行记录。但如果增加A的端口作为Flow Key的组成部分,而A有10个端口参与通信,那么就需要10行记录。如果再增加B的端口也作为Flow Key的组成部分,B也有10个端口参与,和A的10个端口进行交叉通讯,那么就需要100行记录了。由此可见,随着维度的增加,维度空间的规模(随着维度可取值的数量)呈指数增加,实际上就是维度的“笛卡尔积”。那么基于宽表设计,增加外层的若干Dimensions作为Flow Key的组成部分,产生数据行数将急剧膨胀。如果实际需要增加若个外层的若干Dimensions,那么内存开销和存储开销都将急剧上升。
[0011]是否能仅仅对最内层做Flow分析,而忽略各外层的维度来回避这个问题呢?实际在云网Flow分析中,答案是否定的。这是由于云网络尤其灵活和复杂,最需要分析的就是数据报文如何在不同层级的网络和网络设备间流转和传输,以监控各层级网络的运行状态,所以,云网Flow分析不但需要underlay的维度,而且最好是对每一层的underlay都做Flow分析。所以,因为扩展性问题和维度爆炸问题,
[0012]基于宽表设计的第三个缺陷是数据处理的复杂性问题。因为不同层级的数据存储在一行中,此时的Flow Key可以认为是跨层级的维度(Inter
‑
tier Dimens ions)。但实际使用还是要回到不同的层级来分析数据,譬如分析三个层级(络物理网络、虚拟机网络,或者容器网络)网络中的某一个,也就是Inner
‑
tier Dimensio本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种层级可扩展的云网络流分析方法,其特征在于,包括:步骤S1:构建按层级的网络流Flow分析结构,并初始化构建的各层级的Flow分析维度信息;步骤S2:将数据报文解析为链式层级信息;步骤S3:链式层级信息按层级进行流分析,生成每个层级的流分析结果Flow Record,并进行全局存储。2.根据权利要求1所述的层级可扩展的云网络流分析方法,其特征在于,所述步骤S1采用:对于多层级报文,设置每一层级的Flow Key,以满足分析需求并将报文分组。3.根据权利要求1所述的层级可扩展的云网络流分析方法,其特征在于,所述步骤S2采用:对数据报文进行数据解码,并将其组成层级信息链表。4.根据权利要求1所述的层级可扩展的云网络流分析方法,其特征在于,所述流分析结果Flow Record中包含作为唯一标识Flow ID;所述Flow ID是根据Flow Key计算得到的唯一标识。5.根据权利要求1所述的层级可扩展的云网络流分析方法,其特征在于,使用Outer Flow ID或inner Flow ID将同一数据包的不同层级的Flow Record进行关联。6.一种...
【专利技术属性】
技术研发人员:蔡晓华,杨光辉,
申请(专利权)人:上海天旦网络科技发展有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。