CN112019458A - 数据报文转发方法及装置 - Google Patents
数据报文转发方法及装置 Download PDFInfo
- Publication number
- CN112019458A CN112019458A CN202010956580.7A CN202010956580A CN112019458A CN 112019458 A CN112019458 A CN 112019458A CN 202010956580 A CN202010956580 A CN 202010956580A CN 112019458 A CN112019458 A CN 112019458A
- Authority
- CN
- China
- Prior art keywords
- flow table
- data message
- matched
- stage
- matching
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据报文转发方法,属于通信技术领域,包括步骤:获取数据报文的属性信息;根据所述属性信息在用户创建的多级流表中进行匹配;记录所述数据报文所匹配过的流表并生成独立的一级流表;转发所述独立的一级流表。通过上述方案,完成了多级流表到独立的一级流表的映射,并根据独立的一级流表生成ACL规则下发到芯片进行转发,降低了交换芯片TCAM实现Openflow的难度,提高了多级流表的使用范围和效率。本发明还提供一种数据报文转发装置。
Description
技术领域
本发明涉及通信技术领域,特别指一种数据报文转发方法及装置。
背景技术
Openflow是目前在SDN(Software Defined Networking)网络中最主要的一种方案。在使用OpenFlow的场景里,一般都会使用多级流表方式实现报文转发,Openflow实现设备根据Openflow的规范要求往往支持多级流表,多级流表是指一个进入Openflow设备的报文可以根据不同的字段在不同的流表中进行查找,并且前一级流表的结果可以影响后一级流表的查表过程。
在现有技术中交换芯片ASIC(Application Specific Integrated Circuit)一般采用TCAM(Ternary Content Addressable Memory)方式进行多级流表的方式进行实现,通过将TCAM划分成几个区域对应到OpenFlow几级流表,例如:TCAM划分3个区域就只能支持3级OpenFlow流表。OpenFlow标准是支持255级流表,如果要实现标准OpenFlow支持的多级流表,需要将TCAM划分为255级。现有技术中交换芯片TCAM因为考虑到成本和功耗的原因,TCAM大小都不会太大一般是几K到几十K,如果划分为255个区域,每一个域匹配一个字段,按匹配IP报文头的32个区域,相当于要划分255x32个区域,每个区域的流表只能存放的几条流表,在实际使用中少则需要几百条,多则需要几十万条流表,该种方式实现的多级流表是无法使用的。所以一般现在使用TCAM方式实现Openflow多为3~4级的流表。
基于此,如何提供一种可以支持基于ACL实现OpenFlow多级流表的方法成为了业内亟需解决的问题。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种可以基于ACL实现OpenFlow多级流表的数据报文转发方法。
技术方案:一种数据报文转发方法,包括:
获取数据报文的属性信息;
根据所述属性信息在用户创建的多级流表中进行匹配,;
记录所述数据报文所匹配过的流表,汇总命中匹配的所述流表中的匹配项和动作项并生成独立的一级流表;
对所述独立的一级流表转换生成ACL规则;
下发所述ACL规则。
进一步地,根据所述属性信息在多级流表中进行匹配时,根据所述数据报文的首包对多级流表进行匹配,获取命中匹配的流表。
进一步地,生成独立的一级流表后:
当所述多级流表中被命中的流表被老化/修改/删除时,删除对应生成所述独立的一级流表。
进一步地,在没有独立的一级流表ACL规则匹配转发时,将所述数据报文上送多级流表,进行一次全流程匹配重新生成新的ACL规则并下发。
进一步地,若匹配的所述多级流表中具有跳转动作的,跳转到其它流表进行匹配和执行动作,并记录在所述多级流表中匹配和执行动作过的流表,汇总生成独立的一级流表。
进一步地,若在多级流表中未匹配到时,上传数据报文的属性信息,并获取新的多级流表。
一种数据报文转发装置,包括:
获取单元,用以获取数据报文的属性信息;
匹配单元,用以根据获取的属性信息在用户创建的多级流表中进行匹配,对将命中匹配的流表中的匹配项和动作项进行汇总,用以生成所述独立的一级流表,并记录命中匹配的流表;
转换单元,将命中匹配的流表汇总生成独立的一级流表;
转发单元,将生成的独立的一级流表转换生成ACL规则进行转发。
进一步地,所述匹配单元在根据所述属性信息在多级流表中进行匹配时,根据所述数据报文的首包对多级流表进行匹配,获取命中匹配的流表。
进一步地,还包括删除单元,用以在所述多级流表中被命中的流表被老化/修改/删除时,删除对应生成所述独立的一级流表。
进一步地,在所述转换单元中,在没有独立的一级流表ACL规则匹配转发时,所述获取单元将所述数据报文上送多级流表,进行一次全流程匹配重新生成新的ACL规则并下发。
本发明数据报文转发方法,拥有以下益效果:通过上述方案,完成了多级流表到独立的一级流表的映射,并根据独立的一级流表生成ACL规则下发到芯片进行转发,降低了交换芯片TCAM实现Openflow的难度,提高了多级流表的使用范围和效率。
附图说明
附图1为本发明数据报文转发方法的一个实施例的步骤示意图;
附图2为图1所示数据报文转发方法的用户创建多级流表示意图;
附图3为图1所示数据报文转发方法的生成独立的一级流表流表示意图;
附图4为本发明数据报文转发装置的一个实施例的电路原理示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础。
参见图1-3所示的本发明数据报文转发方法的一个实施例,包括:
110:获取数据报文的属性信息,属性信息包括匹配项、动作项、优先级、计数器、超时时间、cookies等等。
210:根据所述属性信息在用户创建的多级流表中进行匹配,参见图2所示用户创建的多级流表中的每级流表都有自己的匹配域和动作,多级流表的作用域从用户数据进入ASIC端口到离开ASIC。在本实施例中,多级流表是用户通过OpenFlow协议下发的。
310:记录提取所述数据报文所匹配过的流表并生成独立的一级流表,独立的一级流表如图2所示,具体地,将命中匹配的流表中的匹配项和动作项汇总以生成所述独立的一级流表,因为多级流表的每一级匹配项和动作项都是互相独立不会冲突,所以汇总的独立的一级流表每个匹配域和动作项都是不冲突的,可以形成一条独立的流表项。
410:为了使硬件可以对转换后的数据报文进行读取,转发所述独立的一级流表前,对所述独立的一级流表提取匹配项和动作项转换成ACL规则。
510:转发所述ACL规则。
通过上述方案,完成了多级流表到独立的一级流表的映射,并根据独立的一级流表生成ACL规则下发到芯片进行转发,降低了交换芯片TCAM实现Openflow的难度,提高了多级流表的使用范围和效率。
而且,在多级流表转换成独立的一级流表过程中,很可能因为原有数据因为执行了流表中的动作项,从而造成了数据变更,因而造成所生成独立的一级流表无法准确地对数据进行转发。而采取本实施例中的方案,则可以将完整的动作进行记录,从而恒定能准确地找到原有的数据报文。
作为对本实施例地进一步优化,步骤210中,具体步骤包括:根据所述属性信息在多级流表中进行匹配时,根据所述数据报文的首包对多级流表进行匹配,获取命中匹配的流表。因为多级流表进行排列组合时会得出多种流表组合,例如:4级流表,每级流表有3条,那么排列组合后流表转发的可能性有3的4次方达81种组合。但在实际使用中,数据报文转发不会存在这么多种组合,所以在实际数据转发时,根据实际的数据报文的首包进行匹配可以减少因为会存在多种排列组合流表下发生成导致的TCAM空间不够的问题。
优选地,步骤310记录所述数据报文所匹配过的流表并生成独立的一级流表还包括步骤311:
当所述多级流表中被命中的流表被老化/修改/删除时,删除对应生成所述独立的一级流表。
在没有独立的一级流表ACL规则匹配转发时,将所述数据报文上送多级流表,重复步骤110-510进行一次全流程匹配重新生成新的ACL规则并下发。
在步骤210中,若匹配的所述多级流表中具有跳转动作的,则跳转到其它流表进行匹配和执行动作,并记录在所述多级流表中匹配和执行动作过的流表,汇总生成独立的一级流表。如此只需要记住多级流表中进行过匹配和动作动作的流表,就可以记录下匹配过的匹配项和动作项汇总形成独立的一级流表。
在步骤210中,若在多级流表中未匹配到时,上传数据报文的属性信息,重复步骤110并获取新的多级流表。
本发明还提供一种数据报文转发装置,参见图4所示实施例,包括依次连接的获取单元1、匹配单元2、转换单元3和转发单元4。
获取单元1用以获取数据报文的属性信息,属性信息包括匹配项、动作项、优先级、计数器、超时时间、cookies等等;
匹配单元2用以根据获取的属性信息在用户创建的多级流表中进行匹配,并记录命中匹配的流表;
转换单元3对将命中匹配的流表中的匹配项和动作项进行汇总,用以生成所述独立的一级流表。
转发单元4将生成的独立的一级流表进行转发。
作为对本实施例地进一步优化,所述匹配单元2在根据所述属性信息在多级流表中进行匹配时,根据所述数据报文的首包对多级流表进行匹配,获取命中匹配的流表。
作为对本实施例地进一步优化,还包括删除单元5,用以在所述多级流表中被命中的流表被老化/修改/删除时,删除对应生成独立的一级流表。
作为对本实施例地进一步优化,在所述转换单元3中,在没有独立的一级流表ACL规则匹配转发时,所述获取单元1将所述数据报文上送多级流表,进行一次全流程匹配重新生成新的ACL规则并下发。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据报文转发方法,其特征在于,包括以下步骤:
获取数据报文的属性信息;
根据所述属性信息在用户创建的多级流表中进行匹配,;
记录所述数据报文所匹配过的流表,汇总命中匹配的所述流表中的匹配项和动作项并生成独立的一级流表;
对所述独立的一级流表转换生成ACL规则;
下发所述ACL规则。
2.根据权利要求1所述的数据报文转发方法,其特征在于:根据所述属性信息在多级流表中进行匹配时,根据所述数据报文的首包对多级流表进行匹配,获取命中匹配的流表。
3.根据权利要求1所述的数据报文转发方法,其特征在于:生成独立的一级流表后:
当所述多级流表中被命中的流表被老化/修改/删除时,删除对应生成所述独立的一级流表。
4.根据权利要求3所述的数据报文转发方法,其特征在于:在没有独立的一级流表ACL规则匹配转发时,将所述数据报文上送多级流表,进行一次全流程匹配重新生成新的ACL规则并下发。
5.根据权利要求1所述的数据报文转发方法,其特征在于:若匹配的所述多级流表中具有跳转动作的,跳转到其它流表进行匹配和执行动作,并记录在所述多级流表中匹配和执行动作过的流表,汇总生成独立的一级流表。
6.根据权利要求1所述的数据报文转发方法,其特征在于:若在多级流表中未匹配到时,上传数据报文的属性信息,并获取新的多级流表。
7.一种数据报文转发装置,其特征在于,包括:
获取单元,用以获取数据报文的属性信息;
匹配单元,用以根据获取的属性信息在用户创建的多级流表中进行匹配,对将命中匹配的流表中的匹配项和动作项进行汇总,用以生成所述独立的一级流表,并记录命中匹配的流表;
转换单元,将命中匹配的流表汇总生成独立的一级流表;
转发单元,将生成的独立的一级流表转换生成ACL规则进行转发。
8.根据权利要求7所述的数据报文转发装置,其特征在于:所述匹配单元在根据所述属性信息在多级流表中进行匹配时,根据所述数据报文的首包对多级流表进行匹配,获取命中匹配的流表。
9.根据权利要求7所述的数据报文转发装置,其特征在于:还包括删除单元,用以在所述多级流表中被命中的流表被老化/修改/删除时,删除对应生成所述独立的一级流表。
10.根据权利要求9所述的数据报文转发装置,其特征在于:在所述转换单元中,在没有独立的一级流表ACL规则匹配转发时,所述获取单元将所述数据报文上送多级流表,进行一次全流程匹配重新生成新的ACL规则并下发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010956580.7A CN112019458A (zh) | 2020-09-11 | 2020-09-11 | 数据报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010956580.7A CN112019458A (zh) | 2020-09-11 | 2020-09-11 | 数据报文转发方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112019458A true CN112019458A (zh) | 2020-12-01 |
Family
ID=73522940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010956580.7A Pending CN112019458A (zh) | 2020-09-11 | 2020-09-11 | 数据报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112019458A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112637090A (zh) * | 2020-12-30 | 2021-04-09 | 上海欣诺通信技术股份有限公司 | 一种基于可编程交换芯片的动态多级流控的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150010000A1 (en) * | 2013-07-08 | 2015-01-08 | Nicira, Inc. | Hybrid Packet Processing |
CN104426768A (zh) * | 2013-09-05 | 2015-03-18 | 华为技术有限公司 | 一种数据报文转发方法及装置 |
US20190372894A1 (en) * | 2018-06-05 | 2019-12-05 | NEC Laboratories Europe GmbH | Method and system for performing state-aware software defined networking |
-
2020
- 2020-09-11 CN CN202010956580.7A patent/CN112019458A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150010000A1 (en) * | 2013-07-08 | 2015-01-08 | Nicira, Inc. | Hybrid Packet Processing |
CN104426768A (zh) * | 2013-09-05 | 2015-03-18 | 华为技术有限公司 | 一种数据报文转发方法及装置 |
US20190372894A1 (en) * | 2018-06-05 | 2019-12-05 | NEC Laboratories Europe GmbH | Method and system for performing state-aware software defined networking |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112637090A (zh) * | 2020-12-30 | 2021-04-09 | 上海欣诺通信技术股份有限公司 | 一种基于可编程交换芯片的动态多级流控的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11757740B2 (en) | Aggregation of select network traffic statistics | |
CN104426768B (zh) | 一种数据报文转发方法及装置 | |
US8577817B1 (en) | System and method for using network application signatures based on term transition state machine | |
US8494985B1 (en) | System and method for using network application signatures based on modified term transition state machine | |
JP4341413B2 (ja) | 統計収集装置を備えたパケット転送装置および統計収集方法 | |
EP3905622A1 (en) | Botnet detection method and system, and storage medium | |
CN108399176A (zh) | 一种基于规则的数据处理方法及规则引擎装置 | |
JP2015111902A (ja) | ネットワークシステム、コントローラ、スイッチ、及びトラフィック監視方法 | |
CN101789905A (zh) | 防止未知组播攻击cpu的方法和设备 | |
CN110708250A (zh) | 一种提高数据转发性能的方法、电子设备及存储介质 | |
CN104580027A (zh) | 一种OpenFlow报文转发方法及设备 | |
CN105429879B (zh) | 流表项查询方法、设备及*** | |
US20170171039A1 (en) | Network flow information collection method and apparatus | |
CN105591914B (zh) | 一种openflow流表的查表方法和装置 | |
CN110445719B (zh) | 一种路由表管理方法、装置、设备和存储介质 | |
CN110912826B (zh) | 利用acl扩充ipfix表项的方法及装置 | |
CN112019458A (zh) | 数据报文转发方法及装置 | |
CN115225734A (zh) | 一种报文处理方法和网络设备 | |
KR100681000B1 (ko) | 플로우별 트래픽 측정 장치 및 방법 | |
CN102868775B (zh) | 地址解析协议表容量的扩展方法、报文转发方法和装置 | |
CN112688924A (zh) | 网络协议分析*** | |
CN112087389B (zh) | 一种报文匹配查表方法、***、存储介质和终端 | |
CN108566335B (zh) | 一种基于NetFlow的网络拓扑生成方法 | |
EP4280561A1 (en) | Information flow identification method, network chip, and network device | |
CN114095383B (zh) | 网络流量采样方法、***和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |