基于安全业务的包转发方法及系统转让专利

申请号 : CN200710119881.9

文献号 : CN100589446C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李明玉王飓邹旭东常向青

申请人 : 杭州华三通信技术有限公司

摘要 :

本发明公开了基于安全业务的包转发方法及系统。建立FIB表项与ARP表项的第一关联关系;接收业务流的首包,获取与首包对应的安全业务信息和FIB表项,建立首包携带的业务流包的属性信息与安全业务信息、FIB表项的第二关联关系;接收业务流的后续包,根据后续包的属性信息及所述第二关联关系和第一关联关系,查找到安全业务信息和ARP表项信息,根据该安全业务信息对后续包执行安全业务处理,根据该ARP表项信息将后续包转发出去。本发明无需对每个包都进行安全业务表项、FIB表项、ARP表项的查找,大大提高了基于安全业务的包转发效率。

权利要求 :

1、一种基于安全业务的包转发方法,其特征在于,包括:

建立转发信息库FIB表项与地址解析协议ARP表项的第一关联关系;

接收业务流的首包,获取与首包对应的安全业务信息和FIB表项,建立首 包携带的业务流包的属性信息与安全业务信息、FIB表项索引的第二关联关系;

接收业务流的后续包,根据后续包的属性信息及所述第二关联关系和第一 关联关系,查找到安全业务信息和ARP表项信息,根据该安全业务信息对后续 包执行安全业务处理,根据该ARP表项信息将后续包转发出去。

2、如权利要求1所述的方法,其特征在于,所述第一关联关系和第二关联 关系保存在软件单元中。

3、如权利要求2所述的方法,其特征在于,所述建立FIB表项与ARP表 项的第一关联关系包括:将与软件单元中每个FIB表项最匹配的ARP表项的索 引添加到各FIB表项中;

所述建立首包携带的业务流包的属性信息与安全业务信息、FIB表项索引 的第二关联关系包括:在软件单元中建立业务流包的属性信息、安全业务信息、 获取到的FIB表项的索引之间的关联关系。

4、如权利要求3所述的方法,其特征在于,当接收到后续包时,所述查找 到安全业务信息和ARP表项信息包括:在所有第二关联关系中,查找与该后续 包携带的业务流包的属性信息对应的第二关联关系,在该第二关联关系中查找 到安全业务信息,查找该第二关联关系中的FIB表项索引指向的FIB表项,根 据该FIB表项中的ARP表项索引查找到ARP表项。

5、如权利要求4所述的方法,其特征在于,所述将与软件单元中每个FIB 表项最匹配的ARP表项的索引添加到各FIB表项中之前进一步包括:为每个 FIB表项设置FIB序号,且,所述建立首包携带的业务流包的属性信息与安全业务信息、FIB表项 索引的第二关联关系进一步包括:将FIB表项的FIB序号添加到该第二关联关 系中,且,当更新FIB表项时,同时更新该FIB表项的FIB序号。

6、如权利要求5所述的方法,其特征在于,当接收到后续包时,所述查找 该第二关联关系中的FIB表项索引指向的FIB表项进一步包括:判断查找到的 FIB表项中的FIB序号与查找到的第二关联关系中的FIB序号是否一致,若是, 根据该FIB表项中的ARP表项索引查找到ARP表项;否则,在软件单元中重 新查找与该后续包对应的FIB表项,以查找到的FIB表项中的FIB序号及该FIB 表项的索引更新所述查找到的第二关联关系中的FIB序号和FIB表项索引,然 后在软件单元中查找与所述FIB表项最匹配的ARP表项。

7、如权利要求2所述的方法,其特征在于,所述建立FIB表项与ARP表 项的第一关联关系包括:在软件单元中查找与每个FIB表项最匹配的ARP表项, 在软件单元中建立包含查找到的ARP表项索引的FIB感知表项,将该FIB感知 表项索引添加到所述FIB表项中;

所述建立首包携带的业务流包的属性信息与安全业务信息、FIB表项索引 的第二关联关系为:在软件单元中建立业务流包的属性信息、安全业务信息、 获取到的FIB表项的FIB感知表项索引之间的关联关系。

8、如权利要求7所述的方法,其特征在于,当接收到后续包时,所述查找 到安全业务信息和ARP表项信息包括:在所有第二关联关系中,查找与该后续包携带的业务流包属性信息对应的 第二关联关系,在该第二关联关系中查找到安全业务信息,查找该第二关联关 系中的FIB感知表项索引指向的FIB感知表项,根据该FIB感知表项中的ARP 表项索引查找到ARP表项。

9、如权利要求7所述的方法,其特征在于,所述在软件单元中查找与每个 FIB表项最匹配的ARP表项之前进一步包括:为每个FIB表项设置FIB序号,且,所述在软件单元中建立包含查找到的ARP表项索引的FIB感知表项进 一步包括:将所述FIB表项的FIB序号添加到该FIB感知表项中,且,所述建立首包携带的业务流包的属性信息与安全业务信息、FIB表项 索引的第二关联关系进一步包括:将FIB表项的FIB序号添加到该第二关联关 系中,且,当更新FIB表项时,同时更新该FIB表项的FIB序号,并更新与该FIB 表项对应的FIB感知表项中的FIB序号。

10、如权利要求9所述的方法,其特征在于,当接收到后续包时,所述查 找该第二关联关系中的FIB感知表项索引指向的FIB感知表项进一步包括:判 断查找到的FIB感知表项中的FIB序号与查找到的第二关联关系中的FIB序号 是否一致,若是,根据该FIB感知表项中的ARP表项索引查找到ARP表项; 否则,在软件单元中重新查找与该后续包对应的FIB表项,以查找到的FIB表 项中的FIB感知表项索引和FIB序号更新所述查找到的第二关联关系中的FIB 感知表项索引和FIB序号,然后查找与所述FIB表项最匹配的ARP表项。

11、如权利要求1所述的方法,其特征在于,所述第一关联关系和第二关 联关系保存在硬件单元中。

12、如权利要求11所述的方法,其特征在于,所述建立FIB表项与ARP 表项的第一关联关系之前进一步包括:在软件单元中学习ARP表项和FIB表项;

所述建立FIB表项与ARP表项的第一关联关系包括:在硬件单元中建立与 软件单元中的每个ARP表项所包含内容相同的ARP感知表项,将该ARP感知 表项的索引添加到所述ARP表项中;查找与每个FIB表项最匹配的ARP表项, 在硬件单元中建立包含查找到的ARP表项中的ARP感知表项索引的FIB感知 表项,将该FIB感知表项索引添加到所述FIB表项中;

所述建立首包携带的业务流包的属性信息与安全业务信息、FIB表项索引 的第二关联关系为:在软件单元中建立业务流包的属性信息、安全业务信息、 查找到的FIB表项中的FIB感知表项索引间的关联关系,将该关联关系保存到 硬件单元中。

13、如权利要求12所述的方法,其特征在于,当接收到后续包时,所述查 找到安全业务信息和ARP表项信息包括:在硬件单元的所有第二关联关系中,查找与该后续包携带的业务流包属性 信息对应的第二关联关系,在该第二关联关系中查找到安全业务信息,查找该 第三关联关系中的FIB感知表项索引指向的FIB感知表项,根据该FIB感知表 项中的ARP感知表项索引查找到ARP感知表项,该ARP感知表项即为查找到 的ARP表项信息。

14、如权利要求13所述的方法,其特征在于,所述在软件单元中学习ARP 表项和FIB表项进一步包括:为该FIB表项设置FIB序号,且,所述在硬件单元中建立包含查找到的ARP表项中的ARP感知表项索 引的FIB感知表项进一步包括:将该FIB表项的FIB序号添加到该FIB感知表 项中,且,所述建立首包携带的业务流包的属性信息与安全业务信息、FIB表项 索引的第二关联关系进一步包括:将该FIB表项的FIB序号添加到第二关联关 系中,且,当更新FIB表项时,同时更新该FIB表项的FIB序号,并更新与该FIB 表项对应的FIB感知表项中的FIB序号。

15、如权利要求14所述的方法,其特征在于,当接收到后续包时,所述查 找该第二关联关系中的FIB感知表项索引指向的FIB感知表项进一步包括:判 断查找到的FIB感知表项中的FIB序号与查找到的第二关联关系中的FIB序号 是否一致,若是,根据该FIB感知表项中的ARP感知表项索引查找到ARP感 知表项;否则,在软件单元中重新查找与该后续包对应的FIB表项,以查找到 的FIB表项中的FIB感知表项索引和FIB序号更新第二关联关系中的FIB感知 表项索引和FIB序号,然后查找与所述FIB表项最匹配的ARP表项。

16、如权利要求1所述的方法,其特征在于,所述业务流包的属性信息为: 五元组信息。

17、一种基于安全业务的包转发系统,其特征在于,包括:

第一模块,建立FIB表项和ARP表项的第一关联关系;

第二模块,接收业务流的首包,获取与首包对应的安全业务信息和FIB表 项,建立业务流包的属性信息与安全业务信息、FIB表项索引的第二关联关系;

第三模块,接收业务流的后续包,根据该后续包携带的业务流包的属性信 息以及所述第二关联关系和第一关联关系,查找到安全业务信息和ARP表项信 息,根据安全业务信息对后续包执行安全业务处理,根据ARP表项信息将后续 包转发出去。

18、如权利要求17所述的系统,其特征在于,所述第一模块包括:

第一子模块,学习FIB表项,将与该FIB表项最匹配的ARP表项的索 引添加到该FIB表项中;

第二子模块,当更新第一子模块中的FIB表项时,更新为该FIB表项设 置的FIB序号;

且,所述第一子模块在学习FIB表项时,为该FIB表项设置FIB序号;

所述第二模块进一步,将FIB表项的FIB序号添加到建立的业务流包的 属性信息与安全业务信息、FIB表项索引的第二关联关系中。

19、如权利要求17或18所述的系统,其特征在于,所述第一模块位于 软件单元中。

20、如权利要求17所述的系统,其特征在于,所述第一模块包括:

第一子模块,学习FIB表项,查找与该FIB表项最匹配的ARP表项, 在FIB感知表项存储模块中建立包含查找到的ARP表项的索引的FIB感知 表项,将该FIB感知表项索引添加到FIB表项中;

第二子模块,保存包含ARP表项索引的各FIB感知表项。

21、如权利要求20所述的系统,其特征在于,所述第一模块进一步包 括:

第三子模块,当更新FIB表项时,更新为该FIB表项设置的FIB序号, 同时根据该FIB表项中的FIB感知表项索引查找到FIB感知表项,以该更新 后的FIB序号替换该FIB感知表项中的FIB序号;

且,所述第一子模块在学习到FIB表项后,为该FIB表项设置FIB序 号,并将该FIB序号添加到建立的FIB感知表项中;

所述第二模块进一步,将FIB表项的FIB序号添加到建立的第二关联关 系中。

22、如权利要求20或21中所述的系统,其特征在于,所述第一模块位 于软件单元中。

23、如权利要求17所述的系统,其特征在于,所述第一模块包括:

第一子模块,学习FIB表项,查找与FIB表项最匹配的ARP表项,在 FIB感知表项存储模块中建立包含与查找到的ARP表项对应的ARP感知表 项的索引的FIB感知表项,将该FIB感知表项索引添加到FIB表项中;

第二子模块,保存各FIB感知表项;

第三子模块,保存内容与ARP表项相同的各ARP感知表项。

24、如权利要求23所述的系统,其特征在于,所述第一模块进一步包 括:

第四子模块,当更新FIB表项时,更新为该FIB表项设置的FIB序号, 同时根据该FIB表项中的FIB感知表项索引查找到FIB感知表项,以该更新 后的FIB序号替换该FIB感知表项中的FIB序号;

且,所述第一子模块在学习到FIB表项后,为该FIB表项设置FIB序 号,并将该FIB序号添加到建立的FIB感知表项中;

所述第二模块进一步,将FIB表项的FIB序号添加到建立的第二关联关 系中。

25、如权利要求23或24所述的系统,其特征在于,所述第二子模块、 第三子模块位于硬件单元中。

说明书 :

技术领域

本发明涉及安全业务技术领域,具体涉及基于安全业务的包转发方法及 系统。

背景技术

随着网络的普及与发展,对网络设备的要求已经不仅仅是单纯的快速转 发,还需要网络设备提供安全业务。市场的这一需求促进了安全设备的发展, 并对安全设备提出以下要求:在对网络数据实施安全业务如:安全检查过滤 等的情况下仍然提供比较好的转发性能。
安全设备要达到以上要求,依赖于硬件性能的提升,同时也依赖软件相 关表项的组织以及相关的业务流程优化。如何组织相关的主要表项并依赖其 提升处理性能,成为安全产品面临的一个命题。
图1为现有的基于安全业务的包转发流程图,如图1所示,其具体步骤 如下:
步骤101:在安全设备上配置安全业务表项。
每个安全业务表项包括:五元组信息中的一个或任意组合与安全业务信 息的对应关系,或者包括:转发信息与安全业务信息的对应关系,或者包括: 五元组信息中的一个或任意组合、转发信息与安全业务信息的对应关系。
五元组信息即:源IP地址信息、源端口信息、协议号码、目的IP地址 信息、目的出端口信息。
转发信息即:转发信息库(FIB)表项中的三层出接口信息等,地址解 析协议(ARP)表项中的出端口信息等。
安全业务信息指示具体应执行何种安全业务处理,如:过滤处理等。
步骤102:安全设备接收到包,在软件中查找与该包的五元组对应的安 全业务表项。
步骤103:安全设备根据查找到的安全业务表项中的安全业务信息,执 行相应的安全业务处理,执行完毕,转至步骤104。
本步骤中的安全业务处理针对的是入口处的安全业务处理。
步骤104:安全设备在软件中查找与该包的目的IP地址对应的FIB表 项。
步骤105:安全设备在软件中查找与FIB表项最匹配的ARP表项。
步骤106:安全设备在软件中查找与FIB表项中的三层出接口信息对应 的安全业务表项。
步骤107:安全设备根据查找到的安全业务表项中的安全业务信息,执 行相应的安全业务处理,执行完毕,转至步骤108。
本步骤中的安全业务处理针对的是出口处的安全业务处理。
步骤108:安全设备将查找到的ARP表项中的二层链路层头封装到包 的二层头上,将该包转发出去。
从以上过程可以看出:安全设备接收到包后,首先根据包的五元组信息 查找安全业务表项,并进行相应的安全业务处理,然后查找FIB表项和ARP 表项,再根据查找到的FIB表项和ARP表项查找安全业务表项,并进行相 应的安全业务处理,处理完毕,根据ARP表项转发包。很显然,处理流程 较长,大大降低了包的转发效率。

发明内容

本发明提供基于安全业务的包转发方法及系统,以提高基于安全业务的包 的转发效率。
本发明的技术方案是这样实现的:
一种基于安全业务的包转发方法,包括:
FIB表项与ARP表项的第一关联关系;
接收业务流的首包,获取与首包对应的安全业务信息和FIB表项,建立首 包携带的业务流包的属性信息与安全业务信息、FIB表项的第二关联关系;
接收业务流的后续包,根据后续包的属性信息及所述第二关联关系和第一 关联关系,查找到安全业务信息和ARP表项信息,根据该安全业务信息对后续 包执行安全业务处理,根据该ARP表项信息将后续包转发出去。
所述第一关联关系和第二关联关系保存在软件单元中。
所述建立第一关联关系包括:将与软件单元中每个FIB表项最匹配的ARP 表项的索引添加到各FIB表项中;
所述建立第二关联关系包括:在软件单元中建立业务流包的属性信息、安 全业务信息、所述查找到的FIB表项的索引之间的关联关系。
当接收到后续包时,所述查找包括:在所有第二关联关系中,查找与该后 续包携带的业务流包的属性信息对应的第二关联关系,在该第二关联关系中查 找到安全业务信息,查找该第二关联关系中的FIB表项索引指向的FIB表项, 根据该FIB表项中的ARP表项索引查找到ARP表项。
所述将ARP表项的索引添加到各FIB表项中之前进一步包括:为每个FIB 表项设置FIB序号,
且,所述建立第二关联关系进一步包括:将FIB表项的FIB序号添加到该 第二关联关系中,且,当更新FIB表项时,同时更新该FIB表项的FIB序号。
当接收到后续包时,所述查找FIB表项进一步包括:判断查找到的FIB表 项中的FIB序号与所述查找到的第二关联关系中的FIB序号是否一致,若是, 根据该FIB表项中的ARP表项索引查找到ARP表项;否则,在软件单元中重 新查找与该后续包对应的FIB表项,以查找到的FIB表项中的FIB序号及该FIB 表项的索引更新所述查找到的第二关联关系中的FIB序号和FIB表项索引,然 后在软件单元中查找与所述FIB表项最匹配的ARP表项。
所述建立第一关联关系包括:在软件单元中查找与每个FIB表项最匹配的 ARP表项,在软件单元中建立包含查找到的ARP表项索引的FIB感知表项, 将该FIB感知表项索引添加到所述FIB表项中;
所述建立第二关联关系为:在软件单元中建立业务流包的属性信息、安全 业务信息、查找到的FIB表项的FIB感知表项索引之间的关联关系。
当接收到后续包时,所述查找包括:
在所有第二关联关系中,查找与该后续包携带的业务流包属性信息对应的 第二关联关系,在该第二关联关系中查找到安全业务信息,查找该第二关联关 系中的FIB感知表项索引指向的FIB感知表项,根据该FIB感知表项中的ARP 表项索引查找到ARP表项。
所述在软件单元中查找与每个FIB表项最匹配的ARP表项之前进一步包 括:为每个FIB表项设置FIB序号,
且,所述建立FIB感知表项进一步包括:将所述FIB表项的FIB序号添加 到该FIB感知表项中,
且,所述建立第二关联关系进一步包括:将FIB表项的FIB序号添加到该 第二关联关系中,
且,当更新FIB表项时,同时更新该FIB表项的FIB序号,并更新与该FIB 表项对应的FIB感知表项中的FIB序号。
当接收到后续包时,所述查找FIB感知表项进一步包括:判断查找到的FIB 感知表项中的FIB序号与所述查找到的第二关联关系中的FIB序号是否一致, 若是,根据该FIB感知表项中的ARP表项索引查找到ARP表项;否则,在软 件单元中重新查找与该后续包对应的FIB表项,以查找到的FIB表项中的FIB 感知表项索引和FIB序号更新所述查找到的第二关联关系中的FIB感知表项索 引和FIB序号,然后查找与所述FIB表项最匹配的ARP表项。
所述第一关联关系和第二关联关系保存在硬件单元中。
所述建立第一关联关系之前进一步包括:在软件单元中学习ARP表项和 FIB表项;
所述建立第一关联关系包括:在硬件单元中建立与软件单元中的每个ARP 表项所包含内容相同的ARP感知表项,将该ARP感知表项的索引添加到所述 ARP表项中;查找与每个FIB表项最匹配的ARP表项,在硬件单元中建立包 含查找到的ARP表项中的ARP感知表项索引的FIB感知表项,将该FIB感知 表项索引添加到所述FIB表项中;
所述建立第二关联关系为:在软件单元中建立业务流包的属性信息、安全 业务信息、查找到的FIB表项中的FIB感知表项索引间的关联关系,将该关联 关系保存到硬件单元中。
当接收到后续包时,所述查找包括:
在硬件单元的所有第二关联关系中,查找与该后续包携带的业务流包属性 信息对应的第二关联关系,在该第二关联关系中查找到安全业务信息,查找该 第二关联关系中的FIB感知表项索引指向的FIB感知表项,根据该FIB感知表 项中的ARP感知表项索引查找到ARP感知表项,该ARP感知表项即为查找到 的ARP表项信息。
所述学习FIB表项进一步包括:为该FIB表项设置FIB序号,
且,所述建立FIB感知表项进一步包括:将该FIB表项的FIB序号添加到 该FIB感知表项中,
且,所述建立第二关联关系进一步包括:将该FIB表项的FIB序号添加到 第二关联关系中,
且,当更新FIB表项时,同时更新该FIB表项的FIB序号,并更新与该FIB 表项对应的FIB感知表项中的FIB序号。
当接收到后续包时,所述查找FIB感知表项进一步包括:判断查找到的FIB 感知表项中的FIB序号与所述查找到的第二关联关系中的FIB序号是否一致, 若是,根据该FIB感知表项中的ARP感知表项索引查找到ARP感知表项;否 则,在软件单元中重新查找与该后续包对应的FIB表项,以查找到的FIB表项 中的FIB感知表项索引和FIB序号更新第二关联关系中的FIB感知表项索引和 FIB序号,然后查找与所述FIB表项最匹配的ARP表项。
所述业务流包的属性信息为:五元组信息。
一种基于安全业务的包转发系统,包括:
业务转发关联模块,建立FIB表项和ARP表项的第一关联关系;接收业务 流的首包,获取与首包对应的安全业务信息和FIB表项,建立业务流包的属性 信息与安全业务信息、FIB表项的第二关联关系;接收业务流的后续包,根据 该后续包携带的业务流包的属性信息以及所述第二关联关系和第一关联关系, 查找到安全业务信息和ARP表项信息;将查找到的安全业务信息发送给安全业 务处理模块,将查找到的ARP表项信息发送给转发模块;
安全业务处理模块,根据接收到的安全业务信息对接收到的业务流包执行 安全业务处理,执行完毕,将业务流包发送给转发模块;
转发模块,根据接收到的ARP表项信息将接收到的业务流包转发出去。
所述业务转发关联模块包括:
FIB表项学习存储模块,学习FIB表项,将与该FIB表项最匹配的ARP 表项的索引添加到该FIB表项中;
Session表项存储模块,保存各Session表项;
Session表项查找模块,接收业务流包,在Session表项存储模块中查找 与该业务流包的属性信息对应的Session表项,若查找到,则将Session表项 中的安全业务信息发送给安全业务处理模块,并在FIB表项学习存储模块中 查找与该Session表项中的FIB表项索引对应的FIB表项,将查找到的FIB 表项中的ARP表项索引发送给转发模块;若未查找到,则将该包发送给 Session表项建立更新模块;
Session表项建立更新模块,接收业务流包,将与该业务流包对应的安 全业务信息发送给安全业务处理模块,在Session表存储模块中建立包括业 务流包的属性信息和所述安全业务信息的Session表项;在FIB表项学习存 储模块中查找与业务流包对应的FIB表项,将与该FIB表项最匹配的ARP 表项发送给转发模块,并将查找到的FIB表项的索引添加到建立的Session 表项中。
该系统进一步包括:FIB表项更新模块,当更新FIB表项学习存储模块 中的FIB表项时,更新为该FIB表项设置的FIB序号;
且,所述FIB表项学习存储模块在学习FIB表项时,为该FIB表项设 置FIB序号;
所述Session表项建立更新模块进一步,将FIB表项的FIB序号添加到 建立的Session表项中。
所述Session表项查找模块在FIB表项学习存储模块中查找到FIB表项 之后,进一步判断查找到的FIB表项中的FIB序号与Session表项中的FIB 序号是否一致,若一致,则将Session表项中的安全业务信息发送给安全业 务处理模块,并将FIB表项中的ARP表项索引发送给转发模块;若不一致, 则将业务流包和查找到的Session表项索引发送给Session表项建立更新模 块,
所述Session表项建立更新模块收到业务流包和Session表项索引,在 安全业务表项存储模块中查找到安全业务信息,将与该业务流包对应的安全 业务信息发送给安全业务处理模块,以该安全业务信息替换Session表项存 储模块中与该Session表项索引对应的Session表项中的安全业务信息,在 FIB表项学习存储模块中查找与业务流包对应的FIB表项,以查找到的FIB 表项中的FIB序号及该FIB表项的索引替换所述Session表项中的FIB序号 和FIB表项索引,将与所述FIB表项最匹配的ARP表项发送到转发模块。
所述FIB表项学习存储模块和Session表项存储模块位于软件单元中。
所述业务转发关联模块包括:
FIB表项学习存储模块,学习FIB表项,查找与该FIB表项最匹配的 ARP表项,在FIB感知表项存储模块中建立包含查找到的ARP表项的索引 的FIB感知表项,将该FIB感知表项索引添加到FIB表项中;
FIB感知表项存储模块,保存包含ARP表项索引的各FIB感知表项;
Session表项存储模块,保存各Session表项;
Session表项查找模块,接收业务流包,在Session表项存储模块中查找 与业务流包的属性信息对应的Session表项,若查找到,则将Session表项中 的安全业务信息发送给安全业务处理模块,并在FIB感知表项存储模块中查 找与该Session表项中的FIB感知表项索引对应的FIB感知表项,将FIB感 知表项中的ARP表项索引发送给转发模块;若未查找到,则将业务流包发 送给Session表项建立更新模块;
Session表项建立更新模块,接收业务流包,将与该业务流包对应的安 全业务信息发送给安全业务处理模块,在Session表项存储模块中建立包括 业务流包的属性信息和所述安全业务信息的Session表项;在FIB表项学习 存储模块中查找与业务流包对应的FIB表项,将与该FIB表项最匹配的ARP 表项发送给转发模块,并将查找到的FIB表项中的FIB感知表项索引添加到 建立的Session表项中。
该系统进一步包括:FIB表项更新模块,当更新FIB表项学习存储模块 中的FIB表项时,更新为该FIB表项设置的FIB序号,同时根据该FIB表 项中的FIB感知表项索引在FIB感知表项存储模块中查找到FIB感知表项, 以该更新后的FIB序号替换该FIB感知表项中的FIB序号;
且,所述FIB表项学习存储模块在学习到FIB表项后,为该FIB表项 设置FIB序号,并将该FIB序号添加到建立的FIB感知表项中;
所述Session表项建立更新模块进一步,将FIB表项的FIB序号添加到 建立的Session表项中。
所述Session表项查找模块在FIB感知表项存储模块中查找到FIB感知 表项之后,进一步判断查找到的FIB感知表项中的FIB序号与Session表项 中的FIB序号是否一致,若一致,则将Session表项中的安全业务信息发送 给安全业务处理模块,根据FIB感知表项中的ARP表项索引查找到ARP表 项,将该ARP表项发送给转发模块;若不一致,则将业务流包和查找到的 Session表项索引发送给Session表项建立更新模块,
所述Session表项建立更新模块收到业务流包和Session表项索引,将 与业务流包对应的安全业务信息发送给安全业务处理模块,以该安全业务信 息替换Session表项存储模块中与该Session表项索引对应的Session表项中 的安全业务信息,在FIB表项学习存储模块中查找与业务流包对应的FIB表 项,以查找到的FIB表项中的FIB感知表项索引和FIB序号替换所述Session 表项中的FIB感知表项索引和FIB序号,并查找与所述FIB表项最匹配的 ARP表项,将该ARP表项发送到转发模块。
所述FIB表项学习存储模块、FIB感知表项存储模块和Session表项存 储模块位于软件单元中。
所述业务转发关联模块包括:
FIB表项学习存储模块,学习FIB表项,查找与FIB表项最匹配的ARP 表项,在FIB感知表项存储模块中建立包含与查找到的ARP表项对应的ARP 感知表项的索引的FIB感知表项,将该FIB感知表项索引添加到FIB表项中;
FIB感知表项存储模块,保存各FIB感知表项;
ARP感知表项存储模块,保存内容与ARP表项相同的各ARP感知表项;
Session表项存储模块,保存各Session表项;
Session表项查找模块,接收业务流包,在Session表项存储模块中查找 与业务流包的属性信息对应的Session表项,若查找到,将Session表项中的 安全业务信息发送给安全业务处理模块,在FIB感知表项存储模块中查找与 Session表项中的FIB感知表项索引对应的FIB感知表项,将FIB感知表项 中的ARP感知表项索引发送给转发模块;若未查找到,则将业务流包发送 给Session表项建立更新模块;
Session表项建立更新模块,接收业务流包,将与业务流包对应的安全 业务信息发送给安全业务处理模块,建立包括业务流包的属性信息和所述安 全业务信息的Session表项;在FIB表项学习存储模块中查找与业务流包对 应的FIB表项,将与该FIB表项最匹配的ARP表项发送给转发模块,并将 查找到的FIB表项中的FIB感知表项索引添加到建立的Session表项中,将 该Session表项保存到Session表项存储模块中。
该系统进一步包括:FIB表项更新模块,当更新FIB表项学习存储模块 中的FIB表项时,更新为该FIB表项设置的FIB序号,同时根据该FIB表 项中的FIB感知表项索引在FIB感知表项存储模块中查找到FIB感知表项, 以该更新后的FIB序号替换该FIB感知表项中的FIB序号;
且,所述FIB表项学习存储模块在学习到FIB表项后,为该FIB表项 设置FIB序号,并将该FIB序号添加到建立的FIB感知表项中;
所述Session表项建立更新模块进一步,将FIB表项的FIB序号添加到 建立的Session表项中。
所述Session表项查找模块在FIB感知表项存储模块中查找到FIB感知 表项之后,进一步判断查找到的FIB感知表项中的FIB序号与Session表项 中的FIB序号是否一致,若一致,则将Session表项中的安全业务信息发送 给安全业务处理模块,并将FIB感知表项中的ARP感知表项索引发送给转 发模块;若不一致,则将业务流包和查找到的Session表项索引发送给Session 表项建立更新模块,
所述Session表项建立更新模块收到业务流包和Session表项索引,将 与业务流包对应的安全业务信息发送给安全业务处理模块,以该安全业务信 息替换Session表项存储模块中与该Session表项索引对应的Session表项中 的安全业务信息,在FIB表项学习存储模块中查找与业务流包对应的FIB表 项,以查找到的FIB表项中的FIB感知表项索引和FIB序号替换所述Session 表项中的FIB感知表项索引和FIB序号,并将与所述FIB表项最匹配的ARP 表项发送到转发模块。
所述FIB感知表项存储模块、ARP感知表项存储模块、Session表项存 储模块位于硬件单元中。
与现有技术相比,本发明通过建立FIB表项与ARP表项的第一关联关 系,并对业务流的首包采用现有技术进行安全业务表项、FIB表项、ARP表 项的查找,并根据查找结果建立该包的属性信息与安全业务信息、FIB表项 的第二关联关系,使得业务流的后续包可直接根据所述第一和第二关联关系 进行安全业务处理和转发处理,无需每个包都进行安全业务表项、FIB表项、 ARP表项的查找,大大提高了基于安全业务的包转发效率。

附图说明

图1为现有的基于安全业务的包转发流程图;
图2为本发明实施例一提供的基于安全业务的包转发流程图;
图3为本发明实施例二提供的基于安全业务的包转发流程图;
图4为本发明实施例一提供的基于安全业务的包转发系统组成图;
图5为本发明实施例二提供的基于安全业务的包转发系统组成图。

具体实施方式

由于同一业务流中的各个包的五元组是相同的,且安全业务表项通常都 以包的五元组为依据建立,而转发表项:FIB表项和ARP表项也是以包的 五元组为依据建立的,从而可以得知:对同一业务流的各个包所进行的安全 业务处理和转发处理是相同的。因此,本发明的核心思想是:在学习到FIB 表项时,查找与该FIB表项对应的ARP表项,建立FIB表项与ARP表项的 第一关联关系,对业务流的首包按照现有技术进行安全业务表项查找和FIB 表项、ARP表项查找,并根据查找结果建立包的属性信息与需对该首包执行 的所有安全业务的信息以及该首包对应的FIB表项的第二关联关系。这样, 该业务流的后续包就可根据该所述第二和第一关联关系直接查找到安全业 务信息和ARP表项信息,从而直接对该后续包进行安全业务处理和转发处 理,而无需再进行安全业务表项和FIB表项、ARP表项的查找过程。
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图2为本发明实施例一提供的基于安全业务的包转发流程图,如图2所 示,其具体步骤如下:
步骤201:安全设备通过软件学习到ARP表项。
步骤202:安全设备通过软件学习到FIB表项,为该FIB表项设置FIB 序号,查找与该FIB表项对应的ARP表项,将该ARP表项的索引添加到该 FIB表项中。
当修改FIB表项中的转发信息如:三层出接口信息时,将该FIB表项中 的FIB序号加1;当删除FIB表项时,也要将该FIB表项中的FIB序号加1。 这样,当FIB表项被修改或删除后,FIB表项和在后续步骤中建立的Session 表项中的FIB序号就会不一致,从而触发Session表项中FIB表项索引和FIB 序号的更新。
步骤203:安全设备接收到包,在软件中查找与该包的五元组信息对应 的Session表项。
步骤204:安全设备判断是否查找到Session表项,若是,执行步骤214; 否则,执行步骤205。
步骤205:安全设备确定该包为业务流的首包,在软件中查找与该首包 携带的信息如:五元组信息对应的安全业务表项。
步骤206:安全设备根据查找到的安全业务表项中的安全业务信息,对 该首包执行相应的安全业务处理,并在软件中建立Session表项,该Session 表项包括:该首包的五元组信息和所述安全业务信息。
本步骤中的安全业务处理针对的是安全设备入口处的安全业务处理。
步骤207:安全设备在软件中查找与该首包的目的IP地址对应的FIB 表项。
步骤208:安全设备查找到FIB表项,在软件中查找与该FIB表项最匹 配的ARP表项。
步骤209:安全设备将查找到的FIB表项中的FIB序号及该FIB表项的 索引添加到步骤206建立的Session表项中。
可以看出,执行完本步骤后,安全设备建立的Session表项包括:五元 组信息、安全业务信息、FIB表项索引、FIB序号。
步骤210:安全设备在软件中查找与所述FIB表项中的三层出接口信息 对应的安全业务表项。
FIB表项包括:目的IP地址、目的掩码、三层出接口、下一跳等信息。
步骤211:安全设备判断是否查找到安全业务表项,若是,执行步骤212; 否则,执行步骤213。
步骤212:安全设备根据查找到的安全业务表项中的安全业务信息,对 该首包执行相应的安全业务处理,同时将该安全业务信息添加到步骤206建 立的Session表项中,安全业务处理完毕,转至步骤213。
本步骤中的安全业务处理针对的是安全设备出口处的安全业务处理。
步骤213:安全设备将查找到的ARP表项中的二层链路层头封装到该 首包的二层头上,将该首包转发出去,返回步骤203。
步骤214:安全设备确定该包为业务流的后续包,根据Session表项中 的FIB表项索引查找到FIB表项。
步骤215:安全设备判断查找到的FIB表项中的FIB序号与Session表 项中的FIB序号是否一致,若是,执行步骤216;否则,执行步骤218。
步骤216:安全设备确定FIB表项未被修改或删除过,根据Session表 项中的安全业务信息,对该后续包执行相应的安全业务处理,执行完毕,转 至步骤217。
步骤217:安全设备根据FIB表项中的ARP表项索引查找到ARP表项, 将查找到的ARP表项中的二层链路层头封装到该后续包的二层头上,将该 后续包转发出去,返回步骤203。
步骤218:安全设备确定FIB表项被修改或删除过,查找与该后续包携 带的信息如:五元组信息对应的安全业务表项。
步骤219:安全设备根据查找到的安全业务表项中的安全业务信息,对 该后续包执行相应的安全业务处理,并以该安全业务信息更新所查找到的 Session表项中的安全业务信息。
步骤220:安全设备在软件中查找与该后续包的目的IP地址对应的FIB 表项。
步骤221:安全设备查找到FIB表项,在软件中查找与该FIB表项最匹 配的ARP表项。
步骤222:安全设备以查找到的FIB表项中FIB序号及该FIB表项的索 引更新所查找到的Session表项中的FIB序号及FIB表项索引。
步骤223:安全设备查找与所述FIB表项中的三层出接口信息对应的安 全业务表项。
步骤224:安全设备判断是否查找到安全业务表项,若是,执行步骤225; 否则,执行步骤226。
步骤225:安全设备根据查找到的安全业务表项中的安全业务信息,对 该后续包执行相应的安全业务处理,同时将该安全业务信息添加到所查找到 的Session表项中,安全业务处理完毕,转至步骤226。
步骤226:安全设备将查找到的ARP表项中的二层链路层头封装到该 后续包的二层头上,将该后续包转发出去,返回步骤203。
从图2所示流程可以看出:当在软件中学习到FIB表项后,要查找与该 FIB表项最匹配的ARP表项,将该ARP表项的索引添加到该FIB表项中。
当对业务流的首包进行了软件中的安全业务表项、FIB表项和ARP表 项查找后,根据查找结果在软件中所建立的Session表项的结构如下:
Session表项:五元组信息、安全业务信息、FIB表项索引、FIB序号。
这样,当收到该业务流的后续包后,就可根据该后续包的五元组信息在 软件中查找到上述Session表项,然后根据该Session表项中的安全业务信息 执行相应的安全业务处理,根据该Session表项中的FIB表项索引查找到FIB 表项,再根据该FIB表项中的ARP表项索引查找到ARP表项,从而将该后 续包转发出去。可以看出,所有的安全业务信息都集中存储在Session表项 中,提高了安全业务处理效率;且,在查找ARP表项时,也无需再根据五 元组信息进行FIB表项的查找、也无需与FIB表项进行匹配,而可以根据 Session表项中的FIB表项索引直接查找到FIB表项,再根据FIB表项中的 ARP表项索引直接查找到ARP表项,进一步提高了转发效率。
图2所示实施例中,对业务流的后续包的安全业务处理和转发处理都是 在软件中进行的,以下给出在硬件中对业务流的后续包进行安全业务处理和 转发处理的实施例。
图3为本发明实施例二提供的安全业务处理流程图,如图3所示,其具 体步骤如下:
步骤301:安全设备通过软件学习到ARP表项,在硬件中建立ARP感 知表项,该ARP感知表项中包含的内容与所学习到的ARP表项的内容相同, 并将ARP感知表项的索引添加到所学习到的ARP表项中。
步骤302:安全设备通过软件学习到FIB表项,为该FIB表项设置FIB 序号,查找与该FIB表项对应的ARP表项,并建立与该FIB表项对应的FIB 感知表项,该FIB感知表项包括:该FIB表项的FIB序号、所述ARP表项 中的ARP感知表项索引,将该FIB感知表项保存到硬件中。
当修改FIB表项中的转发信息如:三层出接口信息时,将该FIB表项中 的FIB序号加1,同时根据该FIB表项中的FIB感知表项索引查找到FIB感 知表项,将该FIB感知表项中的FIB序号加1;当删除FIB表项时,也要根 据该FIB表项中的FIB感知表项索引查找到FIB感知表项,将该FIB感知 表项中的FIB序号加1。这样,当FIB表项被修改或删除后,FIB感知表项 中的FIB序号和在后续步骤中建立的Session表项中的FIB序号就会不一致, 从而触发Session表项中FIB感知表项索引和FIB序号的更新。
步骤303:安全设备接收到包,在硬件中查找与该包的五元组信息对应 的Session表项。
步骤304:安全设备判断是否查找到Session表项,若是,执行步骤314; 否则,执行步骤305。
步骤305:安全设备确定该包为业务流的首包,在软件中查找与该首包 携带的信息如:五元组信息对应的安全业务表项。
步骤306:安全设备根据查找到的安全业务表项中的安全业务信息,对 该首包执行相应的安全业务处理,并在软件中建立Session表项,该Session 表项包括:该首包的五元组信息和所述安全业务信息。
步骤307:安全设备在软件中查找与该首包的目的IP地址对应的FIB 表项。
步骤308:安全设备查找到FIB表项,在软件中查找与该FIB表项最匹 配的ARP表项。
步骤309:安全设备将查找到的FIB表项中的FIB感知表项索引及FIB 序号添加到步骤306中建立的Session表项中。
可以看出,执行完本步骤后,安全设备建立的Session表项包括:五元 组信息、安全业务信息、FIB感知表项索引、FIB序号。
步骤310:安全设备在软件中查找与所述FIB表项中的三层出接口信息 对应的安全业务表项。
步骤311:安全设备判断是否查找到安全业务表项,若是,执行步骤312; 否则,执行步骤313。
步骤312:安全设备根据查找到的安全业务表项中的安全业务信息,对 该首包执行相应的安全业务处理,同时将该安全业务信息添加到步骤306建 立的Session表项中,将该Session表项保存到硬件中,安全业务处理完毕, 转至步骤313。
步骤313:安全设备将查找到的ARP表项中的二层链路层头封装到该 首包的二层头上,将该包转发出去,返回步骤303。
步骤314:安全设备确定该包为业务流的后续包,根据Session表项中 的FIB感知表项索引查找到FIB感知表项。
步骤315:安全设备判断查找到的FIB感知表项中的FIB序号与Session 表项中的FIB序号是否一致,若是,执行步骤316;否则,执行步骤318。
步骤316:安全设备确定FIB表项未被修改或删除过,根据Session表 项中的安全业务信息,对该后续包执行相应的安全业务处理,执行完毕,转 至步骤317。
步骤317:安全设备根据FIB感知表项中的ARP感知表项索引查找到 ARP感知表项,将查找到的ARP感知表项中的二层链路层头封装到该后续 包的二层头上,将该后续包转发出去,返回步骤303。
步骤318:安全设备确定FIB表项被修改或删除过,查找与该后续包携 带的信息如:五元组信息对应的安全业务表项。
步骤319:安全设备根据查找到的安全业务表项中的安全业务信息,对 该后续包执行相应的安全业务处理,并以该安全业务信息更新所查找到的 Session表项中的安全业务信息。
步骤320:安全设备在软件中查找与该后续包的目的IP地址对应的FIB 表项。
步骤321:安全设备查找到FIB表项,在软件中查找与该FIB表项最匹 配的ARP表项。
步骤322:安全设备以查找到的FIB表项中的FIB感知表项索引及FIB 序号更新所查找到的Session表项中的FIB感知表项索引及FIB序号。
步骤323:安全设备查找与所述FIB表项中的三层出接口信息对应的安 全业务表项。
步骤324:安全设备判断是否查找到安全业务表项,若是,执行步骤325; 否则,执行步骤326。
步骤325:安全设备根据查找到的安全业务表项中的安全业务信息,对 该后续包执行相应的安全业务处理,同时将该安全业务信息添加到所查找到 的Session表项中,安全业务处理完毕,转至步骤326。
步骤326:安全设备将查找到的ARP表项中的二层链路层头封装到该 后续包的二层头上,将该包转发出去,返回步骤303。
从图3所示流程可以看出:当在软件中学习到ARP表项后,会在硬件 中保存与该ARP表项对应的ARP感知表项,并将该ARP感知表项索引保 存到学习到的ARP表项中。
当在软件中学习到FIB表项后,在硬件中建立的FIB感知表项的结构为:
FIB感知表项:FIB序号、ARP感知表项索引。
当对业务流的首包进行了软件中的安全业务表项、FIB表项和ARP表 项查找后,根据查找结果在硬件中所保存的Session表项的结构如下:
Session表项:五元组信息、安全业务信息、FIB感知表项索引、FIB序 号。
这样,当收到该业务流的后续包后,就可根据该后续包的五元组信息在 硬件中查找到上述Session表项,然后根据该Session表项中的安全业务信息 执行相应的安全业务处理,根据该Session表项中的FIB感知表项索引查找 到硬件中的FIB感知表项,再根据该FIB感知表项中的ARP感知表项索引 查找到硬件中的ARP感知表项,从而将该后续包转发出去。可以看出,对 后续包的安全业务处理和转发处理都是在硬件中进行的,大大提高了后续包 的安全业务处理效率和转发效率;同时,所有的安全业务信息都集中存储在 Session表项中,进一步提高了安全业务处理效率;且,在查找ARP感知表 项时,也无需再根据五元组信息进行FIB表项的查找、也无需与FIB表项进 行匹配,而可以根据Session表项中的FIB感知表项索引直接查找到FIB感 知表项,再根据FIB感知表项中的ARP感知表项索引直接查找到ARP感知 表项,进一步提高了转发效率。
同时,从图3所示实施例可以看出:本发明实施例中的FIB表项与现有 技术中的FIB表项的不同之处在于,FIB表项中还需保存FIB感知表项索引, 以在FIB表项被修改或删除时,能够及时更新FIB感知表项中的FIB序号, 从而及时更新Session表项中的FIB感知表项索引和FIB序号。
在图3所示实施例中,为了进一步加快基于安全业务的包的转发速度, 将FIB感知表项和Session表项保存到硬件中,同时在硬件中保存了与ARP 表项内容完全相同的ARP感知表项。在实际应用中,也可将FIB感知表项 和Session表项保存到软件中,同时,不在硬件中保存ARP感知表项,此时, FIB感知表项中包含ARP表项索引而非ARP感知表项索引,这样,对业务 流的后续包的安全业务处理和转发处理都在软件中进行,其具体过程与图3 所示实施例相似,在此不再一一赘述。
图4为本发明实施例一提供的基于安全业务的包转发系统组成图,如图 4所示,其主要包括:安全业务表项存储模块401、FIB表项学习存储模块 402、ARP表项学习存储模块403、Session表项存储模块404、包接收模块 405、Session表项查找模块406、Session表项建立更新模块407、安全业务 处理模块408和转发模块409,其中:
安全业务表项存储模块401:保存由五元组信息和/或转发表项信息与安 全业务信息组成的各安全业务表项。
FIB表项学习存储模块402:学习到FIB表项,保存该FIB表项,并为 该FIB表项设置FIB序号,每个FIB表项包含:目的IP地址信息、目的掩 码信息、三层出接口信息、下一跳信息和FIB序号等,并在ARP表项学习 存储模块403中查找与该FIB表项最匹配的ARP表项,将查找到的ARP表 项的索引添加到该FIB表项中。
ARP表项学习存储模块403:学习并保存ARP表项。
Session表项存储模块404:保存由五元组信息、安全业务信息、FIB表 项索引、FIB序号组成的各Session表项。
包接收模块405:用于接收包,将该包发送给安全业务处理模块408和 Session表项查找模块406。
Session表项查找模块406:接收包接收模块405发来的包,在Session 表项存储模块404中查找与该包的五元组信息对应的Session表项,若查找 到,则在FIB表项学习存储模块402中查找与该Session表项中的FIB表项 索引对应的FIB表项,判断查找到的FIB表项中的FIB序号与Session表项 中的FIB序号是否一致,若一致,则将该Session表项中的安全业务信息发 送给安全业务处理模块408,根据FIB表项中的ARP表项索引在ARP表项 学习存储模块403中查找到ARP表项,将该ARP表项发送给转发模块409; 若不一致,则将该包和查找到的Session表项索引携带在更新指示中发送给 Session表项建立更新模块407;若未查找到,则将该包携带在建立指示中发 送给Session表项建立更新模块407。
Session表项建立更新模块407:接收Session表项查找模块406发来的 携带包的建立指示,在安全业务表项存储模块401中查找与该包携带的信息 如:五元组信息对应的安全业务信息,将查找到的安全业务信息发送给安全 业务处理模块408,在Session表项存储模块404中建立新的Session表项, 该Session表项包括:所述包的五元组信息和查找到的安全业务信息;在FIB 表项学习存储模块402中查找与该包的目的IP地址对应的FIB表项,将该 FIB表项中的FIB序号及该FIB表项的索引添加到所建立的Session表项中, 在ARP表项学习存储模块403中查找与该FIB表项最匹配的ARP表项,将 该ARP表项发送给转发模块409,并在安全业务表项存储模块401中查找与 所述查找到的FIB表项中的三层出接口信息对应的安全业务信息,若查找 到,将该安全业务信息发送给安全业务处理模块408,并将该安全业务信息 添加到在Session表项存储模块404中新建立的Session表项中。接收Session 表项查找模块406发来的携带包和Session表项索引的更新指示,在安全业 务表项存储模块401中查找与该包携带的信息如:五元组信息对应的安全业 务信息,将查找到的安全业务信息发送给安全业务处理模块408,根据所述 Session表项索引在Session表项存储模块404中查找到Session表项,以查 找到的安全业务信息替换该Session表项中的安全业务信息;在FIB表项学 习存储模块402中查找与该包的目的IP地址对应的FIB表项,以该FIB表 项中的FIB序号及该FIB表项的索引替换所述Session表项中的FIB序号和 FIB表项索引,在ARP表项学习存储模块403中查找与该FIB表项最匹配 的ARP表项,将该ARP表项发送给转发模块409,并在安全业务表项存储 模块401中查找与所述查找到的FIB表项中的三层出接口信息对应的安全业 务信息,若查找到,将该安全业务信息发送给安全业务处理模块408,并将 该安全业务信息添加到所述Session表项中。
安全业务处理模块408:接收包接收模块405发来的包,接收Session 表项查找模块406或Session表项建立更新模块407发来的安全业务信息, 根据该安全业务信息对该包进行相应的安全业务处理,处理完毕,将该包发 送给转发模块409。
转发模块409:接收安全业务处理模块408发来的经安全业务处理的包, 接收Session表项查找模块406或Session表项建立更新模块407发来的ARP 表项,根据该ARP表项,将包发送出去。
本发明实施例中的系统还可进一步包括:FIB表项更新模块,用于更新 FIB表项学习存储模块402中的FIB表项,且在更新FIB表项时,同时将该 FIB表项的FIB序号加1。
在实际应用中,可将安全业务表项存储模块401、FIB表项学习存储模 块402、ARP表项学习存储模块403、Session表项存储模块404、Session 表项查找模块406、Session表项建立更新模块407统称为业务转发关联模块。
图5为本发明实施例二提供的基于安全业务的包转发系统组成图,如图 5所示,其主要包括:安全业务表项存储模块501、FIB表项学习存储模块 502、FIB感知表项存储模块503、ARP表项学习存储模块504、ARP感知表 项存储模块505、Session表项存储模块506、包接收模块507、Session表项 查找模块508、Session表项建立更新模块509、安全业务处理模块510和转 发模块511,其中:
安全业务表项存储模块501:保存由五元组信息和/或转发表项信息与安 全业务信息组成的各安全业务表项。
FIB表项学习存储模块502:学习到FIB表项,保存该FIB表项,并为 该FIB表项设置FIB序号,每个FIB表项包含:目的IP地址信息、目的掩 码信息、三层出接口信息、下一跳信息和FIB序号等,并在ARP表项学习 存储模块504中查找与该FIB表项最匹配的ARP表项,在FIB感知表项存 储模块503中建立FIB感知表项,该FIB感知表项包括:查找到的ARP表 项中的ARP感知表项索引和学习到的FIB表项的FIB序号,并将该FIB感 知表项索引添加到学习到的FIB表项中。
FIB感知表项存储模块503:存储FIB感知表项,每个FIB感知表项包 括:ARP感知表项索引和FIB序号。
ARP表项学习存储模块504:学习并保存ARP表项,同时在ARP感知 表项存储模块505中建立ARP感知表项,该ARP感知表项的内容与学习到 的ARP表项的内容相同,将该ARP感知表项的索引添加到学习到的ARP 表项中。
ARP感知表项存储模块505:存储ARP感知表项。
Session表项存储模块506:保存由五元组信息、安全业务信息、FIB感 知表项索引、FIB序号组成的各Session表项。
包接收模块507:用于接收包,将该包发送给安全业务处理模块510和 Session表项查找模块508。
Session表项查找模块508:接收包接收模块507发来的包,在Session 表项存储模块506中查找与该包的五元组信息对应的Session表项,若查找 到,则在FIB感知表项存储模块503中查找与该Session表项中的FIB感知 表项索引对应的FIB感知表项,判断查找到的FIB感知表项中的FIB序号与 Session表项中的FIB序号是否一致,若一致,则将该Session表项中的安全 业务信息发送给安全业务处理模块510,将FIB感知表项中的ARP感知表 项索引发送给转发模块511;若不一致,则将该包和查找到的Session表项 索引携带在更新指示中发送给Session表项建立更新模块509;若未查找到, 则将该包携带在建立指示中发送给Session表项建立更新模块509。
Session表项建立更新模块509:接收Session表项查找模块508发来的 携带包的建立指示,在安全业务表项存储模块501中查找与该包携带的信息 如:五元组信息对应的安全业务信息,将查找到的安全业务信息发送给安全 业务处理模块510,建立新的Session表项,该Session表项包括:所述包的 五元组信息和查找到的安全业务信息;在FIB表项学习存储模块502中查找 与该包的目的IP地址对应的FIB表项,将该FIB表项中的FIB感知表项索 引和FIB序号添加到所建立的Session表项中,在ARP表项学习存储模块 504中查找与该FIB表项最匹配的ARP表项,将该ARP表项发送给转发模 块511,并在安全业务表项存储模块501中查找与所述查找到的FIB表项中 的三层出接口信息对应的安全业务信息,若查找到,将该安全业务信息发送 给安全业务处理模块510,并将该安全业务信息添加到、新建立的Session 表项中,将该Session表项保存到Session表项存储模块506。接收Session 表项查找模块508发来的携带包和Session表项索引的更新指示,在安全业 务表项存储模块501中查找与该五元组信息对应的安全业务信息,将查找到 的安全业务信息发送给安全业务处理模块510,根据所述Session表项索引 在Session表项存储模块506中查找到Session表项,以查找到的安全业务信 息替换该Session表项中的安全业务信息;在FIB表项学习存储模块502中 查找与该包的目的IP地址对应的FIB表项,以该FIB表项中的FIB感知表 项索引和FIB序号替换所述Session表项中的FIB感知表项索引和FIB序号, 在ARP表项学习存储模块504中查找与该FIB表项最匹配的ARP表项,将 该ARP表项发送给转发模块511,并在安全业务表项存储模块501中查找与 所述查找到的FIB表项中的三层出接口信息对应的安全业务信息,若查找 到,将该安全业务信息发送给安全业务处理模块510,并将该安全业务信息 添加到所述Session表项中。
安全业务处理模块510:接收包接收模块507发来的包,接收Session 表项查找模块508或Session表项建立更新模块509发来的安全业务信息, 根据该安全业务信息对该包进行相应的安全业务处理,处理完毕,将该包发 送给转发模块511。
转发模块511:接收安全业务处理模块510发来的经安全业务处理的包, 接收Session表项查找模块508发来的ARP感知表项索引,在ARP感知表 项存储模块505中查找该ARP感知表项索引指向的ARP感知表项,根据该 ARP感知表项,将该包发送出去;接收Session表项建立更新模块509发来 的ARP表项,根据该ARP表项,将包发送出去。
本发明实施例中的系统还可进一步包括:FIB表项更新模块,用于更新 FIB表项学习存储模块502中的FIB表项,且在更新FIB表项时,同时将该 FIB表项的FIB序号加1,并根据该FIB表项中的FIB感知表项索引,在FIB 感知表项存储模块503中查找到FIB感知表项,将该FIB感知表项中的FIB 序号加1。
在实际应用中,可将安全业务表项存储模块501、FIB表项学习存储模 块502、FIB感知表项存储模块503、ARP表项学习存储模块504、ARP感 知表项存储模块505、Session表项存储模块506、Session表项查找模块508、 Session表项建立更新模块509统称为业务转发关联模块。
需要指出的是,安全业务表项存储模块501、FIB表项学习存储模块502、 ARP表项学习存储模块504为采用现有技术构造的模块,保存在软件中。而 FIB感知表项存储模块503、ARP感知表项存储模块505、Session表项存储 模块506为本发明实施例构造的模块,保存在硬件中,如:TCAM中,以加 快安全设备对Session表项、FIB感知表项、ARP感知表项的访问速度,从 而提高基于安全业务的包转发效率。
另外,在实际应用中,FIB感知表项存储模块503、Session表项存储模 块506也可保存到软件中,同时无需再在硬件中构造ARP感知表项存储模 块505,且,FIB表项学习存储模块502、ARP表项学习存储模块504、Session 表项查找模块508、转发模块511的功能需作如下更改:
FIB表项学习存储模块502在FIB感知表项存储模块503中建立的FIB 感知表项包括:查找到的ARP表项的索引和学习到的FIB表项的FIB序号。
ARP表项学习存储模块504的功能更改为:学习并保存ARP表项。
Session表项查找模块508在判定查找到的FIB感知表项中的FIB序号 与Session表项中的FIB序号一致后,需要根据FIB感知表项中的ARP表项 索引在ARP表项学习存储模块504中查找到ARP表项,将该ARP表项发 送给转发模块511。
转发模块511的功能更改为:接收安全业务处理模块510发来的经安全 业务处理的包,接收Session表项查找模块508和Session表项建立更新模块 509发来的ARP表项,根据该ARP表项,将包发送出去。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在 本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。