CN103179109A - 基于二级会话查询功能的过滤分流装置及其方法 - Google Patents

基于二级会话查询功能的过滤分流装置及其方法 Download PDF

Info

Publication number
CN103179109A
CN103179109A CN201310040924XA CN201310040924A CN103179109A CN 103179109 A CN103179109 A CN 103179109A CN 201310040924X A CN201310040924X A CN 201310040924XA CN 201310040924 A CN201310040924 A CN 201310040924A CN 103179109 A CN103179109 A CN 103179109A
Authority
CN
China
Prior art keywords
session
level
rule
policy
session rule
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.)
Granted
Application number
CN201310040924XA
Other languages
English (en)
Other versions
CN103179109B (zh
Inventor
王骁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai EmbedWay Information Technologies Co Ltd
Original Assignee
Shanghai EmbedWay Information Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai EmbedWay Information Technologies Co Ltd filed Critical Shanghai EmbedWay Information Technologies Co Ltd
Priority to CN201310040924.XA priority Critical patent/CN103179109B/zh
Publication of CN103179109A publication Critical patent/CN103179109A/zh
Application granted granted Critical
Publication of CN103179109B publication Critical patent/CN103179109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种数据包的过滤分流,尤其是基于二级会话查询功能的过滤分流装置及其方法。提取输入原始数据包的会话特征,通过查询匹配单元在会话表中进行查询,依次在一级会话表和二级会话表中查询,获得会话查询结果并进行匹配检查,根据匹配检查的结果生成转发行为,最后由转发单元将原始数据包输出至用户。所述过滤分流装置能够满足会话业务的精确识别和过滤需求。同时,采用的二级会话查询方法也能有效解决基于FPGA架构的会话表结构设计中存在的高速内存存储空间浪费的问题,因此可以节约存储空间,提高会话表容量和会话查询效率。

Description

基于二级会话查询功能的过滤分流装置及其方法
技术领域
本发明涉及一种数据包的过滤分流,尤其涉及一种基于会话业务的FPGA架构过滤分流装置及其方法。 
背景技术
最近几年,我国在骨干网和城域网方面的建设发展速度很快,几乎所有区域骨干网的带宽都达到了10G(Gigabit,千兆位),部分骨干网的带宽已经升级或正在升级到40G甚至100G。同时,我国在互联网特别是移动互联网方面的建设也有明显的加速趋势,移动互联网的Gn、Gi等接口带宽也已经或正在从GE(Gigabit Ethernet,千兆以太网)向10GE升级。 
网络带宽的高速增长也带动了数据处理业务需求的增长,特别地,对IP(International Protocol,网际协议)数据包会话业务的精确识别和过滤功能亦成为其中之关键需求 。目前许多相关业务,包括防火墙、虚拟专用网络(VPN,Virtual Private Network)、网络安全等,均要求所采用的过滤分流设备具备对会话业务的处理能力。 
现有过滤分流设备的核心架构主要以NPU(Network Processing Unit,网络处理器)和FPGA(Field-Programmable Gate Array,现场可编程逻辑门阵列)两类为主,NPU架构的优点在于其配置的灵活性,而FPGA架构的优点在于其强大的并行处理能力带来的性能优势。 
无论是在NPU架构还是FPGA架构下,均需要通过建立和查询会话表来完成对会话业务的识别、过滤、转发等处理。会话表的建立、查询等过程非常复杂,且对会话表项的数量和会话查询效率等方面均有很高的要求。通常情况下,会话表存放在过滤分流设备的高速内存单元中,如何在有限的存储空间中存放数量庞大的会话表项,并且使得查询效率尽可能高,是会话表结构设计中面临的主要问题。 
现有技术中常见的会话表通常包括会话规则索引和会话规则表项两个部分,会话规则索引一般由从数据包中提取的会话特征经过特定运算生成,用于在查询过程中对会话规则表项的快速定位。常用的运算方法包括Hash(哈希,也称为散列)运算等算法。会话规则表项的内容一般包括数据包的完整会话特征,例如五元组信息(源IP、目的IP、源端口号、目的端口号、协议类型)等,用于对会话规则表项的匹配检查。根据实际业务需求的不同,会话规则表项存放的内容也会有所不同,比如还可以包括统计信息、控制信息等内容。 
在NPU架构下的会话表结构设计中,考虑到NPU对高速内存空间的申请、使用和释放的灵活性,会话规则表项一般会以链表的方式存放在高速内存中,在查询过程中NPU对会话规则表项依次读取并逐个进行匹配检查,因此在会话规则表项中通常还包括下一级链表地址。 
现有技术中常见的NPU架构会话表设计如图3所示。 
在FPGA架构下的会话表结构设计中,为了充分利用FPGA在并行处理能力方面的优势,通常会将每个会话规则索引对应的会话规则表项数量设置为相同值,在查询过程中,FPGA将同时读取会话规则索引所对应的多个会话规则表项,并且独立地对这些会话规则表项完成匹配检查,这样可以减少对高速内存的读写次数,提高会话查询效率。但另一方面,每个会话规则索引所对应的会话规则表项并非全部有效,存在一部分会话规则表项为空的情况,因此会浪费一些存储资源。 
现有技术中常见的FPGA架构会话表设计如图4所示。 
申请号200910137700.4的中国发明专利,申请公开一种基于流表的数据包处理方法、装置和网络系统,采用对会话特征进行二次哈希运算,并建立临时流表且以二次哈希值来完成匹配检查的方法来对数据包进行处理,减少CPU的资源消耗和节省存储空间。 
在对现有的基于FPGA架构的过滤分流装置的研究和实现中,本发明的发明人发现,会话表结构设计同样面临如何节省内存空间、提高会话查询效率的问题。由于在不同的部署环境下,业务需求和网络特性各不相同,即使在接入数据流量较大的情况下,依旧会出现相当比例的会话规则索引所对应的有效会话规则表项数量较少,甚至不存在有效会话规则表项的现象,但受限于会话表结构设计,这部分空置的会话规则表项依旧在高速内存中占用了大量的存储空间,导致较大的存储资源浪费。 
发明内容
本发明解决的问题是,在宽带业务和安全保障业务复杂化、精细化的大趋势下,提供一种基于二级会话查询功能的过滤分流装置,该装置能满足对会话业务的精确识别和过滤需求。其所采用的二级会话查询方法亦能提高存储空间的使用效率,解决现有技术中存在的存储资源浪费问题。 
为解决上述问题,本发明提供一种支持二级会话查询功能的过滤分流装置,包括: 
1 管理单元,向用户提供界面以制定业务对应的会话规则策略,完成会话表的初始化,输出所述会话规则策略至会话规则策略库单元;所述会话规则策略包括一级会话规则策略和二级会话规则策略。管理单元根据会话规则策略自动生成一级会话规则策略和二级会话规则策略。
2 会话规则策略库单元,包括一级会话规则策略库单元和二级会话规则策略库单元,根据所述会话规则策略形成一级会话规则策略库单元和二级会话规则策略库单元; 
3 一级会话规则策略库单元,将所述一级会话规则策略导入一级会话表;
4 二级会话规则策略库单元,将所述二级会话规则策略导入二级会话表;
5 特征提取单元,接收数据包,提取所述数据包中的会话特征,对所述会话特征进行Hash运算,并生成会话查询索引,输出所述会话特征和会话查询索引至查询匹配单元;
6 查询匹配单元,使用输入的会话查询索引在会话表中进行查询,获得会话查询结果;使用输入的会话特征对会话查询结果进行匹配检查,并根据会话查询结果和匹配检查结果生成转发行为,将转发行为输出至转发单元;
7 转发单元,使用输入的转发行为对数据包进行转发,根据转发行为将数据包丢弃或者发送至用户;所述会话表包括一级会话表和二级会话表。
所述一级会话规则策略包括一级会话规则索引和一级会话查询结果。 
所述一级会话规则索引,是在制定会话规则策略时,使用会话特征,即五元组信息(源IP、目的IP、源端口号、目的端口号、协议类型),经过Hash运算得到的结果。 
所述一级会话查询结果包括一级会话匹配标志和二级会话查询索引。 
所述二级会话规则策略包括二级会话规则索引和二级会话查询结果。 
所述二级会话查询结果,包括一个或多个二级会话规则表项。 
所述二级会话规则表项,包括会话规则特征和规则转发行为。 
所述会话查询结果,即指二级会话查询结果。 
所述转发行为包括默认转发行为和规则转发行为。 
所述默认转发行为和规则转发行为,包括丢弃、向指定的一个端口转发或向指定的多个端口转发。 
本发明还提供一种支持二级会话查询功能的过滤分流方法,包括如下步骤:初始化会话表;制定各业务对应的会话规则策略;根据所述会话规则策略形成会话规则策略库单元,并将会话规则策略导入会话表;接收数据包,从所述数据包中提取会话特征,并根据该会话特征生成会话查询索引;使用会话查询索引在所述一级会话表中进行查询,获得一级会话查询结果;对一级会话查询结果进行匹配检查;使用二级会话查询索引在所述二级会话表中进行查询,获得会话查询结果;对会话查询结果进行匹配检查,并生成转发行为;将数据包根据转发行为进行转发。 
所述查询匹配单元在所述会话表中进行查询时,首先,在所述一级会话表中进行查询,获得一级会话查询结果。对一级会话查询结果中的一级会话匹配标志进行匹配检查;若匹配检查未通过,则结束本次查询,将转发行为设置为默认转发行为并输出至转发单元;若匹配检查通过,则使用在一级会话查询结果中提取的二级会话查询索引继续在二级会话表中进行查询,获得会话查询结果。之后,对会话查询结果中的所有二级会话规则表项进行匹配检查,将输入的会话特征逐一与二级会话规则表项中的会话规则特征进行比较,两者相同表明匹配,反之亦然。若所有二级会话规则表项的匹配检查均未通过,则将转发行为设置为默认转发行为,并输出至转发单元。若其中一个二级会话规则表项匹配通过,则提取该二级会话规则表项中的规则转发行为,并将转发行为设置为所提取的规则转发行为,然后输出至转发单元。 
本发明在所述二级会话查询方法和装置中采用的会话表包括:一级会话表和二级会话表。 
一级会话表由一级会话表子单元构成,一级会话表子单元包括:一级会话规则索引,用于在一级会话表查询时对一级会话规则表项快速定位,是在制定会话规则策略时,使用会话特征,即五元组信息(源IP、目的IP、源端口号、目的端口号、协议类型),经过Hash运算得到的结果。 
一级会话规则表项,用于一级会话匹配检查和提取二级会话表查询所需的查询索引值,包括一级会话匹配标志和二级会话查询索引。在本发明中,一级会话规则表项可以包括,但不限于一级会话匹配标志和二级会话查询索引。 
一级会话匹配标志:用于匹配检查,一般值为1标识匹配有效,值为0标识匹配无效。 
二级会话查询索引:在导入会话规则策略时,根据高速内存的存储空间使用情况,自动分配未被占用存储空间,并以所分配的存储空间地址作为二级会话查询索引值。 
二级会话表由二级会话表子单元构成,二级会话表子单元包括: 
二级会话规则索引,用于在二级会话表查询时对二级会话规则表项快速定位,是在制定会话规则策略时,根据高速内存单元的存储空间使用情况灵活分配所得,与一级会话表子单元中的二级会话查询索引一一对应。
二级会话规则表项,用于二级会话匹配检查和提取规则转发行为,包括会话规则特征和规则转发行为。在本发明中,二级会话规则表项可以包括,但不限于会话规则特征和规则转发行为。 
会话规则特征:会话规则策略所对应的五元组信息,包括源IP、目的IP、源端口、目的端口、协议类型 
规则转发行为:匹配本会话规则策略的数据包所对应的转发行为。
在初始化会话表时,在高速内存中为一级会话表中的所有一级会话规则表项分配存储空间,且将所有一级会话规则表项中的一级会话匹配标志设置为无效。但是,暂时不为二级会话表项分配存储空间。 
在将会话规则策略导入会话表的过程中,根据一级会话规则策略更新一级会话规则表项,包括修改所述一级会话规则表项中的一级会话匹配标志和二级会话查询索引。同时,根据二级会话规则策略添加二级会话规则索引和二级会话规则表项。特别地,在所述导入会话规则策略的过程中,只有在一级会话匹配标志有效时,才为其所在一级会话规则表项对应的二级会话规则表项分配存储空间,并完成二级会话规则策略的导入,否则不分配存储空间。这样可以大幅节省高速内存的存储空间。 
与现有技术相比,本发明提供一种支持二级会话查询功能的过滤分流装置和方法,能有效地对属于同一会话业务的数据包进行精确识别和过滤,并能够将属于同一会话业务的所有数据包按相同的转发行为进行转发,有效解决了后端用户基于会话进行数据深度分析的需求,极大方便了后端用户的业务处理。 
同时,本发明提供的二级会话查询方法,能够为容量相对有限的高速内存单元节省大量存储空间,因此可以存放更多的会话规则表项,并且支持快速、可控的会话查询过程。经统计,在每秒千万级会话数量的网络环境中,采用常见的会话表结构设计时,往往会出现50%以上的会话规则索引对应的会话规则表项为空的现象,但这部分空置的会话规则表项仍旧会占用高速内存的存储空间。而采用本发明的会话表结构设计后,在一级会话表中已经对这些会话规则索引作了标识,因此在二级会话表中无需再为这些空置的会话规则表项分配额外的存储空间。考虑到实际部署环境下不同的网络特性,以及一级会话表所需占用的存储空间,实际可节省的存储空间范围大约在30%~50%左右。这些节省下来的存储空间,可以用于优化会话表结构以及增加会话规则表项数量。而本方法在设计上的灵活性和可扩展性亦可以极大满足日益复杂的业务需求。 
附图说明
图1 是本发明支持二级会话查询功能的过滤分流装置的结构图。 
图2 是本发明支持二级会话查询功能的过滤分流方法的流程图。 
图3 是现有技术中NPU架构会话表结构示意图。 
图4 是现有技术中FPGA架构会话表结构示意图。 
图5是本发明所述会话表结构示意图。 
图6是本发明实施例中一级会话表和二级会话表示意图。 
下面结合附图和实施例对本发明作进一步说明。在下列描述中,不详细描述公知的功能和结构,因为它们会使本发明由于不必要的细节而混乱。 
如图1所示,本发明提供一种基于二级会话查询功能的过滤分流装置。包括:管理单元1、会话规则策略库单元2、一级会话规则策略库单元3、二级会话规则策略库单元4、特征提取单元5、查询匹配单元6、转发单元7。 
管理单元1:向用户提供界面以制定业务对应的会话规则策略,完成会话表的初始化,输出所述会话规则策略至会话规则策略库单元2; 
具体地,管理单元1提供给用户以良好的读写和管理界面,用户根据业务需求建立不同业务对应的会话规则策略。管理单元1首先完成会话表的初始化工作。在会话规则策略制定后,管理单元1将用户建立的会话规则策略导入高速内存中的会话规则策略库单元2。
特别地,管理单元1将会话规则策略拆分为一级会话规则策略和二级会话规则策略,并分别导入高速内存中的一级会话规则策略库单元3和二级会话规则策略库单元4。 
会话规则策略库单元2:在高速内存中储存用户制定的会话规则策略,会话规则策略库单元2包括一级会话规则策略库单元3和二级会话规则策略库单元4两个部分。 
一级会话规则策略库单元3:将一级会话规则策略导入高速内存中,并更新一级会话表,修改一级会话规则表项。不同的一级会话规则策略被分配在不同的内存空间,形成相互独立的一级会话规则表项。每个一级会话规则表项包括一级会话规则索引、一级会话匹配标志和二级会话查询索引。所述一级会话规则索引是在用户制定的会话规则策略中,使用会话特征,即五元组信息,经过Hash运算得到的结果。所述一级会话匹配标志用于标识当前一级会话规则表项是否有效。所述二级会话查询索引用于二级会话表查询。 
二级会话规则策略库单元4:将二级会话规则策略导入高速内存中,并更新二级会话表,添加二级会话规则索引和二级会话规则表项。不同的二级会话规则策略被分配在不同的内存空间,形成相互独立的二级会话规则表项。每个二级会话规则表项包括二级会话规则索引、会话规则特征和规则转发行为。所述二级会话规则索引是根据高速内存单元的存储空间使用情况灵活分配的一个查询索引值。会话规则特征是指符合所述会话规则策略的数据包所应具备的会话特征,用于匹配检查。规则转发行为是指符合所述会话规则策略的数据包被丢弃或从指定的一个或多个输出端口发送的行为。 
特征提取单元5:接收原始数据包,对每个接收的原始数据包提取会话特征,由所述会话特征生成会话查询索引,并将所述会话特征和会话查询索引输出至查询匹配单元6。 
具体地,由硬件接口芯片完成各种物理接口的数据包接入,将网络路由器获取的原始数据包输出至特征提取单元5。特征提取单元5接收原始数据包,进行会话特征分析,提取包括源IP、目的IP、源端口号、目的端口号、协议类型的五元组信息,即会话特征。使用预先设定的Hash算法,对所提取的会话特征进行Hash运算得到会话查询索引。 
查询匹配单元6:使用输入的会话查询索引在会话表中进行查询,获得会话查询结果;使用输入的会话特征对会话查询结果进行匹配检查,并根据会话查询结果和匹配检查结果生成转发行为,将转发行为输出至转发单元。 
首先,将会话查询索引在一级会话规则策略库单元3中逐一与一级会话表中的一级会话规则索引进行比较,找到与会话查询索引相同的一级会话规则索引,并将其对应的一级会话规则表项作为一级会话查询结果。提取所述一级会话规则表项的一级会话匹配标志和二级会话查询索引。对所述一级会话规则表项进行匹配检查,若所述一级会话匹配标志的值为无效,则将转发行为设置为默认转发行为并输出至转发单元,结束本次查询。 
若所述一级会话匹配标志的值为有效,则继续本次查询。使用所提取的二级会话查询索引在二级会话表中进行查询,将所述二级会话查询索引逐一与二级会话表中的二级会话规则索引进行比较,找到与所述二级会话查询索引相同的二级会话规则索引,并提取其对应的所有二级会话规则表项作为二级会话查询结果。提取所述一个或多个二级会话规则表项的会话规则特征和规则转发行为。将输入的会话特征逐一与所提取的会话规则特征进行比较。若所有提取的会话规则特征均与输入的会话特征不同,则匹配检查未通过将转发行为设置为默认转发行为,并输出至转发单元7。若其中一个会话规则特征与输入的会话特征相同,则将转发行为设为该会话规则特征所对应的二级会话规则表项中的规则转发行为,并输出至转发单元。 
转发单元7:使用输入的转发行为对数据包进行转发,转发行为可以是默认转发行为,也可以是规则转发行为,默认转发行为和规则转发行为均可以设置为丢弃、向指定的一个端口转发或向指定的多个端口转发。 
  
下面结合图1对支持二级会话查询功能的过滤分流装置作示例性说明。
本过滤分流装置为用户提供一个管理网口,并为用户分配一个管理帐号,用户使用管理帐号通过网络SSH(Secure Shell)远程登录进入管理单元1,管理单元1向用户提供读写和管理界面。进入管理单元1后,用户拥有相应的权限,包括配置输入端口的参数,如CRC(Cyclic Redundancy Check,循环冗余校验)、扰码等参数;查看输入输出端口的状态和流量统计信息;配置会话规则策略,添加、删除、查看会话规则。 
会话规则策略的格式如下所示: 
源IP:sip=<ipaddr>
目的IP:dip=<ipaddr>
源端口:sport=<portid>
目的端口:dport=<portid>
协议类型:protocol=<tcp|udp|icmp|ospf|gre|sctp|protocol number>
转发行为:丢弃drop;转发到指定的某个端口输出fw rr<port_list>;转发到指定的一组输出端口fw hash<hash_mode><port_list>
管理单元1将制定好的会话规则策略导入高速内存中的会话规则策略库单元2。管理单元2会自动地将会话规则策略拆分为一级会话规则策略和二级会话规则策略,分别导入高速内存中的一级会话规则策略库单元3和二级会话规则策略库单元4,形成一级会话表和二级会话表。一级会话表中不同的一级会话规则表项所占据的内存空间大小相同,同样地,二级会话表中不同的二级会话规则表项所占据的内存空间大小也相同。一级会话表所占据的内存空间固定不变,二级会话表所占据的内存空间将根据会话规则策略动态地进行申请和释放,该部分功能可以由高速内存技术实现。
一级会话表子单元和二级会话表子单元在高速内存中的格式分别如下: 
Figure DEST_PATH_IMAGE003
首先,管理单元1对一级会话表进行初始化,举例如下:
在本实施例中,为了简化说明过程,假设一级会话表子单元和二级会话表子单元的数量均不超过65535个。本发明对一级会话表子单元和二级会话表子单元的数量上限没有限制。
管理单元1将所有一级会话表子单元中的一级会话匹配标志设置为0,将其二级会话查询索引设置为0000,如上表所示,表中的数字均以16进制表示,下文不再重复说明。 
之后,用户通过管理单元1将会话规则策略导入一级会话规则策略库单元和二级会话规则策略库单元,并更新一级会话表和二级会话表。 
用户通过管理单元1建立第一条ftp文件传输业务的会话规则策略a,其步骤如下: 
第一步,用户输入会话规则策略 
源IP,sip=121.15.0.1
目的IP,dip=121.15.0.10
源端口,sport=50001
目的端口,dport=20
协议类型,protocol=6,表示tcp协议
转发行为:forward to port 2,表示从端口2输出
第二步,将会话特征转换成16进制数字
管理单元1将源ip、目的ip、源端口、目的端口、协议类型分别转换为16进制数字,其中源ip和目的ip分别转换为32位的16进制数字sip[31:0]、dip[31:0],源端口、目的端口和协议类型分别转换为16位的16进制数字sport[15:0],dport[15:0],protocol[15:0]。
对于本实施例, 
sip[31:0]=790F0001
dip[31:0]=790F000A
sport[15:0]=C351
dport[15:0]=0014
protocol[15:0]=0006
上述均为16进制数字,下文不再重复说明。
第三步,使用Hash算法对上述16进制数字进行运算 
使用何种Hash算法并无限制,只需保证在制定会话规则策略和会话查询匹配时,使用相同的Hash算法即可,为简化说明过程,本实施例以异或Hash算法为例进行说明。但本发明对使用何种Hash算法并无限制。
对上述会话特征执行异或Hash算法,将sip[31:0]的前16位数字sip[31:16]与后16位数字sip[15:0]进行异或运算;同样地,将dip[31:0]的前16位数字dip[31:16]与后16位数字dip[15:0]进行异或运算;上述运算得到两个16位运算结果,将这两个16位数字与sport[15:0]、dport[15:0]和protocol[15:0]这三个数字一同进行异或运算,最终得到一个16位的Hash值。 
用数学公式表示的异或Hash运算如下: 
Hash值=
sip[31:16]^sip[15:0]^dip[31:16]^dip[15:0]^sport[15:0]^dport[15:0]^protocol[15:0]
本例的异或Hash运算结果如下:
Hash值 =790F^0001^790F^000A^C351^0014^0006
=C348
第四步,创建一级会话表子单元和二级会话表子单元
使用上述Hash值作为一级会话规则索引,更新一级会话表子单元如下:
其中,管理单元1将一级会话匹配标志置为1,标示为有效,并自动选择未被占用的高速内存空间,形成二级会话查询索引值0001。
创建二级会话表子单元如下: 
Figure 874461DEST_PATH_IMAGE006
其中,二级会话规则索引与一级会话表子单元中的二级会话查询索引相同。
用户通过管理单元1创建第二条QQ业务的会话规则策略b,步骤同上; 
第一步,用户输入会话规则策略
源IP,sip=121.15.0.1
目的IP,dip=121.15.0.11
源端口,sport=50002
目的端口,dport=4000
协议类型,protocol=17,表示udp协议
转发行为:forward to port 3,表示从端口3输出
第二步,将会话特征转换成16进制数字
sip[31:0]=790F0001
dip[31:0]=790F000B
sport[15:0]=C352
dport[15:0]=0FA0
protocol[15:0]=0011
第三步,使用Hash算法对上述16进制数字进行运算
Hash值 =790F^0001^790F^000B^C352^0FA0^0011
=CCE9
第四步,创建一级会话表子单元和二级会话表子单元
Figure DEST_PATH_IMAGE007
Figure 447262DEST_PATH_IMAGE008
此时,已经完成了会话表的初始化,并导入了两个独立的会话规则策略a和会话规则策略b。最后,将默认转发行为设置为drop,表示当会话查询结果的匹配检查未通过时将数据包丢弃。这样,会话规则策略导入完成。
此时,一级会话表和二级会话表如图6所示。 
在本实施例中,只需为两个二级会话表子单元分配存储空间,而无需为所有65535个二级会话表子单元分配存储空间,大大节约了高速内存的存储资源。 
路由器从网络中获取原始数据包,特征提取单元5接收所获取的原始数据包,并在会话表中进行查询。 
在一具体实施例中,IP地址为121.15.0.1的用户从50001端口向IP地址为121.15.0.10的服务器20端口发送ftp报文。 
特征提取单元5对所接收的原始数据包提取会话特征,得到会话特征如下: 
源IP,sip=121.15.0.1
目的IP,dip=121.15.0.10
源端口,sport=50001
目的端口,dport=20
协议类型,protocol=6
将会话特征转换成16进制数字为:
sip[31:0]=790F0001
dip[31:0]=790F000A
sport[15:0]=C351
dport[15:0]=0014
protocol[15:0]=0006
使用异或Hash算法对上述会话特征进行Hash运算,得到运算结果为:
Hash值 =790F^0001^790F^000A^C351^0014^0006
=C348
将会话查询索引设置为上述Hash值。然后,将上述会话特征和会话查询索引输出至查询匹配单元6。
查询匹配单元6使用输入的会话查询索引在会话表中进行匹配查询。 
首先,将值为C348的会话查询索引逐一与一级会话表子单元单元的一级会话规则索引进行比对,找到与之相同的一级会话规则索引,及其对应的一级会话表子单元如下: 
然后,提取该一级会话表子单元中的一级会话匹配标志和二级会话查询索引,得到一级会话匹配标志值为1,二级会话查询索引值为0001。检查一级会话匹配标志的值,由于一级会话匹配标志为1,表示匹配有效,因此继续进行二级会话策略库单元的查询。
之后,将所提取的二级会话查询索引值0001逐一与二级会话表子单元中的二级会话规则索引进行比较,找到与之相同的二级会话规则索引,及其对应的二级会话表子单元如下: 
Figure 47188DEST_PATH_IMAGE006
从上述二级会话表子单元中提取会话规则特征和规则转发行为,并将输入的会话特征与所提取的会话规则特征进行比较,发现两者相同,表明匹配检查通过。
最后,查询匹配单元6将转发行为设置为从上述二级会话表子单元中提取的规则转发行为forward to port 2,并输出至转发单元7。 
转发单元7根据输入的转发行为,将数据包输出至端口2。 
由上所述,本实施例中所有符合会话规则策略a的数据包,经过会话查询匹配过程后,均可以被识别出来并转发至端口2。 
在又一具体实施例中,IP地址为121.16.0.1的用户从50002端口向IP地址为121.16.0.11的服务器4000端口发送UDP数据。 
特征提取单元5对所接收的原始数据包提取会话特征,得到会话特征如下: 
源IP,sip=121.16.0.1
目的IP,dip=121.16.0.11
源端口,sport=50002
目的端口,dport=4000
协议类型,protocol=11
将会话特征转换成16进制数字为:
sip[31:0]=79100001
dip[31:0]=7910000B
sport[15:0]=C352
dport[15:0]=0FA0
protocol[15:0]=0011
使用异或Hash算法对上述会话特征进行Hash运算,得到运算结果为:
Hash值 =7910^0001^7910^000B^C352^0FA0^0011
=CCE9
将会话查询索引设置为上述Hash值。然后,将上述会话特征和会话查询索引输出至查询匹配单元6。
查询匹配单元6使用输入的会话查询索引在会话规则策略单元中进行匹配查询。 
首先,将值为CCE9的会话查询索引逐一与一级会话表子单元的一级会话规则索引进行比对,找到与之相同的一级会话规则索引,及其对应的一级会话表子单元如下: 
Figure 113102DEST_PATH_IMAGE007
然后,提取该一级会话表子单元中的一级会话匹配标志和二级会话查询索引,得到一级会话匹配标志值为1,二级会话查询索引值为0002。检查一级会话匹配标志的值,由于一级会话匹配标志为1,表示本一级会话表子单元匹配有效,因此可以继续进行二级会话表的查询。
之后,将所提取的二级会话查询索引值0002逐一与二级会话表子单元中的二级会话规则索引进行比较,找到与之相同的二级会话规则索引,及其对应的二级会话表子单元如下: 
从上述二级会话表子单元中提取会话规则特征和规则转发行为,并将输入的会话特征与所提取的会话规则特征进行比较,发现会话特征sip=121.16.0.1与会话规则特征sip=121.15.0.1不相同,会话特征dip=121.16.0.11与会话规则特征dip=121.16.0.1也不相同,表明匹配检查未通过。
最后,查询匹配单元6将转发行为设置为默认转发行为,并输出至转发单元7。 
转发单元7根据输入的转发行为对数据包进行转发,由于默认转发行为为丢弃,因此将数据包丢弃。 
由上所述,本实施例中的数据包,由于会话查询匹配未通过,因此均被丢弃,没有出现误匹配的情况,因此可以满足会话业务的精确匹配需求。 
  
本发明还提供一种支持二级会话查询功能的过滤分流方法,包括:
S1:初始化会话表;S2:制定各业务对应的会话规则策略;S3:根据所述会话规则策略制定会话规则策略库单元,并将会话规则策略导入会话表;S4:接收数据包,提取会话特征,并生成会话查询索引;S5:使用会话查询索引在所述一级会话表中进行查询,获得一级会话查询结果;S6:对一级会话查询结果进行匹配检查;S7:使用二级会话查询索引在所述二级会话表中进行查询,获得会话查询结果;S8:对会话查询结果进行匹配检查,并生成转发行为;S9:将数据包根据默认转发行为或者规则转发行为进行转发。
在步骤S1中,初始化会话表,包括一级会话表和二级会话表。 
在步骤S2中,用户通过读写和管理界面,制定各业务的会话规则策略。 
在步骤S3中,会话规则策略被自动拆分为一级会话规则策略和二级会话规则策略,并导入会话表。一级会话表中一级会话表子单元和二级会话表中的二级会话表子单元被分配在不同高速内存空间中。不同的一级会话表子单元或二级会话表子单元所占据的内存空间的位置和大小,根据其规则复杂程度,动态地进行申请和释放,该部分功能可以由高速内存技术实现。 
在步骤S4中,接收原始数据包,对原始数据包进行会话特征分析,提取会话特征所包含的五元组信息,并使用Hash算法由会话特征生成会话查询索引。其中,对Hash算法的选择没有特殊限制。 
在步骤S5中,将会话查询索引逐一与一级会话表子单元的一级会话规则索引进行比对,找到与之相同的一级会话规则索引,及其对应的一级会话表子单元。提取一级会话查询结果,包括一级会话匹配标志和二级会话查询索引。 
在步骤S6中,对一级会话查询结果中的一级会话匹配标志进行检查,若表明匹配有效,则继续执行步骤S7;若匹配无效,则将转发行为设置为默认转发行为,并跳转至步骤S9。 
在步骤S7中,将二级会话查询索引逐一与二级会话表子单元的二级会话规则索引进行比对,找到与之相同的二级会话规则索引,及其对应的二级会话表子单元。提取会话查询结果,包括一个或多个二级会话规则表项的会话规则特征和规则转发行为。 
在步骤S8中,将会话特征与会话查询结果中所有二级会话规则表项的会话规则特征进行比对,若存在与会话特征相同的会话规则特征,则表明匹配检查通过,将转发行为设置为所述会话规则特征对应的规则转发行为并执行步骤S9;若不存在与会话特征相同的会话规则特征,则表明匹配检查未通过,将转发行为设置为默认转发行为并执行步骤S9。 
在步骤S9中,根据转发行为将数据包输出至用户,转发行为包括默认转发行为或规则转发行为。转发行为可以为丢弃、向指定的一个端口转发或向指定的多个端口转发,但可以不仅限于上述转发行为。 
 综上,本发明的一种支持二级会话查询功能的过滤分流装置和方法,提取输入原始数据包的会话特征,通过查询匹配单元在会话表中进行查询,依次在一级会话表和二级会话表中查询,获得会话查询结果并进行匹配检查,根据匹配检查的结果生成转发行为,最后由转发单元将原始数据包输出至用户。所述过滤分流装置能够满足会话业务的精确识别和过滤需求。同时,采用的二级会话查询方法也能有效解决基于FPGA架构的会话表结构设计中存在的高速内存存储空间浪费的问题,因此可以节约存储空间,提高会话表容量和会话查询效率。 

Claims (10)

1.一种基于二级会话查询功能的过滤分流装置,其特征在于,包括如下单元:
管理单元,是向用户提供界面以制定业务对应的会话规则策略,完成会话表的初始化,输出所述会话规则策略至会话规则策略库单元;
会话规则策略库单元,是根据所述会话规则策略形成一级会话规则策略单元和二级会话规则策略库单元;
所述的一级会话规则策略库单元,是将所述一级会话规则策略导入一级会话表;
所述的二级会话规则策略库单元,是将所述二级会话规则策略导入二级会话表;
特征提取单元,是接收数据包,提取所述数据包中的会话特征,对所述会话特征进行Hash运算,并生成会话查询索引,输出所述会话特征和会话查询索引至查询匹配单元;
查询匹配单元,是使用输入的会话查询索引在会话表中进行查询,获得会话查询结果;使用输入的会话特征对会话查询结果进行匹配检查,并根据会话查询结果和匹配检查结果生成转发行为,将转发行为输出至转发单元;
转发单元,是使用输入的转发行为对数据包进行转发,根据转发行为将数据包丢弃或者发送至用户。
2.根据权利要求1所述的过滤分流装置,其特征在于,所述一级会话规则策略包括一级会话规则索引和一级会话查询结果;所述一级会话查询结果包括一级会话匹配标志和二级会话查询索引。
3.根据权利要求2所述的过滤分流装置,其特征在于,所述二级会话规则策略包括二级会话规则索引和二级会话查询结果;所述二级会话查询结果包括一个或多个二级会话规则表项;所述二级会话规则表项包括会话规则特征和规则转发行为。
4.一种如权利要求1所述过滤分流装置基于二级会话查询的过滤分流方法,其特征在于,包括如下步骤:
1.初始化会话表;
2.制定各业务的会话规则策略;
3.根据所述会话规则策略制定会话规则策略库单元,并将会话规则策略导入会话表;
4.接收数据包,提取会话特征,并生成会话查询索引;
5.使用会话查询索引在所述一级会话表中进行查询,获得一级会话查询结果;
6.对一级会话查询结果进行匹配检查;
7.使用二级会话查询索引在所述二级会话表中进行查询,获得会话查询结果;
8.对会话查询结果进行匹配检查,并生成转发行为;
9.将数据包根据转发行为进行转发。
5.根据权利要求4所述的过滤分流方法,其特征在于,所述查询匹配单元在所述一级会话表中进行查询,获得一级会话查询结果,对一级会话查询结果进行匹配检查;根据一级会话查询结果的匹配检查结果决定是否继续在二级会话表中进行查询。
6.根据权利要求5所述的过滤分流方法,其特征在于,所述查询匹配单元在所述二级会话表中进行查询,获得二级会话查询结果,对二级会话查询结果中的所有二级会话规则表项进行匹配检查,根据匹配检查的结果生成转发行为。
7.根据权利要求4所述的过滤分流方法,其特征在于,所述会话表包括一级会话表和二级会话表;所述一级会话表包括一级会话子单元,所述一级会话子单元包括一级会话规则索引、一级会话匹配标志和二级会话查询索引;所述二级会话表包括二级会话子单元,所述二级会话子单元包括二级会话规则索引、会话规则特征、规则转发行为。
8.根据权利要求4所述的过滤分流方法,其特征在于,在初始化会话表时,在高速内存中为一级会话表中的所有一级会话规则表项分配存储空间,且将所有一级会话规则表项中的一级会话匹配标志设置为无效,暂时不为二级会话规则表项分配存储空间。
9.根据权利要求4所述的过滤分流方法,其特征在于,在将会话规则策略导入会话表的过程中,更新一级会话规则表项。
10. 根据权利要求4所述的过滤分流方法,其特征在于,在一级会话规则表项中的一级会话匹配标志为有效时,为其二级会话查询索引对应的二级会话规则表项分配存储空间,并添加二级会话规则表项。
CN201310040924.XA 2013-02-04 2013-02-04 基于二级会话查询功能的过滤分流装置及其方法 Active CN103179109B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310040924.XA CN103179109B (zh) 2013-02-04 2013-02-04 基于二级会话查询功能的过滤分流装置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310040924.XA CN103179109B (zh) 2013-02-04 2013-02-04 基于二级会话查询功能的过滤分流装置及其方法

Publications (2)

Publication Number Publication Date
CN103179109A true CN103179109A (zh) 2013-06-26
CN103179109B CN103179109B (zh) 2016-12-28

Family

ID=48638733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310040924.XA Active CN103179109B (zh) 2013-02-04 2013-02-04 基于二级会话查询功能的过滤分流装置及其方法

Country Status (1)

Country Link
CN (1) CN103179109B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103391219A (zh) * 2013-08-09 2013-11-13 盛科网络(苏州)有限公司 基于会话的报文分析方法及装置
CN105227348A (zh) * 2015-08-25 2016-01-06 广东睿江科技有限公司 一种基于ip五元组的哈希存储方法
CN105959254A (zh) * 2015-12-02 2016-09-21 杭州迪普科技有限公司 处理报文的方法和装置
CN108881033A (zh) * 2018-06-20 2018-11-23 湖南戎腾网络科技有限公司 基于fpga+npu的面向lte网络的高速用户溯源方法
CN114338529A (zh) * 2021-12-29 2022-04-12 杭州迪普信息技术有限公司 五元组规则匹配方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809054A (zh) * 2005-01-21 2006-07-26 华为技术有限公司 基于会话初始协议的消息文本解码器
CN101282303A (zh) * 2008-05-19 2008-10-08 杭州华三通信技术有限公司 业务报文处理方法和装置
CN101764741A (zh) * 2009-11-27 2010-06-30 上海恒为信息科技有限公司 支持多业务功能的过滤分流装置及其方法
CN102546363A (zh) * 2010-12-21 2012-07-04 深圳市恒扬科技有限公司 一种报文处理方法、装置及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809054A (zh) * 2005-01-21 2006-07-26 华为技术有限公司 基于会话初始协议的消息文本解码器
CN101282303A (zh) * 2008-05-19 2008-10-08 杭州华三通信技术有限公司 业务报文处理方法和装置
CN101764741A (zh) * 2009-11-27 2010-06-30 上海恒为信息科技有限公司 支持多业务功能的过滤分流装置及其方法
CN102546363A (zh) * 2010-12-21 2012-07-04 深圳市恒扬科技有限公司 一种报文处理方法、装置及设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103391219A (zh) * 2013-08-09 2013-11-13 盛科网络(苏州)有限公司 基于会话的报文分析方法及装置
CN105227348A (zh) * 2015-08-25 2016-01-06 广东睿江科技有限公司 一种基于ip五元组的哈希存储方法
CN105227348B (zh) * 2015-08-25 2019-01-11 广东睿江云计算股份有限公司 一种基于ip五元组的哈希存储方法
CN105959254A (zh) * 2015-12-02 2016-09-21 杭州迪普科技有限公司 处理报文的方法和装置
CN105959254B (zh) * 2015-12-02 2019-09-06 杭州迪普科技股份有限公司 处理报文的方法和装置
CN108881033A (zh) * 2018-06-20 2018-11-23 湖南戎腾网络科技有限公司 基于fpga+npu的面向lte网络的高速用户溯源方法
CN114338529A (zh) * 2021-12-29 2022-04-12 杭州迪普信息技术有限公司 五元组规则匹配方法及装置
CN114338529B (zh) * 2021-12-29 2024-03-08 杭州迪普信息技术有限公司 五元组规则匹配方法及装置

Also Published As

Publication number Publication date
CN103179109B (zh) 2016-12-28

Similar Documents

Publication Publication Date Title
US11824796B2 (en) Protocol independent programmable switch (PIPS) for software defined data center networks
US11929945B2 (en) Managing network traffic in virtual switches based on logical port identifiers
US8274980B2 (en) Ethernet link aggregation
CN103428094B (zh) 开放流OpenFlow系统中的报文转发方法及装置
US7782859B2 (en) Enhanced packet classification
CN108833299B (zh) 一种基于可重构交换芯片架构的大规模网络数据处理方法
CN104410541B (zh) Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置
CN103179109A (zh) 基于二级会话查询功能的过滤分流装置及其方法
CN101242362B (zh) 查找键值生成装置及方法
CN101789949B (zh) 一种实现负荷分担的方法和路由设备
CN102413190A (zh) 一种基于云计算的网络架构及其虚拟网络管理方法
US10819640B1 (en) Congestion avoidance in multipath routed flows using virtual output queue statistics
EP4143691A1 (en) Systems for providing an lpm implementation for a programmable data plane through a distributed algorithm
WO2020172129A1 (en) Variable-length packet header vectors
CN105052106B (zh) 用于接收和传输互联网协议(ip)数据包的方法和系统
CN103685041B (zh) 一种基于比特粒度可编程的路由器及路由方法
CN103297312A (zh) 一种mpls vpn的接入方法及装置
WO2016149121A1 (en) Protocol independent programmable switch (pips) for software defined data center networks
CN115001831B (zh) 基于恶意行为知识库动态部署网络安全服务的方法及系统
CN101964759A (zh) 支持多用户的高速报文分流方法
US10432526B2 (en) Enhanced traffic distribution using VRF tables
Li et al. Exploiting packet-level parallelism of packet parsing for FPGA-based switches
CN113904798B (zh) Ip报文的多元组过滤方法、系统、设备及存储介质
CN106992963A (zh) 一种信息处理方法及网关
Vlaeminck et al. Efficient packet classification on network processors

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 200030 Leshan Road, Shanghai, room 33, No. 103, room

Applicant after: Constant technology (Shanghai) Limited by Share Ltd

Address before: 200127 Shanghai city Pudong New Area Eshan road 91 No. 2 Lujiazui Software Park Building 2 floor

Applicant before: Shanghai Embedway Information Technologies Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SHANGHAI EMBEDWAY INFORMATION TECHNOLOGY CO., LTD. TO: HENGWEI TECHNOLOGY TECHNOLOGY (SHANGHAI) CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant