CN103457952A - 一种基于加密引擎的IPSec处理方法和设备 - Google Patents
一种基于加密引擎的IPSec处理方法和设备 Download PDFInfo
- Publication number
- CN103457952A CN103457952A CN2013104013326A CN201310401332A CN103457952A CN 103457952 A CN103457952 A CN 103457952A CN 2013104013326 A CN2013104013326 A CN 2013104013326A CN 201310401332 A CN201310401332 A CN 201310401332A CN 103457952 A CN103457952 A CN 103457952A
- Authority
- CN
- China
- Prior art keywords
- ipsec
- line card
- message
- ipsec message
- encryption
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于加密引擎的IPSec处理方法和设备,该方法包括:逻辑线卡的FPGA在收到IPSec报文后,利用IPSec报文的转发信息查询流表;如果流表中有IPSec报文的转发信息,逻辑线卡的FPGA确定用于处理IPSec报文的线卡;如果用于处理IPSec报文的线卡为辅助线卡,所述逻辑线卡的FPGA将IPSec报文发送给辅助线卡的CPU,由所述辅助线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理,并由所述辅助线卡的CPU将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA。本发明实施例中,可以提高加密引擎的使用效率,提升IPSec整体处理性能。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及了一种基于加密引擎的IPSec(IPSecurity,IP安全)处理方法和设备。
背景技术
在采用FPGA(Field Programmable Gate Array,现场可编程阵列)作为核心完成报文转发的网络设备(如路由器、防火墙)中,需要将由CPU(CentralProcessing Unit,中央处理单元)软件实现的报文转发、业务处理等移到FPGA上实现高速转发。其中,FPGA能够快速处理报文,但是FPGA难以支撑复杂业务,如果在FPGA上实现IPSec算法,则复杂度极高,需要占用大量FPGA资源,因此当前不支持在FPGA中进行IPSec处理。基于此,为了提升整体竞争力,目前很多主流嵌入式CPU都在其内部集成了加密引擎(通过专用硬件完成加密和解密处理),以通过CPU内的加密引擎完成IPSec的加密或解密处理。
现有技术中,当网络设备的逻辑线卡收到IPSec报文后,由该逻辑线卡的FPGA完成该IPSec报文的转发处理,并由该逻辑线卡的CPU内的加密引擎完成该IPSec报文的加密处理或者解密处理,逻辑线卡的FPGA和CPU内的加密引擎紧密配合,协同完成IPSec报文整体处理。但是,随着FPGA处理能力的迅猛提升,加密引擎逐渐滞后,成为IPSec整体处理性能的瓶颈,使得IPSec整体处理性能较差。
发明内容
本发明实施例提供一种基于加密引擎的IPSec处理方法和设备,以避免加密引擎成为IPSec整体处理性能的瓶颈,提升IPSec整体处理性能。
为了达到上述目的,本发明实施例提供一种基于加密引擎的IP安全IPSec处理方法,应用于包括逻辑线卡和辅助线卡的网络设备中,该方法包括:
逻辑线卡的现场可编程阵列FPGA在收到IPSec报文后,利用所述IPSec报文的转发信息查询流表;
如果所述流表中没有所述IPSec报文的转发信息,所述逻辑线卡的FPGA将所述IPSec报文发送给所述逻辑线卡的中央处理单元CPU,由所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理,并由所述逻辑线卡的CPU生成所述IPSec报文的转发信息对应的流表项,将所述IPSec报文的转发信息对应的流表项下发到所述逻辑线卡的FPGA的流表;所述IPSec报文的转发信息对应的流表项中记录有用于处理所述IPSec报文的转发信息对应流的IPSec报文的线卡,所述线卡为逻辑线卡或者辅助线卡;
如果所述流表中有所述IPSec报文的转发信息,所述逻辑线卡的FPGA确定用于处理所述IPSec报文的线卡;如果用于处理所述IPSec报文的线卡为逻辑线卡,所述逻辑线卡的FPGA将所述IPSec报文发送给所述逻辑线卡的CPU,由所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理,并由所述逻辑线卡的CPU将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;如果用于处理所述IPSec报文的线卡为辅助线卡,所述逻辑线卡的FPGA将所述IPSec报文发送给所述辅助线卡的CPU,由所述辅助线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理,并由所述辅助线卡的CPU将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA。
所述逻辑线卡的CPU生成所述IPSec报文的转发信息对应的流表项的过程,具体包括:所述逻辑线卡的CPU生成包含IPSec处理标志、IPSec加解密标志、IPSec安全联盟SA索引和IPSec线卡槽位的流表项;其中,在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第二标识;在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行解密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第三标识;所述IPSec SA索引为所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引;所述IPSec线卡槽位为对所述IPSec报文的转发信息对应流的IPSec报文进行IPSec处理的线卡的槽位,所述线卡的槽位为逻辑线卡的槽位或者辅助线卡的槽位。
所述逻辑线卡的FPGA将所述IPSec报文发送给所述逻辑线卡的CPU之前,所述方法还包括:所述逻辑线卡的CPU获取本逻辑线卡上维护的SA内容,将所述SA内容下发到本逻辑线卡或者辅助线卡,并在SA关系表中记录所述SA内容对应的SA索引与下发到的本逻辑线卡的槽位或者辅助线卡的槽位之间的对应关系;
所述逻辑线卡的CPU在生成所述IPSec报文的转发信息对应的流表项时,利用逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引查询SA关系表,得到所述SA索引对应的本逻辑线卡的槽位或者辅助线卡的槽位,将本逻辑线卡的槽位或者辅助线卡的槽位记录到所述IPSec报文的转发信息对应的流表项的IPSec线卡槽位中。
所述逻辑线卡的FPGA将所述IPSec报文发送给所述逻辑线卡的CPU的过程,具体包括:
所述逻辑线卡的FPGA确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位,并将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位添加到IPSec报文控制块中,并将所述IPSec报文控制块封装到所述IPSec报文中;
所述逻辑线卡的FPGA将封装了所述IPSec报文控制块的IPSec报文发送给所述逻辑线卡的CPU;由所述逻辑线卡的CPU在收到封装了所述IPSec报文控制块的IPSec报文之后,如果从所述IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则由所述逻辑线卡的CPU内的加密引擎利用所述IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果从所述IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则由所述逻辑线卡的CPU内的加密引擎利用所述IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
在对所述IPSec报文进行加密处理或者解密处理完成后,所述逻辑线卡的CPU在所述IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
所述逻辑线卡的FPGA将所述IPSec报文发送给所述辅助线卡的CPU的过程,具体包括:
所述逻辑线卡的FPGA确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位,并将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位添加到IPSec报文控制块中,并在所述IPSec报文控制块中标明IPSec报文类型为需要辅助线卡对IPSec报文进行IPSec处理,并将所述IPSec报文控制块封装到所述IPSec报文中;
所述逻辑线卡的FPGA通过背板将封装了IPSec报文控制块的IPSec报文发送给所述辅助线卡的CPU;由所述辅助线卡的CPU在收到封装了IPSec报文控制块的IPSec报文之后,如果所述辅助线卡的CPU从所述IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则由所述辅助线卡的CPU内的加密引擎利用所述IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果所述辅助线卡的CPU从所述IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则由所述辅助线卡的CPU内的加密引擎利用所述IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
在对所述IPSec报文进行加密处理或者解密处理完成后,所述辅助线卡的CPU在所述IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
本发明实施例提供一种用于进行IP安全IPSec处理的网络设备,包括逻辑线卡和辅助线卡,所述逻辑线卡的现场可编程阵列FPGA包括查询模块、第一发送模块、确定模块、第三发送模块;所述逻辑线卡的中央处理单CPU包括第一处理模块、生成模块、第二发送模块、第四发送模块;所述辅助线卡的CPU包括第二处理模块、第五发送模块;其中:
查询模块,用于在收到IPSec报文后,利用所述IPSec报文的转发信息查询流表;
第一发送模块,用于在利用所述IPSec报文的转发信息查询流表时,如果所述流表中没有所述IPSec报文的转发信息,则将所述IPSec报文发送给所述逻辑线卡的CPU;
第一处理模块,用于在收到来自所述逻辑线卡的FPGA的IPSec报文后,利用所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理;
生成模块,用于在收到来自所述逻辑线卡的FPGA的第一发送模块的IPSec报文后,生成所述IPSec报文的转发信息对应的流表项;其中,所述IPSec报文的转发信息对应的流表项中记录有用于处理所述IPSec报文的转发信息对应流的IPSec报文的线卡,所述线卡为逻辑线卡或者辅助线卡;
第二发送模块,用于在生成所述IPSec报文的转发信息对应的流表项之后,将所述IPSec报文的转发信息对应的流表项下发到所述逻辑线卡的FPGA的流表;
确定模块,用于在利用所述IPSec报文的转发信息查询流表时,如果所述流表中有所述IPSec报文的转发信息,则确定用于处理所述IPSec报文的线卡;
第三发送模块,用于在确定用于处理所述IPSec报文的线卡之后,如果用于处理所述IPSec报文的线卡为逻辑线卡,则将所述IPSec报文发送给所述逻辑线卡的CPU;如果用于处理所述IPSec报文的线卡为辅助线卡,则将所述IPSec报文发送给所述辅助线卡的CPU;
第四发送模块,用于在对所述IPSec报文进行加密处理或者解密处理后,将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
第二处理模块,用于在收到IPSec报文后,利用所述辅助线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理;
第五发送模块,用于在对所述IPSec报文进行加密处理或者解密处理后,将加密处理或者解密处理后的IPSec报文发送给逻辑线卡的FPGA。
所述生成模块,具体用于生成包含IPSec处理标志、IPSec加解密标志、IPSec安全联盟SA索引和IPSec线卡槽位的流表项;其中,在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第二标识;在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行解密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第三标识;所述IPSec SA索引为所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引;所述IPSec线卡槽位为对所述IPSec报文的转发信息对应流的IPSec报文进行IPSec处理的线卡的槽位,所述线卡的槽位为逻辑线卡的槽位或者辅助线卡的槽位。
所述生成模块,进一步用于获取本逻辑线卡上维护的SA内容,将所述SA内容下发到本逻辑线卡或者辅助线卡,并在SA关系表中记录所述SA内容对应的SA索引与下发到的本逻辑线卡的槽位或者辅助线卡的槽位之间的对应关系;在生成所述IPSec报文的转发信息对应的流表项时,利用逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引查询SA关系表,得到所述SA索引对应的本逻辑线卡的槽位或者辅助线卡的槽位,将本逻辑线卡的槽位或者辅助线卡的槽位记录到所述IPSec报文的转发信息对应的流表项的IPSec线卡槽位中。
所述第三发送模块,具体用于确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引和IPSec线卡槽位,并在IPSec线卡槽位为所述逻辑线卡时,将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引和IPSec线卡槽位添加到IPSec报文控制块中,并将IPSec报文控制块封装到所述IPSec报文中;以及,将封装了IPSec报文控制块的IPSec报文发送给所述逻辑线卡的CPU;
所述第一处理模块,具体用于在收到封装了IPSec报文控制块的IPSec报文之后,如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则通过所述逻辑线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则通过所述逻辑线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
所述第四发送模块,具体用于在对所述IPSec报文进行加密处理或者解密处理完成后,在IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
由所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
所述第三发送模块,具体用于确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位,并在IPSec线卡槽位为所述辅助线卡时,将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位添加到IPSec报文控制块中,并在所述IPSec报文控制块中标明IPSec报文类型为需要辅助线卡对IPSec报文进行IPSec处理,并将所述IPSec报文控制块封装到所述IPSec报文中;以及,通过背板将封装了IPSec报文控制块的IPSec报文发送给所述辅助线卡的CPU;
所述第二处理模块,具体用于在收到封装了IPSec报文控制块的IPSec报文之后,如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则通过所述辅助线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则通过所述辅助线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
所述第五发送模块,具体用于在对所述IPSec报文进行加密处理或者解密处理完成后,在IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
由所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,通过逻辑线卡的CPU内的加密引擎和辅助线卡的CPU内的加密引擎共同实现对IPSec报文的加密处理或者解密处理,即通过辅助线卡的CPU内的加密引擎辅助逻辑线卡完成对IPSec报文的加密处理或者解密处理,从而避免加密引擎成为IPSec整体处理性能的瓶颈,提高加密引擎的使用效率,提升IPSec整体处理性能。
附图说明
图1是本发明实施例的应用场景示意图;
图2是本发明实施例提供的一种基于加密引擎的IPSec处理方法流程图;
图3是本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
本发明实施例提供一种基于加密引擎的IPSec处理方法,该方法应用于包括逻辑线卡和辅助线卡的网络设备(如路由器、防火墙等)中,并用于对IPSec报文进行加密处理或者解密处理。加密处理包括但不限于AH(AuthenticationHeader,验证头)加封装和ESP(Encapsulating Security Payload,封装安全载荷)加封装等,解密处理包括但不限于AH解封装和ESP解封装等。
如图1所示,网络设备中除了包括逻辑线卡(采用FPGA作为转发核心的线卡)外,还会有其它的业务线卡,这些业务线卡的CPU也内置加密引擎,当业务线卡没有配置IPSec业务时,CPU内的加密引擎处于不工作状态,这种情况下,本发明实施例中,可以让这些空闲的加密引擎辅助逻辑线卡完成IPSec处理,提升整体IPSec性能。其中,可以将这些用于配合逻辑线卡提升IPSec处理性能的业务线卡称为辅助线卡,且由用户配置哪些业务线卡作为逻辑线卡的辅助线卡,并由逻辑线卡保存本逻辑线卡对应的辅助线卡的配置。
如图2所示,该基于加密引擎的IPSec处理方法包括以下步骤:
步骤201,逻辑线卡的FPGA在收到IPSec报文之后,利用该IPSec报文的转发信息查询流表(IPsec流表);如果流表中没有该IPSec报文的转发信息,则执行步骤202;如果流表中有该IPSec报文的转发信息,则执行步骤204。
本发明实施例中,逻辑线卡的FPGA在收到IPSec报文之后,如果该IPSec报文是首包,则查询结果为流表中没有该IPSec报文的转发信息所对应的记录;如果该IPSec报文不是首包,则查询结果为流表中有该IPSec报文的转发信息所对应的记录。其中,该IPSec报文的转发信息包括但不限于该IPSec报文中携带的五元组信息,且该五元组信息具体为源IP地址、源端口号、目的IP地址、目的端口号和协议类型。
步骤202,逻辑线卡的FPGA将IPSec报文发送给逻辑线卡的CPU,由逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理,并由逻辑线卡的CPU生成IPSec报文的转发信息对应的流表项。其中,该IPSec报文的转发信息对应的流表项中记录有用于处理该IPSec报文的转发信息对应流的IPSec报文的线卡,且该线卡为逻辑线卡或者辅助线卡。
本发明实施例中,逻辑线卡的CPU在收到来自逻辑线卡的FPGA的IPSec报文之后,逻辑线卡的CPU可以根据当前配置以及IPSec报文特征判断出IPSec报文为IPsec报文,且该IPsec报文需要进行加密处理或者解密处理;因此,由逻辑线卡的CPU内的加密引擎获得该IPSec报文对应的SA(SecurityAssociation,安全联盟)内容,并由逻辑线卡的CPU内的加密引擎利用该SA内容对该IPSec报文进行加密处理或者解密处理。之后,逻辑线卡的CPU可以利用加密处理或者解密处理后的IPSec报文中携带的转发信息查找IP流表,并根据查找结果发送加密处理或者解密处理后的IPSec报文;在发送加密处理或者解密处理后的IPSec报文时,逻辑线卡的CPU是通过逻辑线卡的FPGA将加密处理或者解密处理后的IPSec报文发送出去的。
本发明实施例中,基于逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理的过程,逻辑线卡的CPU生成IPSec报文的转发信息对应的流表项。该逻辑线卡的CPU生成的流表项中至少包含IPSec处理标志、IPSec加解密标志、IPSec SA索引和IPSec线卡槽位;此外,该流表项中还可以包含该IPSec报文的转发信息以及获得的SA内容的SA索引等,对此本发明实施例中不再赘述。
逻辑线卡的CPU在生成IPSec报文的转发信息对应的流表项时,在逻辑线卡的CPU内的加密引擎对该IPSec报文进行加密处理或者解密处理时,IPSec处理标志为第一标识。例如,IPSec处理标志的宽度为1bit,当此IPSec处理标志为第一标识(如1)时,表明需要对IPSec报文进行加密处理或者解密处理。
逻辑线卡的CPU在生成IPSec报文的转发信息对应的流表项时,在逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理时,IPSec加解密标志为第二标识;在逻辑线卡的CPU内的加密引擎对IPSec报文进行解密处理时,IPSec加解密标志为第三标识。例如,IPSec加解密标志的宽度为1bit,当此IPSec加解密标志为第二标识(如1),则表明需要对IPSec报文进行加密处理,当此IPSec加解密标志为第三标识(如0),则表明需要对IPSec报文进行解密处理。
逻辑线卡的CPU在生成IPSec报文的转发信息对应的流表项时,IPSec SA索引为逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引。例如,IPSec SA索引的宽度为16bit,用于记录对IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引,且后续可以基于该SA索引对应的SA内容对IPSec报文进行加密处理或者解密处理。
逻辑线卡的CPU在生成IPSec报文的转发信息对应的流表项时,IPSec线卡槽位为对IPSec报文的转发信息对应流的IPSec报文进行IPSec处理的线卡的槽位,线卡的槽位为逻辑线卡的槽位或辅助线卡的槽位,且线卡的槽位表明由该槽位的线卡进行IPSec处理。例如,IPSec线卡槽位的宽度为6bit,表明由哪一个槽位的线卡(逻辑线卡或者辅助线卡)对该IPSec报文的后续IPSec报文进行IPSec处理,即加密处理或者解密处理。
本发明实施例中,为了在流表项的IPSec线卡槽位中记录IPSec报文对应的线卡的槽位,还需要维护SA关系表,该SA关系表用于记录SA索引与逻辑线卡的槽位或者辅助线卡的槽位之间的对应关系。基于此,逻辑线卡的CPU获取本逻辑线卡上维护的SA内容(即本逻辑线卡上维护的所有SA内容),并将该SA内容下发到本逻辑线卡或者辅助线卡(SA内容只能下发到一个线卡);之后逻辑线卡的CPU在SA关系表中记录该SA内容对应的SA索引与该SA内容下发到的本逻辑线卡的槽位或者辅助线卡的槽位之间的对应关系。
在一种具体实现方式中,SA内容中包含加密算法、认证算法、密钥等信息。由于SA支持基于流量老化的特性,考虑到每个IPSec报文都要进行老化判断,而线卡之间同步SA内容比较困难,因此一个SA内容只由一个线卡(逻辑线卡或者辅助线卡)处理,且逻辑线卡的CPU将SA内容下发到本逻辑线卡或者辅助线卡时,以循环方式将SA内容下发到本逻辑线卡和各辅助线卡。
例如,网络设备中包括一个逻辑线卡和三个辅助线卡,逻辑线卡的CPU获取的SA内容分别为SA内容1、SA内容2、SA内容3、SA内容4、SA内容5、SA内容6、SA内容7,各SA内容对应的SA索引分别为SA索引0、SA索引1、SA索引2、SA索引3、SA索引4、SA索引5、SA索引6。
基于此,如表1所示,逻辑线卡的CPU将SA内容1下发到本逻辑线卡,并在SA关系表中记录SA索引0与本逻辑线卡的槽位0之间的对应关系;逻辑线卡的CPU将SA内容2下发到辅助线卡1,并在SA关系表中记录SA索引1与辅助线卡1的槽位1之间的对应关系;逻辑线卡的CPU将SA内容3下发到辅助线卡2,并在SA关系表中记录SA索引2与辅助线卡2的槽位2之间的对应关系;逻辑线卡的CPU将SA内容4下发到辅助线卡3,并在SA关系表中记录SA索引3与辅助线卡3的槽位3之间的对应关系;逻辑线卡的CPU将SA内容5下发到本逻辑线卡,并在SA关系表中记录SA索引4与本逻辑线卡的槽位0之间的对应关系;逻辑线卡的CPU将SA内容6下发到辅助线卡1,并在SA关系表中记录SA索引5与辅助线卡1的槽位1之间的对应关系;逻辑线卡的CPU将SA内容7下发到辅助线卡2,并在SA关系表中记录SA索引6与辅助线卡2的槽位2之间的对应关系。
表1
SA索引 | 线卡的槽位 |
SA索引0 | 逻辑线卡的槽位0 |
SA索引1 | 辅助线卡1的槽位1 |
SA索引2 | 辅助线卡2的槽位2 |
SA索引3 | 辅助线卡3的槽位3 |
SA索引4 | 逻辑线卡的槽位0 |
SA索引5 | 辅助线卡1的槽位1 |
SA索引6 | 辅助线卡2的槽位2 |
进一步的,基于在SA关系表中记录的SA索引与逻辑线卡的槽位或者辅助线卡的槽位之间的对应关系,逻辑线卡的CPU在生成IPSec报文的转发信息对应的流表项时,利用逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引查询SA关系表,得到SA索引对应的本逻辑线卡的槽位或者辅助线卡的槽位,并将本逻辑线卡的槽位或者辅助线卡的槽位记录到IPSec报文的转发信息对应的流表项的IPSec线卡槽位中。
步骤203,逻辑线卡的CPU将IPSec报文的转发信息对应的流表项下发到逻辑线卡的FPGA的流表,由逻辑线卡的FPGA接收并在本地流表中保存该IPSec报文的转发信息对应的流表项。
步骤204,逻辑线卡的FPGA确定用于处理IPSec报文的线卡;如果用于处理IPSec报文的线卡为逻辑线卡,则执行步骤205;如果用于处理IPSec报文的线卡为辅助线卡,则执行步骤206。
本发明实施例中,由于IPSec报文的转发信息对应的流表项中记录有IPSec报文对应的用于处理IPSec报文的线卡,且IPSec报文对应的用于处理IPSec报文的线卡为逻辑线卡或者辅助线卡,因此如果流表项中有该IPSec报文的转发信息,则该逻辑线卡的FPGA可以通过流表项的IPSec线卡槽位中记录的信息确定IPSec报文对应的线卡为逻辑线卡或者辅助线卡。
步骤205,逻辑线卡的FPGA将IPSec报文发送给逻辑线卡的CPU,逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理,逻辑线卡的CPU将加密处理或者解密处理后的IPSec报文发送给逻辑线卡的FPGA。
具体的,逻辑线卡的FPGA确定IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位;如果IPSec处理标志为第一标识,则表明需要对该IPSec报文进行加密处理或者解密处理,逻辑线卡的FPGA将IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位添加到IPSec报文控制块中,并将IPSec报文控制块封装到该IPSec报文中。
之后,逻辑线卡的FPGA将封装了IPSec报文控制块的IPSec报文发送给逻辑线卡的CPU;由逻辑线卡的CPU在收到封装了IPSec报文控制块的IPSec报文之后,如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则由逻辑线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对IPSec报文进行加密处理;如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则由逻辑线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对IPSec报文进行解密处理。
在对IPSec报文进行加密处理或者解密处理完成后,逻辑线卡的CPU在IPSec报文控制块中标明IPSec报文类型为已完成加解密处理(或已完成IPSec辅助处理),并由逻辑线卡的CPU将加密处理或者解密处理后的IPSec报文发送给逻辑线卡的FPGA;逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,表明此时IPSec报文已经完成加密处理或者解密处理,被增加或者删除了IP/IPSec封装头,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
步骤206,逻辑线卡的FPGA将IPSec报文发送给辅助线卡的CPU,辅助线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理,辅助线卡的CPU将加密处理或者解密处理后的IPSec报文发送给逻辑线卡的FPGA。
具体的,逻辑线卡的FPGA确定IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位;如果IPSec处理标志为第一标识,则表明需要对该IPSec报文进行加密处理或者解密处理,逻辑线卡的FPGA将IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位添加到IPSec报文控制块中,并在IPSec报文控制块中标明IPSec报文类型为需要辅助线卡对IPSec报文进行IPSec处理,并将IPSec报文控制块封装到IPSec报文中。
之后,逻辑线卡的FPGA通过背板将封装了IPSec报文控制块的IPSec报文发送给辅助线卡的CPU。由辅助线卡的CPU在收到封装了IPSec报文控制块的IPSec报文之后,如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则由辅助线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对IPSec报文进行加密处理;如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则由辅助线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对IPSec报文进行解密处理。
在对IPSec报文进行加密处理或者解密处理完成后,辅助线卡的CPU在IPSec报文控制块中标明IPSec报文类型为已完成加解密处理(或已完成IPSec辅助处理),并将加密处理或者解密处理后的IPSec报文发送给逻辑线卡的FPGA。逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,表明此时IPSec报文已经完成加密处理或者解密处理,被增加或者删除了IP/IPSec封装头,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种用于进行IP安全IPSec处理的网络设备,包括逻辑线卡和辅助线卡,如图3所示,所述逻辑线卡的现场可编程阵列FPGA包括查询模块11、第一发送模块12、确定模块13、第三发送模块14;所述逻辑线卡的中央处理单CPU包括第一处理模块15、生成模块16、第二发送模块17、第四发送模块18;所述辅助线卡的CPU包括第二处理模块19、第五发送模块20;其中:
查询模块11,用于在收到IPSec报文后,利用所述IPSec报文的转发信息查询流表;
第一发送模块12,用于在利用所述IPSec报文的转发信息查询流表时,如果所述流表中没有所述IPSec报文的转发信息,则将所述IPSec报文发送给所述逻辑线卡的CPU;
第一处理模块15,用于在收到来自所述逻辑线卡的FPGA的IPSec报文后,利用所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理;
生成模块16,用于在收到来自所述逻辑线卡的FPGA的第一发送模块12的IPSec报文后,生成所述IPSec报文的转发信息对应的流表项;其中,所述IPSec报文的转发信息对应的流表项中记录有用于处理所述IPSec报文的转发信息对应流的IPSec报文的线卡,所述线卡为逻辑线卡或者辅助线卡;
第二发送模块17,用于在生成所述IPSec报文的转发信息对应的流表项之后,将所述IPSec报文的转发信息对应的流表项下发到所述逻辑线卡的FPGA的流表;
确定模块13,用于在利用所述IPSec报文的转发信息查询流表时,如果所述流表中有所述IPSec报文的转发信息,则确定用于处理所述IPSec报文的线卡;
第三发送模块14,用于在确定用于处理所述IPSec报文的线卡之后,如果用于处理所述IPSec报文的线卡为逻辑线卡,则将所述IPSec报文发送给所述逻辑线卡的CPU;如果用于处理所述IPSec报文的线卡为辅助线卡,则将所述IPSec报文发送给所述辅助线卡的CPU;
第四发送模块18,用于在对所述IPSec报文进行加密处理或者解密处理后,将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
第二处理模块19,用于在收到IPSec报文后,利用所述辅助线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理;
第五发送模块20,用于在对所述IPSec报文进行加密处理或者解密处理后,将加密处理或者解密处理后的IPSec报文发送给逻辑线卡的FPGA。
所述生成模块16,具体用于生成包含IPSec处理标志、IPSec加解密标志、IPSec安全联盟SA索引和IPSec线卡槽位的流表项;其中,在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第二标识;在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行解密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第三标识;所述IPSec SA索引为所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引;所述IPSec线卡槽位为对所述IPSec报文的转发信息对应流的IPSec报文进行IPSec处理的线卡的槽位,所述线卡的槽位为逻辑线卡的槽位或者辅助线卡的槽位。
所述生成模块16,进一步用于获取本逻辑线卡上维护的SA内容,将所述SA内容下发到本逻辑线卡或者辅助线卡,并在SA关系表中记录所述SA内容对应的SA索引与下发到的本逻辑线卡的槽位或者辅助线卡的槽位之间的对应关系;在生成所述IPSec报文的转发信息对应的流表项时,利用逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引查询SA关系表,得到所述SA索引对应的本逻辑线卡的槽位或者辅助线卡的槽位,将本逻辑线卡的槽位或者辅助线卡的槽位记录到所述IPSec报文的转发信息对应的流表项的IPSec线卡槽位中。
所述第三发送模块14,具体用于确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引和IPSec线卡槽位,并在IPSec线卡槽位为所述逻辑线卡时,将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引和IPSec线卡槽位添加到IPSec报文控制块中,将IPSec报文控制块封装到所述IPSec报文中;以及将封装了IPSec报文控制块的IPSec报文发送给所述逻辑线卡的CPU;
所述第一处理模块15,具体用于在收到封装了IPSec报文控制块的IPSec报文之后,如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则通过所述逻辑线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则通过所述逻辑线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
所述第四发送模块18,具体用于在对所述IPSec报文进行加密处理或者解密处理完成后,在IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;由所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
所述第三发送模块14,具体用于确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位,并在IPSec线卡槽位为所述辅助线卡时,将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位添加到IPSec报文控制块中,并在所述IPSec报文控制块中标明IPSec报文类型为需要辅助线卡对IPSec报文进行IPSec处理,并将所述IPSec报文控制块封装到所述IPSec报文中;以及,通过背板将封装了IPSec报文控制块的IPSec报文发送给所述辅助线卡的CPU;
所述第二处理模块19,具体用于在收到封装了IPSec报文控制块的IPSec报文之后,如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则通过所述辅助线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则通过所述辅助线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
所述第五发送模块20,具体用于在对所述IPSec报文进行加密处理或者解密处理完成后,在IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;由所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种基于加密引擎的IP安全IPSec处理方法,应用于包括逻辑线卡和辅助线卡的网络设备中,其特征在于,该方法包括以下步骤:
逻辑线卡的现场可编程阵列FPGA在收到IPSec报文后,利用所述IPSec报文的转发信息查询流表;
如果所述流表中没有所述IPSec报文的转发信息,所述逻辑线卡的FPGA将所述IPSec报文发送给所述逻辑线卡的中央处理单元CPU,由所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理,并由所述逻辑线卡的CPU生成所述IPSec报文的转发信息对应的流表项,将所述IPSec报文的转发信息对应的流表项下发到所述逻辑线卡的FPGA的流表;所述IPSec报文的转发信息对应的流表项中记录有用于处理所述IPSec报文的转发信息对应流的IPSec报文的线卡,所述线卡为逻辑线卡或者辅助线卡;
如果所述流表中有所述IPSec报文的转发信息,所述逻辑线卡的FPGA确定用于处理所述IPSec报文的线卡;如果用于处理所述IPSec报文的线卡为逻辑线卡,所述逻辑线卡的FPGA将所述IPSec报文发送给所述逻辑线卡的CPU,由所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理,并由所述逻辑线卡的CPU将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;如果用于处理所述IPSec报文的线卡为辅助线卡,所述逻辑线卡的FPGA将所述IPSec报文发送给所述辅助线卡的CPU,由所述辅助线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理,并由所述辅助线卡的CPU将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA。
2.如权利要求1所述的方法,其特征在于,所述逻辑线卡的CPU生成所述IPSec报文的转发信息对应的流表项的过程,具体包括:
所述逻辑线卡的CPU生成包含IPSec处理标志、IPSec加解密标志、IPSec安全联盟SA索引和IPSec线卡槽位的流表项;其中,在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第二标识;在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行解密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第三标识;所述IPSec SA索引为所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引;所述IPSec线卡槽位为对所述IPSec报文的转发信息对应流的IPSec报文进行IPSec处理的线卡的槽位,所述线卡的槽位为逻辑线卡的槽位或者辅助线卡的槽位。
3.如权利要求2所述的方法,其特征在于,
所述逻辑线卡的FPGA将所述IPSec报文发送给所述逻辑线卡的CPU之前,所述方法还包括:所述逻辑线卡的CPU获取本逻辑线卡上维护的SA内容,将所述SA内容下发到本逻辑线卡或者辅助线卡,并在SA关系表中记录所述SA内容对应的SA索引与下发到的本逻辑线卡的槽位或者辅助线卡的槽位之间的对应关系;
所述逻辑线卡的CPU在生成所述IPSec报文的转发信息对应的流表项时,利用逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引查询SA关系表,得到所述SA索引对应的本逻辑线卡的槽位或者辅助线卡的槽位,将本逻辑线卡的槽位或者辅助线卡的槽位记录到所述IPSec报文的转发信息对应的流表项的IPSec线卡槽位中。
4.如权利要求2所述的方法,其特征在于,所述逻辑线卡的FPGA将所述IPSec报文发送给所述逻辑线卡的CPU的过程,具体包括:
所述逻辑线卡的FPGA确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位,并将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位添加到IPSec报文控制块中,并将所述IPSec报文控制块封装到所述IPSec报文中;
所述逻辑线卡的FPGA将封装了所述IPSec报文控制块的IPSec报文发送给所述逻辑线卡的CPU;由所述逻辑线卡的CPU在收到封装了所述IPSec报文控制块的IPSec报文之后,如果从所述IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则由所述逻辑线卡的CPU内的加密引擎利用所述IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果从所述IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则由所述逻辑线卡的CPU内的加密引擎利用所述IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
在对所述IPSec报文进行加密处理或者解密处理完成后,所述逻辑线卡的CPU在所述IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
5.如权利要求2所述的方法,其特征在于,所述逻辑线卡的FPGA将所述IPSec报文发送给所述辅助线卡的CPU的过程,具体包括:
所述逻辑线卡的FPGA确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位,并将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位添加到IPSec报文控制块中,并在所述IPSec报文控制块中标明IPSec报文类型为需要辅助线卡对IPSec报文进行IPSec处理,并将所述IPSec报文控制块封装到所述IPSec报文中;
所述逻辑线卡的FPGA通过背板将封装了IPSec报文控制块的IPSec报文发送给所述辅助线卡的CPU;由所述辅助线卡的CPU在收到封装了IPSec报文控制块的IPSec报文之后,如果所述辅助线卡的CPU从所述IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则由所述辅助线卡的CPU内的加密引擎利用所述IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果所述辅助线卡的CPU从所述IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则由所述辅助线卡的CPU内的加密引擎利用所述IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
在对所述IPSec报文进行加密处理或者解密处理完成后,所述辅助线卡的CPU在所述IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
6.一种用于进行IP安全IPSec处理的网络设备,包括逻辑线卡和辅助线卡,其特征在于,所述逻辑线卡的现场可编程阵列FPGA包括查询模块、第一发送模块、确定模块、第三发送模块;所述逻辑线卡的中央处理单CPU包括第一处理模块、生成模块、第二发送模块、第四发送模块;所述辅助线卡的CPU包括第二处理模块、第五发送模块;其中:
查询模块,用于在收到IPSec报文后,利用所述IPSec报文的转发信息查询流表;
第一发送模块,用于在利用所述IPSec报文的转发信息查询流表时,如果所述流表中没有所述IPSec报文的转发信息,则将所述IPSec报文发送给所述逻辑线卡的CPU;
第一处理模块,用于在收到来自所述逻辑线卡的FPGA的IPSec报文后,利用所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理;
生成模块,用于在收到来自所述逻辑线卡的FPGA的第一发送模块的IPSec报文后,生成所述IPSec报文的转发信息对应的流表项;其中,所述IPSec报文的转发信息对应的流表项中记录有用于处理所述IPSec报文的转发信息对应流的IPSec报文的线卡,所述线卡为逻辑线卡或者辅助线卡;
第二发送模块,用于在生成所述IPSec报文的转发信息对应的流表项之后,将所述IPSec报文的转发信息对应的流表项下发到所述逻辑线卡的FPGA的流表;
确定模块,用于在利用所述IPSec报文的转发信息查询流表时,如果所述流表中有所述IPSec报文的转发信息,则确定用于处理所述IPSec报文的线卡;
第三发送模块,用于在确定用于处理所述IPSec报文的线卡之后,如果用于处理所述IPSec报文的线卡为逻辑线卡,则将所述IPSec报文发送给所述逻辑线卡的CPU;如果用于处理所述IPSec报文的线卡为辅助线卡,则将所述IPSec报文发送给所述辅助线卡的CPU;
第四发送模块,用于在对所述IPSec报文进行加密处理或者解密处理后,将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
第二处理模块,用于在收到IPSec报文后,利用所述辅助线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理;
第五发送模块,用于在对所述IPSec报文进行加密处理或者解密处理后,将加密处理或者解密处理后的IPSec报文发送给逻辑线卡的FPGA。
7.如权利要求6所述的网络设备,其特征在于,
所述生成模块,具体用于生成包含IPSec处理标志、IPSec加解密标志、IPSec安全联盟SA索引和IPSec线卡槽位的流表项;其中,在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第二标识;在所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行解密处理时,所述IPSec处理标志为第一标识、所述IPSec加解密标志为第三标识;所述IPSec SA索引为所述逻辑线卡的CPU内的加密引擎对所述IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引;所述IPSec线卡槽位为对所述IPSec报文的转发信息对应流的IPSec报文进行IPSec处理的线卡的槽位,所述线卡的槽位为逻辑线卡的槽位或者辅助线卡的槽位。
8.如权利要求7所述的网络设备,其特征在于,
所述生成模块,进一步用于获取本逻辑线卡上维护的SA内容,将所述SA内容下发到本逻辑线卡或者辅助线卡,并在SA关系表中记录所述SA内容对应的SA索引与下发到的本逻辑线卡的槽位或者辅助线卡的槽位之间的对应关系;在生成所述IPSec报文的转发信息对应的流表项时,利用逻辑线卡的CPU内的加密引擎对IPSec报文进行加密处理或者解密处理时采用的SA内容对应的SA索引查询SA关系表,得到所述SA索引对应的本逻辑线卡的槽位或者辅助线卡的槽位,将本逻辑线卡的槽位或者辅助线卡的槽位记录到所述IPSec报文的转发信息对应的流表项的IPSec线卡槽位中。
9.如权利要求7所述的网络设备,其特征在于,
所述第三发送模块,具体用于确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引和IPSec线卡槽位,并在IPSec线卡槽位为所述逻辑线卡时,将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引和IPSec线卡槽位添加到IPSec报文控制块中,并将IPSec报文控制块封装到所述IPSec报文中;以及,将封装了IPSec报文控制块的IPSec报文发送给所述逻辑线卡的CPU;
所述第一处理模块,具体用于在收到封装了IPSec报文控制块的IPSec报文之后,如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则通过所述逻辑线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则通过所述逻辑线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
所述第四发送模块,具体用于在对所述IPSec报文进行加密处理或者解密处理完成后,在IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
由所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
10.如权利要求7所述的网络设备,其特征在于,
所述第三发送模块,具体用于确定所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位,并在IPSec线卡槽位为所述辅助线卡时,将所述IPSec报文对应的IPSec处理标志、IPSec加解密标志、IPSec SA索引以及IPSec线卡槽位添加到IPSec报文控制块中,并在所述IPSec报文控制块中标明IPSec报文类型为需要辅助线卡对IPSec报文进行IPSec处理,并将所述IPSec报文控制块封装到所述IPSec报文中;以及,通过背板将封装了IPSec报文控制块的IPSec报文发送给所述辅助线卡的CPU;
所述第二处理模块,具体用于在收到封装了IPSec报文控制块的IPSec报文之后,如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第二标识,则通过所述辅助线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行加密处理;如果从IPSec报文控制块中获知IPSec处理标志为第一标识,且IPSec加解密标志为第三标识,则通过所述辅助线卡的CPU内的加密引擎利用IPSec报文控制块中携带的SA索引对应的SA内容对所述IPSec报文进行解密处理;
所述第五发送模块,具体用于在对所述IPSec报文进行加密处理或者解密处理完成后,在IPSec报文控制块中标明IPSec报文类型为已完成加解密处理,并将加密处理或者解密处理后的IPSec报文发送给所述逻辑线卡的FPGA;
由所述逻辑线卡的FPGA在收到加密处理或者解密处理后的IPSec报文后,如果从IPSec报文控制块中获知IPSec报文类型为已完成加解密处理,则从加密处理或者解密处理后的IPSec报文中解封装IPSec报文控制块,并利用加密处理或者解密处理后的IPSec报文的转发信息查询流表,利用查询结果转发加密处理或者解密处理后的IPSec报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310401332.6A CN103457952B (zh) | 2013-09-05 | 2013-09-05 | 一种基于加密引擎的IPSec处理方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310401332.6A CN103457952B (zh) | 2013-09-05 | 2013-09-05 | 一种基于加密引擎的IPSec处理方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103457952A true CN103457952A (zh) | 2013-12-18 |
CN103457952B CN103457952B (zh) | 2017-09-01 |
Family
ID=49739906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310401332.6A Active CN103457952B (zh) | 2013-09-05 | 2013-09-05 | 一种基于加密引擎的IPSec处理方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103457952B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105611529A (zh) * | 2015-12-31 | 2016-05-25 | 盛科网络(苏州)有限公司 | Capwap dtls报文加解密的芯片实现方法 |
CN105656882A (zh) * | 2015-12-25 | 2016-06-08 | 深圳中兴网信科技有限公司 | 软硬件解码方法及装置和软硬件编码方法及装置 |
CN105704122A (zh) * | 2016-01-08 | 2016-06-22 | 北京北方烽火科技有限公司 | 一种路由加密系统 |
CN106130903A (zh) * | 2016-07-08 | 2016-11-16 | 桂林电子科技大学 | 基于fpga的sdn交换机流表加密方法 |
CN109450960A (zh) * | 2019-01-08 | 2019-03-08 | 郑州云海信息技术有限公司 | IPsec协议的处理方法、装置、设备、系统及介质 |
CN113497798A (zh) * | 2020-04-08 | 2021-10-12 | 北京中科网威信息技术有限公司 | 一种用于防火墙的基于fpga的数据转发方法 |
CN114785536A (zh) * | 2022-02-28 | 2022-07-22 | 新华三信息安全技术有限公司 | 一种报文处理方法及装置 |
CN118381684A (zh) * | 2024-06-25 | 2024-07-23 | 杭州海康威视数字技术股份有限公司 | 软硬件协同加密的安全通信实现方法及网络设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1984131A (zh) * | 2005-12-14 | 2007-06-20 | 北京三星通信技术研究有限公司 | 分布式IPSec处理的方法 |
CN101616084A (zh) * | 2009-07-29 | 2009-12-30 | 中兴通讯股份有限公司 | 一种分布式IPSec负荷分担装置和方法 |
CN102859928A (zh) * | 2010-12-22 | 2013-01-02 | 英特尔公司 | 使用ibe的高效nemo安全 |
CN102970228A (zh) * | 2012-11-22 | 2013-03-13 | 杭州华三通信技术有限公司 | 一种基于IPsec的报文传输方法和设备 |
-
2013
- 2013-09-05 CN CN201310401332.6A patent/CN103457952B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1984131A (zh) * | 2005-12-14 | 2007-06-20 | 北京三星通信技术研究有限公司 | 分布式IPSec处理的方法 |
CN101616084A (zh) * | 2009-07-29 | 2009-12-30 | 中兴通讯股份有限公司 | 一种分布式IPSec负荷分担装置和方法 |
CN102859928A (zh) * | 2010-12-22 | 2013-01-02 | 英特尔公司 | 使用ibe的高效nemo安全 |
CN102970228A (zh) * | 2012-11-22 | 2013-03-13 | 杭州华三通信技术有限公司 | 一种基于IPsec的报文传输方法和设备 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656882A (zh) * | 2015-12-25 | 2016-06-08 | 深圳中兴网信科技有限公司 | 软硬件解码方法及装置和软硬件编码方法及装置 |
CN105611529A (zh) * | 2015-12-31 | 2016-05-25 | 盛科网络(苏州)有限公司 | Capwap dtls报文加解密的芯片实现方法 |
CN105611529B (zh) * | 2015-12-31 | 2019-05-03 | 盛科网络(苏州)有限公司 | Capwap dtls报文加解密的芯片实现方法 |
CN105704122A (zh) * | 2016-01-08 | 2016-06-22 | 北京北方烽火科技有限公司 | 一种路由加密系统 |
CN105704122B (zh) * | 2016-01-08 | 2018-12-18 | 北京北方烽火科技有限公司 | 一种路由加密系统 |
CN106130903A (zh) * | 2016-07-08 | 2016-11-16 | 桂林电子科技大学 | 基于fpga的sdn交换机流表加密方法 |
CN106130903B (zh) * | 2016-07-08 | 2019-03-12 | 桂林电子科技大学 | 基于fpga的sdn交换机流表加密方法 |
CN109450960A (zh) * | 2019-01-08 | 2019-03-08 | 郑州云海信息技术有限公司 | IPsec协议的处理方法、装置、设备、系统及介质 |
CN113497798A (zh) * | 2020-04-08 | 2021-10-12 | 北京中科网威信息技术有限公司 | 一种用于防火墙的基于fpga的数据转发方法 |
CN114785536A (zh) * | 2022-02-28 | 2022-07-22 | 新华三信息安全技术有限公司 | 一种报文处理方法及装置 |
CN118381684A (zh) * | 2024-06-25 | 2024-07-23 | 杭州海康威视数字技术股份有限公司 | 软硬件协同加密的安全通信实现方法及网络设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103457952B (zh) | 2017-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103457952A (zh) | 一种基于加密引擎的IPSec处理方法和设备 | |
CN102882789B (zh) | 一种数据报文处理方法、系统及设备 | |
CN102549998B (zh) | 密码引擎的聚集 | |
CN107113239B (zh) | 包混淆和包转发 | |
CN105763557B (zh) | 交换芯片或np与cpu协同完成报文ipsec加密的方法与系统 | |
US11245697B2 (en) | Application-based network security | |
US20230096233A1 (en) | Chosen-plaintext secure cryptosystem and authentication | |
CN101309273B (zh) | 一种生成安全联盟的方法和装置 | |
CN112491821B (zh) | 一种IPSec报文转发的方法及装置 | |
CN103139222A (zh) | 一种ipsec隧道数据传输方法及装置 | |
CN110535748B (zh) | 一种vpn隧道模式优化方法及系统 | |
CN102970228B (zh) | 一种基于IPsec的报文传输方法和设备 | |
CN107454590A (zh) | 一种数据加密方法、解密方法及无线路由器 | |
CN101521667B (zh) | 一种安全的数据通信方法及装置 | |
CN105721505A (zh) | 一种数据安全传输方法、装置及系统 | |
CN106161386B (zh) | 一种实现IPsec分流的方法和装置 | |
CN103227742A (zh) | 一种IPSec隧道快速处理报文的方法 | |
CN110336661A (zh) | Aes-gcm数据处理方法、装置、电子设备及存储介质 | |
US10951520B2 (en) | SDN, method for forwarding packet by SDN, and apparatus | |
CN112217769B (zh) | 基于隧道的数据解密方法、加密方法、装置、设备和介质 | |
Nam et al. | A Hardware Architecture of NIST Lightweight Cryptography applied in IPSec to Secure High-throughput Low-latency IoT Networks | |
CN114039795A (zh) | 软件定义路由器及基于该软件定义路由器的数据转发方法 | |
CN103428199B (zh) | 一种适用于IPv6的信息防泄漏方法及系统 | |
CN107493287A (zh) | 工控网络数据安全系统 | |
CN106685896B (zh) | 一种ssh协议多层通道内的明文数据采集方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |