状态检测防火墙的转发

时间:2024-03-03 09:14:38


“状态检测”机制以流量为单位来对报文进行检测和转发。即对一条流量的第一个报文进行包过滤规则检查,并将判断结果作为该条流量的“状态”记录下来。对于该流量的后续报文都直接根据这个“状态”来判断是转发(或进行内容安全检测)还是丢弃。这个“状态”就是会话表项
会话表项

防火墙一般是检查IP报文中的五个元素,又称为“五元组”,即源IP地址、目的IP地址、源端口号、目的端口号、协议类型。通过判断IP数据报文的五元组,就可以判断一条数据流相同的IP数据报文。下一代防火墙(NGFW)在检测“五元组”的条件下还会检测报文的用户、应用和时间段等。


转发流程

转发流程
可以看出,对于已经存在会话表的报文的检测过程比没有会话表的报文要短很多。而通常情况下,通过对一条连接的首包进行检测并建立会话后,该条连接的绝大部分报文都不再需要重新检测,使得“状态检测防火墙”相比于“包过滤防火墙”在检测和转发效率上有较大提升。


状态检测机制

状态检测机制开启状态下,只有首包通过设备才能建立会话表项,后续包直接匹配会话表项进行转发。

状态检测机制关闭状态下,即使首包没有经过设备,后续宝只要通过设备也可以生成会话表项

  • 对于TCP报文
    • 开启状态检测机制时,首包(SYN报文)建立会话表项。对除SYN报文以外的其他报文,如果没有对应会话表项(设备没有收到SYN报文或者会话表项已经老化),则予以丢弃,也不会建立会话表项。
    • 关闭状态检测机制时,任何格式的报文在没有对应会话表项的情况下,只要通过各项安全机制的检查,都可以为其建立会话表项。
  • 对于UDP报文
    由于UDP是基于无连接的通信,任何UDP格式的报文在没有对应会话表项的情况下,只要通过各项安全机制的检查,都可以为其建立会话表项。
  • 对于ICMP报文
    • 开启状态检测机制时,没有对应会话表项的ICMP应答报文将被丢弃。
    • 关闭状态检测机制时,没有对应会话表项的ICMP应答报文将以首包形式处理。

详细的转发流程

在这里插入图片描述