无 NP 处理的数据包流程
无 NP 处理的数据包流程
本节描述无 NP 处理的 FortiGate 中,数据包从入站到出站的完整处理步骤。

入站流程(Ingress)
所有被 FortiGate 接收的数据包均需通过网络接口,并由 TCP/IP 协议栈进行处理。若已配置 DoS 策略,数据包还必须通过这些策略以及自动 IP 头部完整性检查。
DoS 策略检查
在报文进入 FortIGate 的早期阶段,DoS 模块会检测流量是否异常,以判断是否属于拒绝服务攻击(DoS attack)。
- 检查范围:仅跟踪可能用于 DoS 攻击的数据包(如 TCP SYN 包),验证其是否符合预设参数。
- 处理逻辑:疑似攻击数据包直接阻断,合法数据包进入下一环节。
IP 完整性头部检查
此步骤主要验证 TCP、UDP、ICMP、SCTP、GRE 等协议头部长度是否合法。
- 支持协议:TCP、UDP、ICMP、SCTP、GRE。
- 处理逻辑:头部长度正确则进入下一步,错误则直接丢弃。
IPsec VPN 解密
若入站数据包匹配已配置的 IPsec 隧道:
- IPsec 引擎尝试用正确密钥解密。
- 解密成功:解密后数据包进入下一环节。
- 解密失败/非 IPsec 流量:直接进入下一环节(不处理)。
重要
IPsec 解密可由 CP 处理器卸载加速。
准入控制
执行三层准入校验,确保流量来源合法:
- 隔离检查:阻断源/目的地址在“隔离(quarantine)列表”中的数据包。
- FortiTelemetry(可选):要求设备安装 FortiClient 才能通过。
- 强制门户认证(可选):对入站流量触发 Captive Portal 认证。
内核处理
数据包通过入站检查后,由 FortiOS 内核执行核心转发与控制逻辑。
DNAT
内核查询 NAT 表,判断是否需要修改入站流量的目的 IP 地址。
- 典型场景:将互联网流量导向内网服务器(如 Web 服务器),隐藏内网真实地址。
- 关键顺序:DNAT 必须在“路由”前执行,确保 FortiGate 能正确路由修改后的地址。
- 路由验证:同步检查目的地址是否存在有效路由。
路由(含 SD-WAN)
通过路由表确定数据包的出接口,并区分“本地流量”(目的地为 FortiGate 自身)和“转发流量”(目的地为其他网络):
- 策略匹配依据:源接口(入站时已知)+ 目的接口(路由确定)。
- SD-WAN 特殊逻辑:
- SD-WAN 首先利用应用识别模块(Application Control)对新会话的首包进行 L4 的 ISDB 匹配。
- 匹配成功:按 SD-WAN 规则路由整个会话。
- 匹配失败:应用“隐式 SD-WAN 规则”,并通过七层应用控制继续识别。
- 识别成功:在 ISDB 缓存中添加四层匹配记录,优化后续匹配效率。
状态检查/策略查找/会话管理
针对会话的第一个数据包执行策略匹配与会话管理,是防火墙的核心逻辑。
- 会话边界识别:通过 TCP SYN/FIN 标志判断会话开始/结束。
- 合法性校验:检查源/目的 IP、端口、协议,以及载荷/序列号的完整性。
- 会话表优化:第一个数据包匹配策略后,将会话信息存入“会话表”,后续数据包直接查询会话表(比每次都查询策略高效)。
- 会话生命周期:处理完最后一个数据包后删除会话,或触发“空闲超时”后删除。
重要
更多状态检查细节可查阅维基百科“状态防火墙”词条:https://en.wikipedia.org/wiki/Stateful_firewall
Session Helper
部分协议(如 SIP、FTP)需分析数据包载荷才能正常转发,FortiOS 通过 Session Helper 解析这些协议的载荷信息,并动态调整防火墙规则。
- 支持的 Session Helper:PPTP、H323、RAS、TNS、TFTP、RTSP、FTP、MMS、PMAP、SIP、DNS - UDP、RSH、DCERPC、MGCP 等。
- 典型场景:SIP 协议通过 TCP 控制包建立通话,会话助手提取载荷中的语音端口信息,允许语音数据包通过。
用户认证
当防火墙策略匹配成功且该策略包含用户认证要求时,系统会启动认证流程(基于 IP 地址)。
设备识别
对流量进行设备特征分析,以识别来源设备类型(例如 PC、手机、IoT 终端等)。
SSL VPN
SSL VPN 流量通过目的端口识别,解密后路由到 SSL VPN 接口,再通过策略转发(SSL 加解密由 CP 加速)。
本地管理流量
- 终止接口:多 VDOM 模式终止于管理接口,透明模式终止于管理 IP。
- 流量范围:管理员访问(GUI/CLI)、FortiManager 集中管理、FortiGuard 通信等。
- 访问控制:由 local-in 策略定义(参考 策略与对象 → 本地流量策略 → Local-in 策略章节),不参与后续状态检查。
UTM/NGFW 处理
若匹配的安全策略包含“安全配置文件”,数据包需进入 UTM/NGFW 处理,处理方式取决于策略的检测模式。
基于流检查(单遍架构)
通过单遍 DFA(直接过滤法)模式匹配实时阻断威胁,无代理参与。
- 处理流程:先通过解码器识别协议,再执行单遍模式匹配(IPS、应用控制等并行),最后检查僵尸网络地址。
- 支持功能:IPS、应用控制、Web 过滤、DLP、僵尸网络检查、防病毒。
- 加速方式:模式匹配由 CP 卸载。
基于代理检查(混合模式)
结合基于流与基于代理检查,深度处理高风险流量。
- 第一步:IPS 引擎执行单遍基于流检查(IPS、应用控制、僵尸网络检查)。
- 第二步:代理重构内容,按顺序执行检查(VoIP 检查 → DLP → 反垃圾邮件 → Web 过滤 → 防病毒 → ICAP)。
- 支持功能:除基于流功能外,额外支持 VoIP 深度检查、ICAP 等。
显式 Web 代理检查
逻辑与基于代理检查类似,仅针对 HTTP/HTTPS 流量,通过指定端口(默认 8080)监听。
CP(内容处理器)
大部分 FortiGate 配备 SPU(安全处理单元)内容处理器(CP),加速资源密集型安全任务(由主 CPU 分配任务)。不同型号 CP 能力不同,新型号以 CP9/CP10 为主。CP 的核心能力如下:
- 基于流检查加速:优化 IPS/应用控制模式吞吐量。
- VPN 优化:高性能 IPsec/SSL/TLS 处理,支持 DES/3DES/AES 等加密算法。
- 哈希与 HMAC:支持 MD5/SHA 系列哈希,符合 FIPS 标准。
- 密钥加速:IKE/RSA 密钥交换加速,含真随机数生成器。
- 其他:DLP 指纹支持、TTTD 内容分块。
出站流程(Egress)
数据包完成内核与 UTM/NGFW 处理后,通过以下步骤离开 FortiGate。
源 NAT(SNAT)
查询 NAT 表,修改出站流量的源 IP(如内网访问互联网时隐藏真实地址)。
IPsec VPN 加密
若需进入 IPsec 隧道,执行加密封装(由 CP 加速)。
流量整形
按配置调整流量速率,保障关键业务带宽。
WAN 优化
执行压缩、缓存等优化,提升 WAN 链路效率。
TCP/IP 栈处理
完成协议封装。
出接口
数据包通过出接口离开。