发明内容
本发明要解决的技术问题是针对目前并行接入的高速骨干网络流量监控方法不能对网络流量进行实时管控的缺点,提供一种串行接入的高速骨干网络流量采集与监控方法。本发明在现有并行流量处理通道的基础上添加串行处理通道,形成串行处理通道和并行处理通道协同对网络流量进行采集和监控的方法。并行处理通道进行数据采集和深度的流量分析,串行处理通道对网络流量进行实时的控制,并行处理通道向串行处理通道实时上传流量控制规则,发现有害信息时可对网络数据流进行实时的控制。
本发明技术方案是:
第一步,改进输入卡,输入卡中增加报文复制模块、串行处理通道,在并行处理通道中增加第二采样模块。报文复制模块与受监控的高速骨干网相连,将从受监控高速骨干网过来的报文复制一份,将进来的报文送入串行处理通道,将复制的报文送入并行处理通道。串行处理通道由流模块和第一采样模块组成。流模块与报文复制模块、第一采样模块及受监控高速骨干网相连,流模块是一个控制逻辑,决定对某条流的报文阻断、全部输出或者采样输出。第一采样模块与流模块、交换控制卡及受监控高速骨干网相连,采用第一采样算法对从流模块传来的报文执行报文阻断或采样输出。并行处理通道由五元组加关键字模块和第二采样模块组成,五元组加关键字模块与报文复制模块相连,该模块对从报文复制模块来的报文进行规则匹配,确定将报文丢弃还是转发给第二采样模块。第二采样模块与五元组加关键字模块和交换控制卡相连,采用第二采样算法对从五元组加关键字模块来的报文进行丢弃或采样输出到交换控制卡。
流模块由流控制单元、流规则表及流业务统计表组成。流规则表与流业务统计表都与流控制单元相连,流规则表表项个数N根据存储空间大小确定,每一个表项即是一条流规则,流规则由规则ID、业务ID、信息域和处理域组成,信息域包括源IP(sip)、目的IP(dip)、源端口(sport)、目的端口(dport)、协议(pro),这五个元素简称为fiveEle,处理域指抽样粒度(samRate),即对某条流的报文抽样的比例。这个表不由控制软件进行配置,而是当五元组加关键字模块匹配某条五元组加关键字规则成功且该五元组加关键字规则要求生成流规则时,由五元组加关键字模块根据该五元组加关键字规则内容添加一条流规则。
流业务统计表表项个数M根据受监控高速骨干网络业务种类确定,即M等于业务种类,该表包括业务ID(proId)和报文数(packets)两个域(proId指每类业务的ID号,packets指属于此类业务的报文数)。proId由控制软件按递增的顺序初始化,报文数由流控制单元填写。
流控制单元由第一取信息模块、第一改报文头模块及第一更新统计模块组成,第一取信息模块与报文复制模块、流规则表、第一改报文头模块、第一更新统计模块及受监控高速骨干网相连;第一改报文头模块与第一取信息模块及第一采样模块相连;第一更新统计模块与第一取信息模块及流业务统计表相连。第一取信息模块从报文复制模块获得报文后,先提取报文的fiveEle,将fiveEle与流规则表中的流规则逐条进行匹配(匹配顺序根据规则ID定,ID号越小优先级越高),如果fiveEle与流规则表某个表项信息域sip、dip、sport、dport、pro一致,则报文匹配成功,第一取信息模块提取该表项业务ID及处理域samRate,将报文和samRate发送给第一改报文头模块,将业务ID发送给第一更新统计模块。第一更新统计模块根据业务ID号查找流业务统计表的proId,当proId等于业务ID时,更新流业务统计表中该表项的packets;第一改报文头模块修改报文头部信息,将samRate加到报文头部,并将加了samRate的报文发送给第一采样模块。如果第一取信息模块提取报文fiveEle后没有与流规则表匹配成功,则将该报文直接输出到受监控高速骨干网络。
输入卡串行处理通道的第一采样模块是一个采样控制逻辑,第一采样模块从流模块接收添加了samRate的报文,提取samRate,根据samRate对报文采取控制,方法是:如果samRate为0,则阻断报文即报文不再往后发送;如果samRate为15,则发送报文;如果samRate大于0且小于15,则提取报文IP头的ID(ID为16位的IP头标识符),取ID的最低四位(ID_low4),如果ID_low4小于samRate,则发送报文,否则,阻断该报文。
输入卡并行处理通道的五元组加关键字模块也进行了改进,五元组加关键字模块由控制逻辑、五元组加关键字规则表及五元组加关键字业务统计表组成,五元组加关键字规则表与五元组加关键字业务统计表都与控制逻辑相连。控制逻辑由第二取信息模块、第二改报文头模块及第二更新统计模块组成,第二取信息模块与报文复制模块、五元组加关键字规则表、第二改报文头模块、第二更新统计模块相连;第二改报文头模块与第二取信息模块及第二采样模块相连;第二更新统计模块与第二取信息模块及五元组加关键字业务统计表相连。五元组加关键字规则表每一个表项是一条五元组加关键字规则,五元组加关键字规则由规则ID、业务ID、信息段和处理段四个域组成,规则ID、业务ID与流规则中的规则ID、业务ID一样,信息段包括sip、dip、sport、dport、pro(fiveEle)和关键字(sig,即报文内容最前面前16个字节),处理段包括流标志(stream)、抽样粒度(samRate)、MAC索引(macInd)、转发端口(port)、转发卡号(card)五项内容,五元组加关键字规则表通过交换控制卡上的控制软件配置。第二取信息模块将报文fiveEle和sig提取后与五元组加关键字规则表进行匹配,若匹配规则成功,第二更新业务统计模块根据业务ID更新五元组加关键字业务统计表;第二改报文头模块将该规则的samRate、macInd、port、card全部加在报文头部,并将修改了头部的报文发送给第二采样模块,第二采样模块逻辑结构与串行通道的第一采样模块相同。若匹配不成功,第二取信息模块将该报文丢弃。
第二步,修改交换控制卡中控制软件的初始化输入卡程序,修改前的初始化输入卡程序仅对五元组加关键字规则表进行初始化:将每一条规则的源IP、目的IP、源端口、目的端口、协议、关键字全部填写一个默认值,将每一条规则中的报文的处理方法设置为丢弃。修改后的初始化输入卡程序流程如下:
2.1初始化五元组加关键字规则表,五元组加关键字规则表中每条规则添加stream和samRate两项,stream初始化为0,即不产生流规则;samRate也初始化为0,即报文处理方法为丢弃。信息段和处理段其它内容也初始化一个默认值,当配置新的规则时,这些数据将被改变。
2.2初始化五元组加关键字业务统计表,proId初始化为从0开始依次递增,packets初始化为0。
2.3初始化流规则表,所有规则的samRate值设置为15,即默认报文处理方法为输出;fiveEle初始化值跟五元组加关键字规则表一样。
2.4初始化流业务统计表,proId初始化为从0开始依次递增,packets初始化为0。
第三步,由输入卡和交换控制卡对核心骨干网流量进行采集与监控,方法如下:
3.1由交换控制卡的控制软件对流量采集与监控系统所有卡进行初始化。
3.2由控制软件对五元组加关键字规则表添加五元组加关键字规则,根据实际被监控高速骨干网络的IP、端口、协议等信息,控制软件配置多条五元组加关键字规则。
3.3输入卡的报文复制模块从受监控的核心骨干网高速链路上截获原始报文,将报文复制一份,将原始报文送入串行处理通道,将复制的报文送入并行处理通道。
3.4串行处理通道的流模块对收到的原始报文进行流规则匹配,将原始报文与流规则表进行匹配,如果匹配成功,流模块的流控制单元提取该表项处理域处理方法(只有samRate)及业务ID,根据业务ID查找流业务统计表的proId,找到与业务ID相同的proId后更新此表项packets,并修改报文头部信息,将samRate加入报文头部,发送给第一采样模块。具体过程如下:
3.4.1:当报文进入流模块后,流控制单元的第一取信息模块从报文中提取fiveEle,令i初始值为-1。
3.4.2:i=i+1,第一取信息模块将fiveEle与流规则表规则ID为i的表项进行匹配,如果fiveEle与这条规则的信息域sip、dip、sport、dport、pro相同,则匹配成功,进入3.4.3;匹配不成功时,如果i=65535,则转3.4.8,否则执行3.4.2。
3.4.3:第一取信息模块根据匹配成功的规则ID号读取该条规则业务ID及处理域samRate。
3.4.4:第一更新统计模块根据业务ID查找流业务统计表的proId,当某个表项的proId等于业务ID时,则更新此表项packets,将此表项packets加1。
3.4.5:第一改报文头模块修改报文头部信息,将samRate加入报文头部,然后将加了samRate的报文发送到第一采样模块。
3.4.6:第一采样模块从报文头部提取samRate,如果samRate=0,则阻断此报文;如果samRate=15,则发送报文;如果0<samRate<15,则使用第一采样算法对该报文进行处理,过程如下:
3.4.6.1第一采样模块提取当前报文IP头ID,ID为16bit,取ID的最低4bit值ID_low4。
3.4.6.2将ID_low4与samRate进行比较,如果ID_low4小于samRate,则发送报文到受监控高速骨干链路,否则阻断报文。
3.4.7:转3.4.9。
3.4.8:流控制单元的第一取信息模块将报文直接发送到高速骨干网。
3.4.9:串行处理通道完成规则匹配及报文处理。
3.5并行处理通道的五元组加关键字模块对报文进行如下处理:
3.5.1:五元组加关键字模块控制逻辑的第二取信息模块从输入的报文中提取fiveEle和报文内容最前面前16个字节sig,令i初始值为-1。
3.5.2:i=i+1,第二取信息模块将fiveEle和sig与五元组加关键字规则表规则ID为i的表项进行匹配,如果fiveEle和sig与规则ID为i的规则的信息段sip、dip、sport、dporr、pro、sig对应内容都相同,则匹配成功,进入3.5.3;匹配不成功时,如果i=65535,则转3.5.8,否则执行3.5.2。
3.5.3:第二取信息模块根据匹配成功的规则ID号读取该条规则业务ID及处理段stream、samRate、macInd、port及card,如果stream=1,则从这条规则中提取fiveEle信息和samRate添加一条流规则到流规则表,此条流规则ID由已有流规则数目决定,若已经添加k条流规则(规则ID为0~k-1),则此条流规则ID为k,k为正整数。
3.5.4:第二更新统计模块根据第二取信息模块读取的业务ID查找五元组加关键字业务统计表的proId,当某个表项的proId等于业务ID时,则更新此表项packets,将此表项packets加1。
3.5.5:控制逻辑的第二修改报文头模块修改报文头部信息,将samRate、macInd、port、card加入报文头部,然后将修改之后的报文发送到第二采样模块。
3.5.6:第二采样模块提取报文头部samRate、macInd、port和card,如果samRate=0,则丢弃此报文;如果samRate=15,则将报文发送给交换控制卡,该报文将从卡号为card且端口号为port的输出卡输出到编号为macInd的后端分析系统;如果0<samRate<15,则使用第二采样算法对该报文进行处理,过程如下:
3.5.6.1第二采样模块提取当前报文IP头ID,ID为16bit,取ID的最低4bit值ID_low4。
3.5.6.2将ID_low4与samRate进行比较,如果ID_low4小于samRate,则发送报文到交换控制卡,该报文将从卡号为card且端口号为port的输出卡输出到编号为macInd的后端分析系统,如果ID_low4大于samRate,则丢弃此报文。
3.5.7:进入3.5.8。
3.5.8:控制逻辑的第二取信息模块将报文丢弃。
3.5.9:并行处理通道完成规则匹配及报文处理。
采用本发明可以达到以下技术效果:
(1)由于修改后的输入卡具有串行处理通道和并行处理通道,使得输入卡既以高性能的串行方式接入高速骨干网络,又以高可靠的并行方式接入高速骨干网络,串行处理通道能够高效、实时地对高速网络流量进行监控,并行处理通道在监控报文的同时能够将流量送到后端分析系统。
(2)修改后输入卡的五元组加关键字模块在报文匹配成功且要求产生流规则时能够向流模块上传流规则,流模块能实现精确的基于五元组的业务监控,一旦出现有害报文,能立即阻止其传播。
(3)流模块和第一采样模块支持报文直接输出、阻断、业务统计、采样输出等丰富的监控手段,使得对受监控高速骨干网络的控制能力更强。
具体实施方式
图1是背景技术所述现有的高速网络流量监控系统总体结构图。该系统由输入卡、交换控制卡、输出卡和后端分析系统组成。输入卡由并行处理通道组成,并行处理通道的核心是五元组加关键字模块,五元组加关键字模块与分光器相连,利用分光器从高速链路分光,将受监控高速骨干网流量以并行方式接入到监控系统;并行处理通道通过五元组加关键字模块对报文进行规则匹配、根据匹配结果决定将报文丢弃还是输出到后端系统;输出到后端系统的报文由交换控制卡完成输入卡到输出卡之间的流量转发;交换控制卡运行控制软件,由控制软件对输入卡、输出卡各模块进行配置与控制;输出卡从交换控制卡接收报文,将报文发送到后端分析系统进行进一步的分析与处理。
图2是本发明总体流程图。本发明包括以下三步:第一步,改进输入卡;第二步,修改控制软件的初始化输入卡程序;第三步,输入卡交换控制卡对核心骨干网流量进行采集与监控。
图3是本发明第一步设计的高速网络流量监控系统总体结构图。高速网络流量监控系统由输入卡、交换控制卡、输出卡和后端分析系统组成,输入卡由报文复制模块、串行处理通道和并行处理通道组成。报文复制模块与受监控的高速骨干网相连,将从受监控高速骨干网过来的报文复制一份,将进来的报文送入串行处理通道,将复制的报文送入并行处理通道。串行处理通道由流模块和第一采样模块组成。流模块与报文复制模块、第一采样模块及受监控高速骨干网相连,流模块是一个控制逻辑,决定对某条流的报文阻断、全部输出或者采样输出。第一采样模块与流模块、交换控制卡及受监控高速骨干网相连,采用第一采样算法对从流模块传来的报文执行报文阻断或采样输出。并行处理通道由五元组加关键字模块和第二采样模块组成,五元组加关键字模块与报文复制模块相连,该模块对从报文复制模块来的报文进行深度规则匹配,确定将报文丢弃还是转发给第二采样模块。第二采样模块与五元组加关键字模块和交换控制卡相连,采用第二采样算法对从五元组加关键字模块来的报文进行丢弃或采样输出到交换控制卡。交换控制卡用于完成流量的聚合,可以将输入报文转发到规则指定的输出卡;输出卡根据后端分析系统的负载能力进行负载均衡,将交换控制卡发送过来的报文输出至后端分析系统。
图4是本发明输入卡串行处理通道流模块逻辑结构图。流模块由流控制单元、流规则表及流业务统计表组成,流规则表与流业务统计表都与流控制单元相连。流控制单元由第一取信息模块、第一改报文头模块及第一更新统计模块组成,第一取信息模块与报文复制模块、流规则表、第一改报文头模块、第一更新统计模块及受监控高速骨干网相连;第一改报文头模块与第一取信息模块及第一采样模块相连;第一更新统计模块与第一取信息模块及流业务统计表相连。
图5是本发明第一采样模块决定报文去向流程图。第一采样模块是一个采样控制逻辑,第一采样模块从流模块接收添加了samRate的报文,提取samRate,如果samRate为0,则阻断报文即报文不再往后发送;如果samRate为15,则发送报文;如果samRate大于0且小于15,则提取报文IP头的ID(ID为16位的IP头标识符),取ID的最低四位ID_low4,如果ID_low4小于samRate,则发送报文,否则,阻断该报文。
图6是本发明输入卡并行处理通道五元组加关键字模块逻辑结构图。五元组加关键字模块由控制逻辑、五元组加关键字规则表及五元组加关键字业务统计表组成,五元组加关键字规则表与五元组加关键字业务统计表都与控制逻辑相连。控制逻辑由第二取信息模块、第二改报文头模块及第二更新统计模块组成,第二取信息模块与报文复制模块、五元组加关键字规则表、第二改报文头模块、第二更新统计模块相连;第二改报文头模块与第二取信息模块及第二采样模块相连;第二更新统计模块与第二取信息模块及五元组加关键字业务统计表相连。
图7是本发明控制软件初始化输入卡程序修改前后流程图。修改前的初始化输入卡仅对五元组加关键字规则表进行初始化。修改后初始化输入卡分为以下四步:第一步,初始化五元组加关键字规则表;第二步,初始化五元组加关键字业务统计表;第三步,初始化流规则表;第四步,初始化流业务统计表。
图8是本发明第三步3.3-3.5对核心骨干网流量进行规则匹配及报文处理的流程图。输入卡的报文复制模块从受监控的核心骨干网高速链路上截获原始报文,将报文复制一份,将原始报文送入串行处理通道,将复制的报文送入并行处理通道。串行处理通道的流模块对收到的原始报文提取fiveEle并进行流规则匹配,如果匹配成功,流模块的流控制单元提取该表项处理域处理方法(只有samRate)及业务ID,根据业务ID查找流业务统计表的proId,找到与业务ID相同的proId后更新此表项packets,并修改报文头部信息,将samRate加入报文头部,发送给第一采样模块,第一采样模块决定报文输出或阻断。并行处理通道的五元组加关键字模块提取报文fiveEle和sig并对报文进行五元组加关键字规则匹配,如果匹配成功,提取业务ID及处理域数据,并更新五元组加关键字业务统计表,修改报文头部信息后发送给第二采样模块进行进一步的处理,如果stream=1,则从这条规则中提取fiveEle信息和samRate添加一条流规则到流规则表。
图9是国防科大采用本发明设计的高速网络内容监控系统的一个实例:
第一步,改进输入卡,在本发明中,输入卡使用的是OC768(40G)线卡,OC768线卡串行处理通道的流模块和第一采样模块的控制逻辑由一块FPGA实现,流业务统计表存储在FPGA里面,流规则表存储在一个TCAM(Ternary Content Addressable Memory,称为三态内容寻址存储器)和一个SRAM(Static Random Access Memory,静态随机访问存储器)里面;并行处理通道的五元组加关键字模块和第二采样模块的控制逻辑也由一块FPGA实现,五元组加关键字业务统计表存储在FPGA里面,五元组加关键字规则表存储在一个TCAM和一个SRAM里面。交换控制卡的控制软件用C语言在linux操作系统环境下实现。
第二步,修改交换控制卡中控制软件的初始化输入卡程序,修改后利用控制软件对输入卡进行初始化:五元组加关键字规则表每条规则初始化为丢弃报文,五元组加关键字业务统计表每个表项的packets初始化为0;流规则表的每条规则初始化为输出报文,流业务统计表每个表项的packets初始化为0。
第三步,由输入卡和交换控制卡对核心骨干网流量进行采集与监控,方法如下:
3.1由交换控制卡的控制软件对流量采集与监控系统所有卡进行初始化。
3.2由控制软件对五元组加关键字规则表添加五元组加关键字规则,根据实际被监控高速骨干网络的IP、端口、协议等信息,控制软件配置多条五元组加关键字规则。
3.3输入卡的报文复制模块从受监控的核心骨干网高速链路上截获原始报文,将报文复制一份,将原始报文送入串行处理通道,将复制的报文送入并行处理通道。
3.4串行处理通道的流模块对收到的原始报文进行流规则匹配,将原始报文与流规则表进行匹配,如果匹配成功,流模块的流控制单元提取该表项samRate及业务ID,根据业务ID查找流业务统计表的proId,找到与业务ID相同的proId后将此表项packets加1,并将samRate加入报文头部,发送给第一采样模块。第一采样模块从流模块接收报文,提取samRate,如果samRate为0,则阻断报文;如果samRate为15,则发送报文;如果samRate大于0且小于15,则提取报文IP头的ID(ID为16位的IP头标识符),取ID的最低四位ID_low4,如果ID_low4小于samRate,则发送报文,否则,阻断该报文。
3.5并行处理通道的五元组加关键字模块对报文进行五元组加关键字规则匹配,如果匹配成功,五元组加关键字模块的控制逻辑提取该条规则处理段内容及业务ID,将五元组加关键字业务统计表对应项的packets加1,然后将samRate、macInd、port和card加入报文头部发送给第二采样模块,第二采样模块采用第二采样算法执行报文丢弃或发送到交换控制卡。