防火墙 (pfSense) 如何根据规则检查数据包

网络工程 防火墙 感知 pfsense-2
2022-02-05 11:40:44

对于数据包规则测试,传统的基于 5 元组的技术采用基于决策树、分解或硬件(通常是 TCAM)的方法。pfSense 防火墙采用什么特定技术来根据规则测试数据包,而硬件要求最低。由于规则通常由 IPv4 的 5 个元组定义,因此防火墙必须将每个传入数据包和传输头字段与存储的规则集进行匹配。防火墙如何决定传入数据包与哪个规则匹配以通过或阻止并保持线路速率?

2个回答

pfSense 是一个开源软件防火墙,所以对于他们如何做到这一点,最明显的答案是“看看源代码”。无论如何,编程技术在这里都是题外话。

作为软件防火墙,pfSense 不需要 ASIC 或 TCAM 等特殊硬件。它可以使用 NIC 提供的卸载功能,仅此而已。所以这都是关于代码效率的。

基于硬件的防火墙可以大量使用 TCAM,从而实现非常高效的表查找。ASIC 可以进一步加速更复杂的处理。

鉴于良好 CPU 的速度,基于软件的方法可以提供出色的吞吐量和整体性能,但基于硬件的防火墙可能仍然具有出色的延迟。

如果数据包源 IP 地址、目标 IP 地址、服务端口、应用程序 ID 与防火墙中框架的策略匹配,则进一步检查路由条目。如果它与防火墙配置数据包匹配,则防火墙允许从外到内网络和从内到外网络。

如果上述参数不匹配,那么防火墙将简单地丢弃带有清理规则参考的数据包。