CN106972985B - 加速dpi设备数据处理与转发的方法和dpi设备 - Google Patents
加速dpi设备数据处理与转发的方法和dpi设备 Download PDFInfo
- Publication number
- CN106972985B CN106972985B CN201710195805.XA CN201710195805A CN106972985B CN 106972985 B CN106972985 B CN 106972985B CN 201710195805 A CN201710195805 A CN 201710195805A CN 106972985 B CN106972985 B CN 106972985B
- Authority
- CN
- China
- Prior art keywords
- flow
- message
- received
- traffic
- forwarding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/23—Bit dropping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
Abstract
本发明公开了一种加速DPI设备数据处理与转发的方法和DPI设备,所述方法包括以下步骤:将接收到的流量均匀的分散到多个流量识别分类处理模块;每一个流量识别分类处理模块根据各自所接收到的流量进行协议检测,并更新连接跟踪信息;根据预设的访问控制列表将经过流量识别分类处理模块处理后的流量进行过滤;将过滤后的流量经过限速和整形处理后进行转发。本发明的技术方案克服了现有技术提到的各种技术缺陷,对数据处理与转发速度有显著的提升。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种加速DPI设备数据处理与转发的方法和DPI设备。
背景技术
近年来,网络发展越来越迅速,网络的规模不断扩大,网络的用户数不断增加,网络提供的应用和业务种类不断丰富,网络也变得越来越复杂。网络新业务层出不穷,有P2P、VoIP、流媒体、Web TV、音视频聊天、互动在线游戏和虚拟现实等。新业务的数据流量是相当巨大,在很大程度上加重了网络拥塞,降低了网络性能,劣化了网络服务质量,妨碍了正常的网络业务的开展和关键应用的普及。
完善网络的运维管理仅仅是网络需求的一方面。随着大数据相关技术越来越受到关注,网络中的大数据蕴含的重大价值如何被充分挖掘出来也需要深入研究,这也提出了如何将网络中的大数据采集上来并很好的分门别类,从而方便在线分析和数据挖掘。深度包检测(Deep Packet Inspection,DPI)是解决上述问题和满足上述需求的基础技术。DPI技术基于二层到七层网络协议的分析,能够实现对网络中数据的精确感知,从而做到对网络现状的精确把握。
当前DPI主要使用专有的硬件设备,价格昂贵,这不便于升级与扩展,而通用设备则支持快速的升级与扩展但在性能上会有较大的下降。如何在通用平台上增强DPI设备的数据处理与转发能力便显得尤为重要。
目前,现有DPI设备软件架构传统实现通常是将报文传给网卡,再送到内核netfilter模块处理,有的甚至需要把报文传递到TCP/IP上层协议处理,最后再将报文转发出去。整个过程要经历CPU中断处理、网络协议栈、内核上下文切换等多个费时的CPU操作和I/O处理环节,由此导致数据处理与转发速度降低,影响设备处理效率。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种加速深度包检测设备数据处理与转发的方法和深度包检测设备。所述技术方案如下:
一方面,一种加速深度包检测设备数据处理与转发的方法,包括以下步骤:
将接收到的流量均匀的分散到多个流量识别分类处理模块;
每一个流量识别分类处理模块根据各自所接收到的流量进行协议检测,并更新连接跟踪信息;
将经过协议检测后的流量进行转发。
进一步的,所述深度包检测设备至少包括第一网卡和第二网卡,其中,所述将接收到的流量均匀的分散到多个流量识别分类处理模块的步骤具体包括:
判断流量是从所述第一网卡接收到还是从所述第二网卡接收到;
如果流量是从所述第一网卡接收到,则确定接收到的流量为上行流量,并根据流量中报文的源IP地址或者源MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块;
如果流量是从所述第二网卡接收到,则确定接收到的流量为下行流量,并根据流量中报文的目的IP地址或者目的MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块。
进一步的,所述每一个流量识别分类处理模块根据各自所接收到的流量进行协议检测,并更新连接跟踪信息的步骤具体包括:
提取流量中报文的唯一标识;
根据所述唯一标识判断该报文是否属于已有的连接跟踪;
如果该报文不是属于已有的连接跟踪,则以该报文的唯一标识为键值为该报文创建新的连接跟踪,并进行协议检测,以及记录检测到的连接跟踪信息。
进一步的,所述每一个流量识别分类处理模块根据各自所接收到的流量进行协议检测,并更新连接跟踪信息的步骤具体还包括:
如果该报文属于已有的连接跟踪,则判断该报文所属的连接跟踪是否完成协议检测;
如果没有完成协议检测,则进行协议检测;
如果完成了协议检测,则更新该报文所属的连接跟踪信息。
进一步的,所述将经过协议检测后的流量进行转发的步骤包括:
根据预设的访问控制列表将经过流量识别分类处理模块处理后的流量进行过滤;
将过滤后的流量经过限速和整形处理后进行转发。
进一步的,所述将过滤后的流量经过限速和整形处理后进行转发的步骤具体包括:
将过滤后的上行流量经过限速和整形处理后通过所述第二网卡进行转发;
或者将过滤后的下行流量经过限速和整形处理后通过所述第一网卡进行转发。
进一步的,所述加速深度包检测设备设有多核CPU,所述每个流量识别分类处理模块通过任务绑定到每个CPU核上。
进一步的,采用轮询模式接收和转发报文,并且不同的CPU核与核之间通过共享内存方式进行通信。
进一步的,且加速深度包检测设备的内存采用大页内存管理方式。
进一步的,所述方法还包括以下步骤:
对于已经深度检测多个报文仍然无法确定协议类型的数据连接,则放弃该条数据连接的检测。
另一方面,一种深度包检测设备,包括负载均衡模块、访问控制模块、QOS模块和多个流量识别分类处理模块,其中,
所述负载均衡模块,用于将接收到的流量均匀的分散到多个流量识别分类处理模块;
每一个流量识别分类处理模块,用于根据各自所接收到的流量进行协议检测,并更新连接跟踪信息;
所述访问控制模块,用于根据预设的访问控制列表将经过流量识别分类处理模块处理后的流量进行过滤;
所述QOS模块,用于将过滤后的流量经过限速和整形处理后进行转发。
进一步的,所述深度包检测设备至少包括第一网卡和第二网卡,其中,所述负载均衡模块具体用于:
判断流量是从所述第一网卡接收到还是从所述第二网卡接收到;
如果流量是从所述第一网卡接收到,则确定接收到的流量为上行流量,并根据流量中报文的源IP地址或者源MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块。
进一步的,所述负载均衡模块具体还用于:
如果流量是从所述第二网卡接收到,则确定接收到的流量为下行流量,并根据流量中报文的目的IP地址或者目的MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块。
进一步的,每一个流量识别分类处理模块,具体用于:
提取流量中报文的唯一标识;
根据所述唯一标识判断该报文是否属于已有的连接跟踪;
如果该报文不是属于已有的连接跟踪,则以该报文的唯一标识为键值为该报文创建新的连接跟踪,并进行协议检测,以及记录检测到的连接跟踪信息。
进一步的,每一个流量识别分类处理模块,具体还用于:
如果该报文属于已有的连接跟踪,则判断该报文所属的连接跟踪是否完成协议检测;
如果没有完成协议检测,则进行协议检测;
如果完成了协议检测,则更新该报文所属的连接跟踪信息。
进一步的,所述访问控制列表包括白名单访问控制列表或者黑名单访问控制列表,其中,所述访问控制模块,具体用于:
将流量中与预设白名单访问控制列表相符的报文转发,将流量中与预设白名单访问控制列表不相符的报文丢弃;
或者将流量中与预设黑名单访问控制列表相符的报文丢弃,将流量中与预设黑名单访问控制列表不相符的报文转发。
进一步的,所述QOS模块,具体用于:
将过滤后的上行流量经过限速和整形处理后通过所述第二网卡进行转发;
或者将过滤后的下行流量经过限速和整形处理后通过所述第一网卡进行转发。
本发明实施例提供的技术方案带来的有益效果包括:(1)通过绑定任务到多个CPU上,并行执行以提升效率,不同的业务在相互独立的CPU上面处理,业务之间互不干扰,不会抢占CPU,从而也可以充分利用每一个CPU核的资源,同时本发明还可以定制一些业务,如流量数据收集业务、系统日志业务、流量控制业务、流量异常提醒等;(2)根据报文的连接跟踪信息判断报文是否需要协议深度检测,还是进入下一步处理,对已完成检测的报文不需要重新检测,从而减少了冗余处理。使用连接跟踪表来记录连接状态,大部分数据连接仅需检测连接的控制报文或首包,从而减少了处理时间;(3)使用hugepage,即大页内存管理方式,与传统的4kb的普通页管理方式相比,本发明使用HugePage为管理大内存(例如8GB以上)更高效、更稳定;(4)本发明采用轮询模式,减少中断机制时间开销,使用共享内存的方式,减少了内存拷贝,提升了处理性能;(5)本发明的技术方案实施不需要更改内核协议栈,减少优化可能带来的风险,并且操作起来更加简单,维护方便;(6)本发明的技术方案所采用的硬件花费成本低,仅仅通过使用2张万兆网卡分别作为数据上、下行,整体性能达到16G~20G,通过这种方案可以节约成本并提高性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施方式中加速深度包检测设备数据处理与转发的方法流程图;
图2为本发明一实施方式中深度包检测设备在网络中实际位置示意图;
图3为本发明一实施方式中图1所示步骤S1的详细子步骤流程图;
图4为本发明一实施方式中图1所示步骤S2的详细子步骤流程图;
图5为本发明一实施方式中图1所示步骤S3的详细子步骤流程图;
图6为本发明一实施方式中深度包检测设备10的内部结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下将对本发明所提供的一种加速深度包检测设备数据处理与转发的方法进行详细说明。
请参阅图1,为本发明一实施方式中加速深度包检测设备数据处理与转发的方法流程图。
在一实施方式中,该加速深度包检测设备数据处理与转发的方法应用于深度包检测(Deep Packet Inspection,DPI)设备,其中,所述DPI设备在网络中的实际位置如图2所示。
请参阅图2,所示为本发明一实施方式中深度包检测设备在网络中实际位置示意图。
如图2所示,DPI设备设置在网络出口处,DPI设备将互联网中的网络数据通过交换机、宽带接入服务器端等用户侧设备下载给不同的的用户主机(例如主机A和B),不同的用户通过各自的主机可以将相关数据上传到互联网,上传的相关数据通过交换机、宽带接入服务器端等用户侧设备发送至DPI设备,经由DPI设备的处理后发送至互联网。DPI设备不仅能处理下行流量,还能处理上行流量。DPI设备作为网络接口设备,其位置可以根据实际需要灵活设置,一般部署在网络出口处,也可部署在网络骨干层、城域网和企业内部,并不一定局限于本发明图2所示的网络位置,例如DPI设备还可以直接与不同用户的主机连接,在此不做限定。
请继续参阅图1,在步骤S1中,将接收到的流量均匀的分散到多个流量识别分类处理模块。
在一实施方式中,DPI设备至少包括第一网卡和第二网卡,不论是上行流量还是下行流量,DPI设备利用第一网卡接收流量并利用第二网卡转发流量,或者DPI设备利用第二网卡接收流量并利用第一网卡转发流量,其中,第一网卡和第二网卡的类型可以是PCI网卡,PCI网卡具有两个端口(Port),每个PCI网卡都可以运行一个DPI程序,两个PCI网卡就可以运行两个DPI程序,从而达到数据处理和转发的增倍效果,当然,第一网卡和第二网卡的类型还可以是其它类型的网卡,在此不做限定。
其中,所述将接收到的流量均匀的分散到多个流量识别分类处理模块的步骤S1具体包括S11-S13三个子步骤,如图3所示。
请参阅图3,所示为本发明一实施方式中图1所示步骤S1的详细子步骤流程图。
在步骤S11中,判断流量是从所述第一网卡接收到还是从所述第二网卡接收到。
在一实施方式中,DPI设备中的第一网卡和第二网卡是作为上、下行接口的网卡,流量可以从第一网卡进入,也可以从第二网卡进入。
如果流量是从所述第一网卡接收到,则在步骤S12中,确定接收到的流量为上行流量,并根据流量中报文的源IP地址或者源MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块。
在一实施方式中,无论哪个网卡在接收到流量之后,都会将流量进行负载均衡处理,即将接收到的流量均匀的分散到多个流量识别分类处理模块,每一个流量识别分类处理模块分担处理一部分流量。
如果流量是从所述第二网卡接收到,则在步骤S13中,确定接收到的流量为下行流量,并根据流量中报文的目的IP地址或者目的MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块。
在一实施方式中,负载均衡的方式根据接收的流量的流向而定,如果是上行流量则采用源IP地址或者源MAC地址对接收到的流量进行均衡处理,如果是下行流量则采用目的IP地址或者目的MAC地址对接收到的流量进行均衡处理。当然,在实际的应用当中,对从网卡接收到的流量进行负载均衡处理并不一定是严格的平均分配,也需要参考不同流量识别分类处理模块的实际处理能力和当前模块的繁忙程度,例如,如果第一流量识别分类处理模块的实际处理能力强且当前比较空闲,则会分配到比较多的流量进行处理,如果第二流量识别分类处理模块的实际处理能力较弱且当前比较繁忙,则会分配到比较少的流量进行处理,在此不做限定。
不仅如此,上述除了采用IP地址字段特征进行分散流量之外,还可以采用MAC地址字段特征进行分散流量,其中的处理方式与前述相类似,例如,如果流量是从所述第一网卡接收到,则确定接收到的流量为上行流量,并根据流量中报文的源MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块;如果流量是从所述第二网卡接收到,则确定接收到的流量为下行流量,并根据流量中报文的目的MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块。
本发明实施方式在数据处理前段使用了负载均衡机制,根据报文的IP地址、MAC地址等特征字段散列流量中的报文,进而避免了在大流量情况下单个任务处理能力不够的状况,提高了处理效率。
请继续参阅图1,在步骤S2中,每一个流量识别分类处理模块根据各自所接收到的流量进行协议检测,并更新连接跟踪信息。
在一实施方式中,所述每一个流量识别分类处理模块根据各自所接收到的流量进行协议检测,并更新连接跟踪信息的步骤S2具体包括S21-S26六个子步骤,如图4所示。
请参阅图4,所示为本发明一实施方式中图1所示步骤S2的详细子步骤流程图。
在步骤S21中,提取流量中报文的唯一标识。
在一实施方式中,报文的唯一标识为VLAN id+五元组信息。
在一实施方式中,唯一标识包括协议类型、源IP地址或者源MAC地址、目的IP地址或者目的MAC地址、源端口和目的端口,不论是上行流量还是下行流量,每一个流量识别分类处理模块都会首先提取流量中报文的唯一标识。
在步骤S22中,根据所述唯一标识判断该报文是否属于已有的连接跟踪。
在一实施方式中,已有的连接跟踪表明之前已经了数据连接,其中,已有的连接跟踪可以采用连接跟踪表的形式来进行维护数据连接的信息,该连接跟踪表的内容包括TCP/IP七层中第二层信息(例如VLAN、源MAC地址、目的MAC地址)、TCP/IP七层中第三层信息(例如源IP地址或者源MAC地址、目的IP地址或者目的MAC地址、第三层协议类型)、TCP/IP七层中第四层信息(例如第四层协议类型、源端口、目的端口)、报文的个数、报文的字节数、URL信息、连接状态等。其中,判断是否属于已有的连接跟踪,主要是判断提取到的报文的唯一标识是否在连接跟踪表内,如果在连接跟踪表内,则表明该报文属于已有的连接跟踪,如果不在连接跟踪表内,则表明该报文不属于已有的连接跟踪。本发明的连接跟踪表采用大页内存(Hugepage)管理方式,通过使用大页内存可以提高页表的查询效率,节省页表项开销,而且内存数据始终在物理内存中,不会交换到磁盘上的,如此可以让高性能程序保持稳定,内存在操作系统启动期间被动态分配并被保留,不会与系统的其它进程产生内存抢占行为,保证了系统的稳定运行。
如果该报文不是属于已有的连接跟踪,则在步骤S23中,为该报文创建新的连接跟踪,并进行协议检测,以及记录检测到的连接跟踪信息。
在一实施方式中,为该报文创建新的连接跟踪,主要是将该报文的信息添加到连接跟踪表内,进行协议检测主要是检测该报文的协议类型,记录检测到的连接跟踪信息需要与已有的连接跟踪表内的内容相符。
如果该报文属于已有的连接跟踪,则在步骤S24中,判断该报文所属的连接跟踪是否完成协议检测。
如果完成了协议检测,则在步骤S25中,更新该报文所属的连接跟踪信息。
在一实施方式中,主要是将完成了协议检测后得知的协议类型添加到已有的跟踪信息表内。
如果没有完成协议检测,则在步骤S26中,进行协议检测,然后在协议检测完成之后将得知的协议类型添加到已有的跟踪信息表内,更新该报文所属的连接跟踪信息,如步骤S25所示。本发明的实施方式通过对一条数据连接的初始报文进行深度检测便可以确定其所属的流量协议类型,对于检测出协议类型的数据连接,后面收到的同一条连接的其它报文便无需再次做深度检测,仅更新数据连接的相关信息,如此进一步提高了数据的处理效率。
本发明实施方式对于已经深度检测了多个报文但仍无法确定协议类型的数据连接这种情况,采取放弃的措施,即放弃这条数据连接的检测。这样一来在很大程度上提高了报文检测效率,而且对于不需要再做协议检测的数据连接,极大的提高了转发效率,并缩减了转发延迟。
请继续参阅图1,在步骤S3中,将经过协议检测后的流量进行转发。
在一实施方式中,所述将经过协议检测后的流量进行转发的步骤S3具体包括S31-S32两个子步骤,如图5所示。
在步骤S31中,根据预设的访问控制列表将经过流量识别分类处理模块处理后的流量进行过滤。
在一实施方式中,访问控制列表(Access Control Lists,ACL)包括白名单访问控制列表或者黑名单访问控制列表,其中,所述根据预设的访问控制列表将经过流量识别分类处理模块处理后的流量进行过滤的步骤S31具体包括:
将流量中与预设白名单访问控制列表相符的报文转发,将流量中与预设白名单访问控制列表不相符的报文丢弃;
或者将流量中与预设黑名单访问控制列表相符的报文丢弃,将流量中与预设黑名单访问控制列表不相符的报文转发。
在一实施方式中,白名单访问控制列表或者黑名单访问控制列表可以通过唯一标识来进行设置,例如白名单可以包含有一个或者多个协议类型、一个或者多个源IP地址或者源MAC地址、一个或者多个目的IP地址或者目的MAC地址、一个或者多个源端口、一个或者多个目的端口。对应的白名单访问控制列表为:如果接收到的报文信息在所述白名单中存在,则将该报文进行转发,如果接收到的报文信息在所述白名单中不存在,则将该报文进行丢弃。对应的黑名单访问控制列表为:如果接收到的报文信息在所述黑名单中存在,则将该报文进行丢弃,如果接收到的报文信息在所述黑名单中不存在,则将该报文进行转发。
在步骤S32中,将过滤后的流量经过限速和整形处理后进行转发。
在一实施方式中,所述将过滤后的流量经过限速和整形处理后进行转发的步骤S32具体包括:
将过滤后的上行流量经过限速和整形处理后通过所述第二网卡进行转发;
或者将过滤后的下行流量经过限速和整形处理后通过所述第一网卡进行转发。
在一实施方式中,将过滤后的流量经过限速和整形处理,保证了网络的正常运行,在处理完之后根据报文信息决定发送报文到上行网卡还是下行网卡。
在一实施方式中,所述方法还包括以下步骤:
对于已经深度检测多个报文仍然无法确定协议类型的数据连接,则放弃该条数据连接的检测。
本发明实施方式使用了轮询模式接收和转发报文,避免了中断机制时间开销,同时在不同CPU间通过共享内存方式通信,避免报文的多次拷贝。具体包括:所述加速深度包检测设备设有多核CPU,所述每个流量识别分类处理模块通过任务绑定到每个CPU核上,采用轮询模式接收和转发报文,并且在不同的CPU核与核之间进行数据传输时不需要经过报文拷贝,只是通过共享内存方式处理报文,所有任务之间通信都是通过共享内存方式通信实现的,且所述加速深度包检测设备的内存采用大页内存管理方式。本发明的数据处理跳过了内核,数据在网卡接收后,直接发往应用层面,无需经过内核处理,简化了处理流程。
以下将对本发明所提供的一种深度包检测设备进行详细说明。
请参阅图5,所示为本发明一实施方式中深度包检测设备10的内部结构示意图。
在一实施方式中,深度包检测设备10设置在网络出口处,深度包检测设备10将互联网中的网络数据通过交换机、宽带接入服务器端等用户侧设备下载给不同的的用户主机(例如主机A和B),不同的用户通过各自的主机可以将相关数据上传到互联网,上传的相关数据通过交换机、宽带接入服务器端等用户侧设备发送至深度包检测设备10,经由深度包检测设备10的处理后发送至互联网。深度包检测设备10不仅能处理下行流量,还能处理上行流量。深度包检测设备10作为网络接口设备,其位置可以根据实际需要灵活设置,一般部署在网络出口处,也可部署在网络骨干层、城域网和企业内部,并不一定局限于本发明图2所示的网络位置,例如深度包检测设备10还可以直接与不同用户的主机连接,在此不做限定。
在一实施方式中,深度包检测设备10包括第一网卡11、第二网卡12、负载均衡模块13、多个流量识别分类处理模块14、访问控制模块15、QOS模块16。
负载均衡模块13,用于将接收到的流量均匀的分散到多个流量识别分类处理模块。其中,深度包检测设备10至少包括第一网卡11和第二网卡12,不论是上行流量还是下行流量,深度包检测设备10利用第一网卡11接收流量并利用第二网卡12转发流量,或者深度包检测设备10利用第二网卡12接收流量并利用第一网卡11转发流量,其中,第一网卡11和第二网卡12的类型可以是PCI网卡,PCI网卡具有两个端口(Port),每个PCI网卡都可以运行一个DPI程序,两个PCI网卡就可以运行两个DPI程序,从而达到数据处理和转发的增倍效果,当然,第一网卡11和第二网卡12的类型还可以是其它类型的网卡,在此不做限定。
在一实施方式中,负载均衡模块13,具体用于:
判断流量是从所述第一网卡11接收到还是从所述第二网卡12接收到;
如果流量是从所述第一网卡11接收到,则确定接收到的流量为上行流量,并根据流量中报文的源IP地址或者源MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块14。
在一实施方式中,负载均衡模块13,具体还用于:
如果流量是从所述第二网卡12接收到,则确定接收到的流量为下行流量,并根据流量中报文的目的IP地址或者目的MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块14。
其中,深度包检测设备10中的第一网卡11和第二网卡12是作为上、下行接口的网卡,流量可以从第一网卡11进入,也可以从第二网卡12进入。其中,无论哪个网卡在接收到流量之后,都会将流量进行负载均衡处理,即将接收到的流量均匀的分散到多个流量识别分类处理模块14,每一个流量识别分类处理模块14分担处理一部分流量。其中,负载均衡的方式根据接收的流量的流向而定,如果是上行流量则采用源IP地址或者源MAC地址对接收到的流量进行均衡处理,如果是下行流量则采用目的IP地址或者目的MAC地址对接收到的流量进行均衡处理。当然,在实际的应用当中,对从网卡接收到的流量进行负载均衡处理并不一定是严格的平均分配,也需要参考不同流量识别分类处理模块14的实际处理能力和当前模块的繁忙程度,例如,如果第一流量识别分类处理模块的实际处理能力强且当前比较空闲,则会分配到比较多的流量进行处理,如果第二流量识别分类处理模块的实际处理能力较弱且当前比较繁忙,则会分配到比较少的流量进行处理,在此不做限定。
每一个流量识别分类处理模块14,用于根据各自所接收到的流量进行协议检测,并更新连接跟踪信息。
在一实施方式中,每一个流量识别分类处理模块14,具体用于:
提取流量中报文的唯一标识;
根据所述唯一标识判断该报文是否属于已有的连接跟踪;
如果该报文不是属于已有的连接跟踪,则以该报文的唯一标识为键值为该报文创建新的连接跟踪,并进行协议检测,以及记录检测到的连接跟踪信息。
在一实施方式中,唯一标识包括协议类型、源IP地址或者源MAC地址、目的IP地址或者目的MAC地址、源端口和目的端口,不论是上行流量还是下行流量,每一个流量识别分类处理模块都会首先提取流量中报文的唯一标识。
在一实施方式中,已有的连接跟踪表明之前已经了数据连接,其中,已有的连接跟踪可以采用连接跟踪表的形式来进行维护数据连接的信息,该连接跟踪表的内容包括TCP/IP七层中第二层信息(例如VLAN、源MAC地址、目的MAC地址)、TCP/IP七层中第三层信息(例如源IP地址或者源MAC地址、目的IP地址或者目的MAC地址、第三层协议类型)、TCP/IP七层中第四层信息(例如第四层协议类型、源端口、目的端口)、报文的个数、报文的字节数、URL信息、连接状态等。其中,判断是否属于已有的连接跟踪,主要是判断提取到的报文的唯一标识是否在连接跟踪表内,如果在连接跟踪表内,则表明该报文属于已有的连接跟踪,如果不在连接跟踪表内,则表明该报文不属于已有的连接跟踪。本发明的连接跟踪表采用大页内存(Hugepage)管理方式,通过使用大页内存可以提高页表的查询效率,节省页表项开销,而且内存数据始终在物理内存中,不会交换到磁盘上的,如此可以让高性能程序保持稳定,内存在操作系统启动期间被动态分配并被保留,不会与系统的其它进程产生内存抢占行为,保证了系统的稳定运行。
在一实施方式中,为该报文创建新的连接跟踪,主要是将该报文的信息添加到连接跟踪表内,进行协议检测主要是检测该报文的协议类型,记录检测到的连接跟踪信息需要与已有的连接跟踪表内的内容相符。
在一实施方式中,每一个流量识别分类处理模块14,具体还用于:
如果该报文属于已有的连接跟踪,则判断该报文所属的连接跟踪是否完成协议检测;
如果没有完成协议检测,则进行协议检测;
如果完成了协议检测,则更新该报文所属的连接跟踪信息。
在一实施方式中,进行协议检测,然后在协议检测完成之后将得知的协议类型添加到已有的跟踪信息表内,更新该报文所属的连接跟踪信息。本发明的实施方式通过对一条数据连接的初始报文进行深度检测便可以确定其所属的流量协议类型,对于检测出协议类型的数据连接,后面收到的同一条连接的其它报文便无需再次做深度检测,仅更新数据连接的相关信息,如此进一步提高了数据的处理效率。
访问控制模块15,用于根据预设的访问控制列表将经过流量识别分类处理模块处理后的流量进行过滤。
在一实施方式中,访问控制列表包括白名单访问控制列表或者黑名单访问控制列表,其中,所述访问控制模块15,具体用于:
将流量中与预设白名单访问控制列表相符的报文转发,将流量中与预设白名单访问控制列表不相符的报文丢弃;
或者将流量中与预设黑名单访问控制列表相符的报文丢弃,将流量中与预设黑名单访问控制列表不相符的报文转发。
在一实施方式中,白名单访问控制列表或者黑名单访问控制列表可以通过唯一标识来进行设置,例如白名单可以包含有一个或者多个协议类型、一个或者多个源IP地址或者源MAC地址、一个或者多个目的IP地址或者目的MAC地址、一个或者多个源端口、一个或者多个目的端口。对应的白名单访问控制列表为:如果接收到的报文信息在所述白名单中存在,则将该报文进行转发,如果接收到的报文信息在所述白名单中不存在,则将该报文进行丢弃。对应的黑名单访问控制列表为:如果接收到的报文信息在所述黑名单中存在,则将该报文进行丢弃,如果接收到的报文信息在所述黑名单中不存在,则将该报文进行转发。
本发明提供的访问控制模块15用于对流量进行过滤,可以添加流量黑名单或者白名单,而且可以根据具体情况进行配置。
QOS模块16,用于将过滤后的流量经过限速和整形处理后进行转发。
在一实施方式中,QOS模块16,具体用于:
将过滤后的上行流量经过限速和整形处理后通过所述第二网卡进行转发;
或者将过滤后的下行流量经过限速和整形处理后通过所述第一网卡进行转发。
在一实施方式中,将过滤后的流量经过限速和整形处理,保证了网络的正常运行,在处理完之后根据报文信息决定发送报文到上行网卡还是下行网卡。
本发明提供的QOS模块16可以采取QOS策略以达到控制用户流量、限速、流量整形等目的。
除此之外,在本发明的其它实施方式中,深度包检测设备10还可以包括后台数据采集模块(图中未画出),主要用于负责后台数据的统计处理。后台数据采集模块根据前面几个任务记录的连接跟踪信息来采集数据,具体包括首先遍历连接跟踪表,并根据连接创建时间、系统当前时间来判断连接是否超时,删除超时连接。维护了多个数据库来供多个模块使用,其中多个数据库分别包括“主要数据库”、“异常数据库”、“日志数据库”、“URL数据库”。
其中,后台数据采集模块具体包括数据库统计子模块、流量异常提醒子模块、系统日志子模块以及URL收集子模块这四个子模块。
数据库统计子模块,用于负责统计数据并插入数据库,从而保存数据,包含了实时流量状况,例如top用户、top应用、top连接,也包含了累计流量状态,例如24小时流量趋势、应用流量累计分布情况等。其中,数据库统计子模块的数据库设计共分为四张表,这个是主要的数据库,保存整体的信息,四张表包括:
DICT表:即数据字典表,用于存储属性ID和属性名称的对应关系,可以通过配置文件增加;
PROTOCOL表:即协议表,用于存储协议ID和协议名称的对应关系,增加规则库将导致该表增加;
FLOW表:即流表,将记录每条流从开始到结束的统计信息,包括7层信息、流量数据等;
FLOW_SECTION表:即流表片段,每单位时间记录一次流的动态信息。
流量异常提醒子模块,用于流量异常提醒模块主要负责监测报文是否异常,及时发出警告。流量异常提醒子模块根据连接跟踪信息判断是否异常流量,并记录到异常数据库。异常的检测算法有很多种,比如平时正常的大流量突然在某天中断了,比如突然大量的tcp syn rst等流量。
系统日志子模块,用于负责记录系统事件的发生信息,包括流量日志、会话日志、URL日志等。系统日志子模块读取连接跟踪信息,并分类为流量日志、会话日志、URL日志,把日志信息写入日志数据库。
URL收集子模块,用于负责采集URL,并插入数据库。其中,URL收集子模块在遍历连接跟踪时候,判断当前连接协议类型是否是HTTP,如果是则提取出HTTP里面的URL信息并存入URL数据库。
其中,本发明提供的数据库统计子模块、流量异常提醒子模块、系统日志子模块以及URL收集子模块不需要直接得到报文,避免了任务处理影响数据转发,这些任务可以从连接跟踪中获取数据信息,并做相应的分析处理,根据用户具体定制需求,还可以添加更多的业务模块,比如收集DNS、特定服务器IP地址等。
本发明提供的一种深度包检测设备10,使用了轮询模式接收和转发报文,避免了中断机制时间开销,同时在不同CPU间通过共享内存方式通信,避免报文的多次拷贝。具体包括:采用轮询模式接收和转发报文,并且在不同的CPU核与核之间进行数据传输时不需要经过报文拷贝,只是通过共享内存方式处理报文,所有任务之间通信都是通过共享内存方式通信实现的。本发明的数据处理跳过了内核,数据在网卡接收后,直接发往应用层面,无需经过内核处理,简化了处理流程。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种加速深度包检测设备数据处理与转发的方法,其特征在于,所述方法包括以下步骤:
将接收到的流量均匀的分散到多个流量识别分类处理模块;
每一个流量识别分类处理模块提取各自所接收到的流量中报文的唯一标识,根据所述唯一标识判断该报文是否属于已有的连接跟踪;
如果该报文属于已有的连接跟踪,则判断该报文所属的连接跟踪是否完成协议检测;
如果没有完成协议检测,则进行协议检测;
如果完成了协议检测,则更新该报文所属的连接跟踪信息;
将经过协议检测后的流量进行转发。
2.如权利要求1所述的加速深度包检测设备数据处理与转发的方法,其特征在于,所述深度包检测设备至少包括第一网卡和第二网卡,其中,所述将接收到的流量均匀的分散到多个流量识别分类处理模块的步骤具体包括:
判断流量是从所述第一网卡接收到还是从所述第二网卡接收到;
如果流量是从所述第一网卡接收到,则确定接收到的流量为上行流量,并根据流量中报文的源IP地址或者源MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块;
如果流量是从所述第二网卡接收到,则确定接收到的流量为下行流量,并根据流量中报文的目的IP地址或者目的MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块。
3.如权利要求1所述的加速深度包检测设备数据处理与转发的方法,其特征在于,根据所述唯一标识判断该报文是否属于已有的连接跟踪之后,所述方法还包括:
如果该报文不是属于已有的连接跟踪,则以该报文的唯一标识为键值为该报文创建新的连接跟踪,并进行协议检测,以及记录检测到的连接跟踪信息。
4.如权利要求2所述的加速深度包检测设备数据处理与转发的方法,其特征在于,所述将经过协议检测后的流量进行转发的步骤包括:
根据预设的访问控制列表将经过流量识别分类处理模块处理后的流量进行过滤;
将过滤后的流量经过限速和整形处理后进行转发。
5.如权利要求4所述的加速深度包检测设备数据处理与转发的方法,其特征在于,所述将过滤后的流量经过限速和整形处理后进行转发的步骤具体包括:
将过滤后的上行流量经过限速和整形处理后通过所述第二网卡进行转发;
或者将过滤后的下行流量经过限速和整形处理后通过所述第一网卡进行转发。
6.如权利要求1所述的加速深度包检测设备数据处理与转发的方法,其特征在于,所述加速深度包检测设备设有多核CPU,所述每个流量识别分类处理模块通过任务绑定到每个CPU核上。
7.如权利要求6所述的加速深度包检测设备数据处理与转发的方法,其特征在于,采用轮询模式接收和转发报文,并且不同的CPU核与核之间通过共享内存方式进行通信。
8.如权利要求6所述的加速深度包检测设备数据处理与转发的方法,其特征在于,所述加速深度包检测设备的内存采用大页内存管理方式。
9.如权利要求3所述的加速深度包检测设备数据处理与转发的方法,其特征在于,所述方法还包括以下步骤:
对于已经深度检测多个报文仍然无法确定协议类型的数据连接,则放弃该条数据连接的检测。
10.一种深度包检测设备,其特征在于,所述深度包检测设备包括负载均衡模块、访问控制模块、QOS模块和多个流量识别分类处理模块,其中,
所述负载均衡模块,用于将接收到的流量均匀的分散到多个流量识别分类处理模块;
每一个流量识别分类处理模块,用于:
提取各自所接收到的流量中报文的唯一标识,根据所述唯一标识判断该报文是否属于已有的连接跟踪;
如果该报文属于已有的连接跟踪,则判断该报文所属的连接跟踪是否完成协议检测;
如果没有完成协议检测,则进行协议检测;
如果完成了协议检测,则更新该报文所属的连接跟踪信息;
所述访问控制模块,用于根据预设的访问控制列表将经过流量识别分类处理模块处理后的流量进行过滤;
所述QOS模块,用于将过滤后的流量经过限速和整形处理后进行转发。
11.如权利要求10所述的深度包检测设备,其特征在于,所述深度包检测设备至少包括第一网卡和第二网卡,其中,所述负载均衡模块具体用于:
判断流量是从所述第一网卡接收到还是从所述第二网卡接收到;
如果流量是从所述第一网卡接收到,则确定接收到的流量为上行流量,并根据流量中报文的源IP地址或者源MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块。
12.如权利要求11所述的深度包检测设备,其特征在于,所述负载均衡模块具体还用于:
如果流量是从所述第二网卡接收到,则确定接收到的流量为下行流量,并根据流量中报文的目的IP地址或者目的MAC地址将接收到的流量均匀的分散到多个流量识别分类处理模块。
13.如权利要求10所述的深度包检测设备,其特征在于,每一个流量识别分类处理模块,具体还用于:
如果该报文不是属于已有的连接跟踪,则以该报文的唯一标识为键值为该报文创建新的连接跟踪,并进行协议检测,以及记录检测到的连接跟踪信息。
14.如权利要求10所述的深度包检测设备,其特征在于,所述访问控制列表包括白名单访问控制列表或者黑名单访问控制列表,其中,所述访问控制模块,具体用于:
将流量中与预设白名单访问控制列表相符的报文转发,将流量中与预设白名单访问控制列表不相符的报文丢弃;
或者将流量中与预设黑名单访问控制列表相符的报文丢弃,将流量中与预设黑名单访问控制列表不相符的报文转发。
15.如权利要求11或12所述的深度包检测设备,其特征在于,所述QOS模块,具体用于:
将过滤后的上行流量经过限速和整形处理后通过所述第二网卡进行转发;
或者将过滤后的下行流量经过限速和整形处理后通过所述第一网卡进行转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710195805.XA CN106972985B (zh) | 2017-03-29 | 2017-03-29 | 加速dpi设备数据处理与转发的方法和dpi设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710195805.XA CN106972985B (zh) | 2017-03-29 | 2017-03-29 | 加速dpi设备数据处理与转发的方法和dpi设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106972985A CN106972985A (zh) | 2017-07-21 |
CN106972985B true CN106972985B (zh) | 2020-09-18 |
Family
ID=59335789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710195805.XA Active CN106972985B (zh) | 2017-03-29 | 2017-03-29 | 加速dpi设备数据处理与转发的方法和dpi设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106972985B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107769992B (zh) * | 2017-09-15 | 2020-07-17 | 通鼎互联信息股份有限公司 | 一种报文解析分流方法及装置 |
CN107872545B (zh) | 2017-09-26 | 2022-12-06 | 中兴通讯股份有限公司 | 一种报文传输方法及装置、计算机可读存储介质 |
CN109995602B (zh) * | 2017-12-29 | 2021-03-16 | 中国移动通信集团设计院有限公司 | 一种协议识别的方法、系统和装置 |
CN108667741B (zh) * | 2018-04-26 | 2021-11-12 | 宝牧科技(天津)有限公司 | 一种用于工业网络数据转发的控制方法及系统 |
CN108848202B (zh) * | 2018-06-21 | 2021-05-04 | Oppo(重庆)智能科技有限公司 | 电子装置、数据传输方法及相关产品 |
CN109327389B (zh) * | 2018-11-13 | 2021-06-08 | 南京中孚信息技术有限公司 | 流量分类标签转发方法、装置和系统 |
CN110417675B (zh) * | 2019-07-29 | 2020-12-01 | 广州竞远安全技术股份有限公司 | 一种soc下高性能探针的网络分流方法、装置及系统 |
CN111371804B (zh) * | 2020-03-16 | 2023-01-20 | 广州根链国际网络研究院有限公司 | Dns后端转发方法及系统 |
CN113890774B (zh) * | 2021-06-10 | 2023-09-26 | 浙江绍兴苏泊尔生活电器有限公司 | 一种家电产品的配网方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497297A (zh) * | 2011-12-13 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 基于多核多线程的深度报文检测技术的实现系统和方法 |
CN104394090A (zh) * | 2014-11-14 | 2015-03-04 | 北京航空航天大学 | 一种采用dpi对数据包进行网络流分类的sdn控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7672236B1 (en) * | 2005-12-16 | 2010-03-02 | Nortel Networks Limited | Method and architecture for a scalable application and security switch using multi-level load balancing |
-
2017
- 2017-03-29 CN CN201710195805.XA patent/CN106972985B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497297A (zh) * | 2011-12-13 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 基于多核多线程的深度报文检测技术的实现系统和方法 |
CN104394090A (zh) * | 2014-11-14 | 2015-03-04 | 北京航空航天大学 | 一种采用dpi对数据包进行网络流分类的sdn控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN106972985A (zh) | 2017-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
EP3780523B1 (en) | Network traffic identification method and related device | |
CN106815112B (zh) | 一种基于深度包检测的海量数据监控系统及方法 | |
US8149705B2 (en) | Packet communications unit | |
US7843827B2 (en) | Method and device for configuring a network device | |
JP4126707B2 (ja) | 情報システムの状態を解析する技術 | |
US8706864B1 (en) | Behavior monitoring and compliance for multi-tenant resources | |
CN111314179B (zh) | 网络质量检测方法、装置、设备和存储介质 | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
CN108900374B (zh) | 一种应用于dpi设备的数据处理方法和装置 | |
JP2010041471A (ja) | 通信データ統計装置、通信データ統計方法およびプログラム | |
CN107769992B (zh) | 一种报文解析分流方法及装置 | |
CN113726636B (zh) | 软件转发设备的数据转发方法、系统及电子设备 | |
CN107147585B (zh) | 一种流量控制方法及装置 | |
WO2021098425A1 (zh) | 配置业务的服务质量策略方法、装置和计算设备 | |
US10437829B2 (en) | Monitoring network traffic to determine similar content | |
WO2023125380A1 (zh) | 一种数据管理的方法及相应装置 | |
WO2024060408A1 (zh) | 网络攻击检测方法和装置、设备及存储介质 | |
CN107070700A (zh) | 一种基于身份自动识别的网络服务提供方法 | |
CN108377211B (zh) | 基于报文内容感知的动态规则链式递归触发方法及其系统 | |
CN111224891A (zh) | 一种基于动态学习三元组的流量应用识别系统及方法 | |
WO2022001480A1 (zh) | 热门应用识别方法、网络系统、网络设备及存储介质 | |
CN110908798B (zh) | 多进程协同式网络流量解析方法及装置 | |
CN114095383A (zh) | 网络流量采样方法、系统和电子设备 | |
CN112671662A (zh) | 数据流加速方法、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |