状态检测防火墙报文处理流程
-
<李>查询会话前的处理过程:基础处理李>
<李>查询会话中的处理过程:转发处理,关键是会话建立李>
<李>查询会话后的处理过程:安全业务处理及报文发送李>
<>强了解转发流程之前,先给报文分个类强>
<人力资源/>-
<李> <强>协议报文强>:使防火墙正常运行于网络中,或用于双机热备等功能的协议报文,如OSPF,合、ICMP等报文李>
<李> <>强穿过防火墙的业务报文强>:用户经过防火墙访问互联网的报文,我们通常习惯称为业务报文,可能是二层或三层报文。尤其TCP、UDP最为常见。(二层和三层报文,转发流程没有本质区别,主要差异在于查路由阶段,二层报文根据MAC地址转发,三层报文根据路由表转发)李>
<强>做分类是因为防火墙对于这两类报文处理流程有所不同。强>
<人力资源/>-
<李>对于协议报文,防火墙处理比较特殊,并不适用于通用原则。以OSPF为例,当网络类型为广播时,其弟弟报文为单播报文,需要经过防火墙的安全策略检查。而当网络类型为P2P时,其弟弟报文为组播报文,则不需要经过防火墙的安全策略检查,直接被转发。对于每个协议。防火墙处理并不完全相同。李>
-
<李>对于业务报文。如TCP首包,UDP等报文都需要建立会话。判断该报文要创建会话后,接下来马上查询会话表中是否已创建该报文的会话。李>
<李> - - - - - -对于不能匹配会话表中任一表项的报文,防火墙判断该报文为某一流量的首包,进入首包处理流程
- - - - - -对于匹配了会话表中某一表项的报文,防火墙判断该报文为某一流量的后续包,进入后续包处理流程李>
查询会话表前的基本处理
主要目的是解析出报文的帧头部和IP报文头部,根据头部当中的信息进行一些基础的安全检测
收到一个数据包:
首先监测是否有配置MAC地址过滤
为什么是先MAC地址过滤再解析帧头部?。
MAC地址过滤的时候只是扫描出MAC地址,根据MAC地址来进行MAC地址过滤。后面的解析帧头部能完整的解析整个帧头部。(自我补充:如果两者位置调换,只会徒增设备的性能消耗,费力不讨好)
根据接收报文的接口是二层接口还是三层接口有两种处理方式:
对于三层接口接收的报文,NGFW需要根据报文中的目的地址来标明路由表,以决定这个报文的出接口。所以此类报文会在解析和剥离头部信息后,进入后续的处理。(剥离帧头部解析IP报文,是为了确定目的IP,以用做后续路由表查询)
对于二层接口接收的报文,NGFW需要先判断这个帧是否需要跨VLAN转发,对于同一VLAN内的报文,NGFW需要根据报文中的目的MAC地址查询MAC地址转发表,以决定这个报文的出接口。对于需要跨VLAN转发的报文,NGFW需要获取其VLAN ID,找到对应的子接口或者VLAN-IF接口。子接口和VLAN-IF接口是虚拟的三层接口。所以此时报文就会按照类似三层接口接收一样处理,NGFW根据报文中的目的地址来查找路由表,以决定这个报文的出接口。
这两类报文在提取到所需的信息后,剥离头部,进入后续的处理
在这个阶段中主要进行的特性有:
查询会话表,根据查询结果对报文做不同的安全机制检测和处理。
此阶段是NGFW的核心处理环节,主要的安全功能都在这个阶段实现.NGFW根据该报文是否存在匹配的会话表项?