CoreXL / SecureXL¶
為什麼 Check Point 能在多核 CPU 上跑出高吞吐?靠兩個加速技術:CoreXL(多核平行做防火牆檢查)與 SecureXL(把可加速的流量丟到快速路徑)。理解它們,才能調效能、也才知道排錯時為什麼「抓不到封包」。
SecureXL:快速路徑¶
SecureXL 的概念:同一條連線的後續封包,不必每個都重跑完整檢查。第一個封包做完完整檢查後,把處理方式記下來,後續封包走「快速路徑」直接放行。
三種路徑:
| 路徑 | 處理 | 速度 |
|---|---|---|
| Accelerated Path | SecureXL 直接處理(快速路徑) | 最快 |
| Medium Path (PXL) | 部分加速 + 需要做 Blade 檢查(如 IPS) | 中 |
| Slow Path (F2F) | 丟回防火牆完整處理 | 最慢 |
fwaccel stat # 看 SecureXL 是否啟用、各 template 狀態
fwaccel stats -s # 看封包走哪條路徑的比例(counter 帶 PXL=中速、F2F=慢速、F2V=重新注入)
fwaccel off # 暫時關閉(排錯用)
fwaccel on # 開回來
fwaccel off 只影響「之後新建」的連線
fwaccel off 不會把已經被加速的既有連線拉回慢速路徑 —— 它只對之後新建的連線生效。排錯抓不到某條既有連線時要留意這點(可改用 fw monitor -F)。即使 templates 被 policy 停用,throughput 加速仍會持續(部分加速)。
排錯時 SecureXL 會讓你『看不到封包』
走 Accelerated Path 的封包不會經過 fw monitor 的全部檢查點。所以用 fw monitor 抓不到、或行為怪怪的時候,可暫時 fwaccel off 排錯,完事務必 fwaccel on(關著會嚴重降效能)。
CoreXL:多核平行¶
CoreXL 把防火牆拆成多個 Firewall Worker / Instance(fwk),分散到多顆 CPU 核心平行做檢查,吞吐隨核心數擴展。
核心分兩種角色:
- SND(Secure Network Distributor)核心:負責網卡收封包 + SecureXL 加速,再把連線分派給 FW 核心。
- CoreXL FW 核心(fwk instances):實際做防火牆 / Blade 檢查。
graph LR
NIC[網卡流量] --> SND[SND 核心<br/>收包 + SecureXL]
SND --> FW1[FW 核心 1]
SND --> FW2[FW 核心 2]
SND --> FW3[FW 核心 3]
# 看每個 FW instance 的狀態:ID / Active / CPU / 現用連線 / 峰值
fw ctl multik stat
# 看核心分工(介面綁哪些 SND core、各 FW instance 綁哪 core)
fw ctl affinity -l -v -a
# Dynamic Balancing(自動調整 SND / FW 核心分配)
dynamic_balancing -p # 查目前狀態
dynamic_balancing -o start # 啟用(不需重開機)
dynamic_balancing -o stop # 停用
常見效能調校¶
單核爆掉、其他核心閒置?
最常見的效能瓶頸是流量集中在少數核心:
- SND 核心不夠 / 不均:調整 SND 與 FW 核心的分配比例。
- Multi-Queue:讓單一網卡的收包分散到多個 SND 核心,避免單一 SND 打滿。新版 Gaia 多半預設啟用。
- 大象流(elephant flow):少數超大連線塞爆單核,新版有機制偵測 / 分流。
用 cpview 的 CPU 分頁逐核確認,再決定怎麼調。
觀念釐清¶
- SecureXL(加速:哪些封包能走快路徑)與 CoreXL(平行:用幾個核心檢查)是兩件事,互相搭配。
- 兩者預設都啟用,一般不用動;要動之前先量測(cpview / fwaccel stats)。
版本提醒
- Dynamic Balancing(原 Dynamic Split)自 R80.40 / R81 起預設啟用,依負載自動調整 SND 與 FW 核心、不需重開機。注意:一旦你手動設定 CoreXL FW/SND 核心數,就會停用 Dynamic Balancing;叢集內各成員設定要一致。
- HyperFlow:偵測到大象流(elephant flow)時,配置 PPE(Parallel Processing Engine)執行緒並行處理那條重連線,流結束再收回。R82 新增對 SMB/CIFS 與 QUIC 的 elephant flow 加速。
- Multi-Queue 在新版多半預設啟用。整體趨勢是越新版本越「免手動調」,但觀念一樣。
小結¶
- SecureXL = 快速路徑加速(Accel / Medium / Slow path)。
- CoreXL = 多核平行檢查(SND 核心收包分派、FW 核心做檢查)。
- 排錯抓不到封包時,記得 SecureXL 會繞過 fw monitor,必要時暫關。
- 效能瓶頸常是「單核爆」,用 cpview 逐核看,靠核心分配 / Multi-Queue 調。