一种防护GRE报文的方法及装置与流程

文档序号:14504500阅读:470来源:国知局

本申请涉及安全防护领域,特别涉及一种防护gre报文的方法及装置。



背景技术:

gre(genericroutingencapsulation,通用路由封装)协议可以对某些网络层协议的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议中传输;其中,上述网络层协议包括ip(internetprotocol,网络之间互联的协议)和ipx(internetworkpacketexchangeprotocol,互联网数据包交换协议)。

gre采用tunnel(隧道)技术,是vpn(virtualprivatenetwork,虚拟专用网络)的第三层隧道协议。tunnel技术是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个tunnel两端分别对数据报文进行封装及解封装。

参见图1,为本申请示出的一种gre报文的格式示意图,如图1所示,原始报文头和原始报文载荷加在一起为需要封装和传输的原始数据报文;gre技术在将该原始数据报文通过隧道传输前,需将该原始数据报文封装gre报文头和外层报文头。

安全设备在防护报文时,通常将报文的五元组(包括:源ip、目的ip、协议号、源端口和目的端口)作为安全策略的匹配条件。而在gre环境中,同一个隧道的源ip、目的ip和协议号都是相同的,gre协议也没有端口号,因此将源ip、目的ip和协议号作为安全策略的匹配条件,只能针对一条gre隧道整体执行安全策略动作,而无法针对原始数据报文进行更精确的流量控制。



技术实现要素:

有鉴于此,本申请提供一种防护gre报文的方法及装置,用以对gre报文的内层原始数据报文进行精确的流量控制。

具体地,本申请是通过如下技术方案实现的:

一种防护gre报文的方法,应用于安全设备,包括:

接收第一报文,确定所述第一报文是否为gre报文;

如果所述第一报文是gre报文,基于所述第一报文的原始报文头中的五元组查找预设的安全策略表,确定对应的安全策略表项;

基于所述安全策略表项对所述第一报文进行处理。

在所述防护gre报文的方法中,所述安全策略表携带策略版本号;

所述基于所述第一报文的原始报文头中五元组查找安全策略表,确定对应的安全策略表项,包括:

基于所述原始报文头中的五元组查找预设的会话表,确定是否存在对应的会话表项;其中,所述会话表包括若干条会话表项,所述会话表项包括五元组和策略版本号的映射关系;

如果存在对应的会话表项,检查所述会话表项中的策略版本号与所述安全策略表的所述策略版本号是否一致;

如果不一致,基于所述原始报文头中的五元组查找所述安全策略表,确定对应的安全策略表项。

在所述防护gre报文的方法中,所述方法还包括:

如果不存在对应的会话表项,新建会话表项,并基于所述原始报文头中的五元组查找所述安全策略表,确定对应的安全策略表项;其中,新建的会话表项中的策略版本号为空。

在所述防护gre报文的方法中,所述基于所述安全策略表项对所述第一报文进行处理,还包括:

如果所述会话表项中的策略版本号与所述安全策略表的所述策略版本号一致,转发所述第一报文。

在所述防护gre报文的方法中,所述安全策略表包括若干条安全策略表项,所述安全策略表项包括五元组和处理动作的映射关系;其中,所述处理动作包括放通和丢弃;

所述基于所述安全策略表项对所述第一报文进行处理,包括:

如果所述安全策略表项中的处理动作为放通,转发所述第一报文,并将所述安全策略表的策略版本号更新至所述会话表项中;

如果所述安全策略表项中的处理动作为丢弃,丢弃所述第一报文,并删除所述会话表项。

一种防护gre报文的装置,应用于安全设备,包括:

确定单元,用于接收第一报文,确定所述第一报文是否为gre报文;

查找单元,用于如果所述第一报文是gre报文,基于所述第一报文的原始报文头中的五元组查找预设的安全策略表,确定对应的安全策略表项;

处理单元,用于基于所述安全策略表项对所述第一报文进行处理。

在所述防护gre报文的装置中,所述安全策略表携带策略版本号;

所述查找单元,进一步用于:

基于所述原始报文头中的五元组查找预设的会话表,确定是否存在对应的会话表项;其中,所述会话表包括若干条会话表项,所述会话表项包括五元组和策略版本号的映射关系;

如果存在对应的会话表项,检查所述会话表项中的策略版本号与所述安全策略表的所述策略版本号是否一致;

如果不一致,基于所述原始报文头中的五元组查找所述安全策略表,确定对应的安全策略表项。

在所述防护gre报文的装置中,所述查找单元,进一步用于:

如果不存在对应的会话表项,新建会话表项,并基于所述原始报文头中的五元组查找所述安全策略表,确定对应的安全策略表项;其中,新建的会话表项中的策略版本号为空。

在所述防护gre报文的装置中,所述处理单元,进一步用于:

如果所述会话表项中的策略版本号与所述安全策略表的所述策略版本号一致,转发所述第一报文。

在所述防护gre报文的装置中,所述安全策略表包括若干条安全策略表项,所述安全策略表项包括五元组和处理动作的映射关系;其中,所述处理动作包括放通和丢弃;

所述处理单元,进一步用于:

如果所述安全策略表项中的处理动作为放通,转发所述第一报文,并将所述安全策略表的策略版本号更新至所述会话表项中;

如果所述安全策略表项中的处理动作为丢弃,丢弃所述第一报文,并删除所述会话表项。

在本申请技术方案中,安全设备接收第一报文,首先判断上述第一报文是否为gre报文,当上述第一报文为gre报文时,基于上述第一报文的原始报文头中的五元组查找安全策略表,确定对应的安全策略表项,然后基于上述安全策略表项对上述第一报文进行处理;

由于gre报文的原始数据报文头中的五元组可以区分通过同一条gre隧道的不同会话的报文,安全设备基于上述五元组查找到安全策略表项来处理上述第一报文,可以实现对gre报文的内层原始数据报文精确的流量控制。

附图说明

图1是本申请示出的一种gre报文的格式示意图;

图2是本申请示出的一种防护gre报文的方法的流程图;

图3是本申请示出的一种防护gre报文的装置的实施例框图;

图4是本申请示出的一种防护gre报文的装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

参见图2,为本申请示出的一种防护gre报文的方法的流程图,所述方法应用于安全设备,包括以下步骤:

步骤201:接收第一报文,确定所述第一报文是否为gre报文。

其中,上述安全设备包括gre隧道上用以转发gre报文且具有安全防护功能的网络设备。

上述第一报文泛指接收的任一报文,其只是为便于描述进行的命名,并不限定本申请。

gre隧道两端的设备互相发送gre报文时,gre报文会经由安全设备转发。安全设备在对接收到的报文进行转发前,首先可以对报文进行安全防护。由于同一个gre隧道的gre报文的外层报文头中的源ip、目的ip和协议号相同,且gre协议没有端口号,安全设备以通常的方式无法实现对gre报文中的原始数据报文进行更精确的流量控制。

因此,安全设备首先可以确定接收到的上述第一报文是否为gre报文。

在示出的一种实施方式中,安全设备可以提取上述第一报文的五元组,并基于提取到的协议号确定上述第一报文是否为gre报文。其中,若上述第一报文为gre报文,则提取到的协议号为47。另外,若上述第一报文为gre报文,提取到的五元组实际上不存在端口号。

需要指出的是,针对gre报文的原始数据报文进行精确防护可以是安全设备上一个可选的功能,安全设备在确定上述第一报文为gre报文后,可以检查预设内存空间中的功能标识。其中,功能标识包括功能启用标识和功能未启用标识,功能启用标识表征接收到用户下发的针对gre报文的原始报文进行精确防护的指令,功能未启用标识表征未接收到用户下发的针对gre报文的原始报文进行精确防护的指令。在实际应用中,功能启用标识可以是1,功能未启用标识可以是0,这种实施方式可以减少功能标识占据的内存空间。

当安全设备检查到功能启用标识,可以针对上述第一报文执行本申请后续的流程;

当安全设备检查到功能未启用标识,则将上述第一报文与其它报文采用同样的方式进行安全防护,也就是针对一条gre隧道整体执行安全策略动作。

步骤202:如果所述第一报文是gre报文,基于所述第一报文的原始报文头中五元组查找安全策略表,确定对应的安全策略表项。

安全设备可以跳过上述第一报文的外层报文头和gre报文头,从上述第一报文的原始报文头中提取五元组,然后将提取到的五元组查找预设的安全策略表,确定对应的安全策略表项。其中,上述安全策略表包括五元组和处理动作的映射关系。

在示出的一种实施方式中,安全设备可以基于上述第一报文的原始报文头中的五元组直接查找上述安全策略表,确定对应的安全策略表项。

在示出的另一种实施方式中,上述安全策略表携带策略版本号,该策略版本号表征上述安全策略表的版本。安全设备可以基于安全策略表携带的策略版本号确定上述安全策略表是否发生更新。安全策略表的各安全策略表项包括处理动作,其中,上述处理动作可以包括放通和丢弃。如下表1所示,为本申请示出的一种安全策略表:

表1

安全策略表可以基于上述第一报文的原始报文头中的五元组查找预设的会话表,确定是否存在对应的会话表项。其中,上述会话表包括若干条会话表项,各会话表项包括五元组和策略版本号的映射关系。如下表2所示,为本申请示出的一种会话表:

表2

需要指出的是,本申请技术方案中会删除安全策略表指示的需防护会话的会话表项,因此,会话表中存在的各会话表项可以说明,该会话表项的策略版本号对应的安全策略表指示该会话表项对应的会话可以放通。

一方面,如果存在对应的会话表项,安全设备可以进一步检查上述会话表项中的策略版本号与上述安全策略表的策略版本号是否一致。

如果上述会话表项中的策略版本号与上述安全策略表的策略版本号不一致,则需要基于上述第一报文的原始报文头中的五元组查找上述安全策略表,确定对应的安全策略表项。

另一方面,如果不存在对应的会话表项,安全策略可以新建会话表项,然后基于上述原始报文头中的五元组查找上述安全策略表,确定对应的安全策略表项。其中,新建的会话表项中的策略版本号为空。

步骤203:基于所述安全策略表项对所述第一报文进行处理。

安全设备可以基于查找到的安全策略表项中的处理动作对上述第一报文进行处理。

一方面,如果上述安全策略表项中的处理动作为放通,安全设备可以转发上述第一报文。需要指出的是,安全设备根据上述第一报文的外层报文头来转发上述第一报文。

此外,安全设备还可以将上述安全策略表的策略版本号更新到上述会话表项中。

另一方面,如果上述安全策略表项中的处理动作为丢弃,则可以丢弃上述第一报文。

此外,安全设备可以删除上述会话表项。通过删除安全策略表项指示的需防护会话的会话表项,可以减少此类会话表项对内存空间的占用。

需要指出的是,如果安全设备确定查找到的会话表项中的策略版本号与上述安全策略的策略版本号一致,表明最新的安全策略表指示该会话表项对应的会话的报文可以正常通过,则无需进一步查找安全策略表,可以直接转发上述第一报文。由于查找会话表本来就是处理报文必经的流程,通过该措施,安全设备可以显著提高防护报文的处理速度。

另外,安全设备在防护其它报文时,可以采用与前文中阐明的方案,区别在于,从步骤202开始,若第一报文不是gre报文,则用以查找安全策略表或会话表的五元组为外层报文头的五元组。

同样地,当安全设备检查到功能未启用标识时,即便第一报文为gre报文,仍以外层报文头中的五元组进行查表处理。当然,实际上gre报文的外层报文头中没有端口号,所以在具体应用过程中,是以源ip、目的ip和协议号进行查表处理。

综上所述,在本申请技术方案中,安全设备接收到第一报文后,首先确定上述第一报文是否为gre报文,如果上述第一报文时gre报文,则可以基于上述第一报文的原始报文头中的五元组查找预设的安全策略表,确定对应的安全策略表现,然后基于上述安全策略表项对上述第一报文进行处理;

由于gre报文的原始报文头中的五元组可以区分通过同一条gre隧道的不同会话的报文,安全设备基于上述五元组查找到安全策略表项来处理上述第一报文,可以实现对gre报文的内层原始报文精确的流量控制;

此外,通过在会话表中记录允许放通的会话对应的会话表项,可以提高安全设备防护报文的处理流程。

与前述防护gre报文的方法的实施例相对应,本申请还提供了防护gre报文的装置的实施例。

参见图3,为本申请示出的一种防护gre报文的装置的实施例框图:

如图3所示,该防护gre报文的装置30,包括:

确定单元310,用于接收第一报文,确定所述第一报文是否为gre报文。

查找单元320,用于如果所述第一报文是gre报文,基于所述第一报文的原始报文头中的五元组查找预设的安全策略表,确定对应的安全策略表项。

处理单元330,用于基于所述安全策略表项对所述第一报文进行处理。

在本例中,所述安全策略表携带策略版本号;所述查找单元320,进一步用于:

基于所述原始报文头中的五元组查找预设的会话表,确定是否存在对应的会话表项;其中,所述会话表包括若干条会话表项,所述会话表项包括五元组和策略版本号的映射关系;

如果存在对应的会话表项,检查所述会话表项中的策略版本号与所述安全策略表的所述策略版本号是否一致;

如果不一致,基于所述原始报文头中的五元组查找所述安全策略表,确定对应的安全策略表项。

在本例中,所述查找单元320,进一步用于:

如果不存在对应的会话表项,新建会话表项,并基于所述原始报文头中的五元组查找所述安全策略表,确定对应的安全策略表项;其中,新建的会话表项中的策略版本号为空。

在本例中,所述处理单元330,进一步用于:

如果所述会话表项中的策略版本号与所述安全策略表的所述策略版本号一致,转发所述第一报文。

在本例中,所述安全策略表包括若干条安全策略表项,所述安全策略表项包括五元组和处理动作的映射关系;其中,所述处理动作包括放通和丢弃;

所述处理单元330,进一步用于:

如果所述安全策略表项中的处理动作为放通,转发所述第一报文,并将所述安全策略表的策略版本号更新至所述会话表项中;

如果所述安全策略表项中的处理动作为丢弃,丢弃所述第一报文,并删除所述会话表项。

本申请防护gre报文的装置的实施例可以应用在安全设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在安全设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请防护gre报文的装置所在安全设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的安全设备通常根据该防护gre报文的装置的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1