防火墙转发流程
一图流
搬运自大厂的下一代防火墙手册,主要分为三个阶段。
会话建立前
这个阶段主要对进入的报文进行解析,根据报文的帧头部和IP头部进行基础的安全检测(VLAN合法性判断、ARP合法性判断、Flood、畸形包等),根据接收报文的接口(二层/三层接口)进行处理。
当报文经过此阶段后没有被丢弃,就进入下一阶段进行处理。
会话建立
这个阶段时防火墙进行处理的核心环节,根据会话表进行会话建立、会话刷新等过程。
首先是判断该报文是否需要创建会话。
对于OSPF、IGMP等是不需要创建会话的,就跳过这一阶段去匹配安全策略和后续处理流程。
对于TCP、UDP、ICMP等报文,是需要创建会话的。此时会查询会话表,不存在匹配项的,进行首包处理流程;存在匹配项的,进行后续转发处理。
会话表
会话表是用来记录TCP、UDP、ICMP等协议连接状态的表项,是防火墙转发报文的重要依据。
首包处理
首先会进行状态检测,判断该报文是否属于正常的可以建立会话的首包。(对于TCP和ICMP协议报文,只有首包才可以建立会话。)
对于正常的首包,根据黑名单、路由表、在线用户表、安全策略等进行处理,对通过检测的首包建立会话并添加到会话表,进行后续转发处理。
存在匹配的会话表
当报文通过了首包处理后,就建立了会话,后续流量只要匹配了会话表项就无需再进行首包处理,能减轻防火墙的处理压力。
对于存在在会话表项里的会话,会受会话老化时间的影响,如果长时间没有报文匹配,则说明可能通信双方已经断开了连接,为了节约系统资源,系统会在一条表项连续未被匹配一段时间后,将其删除,即会话表项已经老化。
在报文的后续转发处理中,由于其他策略的变化(如路由表变动、应用层检测发现风险、用户下线等),会话表可能会被刷新,此时就会对报文重新进行一些检查和处理。
会话建立后
这个阶段会对流量进行更进一步的检测(如应用层内容检测),属于VPN的报文进行封装与解封装,需要NAT的报文进行地址转换,最后从出接口转发报文。
状态检测
一般情况下,报文来回路径一致,此时开启状态检测功能,能更好保证业务安全。
当遇到报文来回路径不一致的网络环境(如旁挂引流入方向流量检测),需要关闭状态检测功能,否则会丢弃正常的报文。
_(:3 」∠)_