상용 NGFW HW 아키텍처
Fortinet 7121F/NP7/CP9, Palo Alto PA-7500/SP3, Check Point 29200/Maestro/LightSpeed, Juniper SRX5800, Cisco Secure Firewall 4245, Sophos XGS 8500 최상급 상용 NGFW 하드웨어 아키텍처 비교, SSL Inspection 오프로드 분류, 암호화(Encryption) 오프로드 아키텍처 3분류, 하드웨어 이벤트 스케줄러(Scheduler)(DLB/SSO), Linux 커널 기반 NGFW, 벤더별 TLS 핸드셰이크·암호화·성능 비교, 패킷 유형별 고성능 흐름, 배포 아키텍처 패턴, HA 구성, TLS 1.3/ECH 대응, PQC 영향, RFC 9411 성능 측정 방법론
상용 NGFW는 암호화·DPI 가속을 위해 크게 두 가지 하드웨어 처리 모델을 사용합니다:
| 구분 | 인라인(Inline) 처리 | 룩어사이드(Lookaside) 처리 |
|---|---|---|
| 패킷(Packet) 경로 | 패킷이 전용 HW를 통과하며 처리 (NIC → ASIC/FPGA → NIC) | 패킷을 별도 HW 엔진으로 보내고 결과를 돌려받음 (CPU ↔ 코프로세서) |
| 지연(Latency) | 최소 — 데이터 경로에 HW가 직접 위치 | 복사/전송 오버헤드(Overhead) 발생 — PCIe 왕복 |
| 적용 예 | 세션 오프로드, NAT rewrite, IPSec inline crypto | SSL/TLS 가속, AV 패턴 매칭, 압축 |
| 장점 | 라인레이트 처리, CPU bypass 가능 | 범용 CPU와 독립적 확장, 유연한 알고리즘 지원 |
| 단점 | ASIC/FPGA 설계 복잡, 새 프로토콜 지원 느림 | PCIe 대역폭(Bandwidth) 병목(Bottleneck), 배치 처리 필요 |
대부분의 상용 NGFW는 두 모델을 혼합(Hybrid)하여 사용합니다. 다만 실무에서는 L4 세션 전달용 fast path와 SSL Inspection용 복호화(Decryption) 경로를 분리해서 봐야 합니다. 같은 장비라도 세션 포워딩은 inline인데, SSL/TLS 검사는 CPU중심 lookaside, SoC중심 lookaside, 카드형 크립토 가속기, 또는 전용 TLS 복호화 엔진일 수 있습니다. 아래 표는 2026년 6월 공식 문서 확인 기준으로 이를 정리한 것입니다:
| 기능 | Fortinet | Palo Alto | Check Point | Juniper | Cisco | Sophos | Linux NGFW |
|---|---|---|---|---|---|---|---|
| 세션 오프로드 | Inline (NP7/NP7Lite/NP6 계열) | Inline dataplane fast path (SP3 / NPC-DPC) | Inline (SecureXL KPPAK/UPPAK) | Inline (NP Express Path) | Static/dynamic flow offload | FastPath / Xstream Flow Processor | Inline (eSwitch FDB) |
| NAT Rewrite | Inline (NP7 policy/NAT engine) | Inline 세션 경로 | SecureXL NAT Templates | Inline (NP) | FTD/LINA fast path | FastPath가 신뢰된 흐름의 후속 패킷 처리 | Inline (eSwitch / flowtable) |
| IPSec 데이터 경로 | NP7/CP 계열 crypto 보조 | 모델별 dataplane crypto | SecureXL Cryptography + CPU | PFE inline IPsec 또는 SPC3/QAT 계열 | Crypto accelerator + fastpath | XFRM stack이 FastPath/NPU crypto로 ESP 처리 오프로드 | Inline (NIC crypto) / Lookaside (QAT) |
| SSL/TLS Inspection | CP9/CP10/SoC inspection 보조 | 프록시형 decrypt + dataplane 처리 | HTTPS Inspection + CoreXL/SecureXL | SSL Proxy + 서비스 처리 경로 | TLS hardware decryption + Snort 3 | DPI Engine + PKI acceleration (X.509 재서명 중심) | 프록시 + kTLS/QAT 혼합 |
| 평문 DPI / App-ID | CPU + CP pattern matching | SP3 single-pass App-ID/IPS | CoreXL FW Instance | flowd / security services | Multi-threaded Snort 3 | Xstream DPI Engine | Suricata / nDPI |
| 처리 모델 요약 | Inline NP + CP/SoC inspection | 모듈형 dataplane + single-pass software | SW fast path + 수평 확장 | Inline NP/PFE + 서비스 오프로드 | Flow offload + crypto accelerator + Snort 3 | x86 CPU + Xstream Flow Processor dual-processor | Inline SmartNIC + userspace lookaside |
2026년 6월 공식 자료 확인 요약
아래 내용은 2026년 6월 2일 기준 공식 벤더 문서와 데이터시트를 확인해 반영한 사항입니다. 수치가 포함된 항목은 벤더가 공개한 시험 조건을 함께 보아야 하며, 실제 배치에서는 RFC 9411 방법론으로 재측정해야 합니다.
| 벤더 | 확인된 최신 핵심 사실 | 이 문서의 아키텍처 해석 | 주의할 점 |
|---|---|---|---|
| Fortinet | NP7은 세션 fast path, CGN/NAT setup, hardware logging, HA hardware session synchronization 등을 CPU에서 분리할 수 있으며, Fortinet 문서는 NP7 1개당 2×100G 기준 최대 200Gbps와 1,200만 세션 한계를 설명합니다. CP9는 flow-based IPS/Application Control pattern matching, IPsec, SSL/TLS protocol processor를 포함합니다. SOC5(SP5)는 NP7Lite와 CP10을 포함하는 SoC로 문서화되어 있습니다. | NP7/NP7Lite는 inline 세션·NAT·IPsec fast path, CP9/CP10/SoC5는 inspection과 crypto 보조 경로로 봅니다. | SP5를 독립 SSL ASIC으로 단순화하면 부정확합니다. 모델별로 CP9, CP10, NP7Lite, NP7 조합이 다릅니다. |
| Palo Alto Networks | PA-7500은 PAN-OS 11.1부터 지원되며 MPC, NPC, DPC, SFC가 필요한 모듈형 chassis입니다. 공개 문서는 SP3를 single-pass software와 parallel processing hardware 개념으로 설명하지만, 특정 세대의 내부 FPGA/ASIC 배치를 세부 공개하지 않습니다. | SP3는 논리적 single-pass pipeline으로, PA-7500은 NPC가 네트워크 접속, DPC가 데이터 처리, SFC가 chassis fabric을 담당하는 모듈형 dataplane으로 해석합니다. | 공식 근거 없이 "FPGA가 SSL을 처리합니다"처럼 단정하지 않습니다. Decryption은 proxy 세션 2개를 만들고 보안 정책/프로필을 적용하는 구조입니다. |
| Check Point | R82 문서는 SecureXL을 KPPAK/UPPAK로 구분하고, CoreXL은 다중 Firewall kernel instance가 SecureXL instance와 함께 동작한다고 설명합니다. fwaccel 명령은 Acceleration, Cryptography, Accept/Drop/NAT Templates, LightSpeed Accel 상태를 표시합니다. Maestro는 Security Group을 하나의 Security Gateway처럼 관리하는 SMO 구조입니다. | SecureXL은 L3/L4 fast path와 template 중심, CoreXL은 CPU 병렬 firewall path, Maestro/LightSpeed는 수평 확장과 NIC 기반 가속 계층으로 봅니다. | HTTPS Inspection은 TLS MITM과 보안 블레이드 검사 때문에 CPU/CoreXL 경로 영향을 크게 받습니다. LightSpeed는 L4 가속과 대역폭 확장 중심으로 구분해야 합니다. |
| Juniper | Junos 문서는 Express Path가 fast-path packet을 SRX firewall의 SPU 대신 network processor에서 처리한다고 설명합니다. Inline IPsec은 IPsec 처리를 CPU에서 Packet Forwarding Engine ASIC으로 오프로드합니다. SSL Proxy는 forward/reverse proxy 모두를 지원하며 TLS 1.3에서 secp256r1 key exchange 제한을 명시합니다. | 일반 세션은 NP/PFE fast path, IPsec은 플랫폼에 따라 PFE inline 또는 SPC3/QAT 계열, SSL Proxy는 서비스 처리 경로에서 복호화·검사·재암호화하는 구조로 봅니다. | SPC3가 모든 SSL/DPI를 자동으로 대신한다고 단정하면 안 됩니다. SSL Proxy 기능, 지원 cipher/group, 플랫폼별 crypto acceleration 동작을 함께 확인해야 합니다. |
| Cisco | Cisco Secure Firewall 4200 데이터시트는 multi-threaded Snort 3, cryptographic acceleration architecture, TLS hardware decryption, 최대 16-node cluster, 400G interface option을 명시합니다. 4245 기준 FW+AVC+IPS 140Gbps, TLS hardware decryption 45Gbps 수치가 공개되어 있습니다. | FTD/LINA fast path와 flow offload가 L3/L4를 줄이고, TLS hardware decryption과 crypto accelerator가 암호화 비용을 줄인 뒤, Snort 3가 multi-threaded DPI를 수행하는 구조로 봅니다. | TLS 수치는 50% TLS 1.2, AES256-SHA, RSA 2048B 조건입니다. 실제 TLS 1.3/ECDHE/HTTP2/QUIC 혼합에서는 별도 측정이 필요합니다. |
| Sophos | SFOS 21.5 문서는 SlowPath, DPI Engine, offload module, FastPath 구조를 설명하고, 대부분의 XGS 장비가 multi-core x86 CPU와 Xstream Flow Processor(NPU)를 결합한 dual-processor 구조라고 명시합니다. XGS 8500 공식 페이지는 Firewall 190Gbps, TLS Inspection 24Gbps, IPS 93Gbps, NGFW 76Gbps, Threat Protection 92.5Gbps, 100Gbps QSFP28 포트를 제시합니다. | 초기 패킷은 x86 CPU/SlowPath/DPI Engine에서 분류하고, 신뢰된 흐름은 Xstream Flow Processor의 FastPath로 넘기는 구조로 봅니다. TLS Inspection은 DPI Engine 중심이며, 지원되는 XGS 모델에서 X.509 서버 인증서 재서명(PKI)과 IPsec ESP 처리를 NPU crypto로 보조합니다. | 공식 문서는 inspected SSL/TLS flow의 symmetric crypto offload를 지원하지 않는다고 명시합니다. 따라서 "TLS 전체 복호화를 NPU가 처리합니다"라고 단정하면 부정확합니다. |
최상급 NGFW 장비 기준 아키텍처 비교
최고 성능 장비를 볼 때 가장 중요한 질문은 "어떤 칩이 빠른가"가 아니라 어떤 기능을 어느 계층에서 수평 확장하는가입니다. 최상급 NGFW는 대체로 ① 포트·패브릭 계층, ② 첫 패킷·세션 분류 계층, ③ L4/NAT/IPsec fast path 계층, ④ TLS 복호화 계층, ⑤ DPI/IPS/URL/파일 검사 계층, ⑥ 로그·관리 계층을 분리합니다. 아래 표는 공식 자료 기준으로 각 벤더의 플래그십 또는 최상위급 제품군을 이 관점에서 정리한 것입니다.
| 벤더/최상급 기준 | 확인된 공식 성능·구성 | 고성능을 만드는 핵심 구조 | 아키텍처상 가장 궁금한 지점 |
|---|---|---|---|
| Fortinet FortiGate 7121F / 7000F | 7121F는 16U 12-slot chassis, 1Tbps fabric backplane, 50Gbps base backplane, SMM 2개, FIM 2개, FPM 최대 10개 구조입니다. FPM-7620F는 NP7/CP9/TPM을 포함하며, 공식 데이터시트는 FPM 단위 IPv4 FW 396/395/263Gbps, IPS 67.5Gbps, SSL Inspection 54Gbps, NGFW 55Gbps, Threat Protection 52Gbps를 제시합니다. | FIM이 외부 포트와 chassis ingress/egress를 담당하고, FPM이 NP7 fast path와 CP9 content/security acceleration을 수행합니다. NP7은 세션·NAT·CGN·IPsec·DoS offload를 CPU에서 분리하고, CP9는 pattern matching과 SSL/TLS protocol processor를 보조합니다. | 성능은 단일 박스가 아니라 FIM/FPM 간 분산과 NP7 locality에 의해 결정됩니다. 세션이 어느 FPM에 고정되는지, SSL Deep Inspection 세션이 CP9/CPU 경로를 얼마나 점유하는지가 실제 상한입니다. |
| Palo Alto Networks PA-7500 | PA-7500은 PAN-OS 11.1부터 지원되는 14RU급 모듈형 chassis입니다. 공식 하드웨어 문서는 MPC, NPC, DPC, SFC 구조와 front 9 slots, rear SFC slots를 설명합니다. 공식 제품 페이지는 App-ID 1.5Tbps, Layer 7 threat prevention 1.44Tbps, 400Gbps interface support, NPC 최대 7개, DPC 최대 7개를 제시합니다. | NPC는 400G/100G 포트, route/MAC lookup, QoS, NAT, packet scheduling, flow management 등 네트워크 처리를 담당하고, DPC는 App-ID, User-ID, URL match, policy match, app decoding, SSL/IPsec, decompression 같은 보안 처리를 담당합니다. SFC는 NPC-DPC 사이의 내부 스위칭 패브릭입니다. | PA-7500의 핵심은 network processing과 security processing을 카드 단위로 분리한 점입니다. 첫 패킷과 세션 메타데이터가 NPC/MPC/DPC 사이에서 어떻게 분배되는지, Decryption이 DPC 보안 처리량을 얼마나 잠식하는지가 sizing 핵심입니다. |
| Check Point Quantum Force 29200 + Maestro 175 | 29200 공식 페이지는 2RU modular platform에서 Firewall 500Gbps, NGFW 165Gbps, Threat Prevention 75Gbps 성능 highlight를 제시하며, 같은 페이지는 최대 1.4Tbps firewall 성능 문구도 함께 제공합니다. Maestro 175는 fabric capacity 3.2Tbps, Gen V threat prevention 1.5Tbps, 32×100GbE 또는 128×10GbE 포트를 제시합니다. | 단일 게이트웨이는 SecureXL/KPPAK/UPPAK fast path, CoreXL firewall instance 병렬화, LightSpeed Accel/NIC 가속을 결합합니다. Maestro는 여러 Quantum gateway를 Security Group으로 묶고, Orchestrator가 ingress flow를 멤버에 분산해 단일 논리 게이트웨이처럼 관리합니다. | Check Point의 최상급 구조는 단일 대형 ASIC보다 SecureXL fast path와 Maestro 수평 확장에 가깝습니다. HTTPS Inspection, Threat Emulation, 복잡한 blade 조합은 여전히 gateway CPU/CoreXL 배치와 세션 affinity에 크게 좌우됩니다. |
| Juniper SRX5800 | SRX5800 공식 데이터시트는 fully equipped chassis 기준 firewall 3.36Tbps, IPS 638Gbps, IPsec VPN AES-256-GCM 699Gbps, 338M concurrent sessions, sustained new sessions 6.3M/4M 수준을 제시합니다. 하드웨어 문서는 12 slots, 2~3 SCB, SPC/MPC/IOC/Flex IOC 조합 구조를 설명합니다. | SCB가 fabric과 제어 경로를 제공하고, MPC/IOC가 네트워크 입출력을 담당하며, SPC가 firewall, IPsec, IDP 등 service processing을 수행합니다. Express Path는 fast-path packet을 SPU 대신 network processor에서 처리하고, inline IPsec은 CPU 대신 PFE ASIC으로 ESP 처리를 넘길 수 있습니다. | SRX5800은 line card와 service card의 균형이 중요합니다. 포트가 충분해도 SPC 수와 IDP/SSL Proxy/Content Security 부하가 부족하면 보안 처리량이 먼저 막힙니다. |
| Cisco Secure Firewall 4245 | Cisco 4200 데이터시트는 4245 기준 Stateful firewall 180Gbps, FW+AVC+IPS 140Gbps, TLS hardware decryption 45Gbps, AVC 동시 세션 60M, AVC CPS 800K, ASA new CPS 2.0M, 16-node clustering, 400G network module option을 제시합니다. | 1RU 플랫폼 안에서 interface module, LINA/FTD fast path, flow offload, crypto acceleration, TLS hardware decryption, multi-threaded Snort 3를 결합합니다. Prefilter/large flow offload로 Snort 반복 검사를 줄이고, TLS/VPN crypto 비용을 전용 하드웨어로 낮춥니다. | Cisco의 핵심은 Snort 3로 보내지 않을 세션을 얼마나 정확히 선별하는가입니다. TLS hardware decryption 수치는 특정 TLS 1.2 조건이므로, TLS 1.3/ECDHE/QUIC/파일 검사 혼합에서는 Snort worker와 crypto accelerator 균형을 별도 측정해야 합니다. |
| Sophos XGS 8500 | XGS 8500은 2U enterprise/campus edge 모델이며, 공식 페이지는 Firewall 190Gbps, Firewall IMIX 81Gbps, IPS 93Gbps, IPsec VPN 141Gbps, NGFW 76Gbps, Threat Protection 92.5Gbps, TLS Inspection 24Gbps, 64-byte UDP latency 5.5us를 제시합니다. 고정 포트는 8×GE copper, 12×SFP+ 10GE, 2×QSFP28 10/25/40/50/100GE입니다. | 고속 x86 CPU와 Xstream Flow Processor를 결합해, 첫 패킷과 보안 판정은 CPU/SlowPath/DPI Engine이 수행하고 신뢰된 후속 패킷과 일부 PKI/IPsec 작업은 FastPath/NPU crypto가 줄입니다. | Sophos의 최상위 모델은 2U 단일 appliance 스케일에 가깝고, PA-7500/FortiGate 7121F 같은 대형 섀시형 수평 확장 구조와는 다릅니다. TLS Inspection 수치는 IPS enabled HTTPS와 cipher suite 조건을 확인해야 합니다. |
최상급 장비의 공통 패킷 경로 상세
플래그십 NGFW의 패킷 경로는 대부분 아래와 같은 형태로 수렴합니다. Fortinet은 이 계층을 FIM/FPM/NP7/CP9로, Palo Alto는 NPC/DPC/SFC로, Check Point는 SecureXL/CoreXL/Maestro로, Juniper는 MPC·IOC/SPC/SCB로, Cisco는 flow offload/crypto accelerator/Snort 3로, Sophos는 SlowPath/DPI Engine/FastPath/Xstream Flow Processor로 구현합니다.
벤더별 기능 칩셋 연결 구성도
아래 연결도는 공개 문서에서 확인 가능한 카드·ASIC·기능 블록의 논리 연결을 기준으로 작성했습니다. 실제 PCB 배선, SerDes lane 수, 내부 crossbar, 암호화 엔진 배치, CPU socket 구성은 대부분 벤더가 공개하지 않으므로 그림에 포함하지 않았습니다. 따라서 이 그림은 "실제 보드 회로도"가 아니라 패킷이 어느 기능 블록을 거쳐 성능을 얻는지를 설명하는 구조도입니다.
| 벤더 | 공개된 연결 단위 | 빠른 경로 | 깊은 검사 경로 | 미공개로 남는 부분 |
|---|---|---|---|---|
| Fortinet 7121F | SMM, FIM, FPM, NP7, CP9, fabric/base backplane | FIM NP7 session-aware load balancing → FPM NP7 session/NAT/IPsec offload → egress FIM | FPM CPU/FortiOS → CP9 content/security acceleration → CPU verdict → NP7/FIM egress | FPM 내부 CPU·NP7·CP9 사이의 정확한 버스 폭과 CP9 내부 엔진 구성 |
| Palo Alto PA-7500 | MPC, NPC, DPC, SFC, FE-400 ASIC, CPU/RAM 역할 | NPC network processing / flow management → SFC → egress NPC | NPC → SFC → DPC security processing(App-ID/SSL/IPsec/decompression) → SFC → NPC | FE-400 ASIC 내부 pipeline과 DPC 내 CPU/ASIC 간 세부 연결 |
| Check Point 29200/Maestro | Orchestrator, Security Group, SecureXL, CoreXL, LightSpeed Accel 상태 | Maestro flow distribution 또는 단일 appliance ingress → SecureXL templates/KPPAK/UPPAK | SecureXL miss → CoreXL firewall instance → Threat Prevention blades → SecureXL verdict/cache | 29200 내부 NIC/가속 칩 구성과 LightSpeed Accel의 물리 칩셋 세부 |
| Juniper SRX5800 | SCB, SPC, MPC, IOC, Flex IOC, PFE/Express Path, inline IPsec | MPC/IOC ingress → PFE/Express Path → SCB fabric → egress MPC/IOC | MPC/IOC → SCB → SPC service processing(firewall/IPsec/IDP/SSL Proxy) → SCB → egress | SPC 내부 crypto engine, PFE 세대별 pipeline, SSL Proxy 하드웨어 가속 세부 |
| Cisco 4245 | Network module, flow offload, crypto accelerator, TLS hardware decryption, Snort 3 | Ingress interface → LINA/FTD prefilter → flow offload → egress interface | Prefilter miss/TLS decrypt → crypto accelerator → Snort 3 workers → verdict cache/egress | crypto accelerator 칩 명칭, TLS hardware decryption 내부 엔진, Snort worker와 I/O 사이 bus topology |
| Sophos XGS 8500 | x86 CPU, SlowPath, DPI Engine, FastPath, Xstream Flow Processor, NPU crypto | Ingress → SlowPath 초기 분류 → FastPath/Xstream Flow Processor connection cache → egress | SlowPath/DPI Engine → TLS/IPS/App/Web/AV stream inspection → PKI acceleration 또는 IPsec acceleration 조건부 사용 → verdict/offload | Xstream Flow Processor 내부 pipeline, NPU crypto engine 배치, DPI Engine worker와 FastPath 사이의 정확한 큐 구조 |
벤더별 핵심 성능 오프로드 아키텍처 상세도
아래 그림은 각 벤더의 고성능 경로를 패킷이 실제로 어느 기능 블록을 지나 성능을 얻는가라는 관점으로 다시 펼친 것입니다. 녹색 경로는 반복 패킷을 줄이는 fast path, 보라색 경로는 암호화·TLS·IPsec 보조, 주황색 경로는 DPI/IPS/URL/파일 검사처럼 비용이 큰 deep path를 뜻합니다. 벤더가 공개하지 않은 칩 내부 버스 폭, crossbar, crypto engine 세부 배치는 의도적으로 그리지 않았습니다.
벤더별 SSL Inspection 오프로드 분류
SSL/TLS Inspection은 단순히 "암호화 가속" 하나로 끝나지 않습니다. 실제로는 ① TLS 핸드셰이크와 키 교환, ② 레코드 계층 AES-GCM/ChaCha20 암·복호화, ③ 평문 DPI와 정책 엔진(Policy Engine), ④ 인증서/개인키 보관이 서로 다른 자원에 배치됩니다. 벤더별 차이는 바로 이 네 단계가 어디서 실행되는지에 있습니다.
| 벤더 | TLS 핸드셰이크/키 교환 | TLS 레코드 암·복호화 | 평문 DPI 위치 | 공개 자료로 읽히는 분류 | 실무적 의미 |
|---|---|---|---|---|---|
| Fortinet | 보안 프로세서 또는 SoC inspection 경로가 보조 | 보안 프로세서/inspection 엔진이 보조 | CPU + 콘텐츠 가속기 | 고성능 chassis는 inline NP + SoC/보안 프로세서 lookaside, 브랜치 SoC 장비는 SoC중심 hybrid | Deep Inspection 세션은 NP fast path에서 빠지고 inspection 경로로 고정됩니다. |
| Palo Alto | dataplane CPU 자원 중심 | dataplane CPU 자원 중심 | SP3 single-pass CPU dataplane | inline 세션 fast path + CPU중심 lookaside | 전용 SSL ASIC보다 dataplane 코어 수와 메모리 구조가 Decryption 처리량(Throughput)을 좌우합니다. |
| Check Point | CoreXL CPU / OpenSSL 경로 | CoreXL CPU / AES-NI | CoreXL FW Instance | SW inline fast path + CPU중심 lookaside | SecureXL은 비암호화 fast path에 효과적이지만 HTTPS Inspection은 Firewall Path를 강제합니다. |
| Juniper | SPC3 서비스 오프로드 카드 | SPC3 서비스 오프로드 카드 | flowd (CPU) | inline NP + 카드형 lookaside | 슬롯 기반 확장으로 SSL CPS를 늘릴 수 있지만, 검사 세션은 Express Path에 남지 않습니다. |
| Cisco | TLS hardware decryption / crypto accelerator | TLS hardware decryption / crypto accelerator | Snort 3 | flow offload + crypto accelerator + CPU DPI | 대형 장비는 TLS 복호화와 VPN crypto를 하드웨어로 줄이고, DPI는 multi-threaded Snort 3로 확장합니다. |
| Sophos | DPI Engine 중심, Xstream Flow Processor의 PKI acceleration이 X.509 재서명 보조 | inspected SSL/TLS symmetric crypto offload는 공식적으로 미지원 | Xstream DPI Engine | NPU FastPath + CPU/DPI 중심 TLS inspection | TLS 검사 전체를 NPU가 처리하는 구조가 아니라, 신뢰된 흐름 offload와 인증서 재서명 가속을 분리해서 봐야 합니다. |
| Linux NGFW | 프록시 프로세스(Process) + 선택적 QAT | QAT lookaside 또는 NIC kTLS | Suricata / nDPI / 프록시 프로세스 | 구성 가능한 hybrid | 표준 커널 인터페이스는 풍부하지만 상용 장비처럼 단일 통합 inspection ASIC은 없습니다. |
암호화 오프로드 아키텍처 3분류
앞선 표에서 lookaside를 단일 카테고리로 분류했지만, 실제 구현을 살펴보면 lookaside 방식은 가속기의 물리적 위치와 버스 토폴로지(Topology)에 따라 크게 두 가지로 나뉩니다. CPU중심 룩어사이드(CPU-Centric Lookaside)는 PCIe 카드 형태의 외장 가속기를, SoC중심 룩어사이드(SoC-Centric Lookaside)는 SoC 다이 내장 크립토 엔진을 사용합니다. 여기에 데이터 경로 자체에 암호화를 삽입하는 인라인(Inline) 방식까지 포함하면, 암호화 오프로드는 3분류로 정리됩니다.
각 아키텍처의 핵심 차이는 패킷 데이터가 암호화 엔진에 도달하는 경로와 결과가 반환되는 지연 시간입니다. 기존 전용 크립토 가속기 섹션의 HW 스펙표와 함께 참조하면 전체 그림을 파악할 수 있습니다.
CPU중심 룩어사이드(CPU-Centric Lookaside)
CPU중심 룩어사이드는 CPU가 호스트 메모리에 있는 패킷 데이터를 PCIe 버스를 통해 외장 가속기 카드에 전송하고, 가속기가 처리한 결과를 다시 PCIe DMA로 돌려받는 모델입니다. CPU가 submission ring에 작업을 큐잉하면, 가속기가 비동기로 처리한 뒤 completion ring을 통해 완료를 통보합니다.
대표 하드웨어:
- Intel QAT 8970 (PCIe 카드) — 200 Gbps 대칭키, 140K RSA-2048 ops/s.
qat_c62x드라이버. 서버/어플라이언스용 대용량 SSL 프록시에 적합 - Intel QAT 4xxx (4th/5th Gen Xeon 내장) — 100 Gbps. SPR 이후 CPU에 통합되었으나, PCIe 도메인의 별도 디바이스로 노출되어 여전히 CPU중심 룩어사이드 모델
- Marvell NITROX V (PCIe 카드) — 100 Gbps, 최대 64 VF(SR-IOV) 지원.
nitrox드라이버로 커널 crypto API에 등록
커널 crypto API에 등록된 가속기의 우선순위(Priority) 확인:
# 등록된 암호화 알고리즘과 우선순위 확인
cat /proc/crypto | grep -A4 "name.*gcm(aes)"
# 출력 예시: driver = qat_aes_gcm, priority = 4001
# 우선순위가 높을수록 먼저 선택됨 (SW fallback은 보통 100~200)
# QAT 디바이스 상태 확인
cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/fw_counters
/* CPU중심 룩어사이드: 비동기 콜백 패턴 */
struct aead_request *req = aead_request_alloc(tfm, GFP_ATOMIC);
aead_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
crypto_done_callback, &result);
aead_request_set_crypt(req, src_sg, dst_sg, payload_len, iv);
aead_request_set_ad(req, assoclen);
ret = crypto_aead_encrypt(req);
if (ret == -EINPROGRESS || ret == -EBUSY) {
/* 가속기가 비동기 처리 중 — completion 대기 */
wait_for_completion(&result.completion);
ret = result.err;
}
/* QAT: PCIe DMA 왕복 지연 ~10-50μs 포함 */
장점: ① PCIe 슬롯으로 독립 확장 가능 — CPU 교체 없이 가속 능력 증대 ② SR-IOV로 VM별 격리(Isolation)된 VF 제공 — 클라우드/가상화(Virtualization) 환경에 유리 ③ 대용량 RSA/ECDHE 핸드셰이크 처리에서 CPU 부하 90%+ 절감
단점: ① PCIe 왕복 지연(~10-50μs)이 패킷당 추가 — 소형 패킷 다수 시 병목 ② DMA 매핑(Mapping)/해제 오버헤드 —
dma_map_single() 호출 비용 ③ 별도 전원·냉각·슬롯 필요 — 임베디드/엣지에 부적합
SoC중심 룩어사이드(SoC-Centric Lookaside)
SoC중심 룩어사이드는 크립토 엔진이 SoC 다이 내부에 통합되어 있으며, CPU와 내부 버스(AXI/AHB/ACE)로 직접 연결됩니다. PCIe를 거치지 않으므로 DMA 왕복 지연이 크게 줄어들고, 별도 전원·슬롯이 필요 없어 임베디드·네트워크 장비에 널리 사용됩니다. CPU가 Job Ring(또는 Command Ring)에 작업을 큐잉하면, 내장 크립토 엔진이 내부 버스를 통해 메모리에서 직접 데이터를 읽어 처리합니다.
대표 하드웨어:
- NXP CAAM (Cryptographic Acceleration and Assurance Module) — NXP Layerscape/i.MX SoC에 내장. Job Ring 기반 비동기 처리, 최대 4 JR. Linux 드라이버:
caam(drivers/crypto/caam/) - Marvell OCTEON CPT (Crypto Processing Thread) — OCTEON TX2/CN10K에 내장. 최대 100 Gbps 대칭키.
octeontx2-cpt드라이버 - Broadcom SPU (Security Processing Unit) — BCM58xxx/Memory Stingray SoC.
bcm_crypto_spu드라이버 - ARM CryptoCell — ARM TrustZone 연동 보안 코프로세서, 1-5 Gbps.
ccree드라이버. 상세 스펙은 크립토 가속기 비교표 참조
Device Tree 바인딩 예시 (NXP CAAM):
/* NXP Layerscape SoC — CAAM Device Tree 바인딩 */
crypto@1700000 {
compatible = "fsl,sec-v5.4", "fsl,sec-v5.0",
"fsl,sec-v4.0";
reg = <0x0 0x1700000 0x0 0x100000>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0x1700000 0x100000>;
/* Job Ring 0 */
jr0: jr@10000 {
compatible = "fsl,sec-v5.4-job-ring",
"fsl,sec-v4.0-job-ring";
reg = <0x10000 0x10000>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
};
/* Job Ring 1 */
jr1: jr@20000 {
compatible = "fsl,sec-v5.4-job-ring";
reg = <0x20000 0x10000>;
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
};
};
장점: ① 초저지연(1-5μs) — PCIe 왕복 불필요, 내부 버스 직접 접근 ② 전력 효율 — 별도 PCIe 카드 전원 불필요, 임베디드/엣지에 최적 ③ BOM 절감 — SoC 가격에 포함, 추가 부품 불필요
단점: ① 확장 불가 — SoC에 고정된 처리량이 상한, HW 교체 없이 증설 불가 ② 처리량 한계 — 서버급 가속기(100-200 Gbps) 대비 1-20 Gbps 수준 ③ SoC 벤더 종속 — 드라이버와 DT 바인딩이 벤더별로 상이
인라인 암호화(Inline Crypto)
인라인 암호화는 가속기가 네트워크 데이터 경로(data path) 자체에 위치하여, 패킷이 NIC/SmartNIC을 통과하는 과정에서 암호화·복호화가 수행됩니다. CPU는 암호 키 설정과 SA(Security Association) 구성만 담당하고, 실제 패킷 데이터에는 전혀 관여하지 않습니다. IPSec, MACsec, kTLS(커널 TLS) 3가지 프로토콜이 인라인 오프로드의 대표적 사례입니다.
대표 하드웨어:
- NVIDIA (Mellanox) ConnectX-6 Dx / ConnectX-7 — IPSec inline (200 Gbps), MACsec, kTLS offload.
mlx5_core드라이버. xfrm offload + TC flower 연동 - Intel E810 (Colville) — IPSec inline offload (100 Gbps).
ice드라이버.ethtool -K eth0 esp-hw-offload on으로 활성화 - AMD (Pensando) DSC-200 — SmartNIC/DPU, IPSec + kTLS inline. P4 프로그래머블 파이프라인(Pipeline)에 crypto 엔진 통합
인라인 IPSec 오프로드 설정 확인(상세는 kTLS 오프로드 섹션 참조):
# NIC의 inline crypto 기능 확인
ethtool -k eth0 | grep -E "esp-hw-offload|tls-hw"
# esp-hw-offload: on ← IPSec inline 지원
# tls-hw-tx-offload: on ← kTLS TX inline 지원
# tls-hw-rx-offload: on ← kTLS RX inline 지원
# xfrm (IPSec) offload 설정 — SA에 offload 플래그 추가
ip xfrm state add src 10.0.0.1 dst 10.0.0.2 \
proto esp spi 0x100 reqid 1 mode tunnel \
aead "rfc4106(gcm(aes))" 0x$(xxd -l 20 -p /dev/urandom) 128 \
offload dev eth0 dir out # ← inline offload 핵심 옵션
# offload 상태 확인
ip xfrm state show | grep -A2 offload
장점: ① Zero-copy — 패킷 데이터가 호스트 메모리를 거치지 않아 CPU 부하 0% ② 라인레이트 — NIC ASIC이 와이어 속도로 처리, 100-400 Gbps 가능 ③ 극소 지연(~1μs 이하) — 데이터 경로에 직접 삽입
단점: ① 프로토콜 고정 — NIC 펌웨어(Firmware)가 지원하는 프로토콜(IPSec/MACsec/kTLS)만 가능 ② SA 수 제한 — NIC TCAM/메모리에 따라 SA 수천~수만 개 상한 ③ SSL Inspection 불가 — TLS 핸드셰이크·DPI는 인라인으로 처리할 수 없음 (lookaside 필수)
3종 아키텍처 종합 비교
| 항목 | CPU중심 룩어사이드 | SoC중심 룩어사이드 | 인라인 암호화 |
|---|---|---|---|
| 가속기 위치 | PCIe 슬롯 (외장) | SoC 다이 내부 | NIC/SmartNIC 데이터 경로 |
| 버스 | PCIe Gen4/5 | AXI / AMBA / ACE | N/A (와이어 직접) |
| 지연 시간 | 10-50μs | 1-5μs | <1μs |
| 대칭키 처리량 | 100-200 Gbps | 1-100 Gbps | 라인레이트 (100-400 Gbps) |
| CPU 오버헤드 | 중간 (DMA 매핑 + 콜백(Callback)) | 낮음 (Job Ring 관리) | 거의 없음 (SA 설정만) |
| 프로토콜 유연성 | 높음 (모든 crypto API 알고리즘) | 중간 (SoC 지원 알고리즘) | 낮음 (IPSec/MACsec/kTLS 고정) |
| 확장성 | PCIe 슬롯 추가 | SoC 교체 필요 | NIC 교체/추가 |
| 대표 HW | Intel QAT 8970/4xxx, NITROX V | NXP CAAM, OCTEON CPT, CryptoCell | ConnectX-6 Dx/7, E810, Pensando DSC |
| 주요 Linux 드라이버 | qat_4xxx, nitrox | caam, octeontx2-cpt, ccree | mlx5_core, ice |
| 주요 용도 | SSL 프록시, HSM, 대량 핸드셰이크 | 임베디드 라우터, CPE, IoT 게이트웨이 | 데이터센터 IPSec VPN, CDN kTLS |
하드웨어별 아키텍처 분류 상세:
| 하드웨어 | 아키텍처 분류 | 버스 | 대칭키 처리량 | RSA-2048 ops/s | Linux 드라이버 |
|---|---|---|---|---|---|
| Intel QAT 8970 | CPU중심 Lookaside | PCIe Gen3 x16 | 200 Gbps | 140K | qat_c62x |
| Intel QAT 4xxx (SPR 내장) | CPU중심 Lookaside | PCIe 도메인 | 100 Gbps | 100K | qat_4xxx |
| Marvell NITROX V | CPU중심 Lookaside | PCIe Gen3 x16 | 100 Gbps | 100K | nitrox |
| NXP CAAM | SoC중심 Lookaside | AXI (SoC 내부) | 10-20 Gbps | 10K | caam |
| Marvell OCTEON CPT | SoC중심 Lookaside | AMBA (SoC 내부) | 100 Gbps | 50K | octeontx2-cpt |
| Broadcom SPU | SoC중심 Lookaside | AXI (SoC 내부) | 10 Gbps | 10K | bcm_crypto_spu |
| ARM CryptoCell | SoC중심 Lookaside | AHB (SoC 내부) | 1-5 Gbps | 5K | ccree |
| NVIDIA ConnectX-7 | Inline | N/A (와이어) | 400 Gbps | N/A | mlx5_core |
| Intel E810 | Inline | N/A (와이어) | 100 Gbps | N/A | ice |
| AMD Pensando DSC-200 | Inline | N/A (와이어) | 200 Gbps | N/A | ionic |
리눅스 커널 Crypto API 매핑
리눅스 커널의 다양한 암호화 서브시스템은 3종 아키텍처를 각각 다른 경로로 활용합니다. 아래 표는 주요 서브시스템별 매핑을 보여줍니다:
| 서브시스템 | CPU중심 Lookaside | SoC중심 Lookaside | Inline |
|---|---|---|---|
crypto API/proc/crypto | qat_aes_gcm (pri=4001)비동기 aead/skcipher | caam-aes-gcm (pri=3000)비동기 Job Ring | 미사용 (데이터 경로 직접) |
xfrm (IPSec)ip xfrm | crypto API 경유 SW ESP + HW 암호화 | crypto API 경유 SW ESP + HW 암호화 | xfrm_offloadNIC이 ESP 전체 처리 |
kTLSsetsockopt(SOL_TLS) | 미사용 (SW kTLS만) | 미사용 (SW kTLS만) | tls_device_offloadNIC TX/RX 오프로드 |
MACsecip macsec | 미사용 | 미사용 | macsec_offloadNIC L2 암호화 |
| dm-crypt 디스크 암호화 | crypto API 경유 | crypto API 경유 | 미사용 |
커널 crypto API의 우선순위 기반 자동 선택(fallback chain):
# /proc/crypto에서 동일 알고리즘의 우선순위 확인
# 우선순위가 높은 드라이버가 자동 선택됨
$ grep -B1 -A5 "gcm(aes)" /proc/crypto
name : gcm(aes)
driver : qat_aes_gcm # ← QAT 가속기 (CPU중심 Lookaside)
priority : 4001 # ← 최우선
async : yes
name : gcm(aes)
driver : caam-gcm-aes # ← CAAM (SoC중심 Lookaside)
priority : 3000
async : yes
name : gcm(aes)
driver : generic-gcm-aesni # ← CPU AES-NI (SW fallback)
priority : 400
async : no
# Fallback chain: QAT(4001) → CAAM(3000) → AES-NI(400) → generic(100)
# 가속기 장애 시 자동으로 다음 우선순위 드라이버로 전환
암호화 완료 모델: 동기·비동기·폴링(Polling)
커널 crypto API에서 암호화 요청이 HW 가속기에 제출된 뒤 결과를 수신하는 방식은 크게 3가지로 나뉩니다: 동기(Synchronous), 비동기 인터럽트(Asynchronous Interrupt), 비동기 폴링. 각 모델은 지연 시간, CPU 활용률, 처리량 특성이 근본적으로 다르며, NGFW의 성능 프로파일을 결정하는 핵심 요소입니다.
동기 처리(Synchronous)
동기 모델에서 CPU는 암호화 함수를 호출한 뒤 결과가 반환될 때까지 블로킹됩니다. CPU 자체의 AES-NI/ARMv8-CE 명령어로 처리하는 경우가 대표적이며, 함수 호출과 반환이 동일 컨텍스트에서 완료됩니다.
/* 동기(Synchronous) 처리 — CPU 명령어(AES-NI) 직접 실행 */
struct skcipher_request *req = skcipher_request_alloc(tfm, GFP_KERNEL);
skcipher_request_set_crypt(req, src_sg, dst_sg, len, iv);
/* 콜백 없이 직접 호출 — 반환 시 이미 완료 */
ret = crypto_skcipher_encrypt(req);
/* ret == 0: 즉시 완료 (동기)
* CPU AES-NI의 경우 /proc/crypto에서 async: no 표시 */
if (ret == 0) {
/* 암호화 완료 — 결과가 dst_sg에 이미 기록됨 */
process_encrypted_packet(dst_sg);
}
skcipher_request_free(req);
/proc/crypto에서 async: no로 표시되는 알고리즘이 이에 해당합니다. 소형 패킷(64-256B)에서는 HW 가속기의 DMA 셋업 오버헤드보다 빠를 수 있습니다.
비동기 인터럽트 처리(Asynchronous Interrupt-Driven)
비동기 인터럽트 모델은 커널 crypto API에서 가장 일반적인 HW 가속기 활용 패턴입니다. CPU가 요청을 가속기의 submission ring에 큐잉하면 즉시 반환되고, 가속기가 처리를 완료하면 인터럽트(IRQ)를 발생시켜 등록된 콜백 함수를 호출합니다.
커널 crypto API에서 비동기 요청의 반환값 의미와 콜백 처리 흐름:
/*
* crypto API 반환값 — 완료 모델을 결정하는 핵심
*
* 0 : 동기 완료 — 결과가 이미 준비됨
* -EINPROGRESS : 비동기 처리 시작됨 — 콜백으로 완료 통보 예정
* -EBUSY : 백로그(backlog) 큐에 진입 — 큐 공간 확보 후 처리 예정
* -ENOSPC : 큐 가득 참(백로그 미허용 시) — 호출자가 재시도해야 함
* 기타 음수 : 오류 (키 설정 오류, 메모리 부족 등)
*/
/* ── 비동기 콜백 구조체 ── */
struct crypto_async_result {
struct completion completion; /* wait_for_completion() 대상 */
int err; /* 콜백에서 설정되는 최종 에러 코드 */
};
/* ── 콜백 함수 — 가속기 인터럽트 핸들러에서 호출됨 ── */
static void crypto_op_complete(void *data, int err)
{
struct crypto_async_result *result = data;
/*
* err == 0 : 암호화 성공
* err == -EINPROGRESS : 백로그에서 꺼내어 처리 시작
* (CRYPTO_TFM_REQ_MAY_BACKLOG 설정 시)
* err < 0 (기타) : HW 오류
*/
if (err == -EINPROGRESS)
return; /* 아직 완료 아님 — 실제 완료 시 다시 호출됨 */
result->err = err;
complete(&result->completion); /* 대기 중인 스레드 깨움 */
}
/* ── 요청 제출 — CRYPTO_TFM_REQ_MAY_BACKLOG 플래그 상세 ── */
struct aead_request *req = aead_request_alloc(tfm, GFP_ATOMIC);
aead_request_set_callback(req,
CRYPTO_TFM_REQ_MAY_BACKLOG | /* 큐 가득 차도 백로그 허용 */
CRYPTO_TFM_REQ_MAY_SLEEP, /* 콜백에서 sleep 가능 (프로세스 컨텍스트) */
crypto_op_complete, &result);
aead_request_set_crypt(req, src_sg, dst_sg, payload_len, iv);
aead_request_set_ad(req, assoclen);
ret = crypto_aead_encrypt(req);
switch (ret) {
case 0:
/* 동기 완료 — SW fallback이 선택된 경우 또는
* 가속기가 즉시 처리 완료한 경우 */
process_result(req);
break;
case -EINPROGRESS:
/* 비동기 처리 시작 — 가속기가 DMA로 데이터 전송 중
* 완료 시 crypto_op_complete() 콜백 호출됨 */
break;
case -EBUSY:
/* 가속기 큐 가득 참 + 백로그에 진입
* CRYPTO_TFM_REQ_MAY_BACKLOG 덕분에 거부되지 않음
* 콜백이 두 번 호출됨:
* 1차: err=-EINPROGRESS (백로그→실제 큐 이동 시)
* 2차: err=0 (처리 완료 시) */
break;
default:
/* 오류 — 키 미설정, 메모리 부족, HW 장애 등 */
pr_err("crypto op failed: %d\n", ret);
break;
}
백로그(Backlog) 큐 동작 상세:
┌─────────────────────────────────────────────────────────┐
│ 가속기 Submission Ring (크기: 512) │
│ [req1] [req2] [req3] ... [req510] [req511] [req512] │
│ ← 가득 참 (new request 도착) │
└─────────────────────────────────────────────────────────┘
│
┌────────────────────┼────────────────────┐
│ MAY_BACKLOG 미설정 │ MAY_BACKLOG 설정 │
▼ │ ▼
-ENOSPC 반환 │ -EBUSY 반환
(호출자가 재시도) │ (백로그 큐에 진입)
│ │
│ ┌───────────────┘
│ ▼
│ Backlog Queue
│ [req513] [req514] ...
│ │
│ │ Ring 슬롯 빌 때
│ ▼
│ 콜백(err=-EINPROGRESS)
│ → 실제 큐로 이동
│ │
│ │ HW 처리 완료
│ ▼
│ 콜백(err=0)
│ → 최종 완료
└────────────────────
비동기 폴링 처리(Asynchronous Polling)
비동기 폴링 모델에서는 인터럽트 대신 CPU가 주기적으로 completion ring(또는 상태 레지스터(Register))을 직접 확인합니다. 인터럽트 발생·처리·컨텍스트 전환 오버헤드를 제거하여 초저지연을 달성할 수 있지만, 폴링 동안 CPU 사이클을 소모합니다.
커널 6.0+에서 도입된 crypto_engine 폴링 모드와 DPDK 환경의 busy-polling이 대표적입니다:
커널 crypto_engine 폴링 모드 — 커널 6.0+에서 struct crypto_engine은 가속기 드라이버에 폴링 기반 완료 처리를 지원합니다:
/*
* crypto_engine 폴링 모드 (커널 6.0+)
* drivers/crypto/crypto_engine.c
*
* 기본 인터럽트 모드 대비 폴링 모드 전환 조건:
* 1. 고처리량 시나리오 (인터럽트 스톰 방지)
* 2. 초저지연 요구 (IRQ 컨텍스트 전환 제거)
*/
/* ── 드라이버에서 폴링 모드 지원 등록 ── */
struct crypto_engine *engine;
engine = crypto_engine_alloc_init(dev, true); /* rt=true: 실시간 우선순위 */
/* 폴링 기반 완료 처리 — 전용 kthread가 CQ를 확인 */
static int hw_accel_poll_completions(struct crypto_engine *engine)
{
struct hw_completion_ring *cq = engine->priv;
int completed = 0;
/* completion ring의 유효한 엔트리를 순회 */
while (cq->head != cq->tail) {
struct crypto_async_request *req;
struct hw_cq_entry *entry = &cq->entries[cq->head];
/* 완료 여부 확인 (HW가 done 비트 설정) */
if (!(READ_ONCE(entry->flags) & HW_CQ_DONE))
break;
req = entry->async_req;
/* DMA 매핑 해제 */
dma_unmap_sg(dev, req->src, sg_nents(req->src),
DMA_BIDIRECTIONAL);
/* 콜백 호출 — 인터럽트 컨텍스트가 아닌
* kthread 컨텍스트에서 실행 */
crypto_finalize_request(engine, req, 0);
cq->head = (cq->head + 1) % cq->ring_size;
completed++;
}
return completed;
}
/*
* 인터럽트 vs 폴링 전환 (적응형 모드)
* 처리량이 임계치를 초과하면 자동으로 폴링 전환
*/
static irqreturn_t hw_accel_irq_handler(int irq, void *data)
{
struct hw_accel_dev *hdev = data;
if (hdev->completions_per_sec > POLL_THRESHOLD) {
/* 고처리량 → 인터럽트 비활성화 + 폴링 모드 전환 */
disable_irq_nosync(irq);
hdev->polling = true;
/* kthread가 폴링 루프 시작 */
wake_up_process(hdev->poll_thread);
return IRQ_HANDLED;
}
/* 일반 모드 — 인터럽트 기반 완료 */
return hw_accel_process_irq(hdev);
}
DPDK / 유저스페이스 busy-polling — NGFW에서 DPDK 기반 데이터 플레인(VPP, Suricata AF_XDP)을 사용할 경우:
/*
* DPDK cryptodev 폴링 모드 — 유저스페이스 busy-polling
* rte_cryptodev_dequeue_burst()로 완료된 작업 수집
*/
/* 1. 암호화 요청 배치 제출 (enqueue) */
uint16_t enqueued = rte_cryptodev_enqueue_burst(
cdev_id, /* crypto device ID */
qp_id, /* queue pair */
crypto_ops, /* 요청 배열 */
nb_ops /* 배치 크기 (32-256) */
);
/* 2. busy-polling으로 완료 수집 (dequeue) */
uint16_t dequeued;
do {
dequeued = rte_cryptodev_dequeue_burst(
cdev_id, qp_id,
completed_ops, /* 완료된 요청 배열 */
MAX_BURST /* 최대 수집 수 */
);
/*
* dequeued == 0: 아직 완료된 작업 없음 → 재폴링
* 인터럽트·컨텍스트 전환 없이 즉시 재확인
* → 지연 최소화, 단 CPU 100% 사용
*/
} while (dequeued == 0);
/* 3. 완료된 작업 처리 */
for (int i = 0; i < dequeued; i++) {
if (completed_ops[i]->status ==
RTE_CRYPTO_OP_STATUS_SUCCESS) {
/* 암호화 완료 — 다음 파이프라인 단계로 전달 */
forward_packet(completed_ops[i]->sym->m_dst);
}
}
완료 모델 종합 비교
| 항목 | 동기(Synchronous) | 비동기 인터럽트(Async IRQ) | 비동기 폴링 |
|---|---|---|---|
| 완료 감지 방식 | 함수 반환 (ret == 0) | IRQ → softirq → 콜백 | CPU가 completion ring 직접 확인 |
| 반환값 | 0 (즉시 완료) | -EINPROGRESS | -EINPROGRESS |
| CPU 동작 | 블로킹 (연산 직접 수행) | 해방 (콜백 대기) | 폴링 루프 (주기적 확인) |
| 패킷당 지연 | ~0.5-2μs (AES-NI) ~5-20μs (SW SHA) | HW처리 + IRQ 2-5μs | HW처리 + 최대 1 폴링간격 |
| 초당 처리량 | CPU 코어 × 클럭 한계 | 높음 (CPU 병렬 활용) | 최고 (IRQ 제거 + 배치) |
| CPU 오버헤드 | 100% (코어 점유) | 최소 (콜백 시만) | 중간 (폴링 사이클) |
| 인터럽트 부하 | 없음 | 높음 (요청당 1회) | 없음 |
| 배치 처리 | 불가 | 가능 (NAPI식 coalescing) | 최적 (burst dequeue) |
| 컨텍스트 | 호출자 컨텍스트 | softirq / tasklet | kthread / 유저스페이스 |
/proc/crypto 표시 | async: no | async: yes | async: yes |
| 대표 드라이버 | aesni-intel, ghash-clmulni | qat_4xxx, caam, nitrox | DPDK cryptodev, QAT UIO |
| 최적 시나리오 | 소형 패킷, 단순 대칭키 SW 전용 환경 | 범용 HW 가속 SSL Inspection 핸드셰이크 | 초저지연 NGFW DPDK/VPP 데이터 플레인 |
적응형 인터럽트 병합과 하이브리드 폴링
실무 NGFW에서는 순수 인터럽트나 순수 폴링이 아닌, 트래픽 부하에 따라 동적으로 전환하는 적응형(adaptive) 모델을 사용합니다. 리눅스 커널 NAPI(New API)가 네트워크 드라이버에서 사용하는 것과 동일한 원리입니다:
트래픽 부하
낮음 ◀──────────────────────────▶ 높음
┌───────────┬───────────┬──────────────┐
완료 │ 인터럽트 │ 인터럽트 │ 폴링 │
감지 │ (즉시) │ (병합) │ (busy-poll) │
방식 │ │ │ │
├───────────┼───────────┼──────────────┤
IRQ │ 요청당 │ N개 묶음 │ 비활성화 │
빈도 │ 1회 │ (coalesce)│ (0회) │
├───────────┼───────────┼──────────────┤
CPU │ 최소 │ 낮음 │ 전용 코어 │
사용 │ │ │ 100% │
├───────────┼───────────┼──────────────┤
지연 │ ~5μs │ ~10-30μs │ <1μs │
│ │ (병합 │ (즉시 │
│ │ 대기시간) │ 감지) │
└───────────┴───────────┴──────────────┘
◀─ 유휴 시 적응형 전환 ──────▶ 포화 시
/*
* 적응형 인터럽트/폴링 전환 — NAPI식 crypto 완료 처리
* 고처리량 시 인터럽트 스톰을 방지하고 배치 처리 효율 극대화
*/
#define POLL_BUDGET 64 /* 한 번의 폴링에서 최대 처리 수 */
#define IRQ_TO_POLL_THRESH 1000 /* IRQ/초 임계치 → 폴링 전환 */
#define POLL_TO_IRQ_THRESH 100 /* 폴링 공회전 → IRQ 복귀 */
/* ── 인터럽트 핸들러: 고부하 감지 시 폴링 전환 ── */
static irqreturn_t crypto_irq_handler(int irq, void *data)
{
struct crypto_hw_queue *q = data;
q->irq_count++;
if (q->irq_count > IRQ_TO_POLL_THRESH) {
/* 인터럽트 빈도 과다 → 폴링 모드 전환 */
disable_irq_nosync(irq);
q->mode = CRYPTO_MODE_POLL;
napi_schedule(&q->napi); /* 폴링 스케줄링 */
return IRQ_HANDLED;
}
/* 일반 모드: 개별 완료 처리 */
crypto_process_completions(q, 1);
return IRQ_HANDLED;
}
/* ── NAPI식 폴링 핸들러 ── */
static int crypto_napi_poll(struct napi_struct *napi, int budget)
{
struct crypto_hw_queue *q =
container_of(napi, struct crypto_hw_queue, napi);
int completed = 0;
/* completion ring에서 완료된 항목 배치 수집 */
completed = crypto_poll_completions(q, budget);
if (completed < budget) {
/*
* 배치 미달 → 트래픽 감소 감지
* 폴링 종료 + 인터럽트 복원
*/
q->idle_polls++;
if (q->idle_polls > POLL_TO_IRQ_THRESH) {
napi_complete(napi);
q->mode = CRYPTO_MODE_IRQ;
q->irq_count = 0;
q->idle_polls = 0;
enable_irq(q->irq_num); /* 인터럽트 복원 */
}
} else {
q->idle_polls = 0; /* 배치 꽉 참 → 계속 폴링 */
}
return completed;
}
인터럽트 병합(Interrupt Coalescing) 설정 — QAT 가속기 예시:
# QAT 인터럽트 병합 설정
# /etc/sysconfig/qat 또는 sysfs 경로
# 병합 타이머: N μs 동안 완료를 모아서 단일 IRQ 발생
echo 10 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/irq_coal_timer_ns
# 10μs 간격 → 초당 최대 100K IRQ (vs 병합 없이 수백만)
# 병합 카운트: N개 완료마다 IRQ 1회
echo 32 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/irq_coal_count
# 32개 완료 묶음 → IRQ 횟수 1/32로 감소
# 현재 모드 확인
cat /sys/kernel/debug/qat_4xxx_0000:6b:00.0/irq_mode
# adaptive / timer / count / poll
# ethtool로 NIC crypto 인터럽트 병합 설정 (ConnectX-7)
ethtool -C eth0 rx-usecs 10 tx-usecs 10
# 10μs 간격으로 RX/TX 인터럽트 병합
① SSL Inspection 프록시: 비동기 인터럽트 — RSA/ECDHE 핸드셰이크는 연산 시간이 길어(~ms) 폴링의 CPU 낭비가 큼. QAT의 인터럽트 병합(32개 묶음)으로 IRQ 부하를 제어하면서 CPU를 DPI에 할당.
② IPSec VPN 게이트웨이(100G+): 인라인(NIC 직접 처리)이 이상적이나, lookaside 사용 시 비동기 폴링 — 소형 ESP 패킷 대량 처리에서 IRQ 스톰 방지와 초저지연 달성.
③ DPDK/VPP 데이터 플레인: busy-polling 전용 — 전용 CPU 코어에서
rte_cryptodev_dequeue_burst() 무한 루프. IRQ 완전 비활성화로 최대 처리량.④ 임베디드 CPE(1-10G): 비동기 인터럽트 — 전력 제약으로 폴링의 CPU 100% 점유 불가. SoC CAAM Job Ring 인터럽트가 최적.
⑤ 적응형 NGFW: 인터럽트 + 폴링 자동 전환 — 유휴 시 인터럽트(전력 절약), 포화 시 폴링(최대 성능).
ethtool -C adaptive 모드 활성화.
아키텍처 선택 가이드
시나리오별로 최적의 암호화 오프로드 아키텍처를 선택하는 기준:
| 시나리오 | 추천 아키텍처 | 근거 |
|---|---|---|
| 데이터센터 IPSec VPN 사이트 간 100G+ 터널(Tunnel) | 인라인 (ConnectX-7, E810) | 라인레이트 ESP 처리, CPU 부하 0%, SA 수 충분 |
| SSL/TLS 프록시 (NGFW) 수만 CPS 핸드셰이크 | CPU중심 Lookaside (QAT) | RSA/ECDHE 비대칭 연산 대량 처리, SR-IOV 멀티테넌트 |
| CDN / 웹서버 kTLS sendfile() 대량 전송 | 인라인 (ConnectX-6 Dx) | TLS 레코드 zero-copy TX, sendfile() 성능 극대화 |
| 임베디드 라우터 / CPE 1-10G IPSec, 저전력 | SoC중심 Lookaside (CAAM) | 추가 HW 불필요, 저전력, BOM 최소화 |
| IoT 게이트웨이 TLS 종단, 저전력 | SoC중심 Lookaside (CryptoCell) | TrustZone 연동 키 보호, mW급 전력 |
| 클라우드 VM 암호화 VM별 격리 필요 | CPU중심 Lookaside (QAT VF) | SR-IOV VF per VM, 격리된 crypto 인스턴스 |
| MACsec L2 보안 DC 패브릭 암호화 | 인라인 (ConnectX-7) | L2 와이어스피드 암호화, NIC에서 완전 처리 |
| 디스크 암호화 (dm-crypt) | CPU중심 or SoC중심 Lookaside | crypto API 경유, 블록 단위 비동기 처리 |
하드웨어 이벤트 스케줄러 (Intel DLB / Marvell SSO)
NGFW 데이터 플레인에서 수백만 플로우를 다수의 CPU 코어에 효율적으로 분배하는 것은 핵심 과제입니다. RSS(Receive Side Scaling)는 해시(Hash) 기반 정적 분배만 가능하여 코어 간 부하 불균형이 발생하고, 소프트웨어 큐 관리는 잠금 경합(Lock Contention)과 캐시(Cache) 바운싱 오버헤드를 유발합니다. 하드웨어 이벤트 스케줄러는 이 문제를 전용 ASIC/SoC 블록으로 해결합니다.
대표적인 HW 이벤트 스케줄러로 Intel의 DLB(Dynamic Load Balancer)와 Marvell의 SSO(Schedule/Synchronize/Order)가 있으며, 둘 다 원자적(Atomic) 플로우 스케줄링, 순서 보장(Ordering), 동적 부하 분산(Load Balancing)을 하드웨어 수준에서 제공합니다.
이벤트 스케줄러 핵심 개념
HW 이벤트 스케줄러는 패킷을 직접 전달하지 않고, 이벤트(Event) 단위로 작업을 추상화합니다. 하나의 이벤트는 패킷 도착, 타이머(Timer) 만료, 크립토 완료 등 다양한 소스에서 발생하며, 스케줄러가 이를 워커 코어(Worker Core)에 분배합니다.
3종 스케줄링 모드가 NGFW 파이프라인에서 각각 다른 단계에 적용됩니다:
| 스케줄링 모드 | 동작 방식 | NGFW 적용 단계 | 핵심 보장 |
|---|---|---|---|
| Atomic | 동일 flow_id의 이벤트가 동시에 하나의 코어에서만 처리됨. 다른 코어는 해당 플로우를 볼 수 없음 | conntrack 갱신, NAT 상태 변경, 세션 테이블 write | Lock-free 상호 배제(Mutual Exclusion) |
| Ordered | 여러 코어에서 병렬 처리하되, 출력 시 입력 순서대로 HW가 재정렬 | IPSec ESP 암복호화, TCP 스트림 재조립, QoS 큐잉 | 패킷 순서 보장 + 병렬 처리 |
| Parallel | 순서·원자성 제약 없이 가용한 코어에 즉시 분배 | IPS 시그니처 매칭, AV 스캔, 로깅, 미러링 | 최대 처리량 |
Intel DLB (Dynamic Load Balancer)
Intel DLB(이전 명칭 HQM — Hardware Queue Manager)는 4th Gen Xeon(SPR) 이후 CPU에 내장된 하드웨어 이벤트 스케줄러입니다. PCIe 디바이스로도 출시되었으며(DLB 2.0/2.5), DPDK eventdev 라이브러리를 통해 VPP, DPDK 기반 NGFW, Open vSwitch 등에서 활용됩니다.
DLB 핵심 사양:
| 항목 | DLB 1.0 (PCIe) | DLB 2.0 (SPR 내장) | DLB 2.5 (EMR/GNR) |
|---|---|---|---|
| QID (Queue ID) | 32 | 64 | 96 |
| CQ (Consumer Queue) | 64 | 64 | 64 |
| Directed Port | 64 | 64 | 96 |
| 플로우 추적 | 2K | 4K | 4K |
| 스케줄링 지연 | ~300ns | ~200ns | ~200ns |
| 이벤트 처리량 | ~200M events/s | ~400M events/s | ~500M events/s |
| Credit 풀 | 8K | 8K | 16K |
| Linux 드라이버 | dlb (out-of-tree) | dlb2 (커널 5.18+) | dlb2 (커널 6.2+) |
| SR-IOV VF | 16 | 16 | 16 |
DLB의 핵심 구성 요소:
- QID(Queue ID) — 논리적 이벤트 큐. 하나의 QID에 스케줄링 타입(atomic/ordered/parallel)과 우선순위를 설정합니다. NGFW에서는 파이프라인 단계별(방화벽(Firewall)→IPS→암호화) QID를 할당합니다
- CQ(Consumer Queue) — 워커 코어가 이벤트를 수신하는 큐. 각 코어에 1개 CQ를 바인딩하고, 폴링 또는 인터럽트로 이벤트를 가져옵니다
- PP(Producer Port) — 이벤트 소스(NIC RX, crypto 완료 등)가 이벤트를 제출하는 포트
- Credit — 흐름 제어(Flow Control) 메커니즘. Producer는 이벤트 제출 시 credit을 소모하고, Consumer가 처리 완료 후 반환합니다. Credit 고갈 시 자동 배압(backpressure) 발생
- Directed Port/Queue — 스케줄링 없이 특정 CQ에 직접 전달하는 1:1 경로. 파이프라인 단계 간 명시적 전달에 사용
DPDK eventdev를 통한 DLB 설정과 NGFW 파이프라인 구성:
/*
* DPDK eventdev API로 DLB 기반 NGFW 파이프라인 구성
* rte_event_dev → rte_event_queue → rte_event_port 매핑
*/
#include <rte_eventdev.h>
#include <rte_event_eth_rx_adapter.h>
#include <rte_event_crypto_adapter.h>
/* 1. DLB eventdev 초기화 */
struct rte_event_dev_config dev_conf = {
.nb_event_queues = 4, /* QID 4개 (FW/IPS/Crypto/TX) */
.nb_event_ports = 8, /* 워커 코어 8개 */
.nb_events_limit = 4096, /* 최대 동시 이벤트 수 */
.nb_event_queue_flows = 1024,/* 플로우 해시 엔트리 수 */
.nb_event_port_dequeue_depth = 32,
.nb_event_port_enqueue_depth = 32,
};
rte_event_dev_configure(evdev_id, &dev_conf);
/* 2. 파이프라인 단계별 QID 설정 */
struct rte_event_queue_conf q_conf;
/* QID 0: 방화벽 (Atomic — conntrack 상태 보호) */
q_conf.schedule_type = RTE_SCHED_TYPE_ATOMIC;
q_conf.priority = RTE_EVENT_DEV_PRIORITY_HIGHEST;
q_conf.nb_atomic_flows = 1024; /* 동시 추적 플로우 수 */
rte_event_queue_setup(evdev_id, 0, &q_conf);
/* QID 1: IPSec 암복호화 (Ordered — 순서 보장 + 병렬) */
q_conf.schedule_type = RTE_SCHED_TYPE_ORDERED;
q_conf.priority = RTE_EVENT_DEV_PRIORITY_NORMAL;
rte_event_queue_setup(evdev_id, 1, &q_conf);
/* QID 2: IPS/DPI (Parallel — 최대 처리량) */
q_conf.schedule_type = RTE_SCHED_TYPE_PARALLEL;
rte_event_queue_setup(evdev_id, 2, &q_conf);
/* QID 3: TX (Directed — 특정 TX 코어로 직접 전달) */
/* Directed는 별도 API로 설정 */
/* 3. 워커 포트 설정 — 각 코어에 CQ 바인딩 */
struct rte_event_port_conf p_conf = {
.dequeue_depth = 32,
.enqueue_depth = 32,
.new_event_threshold = 128, /* credit 기반 배압 임계치 */
};
for (int i = 0; i < 8; i++) {
rte_event_port_setup(evdev_id, i, &p_conf);
/* 포트 i → QID 0,1,2 매핑 (어떤 단계든 처리 가능) */
rte_event_port_link(evdev_id, i, queues, priorities, 3);
}
/* 4. NIC RX → DLB 이벤트 어댑터 연결 */
rte_event_eth_rx_adapter_create(rx_adapter_id, evdev_id, &p_conf);
rte_event_eth_rx_adapter_queue_add(rx_adapter_id,
eth_port_id, -1, /* 모든 RX 큐 */
&(struct rte_event_eth_rx_adapter_queue_conf){
.ev.queue_id = 0, /* 첫 단계: FW QID */
.ev.sched_type = RTE_SCHED_TYPE_ATOMIC,
.ev.flow_id = 0, /* RSS 해시를 flow_id로 사용 */
});
rte_event_eth_rx_adapter_start(rx_adapter_id);
/* 5. 워커 루프 — 이벤트 수신·처리·전달 */
static void worker_loop(uint8_t port_id)
{
struct rte_event events[32];
while (!quit) {
uint16_t nb = rte_event_dequeue_burst(
evdev_id, port_id, events, 32, 0 /* no wait */);
for (int i = 0; i < nb; i++) {
struct rte_mbuf *pkt = events[i].mbuf;
uint8_t cur_qid = events[i].queue_id;
switch (cur_qid) {
case 0: /* 방화벽 단계 — Atomic */
if (firewall_check(pkt) == FW_PASS) {
/* 다음 단계(Crypto)로 전달 */
events[i].queue_id = 1;
events[i].op = RTE_EVENT_OP_FORWARD;
} else {
rte_pktmbuf_free(pkt);
events[i].op = RTE_EVENT_OP_RELEASE;
}
break;
case 1: /* IPSec 단계 — Ordered */
ipsec_process(pkt);
events[i].queue_id = 2;
events[i].op = RTE_EVENT_OP_FORWARD;
/* DLB가 자동으로 원래 순서 복원 */
break;
case 2: /* IPS/DPI 단계 — Parallel */
ips_inspect(pkt);
/* TX로 직접 전송 */
rte_eth_tx_burst(tx_port, 0, &pkt, 1);
events[i].op = RTE_EVENT_OP_RELEASE;
break;
}
}
rte_event_enqueue_burst(evdev_id, port_id, events, nb);
}
}
# DLB 디바이스 확인
lspci | grep -i "dynamic load balancer"
# 6b:00.0 System peripheral: Intel Corporation
# Dynamic Load Balancer (DLB) [8086:2710]
# 커널 드라이버 로드
modprobe dlb2
ls /dev/dlb* # /dev/dlb0, /dev/dlb1, ...
# sysfs에서 DLB 리소스 확인
cat /sys/class/dlb2/dlb0/total_resources
# num_sched_domains: 32
# num_ldb_queues: 96
# num_ldb_ports: 64
# num_dir_ports: 96
# num_ldb_credits: 16384
# DPDK에서 DLB eventdev 바인딩
dpdk-devbind.py -b vfio-pci 0000:6b:00.0
# EAL 파라미터
--vdev=event_dlb2 --allow=0000:6b:00.0
Marvell OCTEON SSO (Schedule/Synchronize/Order)
Marvell OCTEON SSO는 OCTEON TX2/CN10K SoC에 내장된 하드웨어 이벤트 스케줄러입니다. Intel DLB와 유사한 기능을 제공하지만, SoC 내부의 모든 HW 가속기(크립토, 정규식, 압축)와 내부 버스로 직접 연동되는 것이 핵심 차이입니다. 패킷이 NIC에서 수신되면 SSO를 거쳐 CPU 코어에 분배되고, 크립토 처리 완료 후 다시 SSO로 돌아와 다음 단계 코어로 전달됩니다.
SSO 핵심 사양 (CN10K 기준):
| 항목 | OCTEON TX2 (CN96xx) | CN10K (CN106xx) |
|---|---|---|
| SSO 그룹 (큐) | 256 | 256 |
| SSOW (Workslot) | 코어당 1개 (최대 36) | 코어당 1개 (최대 24) |
| 스케줄링 모드 | Atomic, Ordered, Untagged | Atomic, Ordered, Untagged |
| 태그 비트 | 32-bit | 32-bit |
| 우선순위 레벨 | 8 | 8 |
| 이벤트 처리량 | ~300M events/s | ~500M events/s |
| HW 가속기 연동 | CPT, ZIP, TIM, REE | CPT, ZIP, TIM, REE, ML(추론) |
| Linux 드라이버 | octeontx2-ssopf (커널 5.14+) | octeontx2-ssopf (커널 6.1+) |
| DPDK eventdev 지원 | event_octeontx2 | event_cnxk |
SSO의 DLB 대비 핵심 차별점:
- HW 가속기 직접 연동: CPT(크립토), REE(정규식), ZIP(압축) 완료 시 자동으로 SSO 이벤트가 생성됩니다. DLB는 CPU가 가속기 완료를 확인한 뒤 이벤트를 재제출해야 하지만, SSO는 CPU 개입 없이 파이프라인이 진행됩니다
- WQE(Work Queue Entry): 패킷 메타데이터와 처리 컨텍스트를 포함하는 HW 구조체(Struct). NIC(RPM)이 패킷 수신 시 자동 생성하여 SSO에 제출합니다
- SWTAG(Software Tag Switch): 워커가 처리 중 태그 타입을 동적으로 변경할 수 있습니다. 예: conntrack 조회 시 Atomic → 패턴 매칭 시 Ordered로 전환
- TIM(Timer Wheel): HW 타이머가 만료되면 SSO 이벤트로 자동 전환. 세션 타임아웃 처리에 CPU 타이머 인터럽트 불필요
SSO를 활용한 NGFW 이벤트 드리븐 파이프라인:
/*
* OCTEON CN10K SSO 기반 NGFW 파이프라인
* DPDK eventdev API (event_cnxk 드라이버)
*
* 파이프라인: NIC RX → [SSO] → FW(Atomic) → [SSO] →
* CPT(Crypto) → [SSO] → IPS(Ordered) → TX
*/
/* 1. SSO 이벤트 수신 — MMIO GET_WORK */
static void sso_worker_loop(uint8_t port_id)
{
struct rte_event ev;
while (!quit) {
/* SSO에서 이벤트 수신 (HW 폴링, ~10ns 지연) */
if (rte_event_dequeue_burst(evdev_id, port_id,
&ev, 1, 0) == 0)
continue;
struct rte_mbuf *pkt = ev.mbuf;
uint32_t tag = ev.flow_id; /* 플로우 해시 */
switch (ev.queue_id) {
case SSO_GRP_FIREWALL: /* Atomic 모드 */
/*
* 동일 tag(flow)의 이벤트는 이 코어에서만 처리됨
* → conntrack 조회/갱신에 락 불필요!
*/
if (conntrack_lookup(tag, pkt) == CT_NEW) {
conntrack_insert(tag, pkt); /* lock-free */
}
if (!acl_check(pkt)) {
rte_pktmbuf_free(pkt);
ev.op = RTE_EVENT_OP_RELEASE;
break;
}
/* IPSec 필요 시 → CPT(크립토)로 전달 */
if (needs_ipsec(pkt)) {
/*
* SSO → CPT 직접 전달 (CPU 미개입)
* CPT 완료 시 자동으로 SSO 이벤트 재생성
* → SSO_GRP_POST_CRYPTO 그룹으로 도착
*/
submit_to_cpt(pkt, SSO_GRP_POST_CRYPTO);
ev.op = RTE_EVENT_OP_RELEASE;
} else {
ev.queue_id = SSO_GRP_IPS;
ev.op = RTE_EVENT_OP_FORWARD;
/* SWTAG: Atomic → Ordered 전환 */
ev.sched_type = RTE_SCHED_TYPE_ORDERED;
}
break;
case SSO_GRP_POST_CRYPTO: /* CPT 완료 이벤트 */
/*
* CPU가 CPT를 폴링하지 않음!
* HW가 암호화 완료 → SSO에 이벤트 자동 생성
*/
ev.queue_id = SSO_GRP_IPS;
ev.sched_type = RTE_SCHED_TYPE_ORDERED;
ev.op = RTE_EVENT_OP_FORWARD;
break;
case SSO_GRP_IPS: /* Ordered 모드 */
ips_pattern_match(pkt);
/* NIX TX로 직접 전송 — 순서 자동 보장 */
ev.queue_id = SSO_GRP_TX;
ev.op = RTE_EVENT_OP_FORWARD;
break;
}
rte_event_enqueue_burst(evdev_id, port_id, &ev, 1);
}
}
/* 2. HW 타이머를 이용한 세션 타임아웃 */
static void setup_session_timeout(uint32_t flow_tag,
uint64_t timeout_ns)
{
/*
* OCTEON TIM(Timer Wheel)에 타이머 등록
* 만료 시 SSO 이벤트로 자동 변환 → CPU 인터럽트 불필요
*/
struct rte_event_timer tim = {
.ev.queue_id = SSO_GRP_TIMEOUT,
.ev.sched_type = RTE_SCHED_TYPE_ATOMIC,
.ev.flow_id = flow_tag,
.timeout_ticks = timeout_ns / tim_tick_ns,
.state = RTE_EVENT_TIMER_ARMED,
};
rte_event_timer_arm_burst(timer_adapter_id, &tim, 1);
/* timeout_ns 후 SSO_GRP_TIMEOUT에 이벤트 도착 */
}
DLB vs SSO 종합 비교
| 항목 | Intel DLB 2.5 | Marvell OCTEON SSO (CN10K) |
|---|---|---|
| 위치 | Xeon CPU 내장 / PCIe 카드 | OCTEON SoC 내장 (ARM 기반) |
| 스케줄링 모드 | Atomic, Ordered, Parallel, Directed | Atomic, Ordered, Untagged |
| 큐 수 | 96 QID | 256 그룹 |
| 워커 포트 | 64 CQ | 코어당 1 SSOW (최대 24) |
| 스케줄링 지연 | ~200ns | ~50-100ns (SoC 내부) |
| 이벤트 처리량 | ~500M events/s | ~500M events/s |
| HW 가속기 연동 | CPU가 중개 필요 (SW enqueue) | CPT/REE/ZIP/TIM 직접 연동 (HW 자동) |
| 타이머 | SW 관리 | TIM HW 타이머 휠 (자동 SSO 이벤트) |
| 태그 전환 (SWTAG) | 미지원 (이벤트 재제출) | HW SWTAG (런타임 모드 변경) |
| WQE | SW 정의 이벤트 구조 | HW 정의 WQE (NIC 자동 생성) |
| SR-IOV | 16 VF | SoC 내장 (가상화 제한적) |
| Credit 기반 배압 | 지원 (16K credit) | XAQ(External Admission Queue) 기반 |
| DPDK 드라이버 | event_dlb2 | event_cnxk |
| 커널 드라이버 | dlb2 (5.18+) | octeontx2-ssopf (5.14+) |
| 주요 타겟 | x86 서버, 클라우드 NGFW, 5G UPF | 네트워크 어플라이언스, 임베디드 DPI |
NGFW 파이프라인에서의 이벤트 스케줄러 활용
기존 NGFW 데이터 플레인은 run-to-completion(단일 코어가 패킷을 끝까지 처리) 또는 SW 파이프라인(SW 큐로 단계 간 전달) 모델을 사용합니다. HW 이벤트 스케줄러는 이를 HW 파이프라인으로 대체하여 잠금 경합·캐시 미스·부하 불균형을 제거합니다.
| 처리 모델 | Run-to-Completion | SW 파이프라인 | HW 이벤트 파이프라인 |
|---|---|---|---|
| 코어 간 전달 | 없음 (단일 코어) | SW ring (rte_ring) | DLB QID / SSO 그룹 |
| 플로우 친화성 | RSS 해시 고정 | SW 해시 + 잠금(Lock) | HW Atomic 태그 |
| 순서 보장 | 자동 (단일 코어) | SW 시퀀스 넘버 | HW Ordered 모드 |
| 부하 분산 | 정적 (RSS) | SW 동적 (lock 경합(Contention)) | HW 동적 (lock-free) |
| 코어 추가 시 | RSS 재설정 필요 | 큐 추가 + 재분배 | CQ/SSOW 추가만 |
| 캐시 효율 | 최적 (단일 코어) | 낮음 (코어 간 데이터 이동) | 중간 (HW 최적화 분배) |
| 가속기 연동 | 동기 대기 or 콜백 | 콜백 + SW enqueue | HW 자동 이벤트 (SSO) |
| 지연 시간 | 최소 (단일 경로) | 중간 (SW 큐 지연) | 낮음 (~200ns/단계) |
| 최대 처리량 | 코어 수 × 단일 성능 | 중간 (잠금 병목) | 최고 (lock-free 확장) |
| 복잡도 | 낮음 | 중간 | 높음 (HW 구성) |
NGFW 이벤트 드리븐 파이프라인 예시 (DLB/SSO 공통)
┌──────────┐ ┌─────────┐ ┌──────────┐ ┌─────────┐
│ NIC RX │────▶│ HW │────▶│ Stage 1 │────▶│ HW │
│ (패킷 │ │ Event │ │ conntrack│ │ Event │
│ 수신) │ │ Sched │ │ + ACL │ │ Sched │
└──────────┘ │ [Atomic]│ │ (lock- │ │[Ordered]│
└─────────┘ │ free) │ └────┬────┘
└──────────┘ │
┌─────────────────────────────────────┘
│
▼
┌──────────┐ ┌─────────┐ ┌──────────┐ ┌─────────┐
│ Stage 2 │────▶│ HW │────▶│ Stage 3 │────▶│ NIC TX │
│ IPSec │ │ Event │ │ IPS/DPI │ │ (패킷 │
│ 암복호화 │ │ Sched │ │ 시그니처 │ │ 송신) │
│ (QAT/CPT)│ │[Parallel│ │ 매칭 │ └─────────┘
└──────────┘ │ or Auto]│ └──────────┘
↑ HW 완료 시 └─────────┘ 순서 복원은
SSO: 자동 이벤트 HW reorder 버퍼가
DLB: SW re-enqueue 자동 처리
① 적합한 시나리오: 다수 코어(8+)에서 수백만 플로우를 처리하는 고성능 NGFW. RSS만으로 부하 균형이 어렵고, 플로우별 상태(conntrack/NAT)에 동시 접근이 빈번한 환경에서 효과가 극대화됩니다.
② 부적합한 시나리오: 4코어 이하 임베디드 장비에서는 run-to-completion이 더 효율적입니다. HW 이벤트 스케줄러의 ~200ns 단계 지연이 오히려 오버헤드가 될 수 있습니다.
③ DPDK eventdev 생태계: DLB와 SSO 모두
rte_eventdev API를 통해 추상화되므로, 애플리케이션 코드를 변경하지 않고 HW 백엔드만 교체할 수 있습니다. event_sw(SW eventdev)로 개발 후 HW로 전환하는 전략이 일반적입니다.④ 관련 기술: NIC RSS/RPS와 상호 보완적입니다. RSS가 NIC 수준의 정적 분배라면, DLB/SSO는 파이프라인 단계 간 동적 재분배를 담당합니다. 두 기술을 결합하면 NIC→SSO→코어 3단계 부하 분산이 가능합니다.
Fortinet NP7 / CP9 / SoC5 계열
Fortinet FortiGate는 제품군에 따라 구현이 다르지만, 공개 자료 기준으로 보면 세션 전달용 Network Processor와 검사용 보안/콘텐츠 프로세서를 결합한 하이브리드 구조입니다. 고성능 chassis/데이터센터 계열은 NP7 계열이 inline fast path를 맡고, SSL Inspection과 콘텐츠 검사는 별도 inspection 경로가 담당합니다. 브랜치 SoC 장비는 SoC5(문서상 SP5/NP7Lite 언급 포함)처럼 동일 SoC 내부에 해당 기능이 더 밀집되어 있어 SoC중심 lookaside에 가까운 하이브리드로 보는 편이 정확합니다:
- NP7 / NP6 계열 (Network Processor) — [Inline] L2~L4 세션 오프로드, NAT, IPSec/VXLAN/GRE fast path. Session table에 ESTABLISHED 세션을 등록하면 이후 패킷이 NP에서 직접 전달됩니다.
- CP9 / CP10 및 보안 프로세서 경로 — [Lookaside 또는 SoC 내부 inspection path] 프록시 기반 SSL/TLS 검사, 콘텐츠 검사, 파일/패턴 매칭을 보조합니다.
- SoC5 / NP7Lite 계열 — [SoC-Centric Hybrid] 네트워크 처리와 inspection 가속기가 같은 패키지 안에 결합되어 branch 모델의 전력과 지연을 줄입니다.
NP7 세션 오프로드 프로세스
FortiGate에서 세션이 NP7으로 오프로드되는 과정:
- 첫 패킷: CPU(IPS Engine)가 수신 → conntrack + UTM(IPS/AV/App Control) 전체 검사
- 세션 수립: 검사 통과 시 CPU가 ISF(Iterate Session Filter)에 오프로드 결정 쿼리
- NP7 등록:
session_offload_add()→ NP7 Session Table에 5-tuple + NAT 정보 + QoS 태그 기록 - 후속 패킷: NP7 ASIC이 Session Table lookup → NAT rewrite → QoS → forwarding (CPU bypass)
- 세션 종료: TCP FIN/RST → NP7이 CPU에 알림 → Session Table 삭제 → 통계 동기화
| FortiGate 구성 요소 | 처리 방식 | 역할 | 성능 |
|---|---|---|---|
| NP7 ASIC | Inline | L2~L4 세션 오프로드, NAT, IPSec, VXLAN, QoS | 200Gbps (단일 칩) |
| 보안 프로세서 / SoC inspection path | Lookaside 또는 SoC 내부 경로 | SSL/TLS 프록시, inspection용 암·복호화 | SSL 검사 시 CPU 부하 감소 |
| CP9 / CP10 (Content Processor) | Lookaside | AV 시그니처, IPS 패턴 매칭 보조 | CPU DPI 성능 향상 |
| CPU (FortiOS) | 제어 플레인 | 정책 결정, App Control, DLP, 관리 | 모델별 차이 |
# FortiGate 진단 명령
diagnose npu np7 session-stats # NP7 오프로드 세션 통계
diagnose npu np7 sse-stats all # Session Search Engine 통계
diagnose npu np7 port-list # NP7 포트 매핑 확인
diagnose sys session filter dport 443 # 특정 포트 세션 확인
get system performance firewall statistics # 전체 성능 통계
# NP7 오프로드 비율 확인
diagnose npu np7 session-stats
# 출력 예:
# NP7 offload sessions: 1,234,567
# CPU sessions: 12,345
# Offload ratio: 99.0%
# 특정 세션의 오프로드 상태 확인
diagnose sys session filter src 10.0.0.1
diagnose sys session list
# 출력에서 npu_state=offloaded 확인
- FortiGate Hardware Acceleration Guide (FortiOS 7.4) — NP7/SP5/CP9 아키텍처, 오프로드 대상/제외 조건, diagnose 명령
- FortiOS Administration Guide: NPU Acceleration — NP7 세션 오프로드 정책 설정, 오프로드 비활성화 옵션
- FortiGate 7000 Series Data Sheet — NP7 칩 기반 7081F의 FW/NGFW/Threat 처리량 공식 사양
- Fortinet Community: How to verify NP7 offloading —
diagnose npu np7명령 실전 가이드, 오프로드 실패 디버깅(Debugging)
Fortinet 보안 프로세서/SoC inspection 경로
Fortinet 공개 자료는 제품군에 따라 CP9/CP10, SoC5, 보안 프로세서 등 서로 다른 명칭을 사용합니다. 공통점은 세션 전달용 NP fast path와 별도의 inspection 암호화 경로가 존재하는 점입니다. CPU가 TLS 정책과 평문 검사를 총괄하되, 핸드셰이크와 레코드 암·복호화의 상당 부분을 이 inspection 경로가 보조합니다.
| inspection 경로 기능 | 처리 내용 | 성능 효과 | 비고 |
|---|---|---|---|
| TLS 프로토콜 처리 보조 | SSL/TLS protocol processor, crypto/inspection 보조 경로 | CPU 단독 처리 대비 부하 감소 | 정확한 핸드셰이크·레코드 분담은 모델별 공식 문서 확인 필요 |
| 대칭키 암·복호화 | AES 계열 SSL Inspection 레코드 처리 보조 | SSL Inspection 처리량 개선 | 공식 데이터시트는 모델별 SSL Inspection 처리량으로 공개 |
| 인증서 동적 생성 | MITM 프록시용 서버 인증서 실시간(Real-time) 서명 | 프록시 경로에서 수행 | 인증서 캐시와 HW 분담 구조는 공개 문서에서 세부 미공개 |
| TLS 세션 재개 | Session ID / Session Ticket 재사용 | 재연결 시 핸드셰이크 비용 감소 | 캐시 위치와 크기는 모델/펌웨어별 확인 필요 |
| IPSec 암호화 | ESP AES-GCM encap/decap | NP/CP/SoC 조합으로 VPN 경로 보조 | NP7, CP9/CP10, SoC 계열별 기능 범위가 다름 |
Fortinet SSL Deep Inspection 파이프라인
FortiGate가 SSL Deep Inspection(SSL 딥 인스펙션)을 수행할 때의 내부 패킷 흐름입니다:
- 클라이언트 → FortiGate TLS 핸드셰이크: inspection 경로가 ECDHE/RSA 키 교환을 보조하고, FortiGate의 CA 인증서로 서버 인증서를 동적 생성하여 클라이언트에 제공합니다.
- FortiGate → 서버 TLS 핸드셰이크: inspection 경로가 실제 서버와 별도의 TLS 세션을 수립하고 서버 인증서를 검증합니다.
- 데이터 복호화: inspection 경로가 클라이언트 TLS 세션의 레코드를 하드웨어에서 복호화하고, 평문을 CPU(IPS 엔진)에 전달합니다.
- DPI/IPS 검사: CPU + CP 계열 가속기가 평문에 대해 App Control, IPS 시그니처 매칭, AV 스캔, DLP를 수행합니다.
- 재암호화: inspection 경로가 서버 TLS 세션용 레코드로 재암호화하고, 이후 패킷이 NP로 전달됩니다.
- SSL Inspection 활성 시 세션은 NP7 session offload 대상에서 제외됩니다. 모든 패킷이 inspection 경로를 통과해야 하기 때문입니다.
- FortiGate 7081F 기준: FW 처리량 700Gbps → SSL Inspection 시 35Gbps로 감소 (1/20 수준)
- 병목은 주로 CPS(TLS 핸드셰이크/초)와 inspection 엔진의 레코드 처리 능력입니다. 모델별로 수치 차이가 큽니다.
- TLS 1.3 vs 1.2: TLS 1.3은 핸드셰이크 RTT를 줄이지만, MITM 프록시의 실제 CPS 향상 폭은 cipher suite, ECDHE 그룹, 인증서 캐시, 정책 구성에 따라 달라집니다.
- 세션 캐시(Session Resumption)를 활용하면 재연결 시 핸드셰이크 비용을 크게 줄일 수 있습니다.
# FortiGate SSL Inspection 진단 명령
diagnose sys session filter proto 6 dport 443
diagnose sys session list
# 출력에서 확인할 항목:
# npu_state=0 (SSL Inspection 세션은 offload 안 됨)
# ssl_action=deep-inspection
# ssl_cipher=ECDHE-RSA-AES256-GCM-SHA384
# SSL Inspection 통계
get system performance firewall statistics
# SSL proxy 관련 카운터와 전체 처리량은 FortiOS/모델별 출력 항목 확인
# SSL Inspection 정책 설정
config firewall ssl-ssh-profile
edit "deep-inspect"
set ssl-anomaly-log enable
config https
set ports 443
set status deep-inspection
set cert-validation-timeout 30
end
next
end
# NP7 오프로드와 SSL inspection 경로 분리 확인
diagnose npu np7 session-stats
# 비-SSL fast path 세션은 NP7 카운터에서 증가하고, deep-inspection 세션은 session list에서 별도 확인
NP7의 IPSec 암호화 처리 상세
NP7은 IPSec VPN 트래픽에 대해 ESP 패킷의 전체 처리(캡슐화(Encapsulation) + 암호화 + 포워딩)를 하드웨어에서 수행합니다:
| IPSec 기능 | NP7 역할 | CP/SoC 보조 경로 | CPU 역할 |
|---|---|---|---|
| IKE 핸드셰이크 | - | 모델별 crypto 보조 가능 | IKE daemon (iked) |
| ESP 캡슐화/디캡슐화 | HW 처리 | - | - |
| AES-GCM 암·복호화 | HW 처리 (지원 모델) | 제품군별 보조 | - |
| Anti-replay 검사 | HW 시퀀스 윈도우 | - | - |
| SA 관리 | SA/세션 테이블 | - | SA 라이프사이클 |
| 터널 모드 포워딩 | decap → session lookup → encap | - | - |
| NAT-T (UDP 4500) | HW 처리 | - | - |
Palo Alto Networks SP3
Palo Alto Networks의 공개 자료는 SP3(Single-Pass Parallel Processing)의 핵심을 분리된 control plane/data plane, 병렬 처리 하드웨어, single-pass 소프트웨어로 설명합니다. 따라서 세션 fast path는 장비 내부 dataplane hardware가 inline으로 처리하지만, SSL/TLS 복호화와 평문 검사는 Fortinet이나 Juniper처럼 분리된 전용 SSL ASIC보다 dataplane CPU 자원에 밀착된 CPU중심 lookaside로 해석하는 편이 정확합니다. 다시 말해, 세션 분류는 inline이고 decryption은 SP3 파이프라인 안에서 CPU가 소화합니다:
- Single-Pass Parallel Processing — [Inline CPU] 패킷이 한 번의 통과로 FW, App-ID, IPS, URL 필터링을 병렬 처리
- NPC (Network Processing Card) — 고성능 모델에 추가 가능한 데이터 플레인 카드
- Dataplane packet-processing hardware — [Inline] 세션 테이블 lookup, NAT rewrite, 포워딩을 모델별 dataplane에서 가속
- Dataplane CPU 코어에서 App-ID/DPI/decryption을 처리하고, packet-processing 하드웨어가 세션 분류와 패킷 전달을 보조합니다.
Single-Pass 아키텍처 상세
Palo Alto의 핵심 차별점은 Single-Pass Parallel Processing (SP3) 아키텍처입니다:
| 전통적 방화벽 | Palo Alto SP3 |
|---|---|
| 패킷이 FW → IPS → AV → URL 순서로 직렬 통과 | FW, App-ID, IPS, AV, URL이 단일 패스에서 병렬 처리 |
| 각 엔진마다 패킷 복사/버퍼(Buffer)링 | 스트림 기반 처리 (패킷 복사 최소화) |
| 지연 = 각 엔진 지연의 합 | 지연 = 가장 느린 엔진의 지연 |
| 엔진 추가 시 성능 선형 감소 | 엔진 추가 시 성능 영향 최소 |
Packet-processing hardware의 역할: 공개 자료 수준에서는 세션 분류, 포워딩, NAT, dataplane 병렬 처리를 보조하는 하드웨어로 해석하는 것이 안전합니다. App-ID, Threat Prevention, SSL Forward Proxy는 single-pass dataplane 소프트웨어와 CPU 자원을 사용하므로, 검사 대상 세션이 CPU를 완전히 bypass한다고 단정하면 안 됩니다.
Palo Alto SSL 복호화 아키텍처
Palo Alto 공개 자료에서 SSL Forward Proxy는 클라이언트-방화벽, 방화벽-서버의 두 TLS 세션을 만들고 보안 정책과 decryption profile을 적용하는 방식입니다. 독립 SSL ASIC 명칭이 공개되어 있지 않으므로, SSL 복호화 성능은 dataplane CPU, 모델별 하드웨어, 정책 프로필이 결합된 결과로 보는 편이 정확합니다.
| SSL 처리 단계 | 처리 위치 | 특성 |
|---|---|---|
| TLS 핸드셰이크 (RSA/ECDHE) | Dataplane CPU/모델별 하드웨어 | 공식 데이터시트는 주로 SSL decryption 처리량을 공개하며, SSL CPS는 모델별 공개 범위 확인 필요 |
| TLS 레코드 복호화 (AES-GCM) | Dataplane CPU/crypto 라이브러리/모델별 하드웨어 | PA-5440 데이터시트의 SSL decryption 처리량처럼 모델 단위 수치로 비교해야 합니다. |
| 인증서 검증 | CPU 코어 | OCSP/CRL 확인, 인증서 체인 검증 |
| Forward Trust CA 서명 | CPU 코어 | MITM용 인증서 동적 생성 (RSA/ECDSA) |
| App-ID (복호화 후) | CPU 코어 (SP3 병렬) | 평문에 대해 App-ID + IPS + URL 동시 실행 |
| TLS 재암호화 | CPU 코어 (AES-NI) | 서버 세션의 레코드 암호화 |
Palo Alto의 접근법은 Fortinet처럼 NP/CP/SoC 계열 가속기를 강하게 전면화하는 방식과 다릅니다. 장점: single-pass 정책 처리와 PAN-OS 기능 통합이 명확합니다. 주의점: SSL 활성화 시 처리량은 모델별 SSL decryption 데이터시트와 실제 decryption profile 조건으로 별도 확인해야 합니다.
- PA-5440 기준: FW 75 Gbps → SSL 복호화 활성 시 12 Gbps (1/6 수준)
- SSL Forward Proxy + Full Threat Prevention 시 더 감소 (TLS 핸드셰이크 + DPI + AV 복합)
- SSL Inbound Inspection(서버 키 보유)과 SSL Forward Proxy는 인증서 생성·검증 경로가 다르므로, 처리량은 별도 측정해야 합니다.
- Hardware Security Module(HSM) 연동: FIPS 140-2 준수 환경에서 SafeNet HSM으로 CA 개인키 보호
- TLS 1.3 0-RTT 복호화: PAN-OS 11.0+에서 지원하지만 CPU 부담 증가
# Palo Alto SSL 복호화 진단 명령
show counter global filter delta yes | match ssl
# ssl_proxy_session_new: 연결/초 (CPS)
# ssl_proxy_session_active: 현재 활성 SSL 세션
# ssl_decrypt_success: 복호화 성공 패킷
# ssl_decrypt_fail: 복호화 실패 (cipher 미지원 등)
# ssl_cert_verify_fail: 인증서 검증 실패
show session all filter ssl-decrypt yes
# SSL 복호화 중인 세션 목록
show system resources
# CPU 사용률 확인 → SSL 활성 시 증가폭
# SSL 복호화 정책 설정 (PAN-OS)
set rulebase decryption rules "decrypt-outbound" {
from any; to any;
source any; destination any;
service any; action decrypt;
type { ssl-forward-proxy { }; };
profile "default";
}
# SSL 복호화 프로파일
set profiles decryption "strict" {
ssl-forward-proxy {
block-expired-certificate yes;
block-untrusted-issuer yes;
block-unsupported-version yes;
block-unsupported-cipher yes;
min-version tls1-2;
};
}
# Palo Alto CLI 진단 명령
show running resource-monitor # CPU/메모리/세션 사용률
show session all filter state active # 활성 세션 목록
show session info # 세션 통계 (CPS, CC)
show counter global filter delta yes \
packet-filter yes # 실시간 카운터
debug dataplane packet-diag set filter \
match src 10.0.0.1 # 특정 IP 패킷 추적
- PAN-OS Admin Guide: Session Overview — 세션 테이블, 세션 처리 흐름, CPS/CC 제한
- Tech Brief: Single-Pass Parallel Processing (SP3) — SP3 아키텍처 백서, Single-Pass vs Multi-Pass 비교
- PAN-OS CLI Cheat Sheet: Networking —
show session,show counter global등 진단 명령 레퍼런스 - PA-5400 Series Data Sheet — PA-5440의 FW/NGFW/Threat/SSL 처리량 공식 사양, NPC 카드 지원
Check Point SecureXL / Maestro
Check Point는 SecureXL/CoreXL 중심의 소프트웨어 기반 inline 가속 아키텍처를 사용합니다. 일부 제품군은 Lightspeed 계열 가속으로 L4 방화벽 fast path를 강화하지만, 공개 자료 기준으로 범용 HTTPS Inspection의 TLS 레코드 처리까지 전용 SSL ASIC이 대신한다고 보기는 어렵습니다. 따라서 HTTPS Inspection은 CPU/CoreXL 중심 경로로 분류하는 편이 안전합니다:
- SecureXL — [Inline 커널] 커널 레벨 가속. Accept Template(ESTABLISHED 세션 direct forward)과 Drop Template(미리 차단 목록)으로 CPU 부하를 줄입니다.
- CoreXL — [Inline CPU] 멀티코어 병렬 처리. SND(Secure Network Distributor)가 RSS처럼 코어 간 패킷을 분배합니다.
- Maestro HyperScale — 여러 Security Gateway를 하나의 논리 장비로 클러스터링하여 수평 확장
- SSL/IPSec — [CPU/CoreXL 중심] 범용 CPU AES-NI와 SecureXL/CoreXL 경로로 처리합니다. 모델별 가속 카드가 있더라도 HTTPS Inspection 성능은 공식 데이터시트와 실제 프로필 조건으로 확인해야 합니다.
SecureXL 처리 경로 상세
SecureXL은 3가지 처리 경로(Accelerated Path, Medium Path, Firewall Path)로 패킷을 분류합니다:
| 경로 | 처리 위치 | 대상 트래픽 | 성능 영향 |
|---|---|---|---|
| Accelerated Path | 커널 (SecureXL) | Accept Template에 등록된 ESTABLISHED 세션 | 최고 성능 |
| Medium Path | 커널 (SecureXL + SXL 엔진) | NAT, VPN 적용 필요한 세션 | Accelerated의 60~80% |
| Firewall Path | 유저스페이스 (fwd daemon) | NEW 연결, IPS/DLP/App Control 검사 | 가장 느림 |
Accept Template은 Linux conntrack의 ESTABLISHED + flowtable 개념과 유사합니다. conntrack이 세션 상태를 추적하고, Accept Template이 검사가 완료된 세션의 5-tuple을 커널 가속 테이블에 등록합니다. Drop Template은 이미 DROP 판정이 난 소스 IP/포트를 캐시하여, 동일한 악성 트래픽이 재전송(Retransmission)될 때 CPU까지 가지 않고 즉시 DROP합니다.
CoreXL / SND 아키텍처
Check Point의 멀티코어 아키텍처는 Linux의 RSS/RPS와 유사하지만 보안에 최적화되어 있습니다:
- SND (Secure Network Distributor) — 전용 코어가 NIC에서 패킷을 수신하여 CoreXL 인스턴스에 분배. CPU affinity 기반으로 세션을 고정 코어에 할당
- CoreXL FW Instance — 각 코어가 독립적인 FW 인스턴스를 실행. 세션 테이블은 공유하되, 처리는 병렬
- Multi-Queue — SND가 NIC의 RSS 큐를 활용하여 하드웨어 수준 분산
# Check Point 진단 명령 (Gaia OS)
fwaccel stat # SecureXL 가속 통계
fwaccel stats -s # 경로별 패킷/바이트 통계
fwaccel conns # Accept Template 연결 수
fw ctl multik stat # CoreXL 인스턴스별 통계
cpview # 실시간 성능 모니터 (TUI)
# SecureXL 비활성화/활성화 (성능 비교 테스트)
fwaccel off # 가속 비활성화 → 전체 Firewall Path
fwaccel on # 가속 재활성화
# 특정 세션의 처리 경로 확인
fw ctl zdebug + drop # 디버그 로그
- R81.20 Performance Tuning Guide: SecureXL — SecureXL Accelerated/Medium/Firewall Path 상세, Accept/Drop Template 메커니즘
- R81.20 Performance Tuning Guide: CoreXL — CoreXL 멀티코어 아키텍처, SND 분배 알고리즘, 코어 할당 최적화
- Maestro Hyperscale Orchestrator Admin Guide — Maestro 클러스터링, Security Group 구성, 수평 확장 아키텍처
- sk98348: SecureXL best practices and troubleshooting —
fwaccel stat,fwaccel conns진단, 가속 실패 원인 분석 - Quantum Security Gateway 모델 비교 — 28000 시리즈 등 모델별 Threat Prevention 처리량 공식 사양
Check Point HTTPS Inspection 아키텍처
Check Point는 Fortinet(CP/SoC inspection 경로)이나 전용 크립토 ASIC 없이 순수 소프트웨어 기반의 HTTPS Inspection을 수행합니다. CoreXL의 멀티코어 병렬 처리와 SecureXL의 가속 경로를 조합하여 성능을 최적화합니다.
| HTTPS Inspection 단계 | 처리 위치 | 가속 방법 |
|---|---|---|
| TLS 핸드셰이크 | CoreXL FW 인스턴스 (CPU) | OpenSSL AES-NI, 멀티코어 분산 |
| 인증서 동적 생성 | CoreXL FW 인스턴스 (CPU) | 인증서 캐시 (동일 서버 재사용) |
| TLS 레코드 복호화 | CoreXL FW 인스턴스 (CPU) | AES-NI + SSL 세션 재사용 |
| DPI/IPS 검사 | CoreXL FW 인스턴스 + SandBlast | CoreXL 병렬 처리 |
| TLS 재암호화 | CoreXL FW 인스턴스 (CPU) | AES-NI |
SecureXL과 HTTPS Inspection의 관계: HTTPS Inspection이 활성화되면 해당 세션은 Firewall Path(가장 느린 경로)에서 처리됩니다. Accelerated Path로 승격될 수 없으므로, HTTPS Inspection 비율이 높을수록 SecureXL 가속 효과가 감소합니다.
# Check Point HTTPS Inspection 진단
fwaccel stat
# Accelerated Conns: 1,200,000
# HTTPS Inspect Conns: 45,000 (Firewall Path)
# → HTTPS Inspection 세션은 Accelerated Path 불가
# HTTPS Inspection 통계
cpstat -f https_inspection fw
# Total inspected connections: 45,000
# Bypassed connections: 5,000 (bypass 규칙 적용)
# Certificate cache hit ratio: 85%
# CoreXL 인스턴스별 SSL 부하 분포
fw ctl multik stat
# 각 CoreXL 인스턴스의 CPU 사용률 확인
# HTTPS Inspection 활성 시 불균형 주의
# HTTPS Inspection 바이패스 규칙 (성능 최적화)
# SmartConsole → Security Policies → HTTPS Inspection
# 금융/의료 사이트, Windows Update 등 → Bypass 권장
Juniper Express Path
Juniper SRX 시리즈의 Express Path는 fast-path 패킷을 flow daemon이 아닌 network processor 경로에서 처리하도록 설계된 가속 기능입니다. SRX5000 계열은 NP/PFE 기반 전달 경로와 SPC(Service Processing Card) 서비스 경로를 조합합니다. IPSec, SSL Proxy, UTM 처리는 플랫폼·카드·라이선스·정책에 따라 서비스 처리 경로를 사용하므로, 모든 SSL 암호화가 SPC3의 특정 엔진에서 전담된다고 단정하면 안 됩니다:
- Express Path — [Inline] 확립된 세션의 패킷을 flowd를 bypass하여 NP에서 forwarding
- Services Processing Card / SPU 경로 — [Service path] IPSec, SSL Proxy, UTM 같은 서비스 처리를 담당합니다. 실제 암호화 가속 범위와 처리량은 카드·Junos 버전·기능 조합별 공식 문서로 확인해야 합니다.
Express Path 동작 원리
Juniper SRX의 패킷 처리 아키텍처:
- NP (Network Processor): 모든 패킷의 1차 수신. 세션 테이블에서 lookup
- Express Path 히트: 기존 세션 매칭 → NP에서 직접 forwarding + NAT rewrite (flowd bypass)
- Express Path 미스: 새 세션 →
flowd(flow daemon)로 전달 → 정책 평가 + IPS/AppID - 세션 설치: flowd가 정책 통과 시 세션을 NP Express Path 테이블에 등록
# Juniper SRX 진단 명령
show security flow statistics # 플로우 통계 (Express Path 비율)
show security monitoring fpc 0 # FPC별 세션/처리량
show security flow session # 세션 테이블
show security flow session summary # 세션 요약 (활성/최대)
# Express Path 상태 확인
show pfe statistics traffic
# express-path-packets, slow-path-packets 비교
# Services Offload Engine 상태
show chassis fpc pic-status
SPC3 (Services Processing Card) 암호화 가속
Juniper SRX 5000 시리즈는 SPC3 같은 서비스 카드를 통해 보안 서비스 처리 용량을 확장합니다. 공개 문서는 SRX5800 섀시, SPC3 카드, Express Path, Inline IPsec, SSL Proxy 기능을 각각 설명하지만, 카드 내부 crypto engine별 TLS CPS나 인증서 캐시 구조를 일관된 공개 수치로 제공하지 않습니다.
| SPC3 기능 | 처리 방식 | 처리 내용 | 성능 |
|---|---|---|---|
| IPSec 가속 | Service path 또는 PFE inline | ESP 처리, SA 관리, 플랫폼별 crypto acceleration | SRX 모델·카드 구성별 데이터시트 확인 |
| SSL Proxy | Service path | Forward/Reverse Proxy, 복호화, 보안 검사 연동 | SSL CPS/처리량은 공식 공개 범위와 릴리스별 지원 cipher 확인 필요 |
| Express Path 통합 | Inline (NP) | IPSec 복호화 후 inner 패킷 Express Path 등록 | EST 세션: NP 직접 전달 |
| NAT | Inline (NP) | NAT rewrite + conntrack | Express Path 연계 |
# Juniper SRX SPC3 암호화 관련 진단
show security ipsec statistics
# ESP 암·복호화 패킷/바이트 통계
show security ipsec sa
# SA 목록 + 하드웨어 가속 여부
show services ssl proxy statistics
# SSL Proxy 세션 수, CPS, 처리량
show chassis fpc 0 pic 0
# SPC3 카드 상태 + 크립토 엔진 사용률
# SPC3 IPSec 오프로드 설정
set security ipsec vpn site-a {
ike {
gateway gw-site-a;
ipsec-policy ipsec-pol;
}
establish-tunnels immediately;
}
# SPC3가 자동으로 IPSec 처리를 하드웨어에서 수행
SPC3 SSL Forward Proxy 핸드셰이크 처리
Juniper SRX의 SSL Forward Proxy는 클라이언트 측 TLS 세션과 서버 측 TLS 세션을 분리하여 복호화, 보안 검사, 재암호화를 수행합니다. 이 처리는 Express Path의 단순 fast-path 전달과 다른 서비스 처리 경로이며, SPC/SPU 자원과 flowd 정책 처리, 지원 cipher/group 조건이 함께 영향을 줍니다.
| TLS 핸드셰이크 단계 | 처리 위치 | 상세 동작 |
|---|---|---|
| 1. ClientHello 수신 | NP/PFE → 서비스 경로 | TCP 443 세션을 SSL Proxy 정책에 매칭하고 SNI·cipher·profile 조건을 평가합니다. |
| 2. 서버측 TLS 세션 수립 | SSL Proxy 서비스 경로 | 실제 서버와 별도 TLS 세션을 수립하고 서버 인증서를 검증합니다. crypto acceleration 분담은 플랫폼별 확인이 필요합니다. |
| 3. 서버 인증서 검증 | SSL Proxy + flowd | 인증서 체인, OCSP/CRL, 정책 예외를 처리합니다. |
| 4. MITM 인증서 생성 | SSL Proxy 서비스 경로 | SRX가 신뢰 CA로 대체 인증서를 생성합니다. 인증서 캐시 구조는 공개 문서에서 세부 미공개입니다. |
| 5. 클라이언트측 TLS 세션 수립 | SSL Proxy 서비스 경로 | 생성된 MITM 인증서로 클라이언트와 별도 TLS 세션을 수립합니다. |
| 6. 데이터 복호화 (클라이언트→서버) | SSL Proxy 서비스 경로 | TLS 레코드를 복호화한 뒤 평문을 보안 검사 경로로 전달합니다. |
| 7. DPI 검사 | flowd (CPU, Inline) | 평문에 대해 AppID + IPS + UTM 수행. Single-pass 아님 — 순차 처리 |
| 8. 재암호화 (서버 세션) | SSL Proxy 서비스 경로 | 검사 완료된 평문을 서버 TLS 세션으로 재암호화하여 전달합니다. |
| 9. TLS 세션 재개 (Session Resumption) | SSL Proxy 서비스 경로 | 지원되는 경우 재연결 핸드셰이크 비용을 줄입니다. 동작 조건은 Junos 릴리스와 프로필을 확인해야 합니다. |
- SSL Proxy 세션은 Express Path의 단순 fast-path 전달과 다른 서비스 처리 경로를 통과합니다.
- 카드당 SSL CPS, TLS 1.3 CPS, 인증서 캐시 적중률은 공개 데이터시트의 공통 수치로 단정하지 않고 실제 장비와 Junos 릴리스에서 측정해야 합니다.
- TLS 1.3 vs 1.2: 1.3은 1-RTT 핸드셰이크로 지연을 줄일 수 있지만, PFS 필수(ECDHE)와 지원 group/cipher 제한이 SSL Proxy 성능에 영향을 줍니다.
- SPC3 카드 추가는 서비스 처리 용량을 늘릴 수 있지만, SSL CPS가 항상 선형 확장된다고 가정하면 안 됩니다. 섀시 fabric, flow 분산, 정책 복잡도, 세션 locality가 함께 병목이 됩니다.
- Junos Flow-Based Packet Processing Overview — flowd 아키텍처, Express Path 동작 원리, 세션 설치/삭제 흐름
- Understanding Express Path on SRX — Express Path 활성화 조건, bypass 불가 트래픽 목록, NPU 세션 테이블
- CLI Reference: show security flow statistics — Express Path 히트/미스 카운터, 플로우 통계 해석
- Services Offload Overview — IPSec/NAT Services Offload Engine, SPC3 카드 아키텍처
Cisco Secure Firewall 4200 / FTD / Snort 3
Cisco Secure Firewall 계열은 ASA 계열의 stateful firewall 처리(LINA), FTD(Threat Defense) 정책 처리, Snort 3 DPI 엔진, crypto accelerator, flow offload를 결합합니다. 4200 Series 공식 데이터시트는 multi-threaded Snort 3 engine, cryptographic acceleration architecture, TLS hardware decryption, 최대 16-node cluster, 400G interface option을 공개합니다. 따라서 Cisco의 고성능 구조는 "모든 패킷을 Snort로 보냅니다"가 아니라, 먼저 L3/L4에서 fast path/offload 가능성을 판정하고, 복호화가 필요한 TLS/VPN 비용을 crypto accelerator로 낮춘 뒤, 실제 위협 판단은 Snort 3 worker에 병렬 분산하는 방식으로 이해해야 합니다.
| 계층 | Cisco 구성 요소 | 고성능을 만드는 방식 | 병목이 생기는 조건 |
|---|---|---|---|
| L2/L3 입출력 | 고속 interface module, fail-to-wire module, platform fabric | 고속 포트와 내부 fabric으로 포트 집약도를 높이고, 장애 시 fail-to-wire 모듈로 물리 우회를 제공합니다. | 400G 포트를 장착해도 DPI/TLS 처리량은 별도 한계를 갖습니다. |
| L4 stateful 경로 | LINA / fast path / flow offload | 이미 허용된 long-lived flow, low-risk prefilter flow, elephant flow를 Snort 재검사에서 제외하거나 줄입니다. | 정책 변경, NAT 복잡도, 로깅, 애플리케이션 식별 필요성이 커지면 slow path 비율이 증가합니다. |
| TLS/VPN crypto | TLS hardware decryption, crypto accelerator | RSA/ECDHE/AES 계열 비용을 전용 하드웨어로 낮추어 Snort 3가 평문 보안 검사에 CPU를 더 쓸 수 있게 합니다. | 데이터시트 TLS 수치는 특정 TLS 1.2 조건입니다. TLS 1.3, ECDHE, 대량 소형 연결에서는 CPS를 별도로 확인해야 합니다. |
| DPI/IPS | Snort 3 multi-threaded inspection | flow 기반 탐지와 멀티스레드 worker로 rule evaluation, file/malware 분석, IPS 검사를 병렬화합니다. | 암호화 복호화 후 평문 payload가 모두 Snort로 들어오면 CPU와 메모리 대역폭이 병목이 됩니다. |
Sophos XGS / Xstream FastPath
Sophos XGS 계열은 Fortinet의 NP/CP 조합이나 Palo Alto의 섀시형 NPC/DPC 구조와 달리, multi-core x86 CPU와 Xstream Flow Processor를 결합한 dual-processor appliance 구조입니다. Sophos Firewall 21.5 공식 문서는 데이터 경로를 SlowPath, DPI Engine, offload module, FastPath로 나누어 설명합니다. 핵심은 첫 패킷과 보안 판정은 CPU/SlowPath/DPI Engine이 수행하고, 신뢰된 후속 흐름과 일부 crypto 작업만 FastPath/Xstream Flow Processor로 넘겨 CPU를 절약하는 방식입니다.
| 계층 | Sophos 구성 요소 | 공식 문서 기준 역할 | 성능 해석 |
|---|---|---|---|
| 입출력/포트 | XGS 8500 fixed ports, Flexi Port modules, bypass port pairs | 8×GE copper, 12×SFP+ 10GE, 2×QSFP28 10/25/40/50/100GE, 최대 포트 밀도 70개를 제공합니다. | 포트 집약도는 높지만, 실제 NGFW/TLS 성능은 DPI Engine과 FastPath hit ratio에 좌우됩니다. |
| SlowPath | Firewall stack(kernel), user space modules, offload module | 초기 패킷, 정책 평가, DPI Engine 진입, offload 가능 여부 판단을 담당합니다. | 새 세션과 복잡한 보안 정책은 SlowPath 부하를 증가시킵니다. |
| DPI Engine | Xstream DPI Engine, IPS, web/app/AV 검사 | 보안 정책이 필요한 흐름을 검사하고, 일부 또는 전체 offload 가능 여부를 FastPath에 지시합니다. | TLS Inspection, IPS, malware prevention이 켜질수록 CPU와 DPI worker가 병목이 됩니다. |
| FastPath | Hardware FastPath / Virtual FastPath | 초기 패킷 검사 후 신뢰된 흐름을 처리하여 매 패킷 전체 firewall processing 반복을 줄입니다. | trusted SaaS, SD-WAN, cloud application, 장기 elephant flow에서 효과가 큽니다. |
| Xstream Flow Processor | NPU(Network Processing Unit) | 대부분의 XGS appliance에서 multi-core x86 CPU와 함께 dual-processor 구조를 이루며 offloaded operation을 처리합니다. | FastPath가 CPU cycle과 memory bandwidth를 절약하지만, kernel이 지시한 범위 안에서만 동작합니다. |
| PKI acceleration | NPU crypto hardware | DPI Engine이 검사하는 TLS 흐름에서 X.509 서버 인증서 재서명 작업을 offload합니다. | TLS Inspection 전체 대칭키 암·복호화를 NPU가 대신한다는 뜻은 아닙니다. |
| IPsec acceleration | XFRM stack + FastPath/NPU crypto | Phase 2 SA 기준으로 IPsec encryption/decryption을 offload합니다. 3DES, Blowfish, MD5 조합은 제외됩니다. | XGS 8500 공식 수치의 IPsec VPN 141Gbps는 여러 터널과 512KB HTTP response 조건입니다. |
XGS 8500 공식 성능 수치와 조건
Sophos XGS 2U 공식 페이지의 XGS 8500 수치는 다음과 같습니다. 이 수치는 vendor datasheet 조건이므로, Fortinet/Palo Alto/Check Point/Juniper/Cisco 수치와 직접 순위 비교하지 않고 조건별로 분리해 봐야 합니다.
| 지표 | XGS 8500 공식 수치 | 공식 시험 조건 또는 해석 |
|---|---|---|
| Firewall | 190 Gbps | HTTP traffic, 512KB response size 기준의 최대 처리량입니다. |
| Firewall IMIX | 81 Gbps | 66B, 570B, 1518B UDP 패킷 조합입니다. |
| IPS | 93 Gbps | HTTP traffic, default IPS ruleset, 512KB object size 조건입니다. |
| IPsec VPN | 141 Gbps | multiple tunnels와 512KB HTTP response size 조건입니다. |
| NGFW | 76 Gbps | 방화벽과 L7 보안 기능 조합 조건으로 봐야 합니다. |
| Threat Protection | 92.5 Gbps | Firewall, IPS, Application Control, Malware Prevention을 Enterprise Mix traffic으로 측정합니다. |
| TLS Inspection | 24 Gbps | IPS enabled HTTPS sessions와 여러 cipher suite 조건입니다. |
| Latency | 5.5 us | 64-byte UDP 기준입니다. |
Sophos 오프로드 결정 흐름
- 초기 수신: 패킷이 XGS 포트로 들어오면 SlowPath의 firewall stack과 user space module이 세션 상태, 정책, NAT, 라우팅을 평가합니다.
- 보안 검사 필요성 판단: 웹/앱/IPS/TLS/멀웨어 검사가 필요한 흐름은 DPI Engine으로 전달됩니다. DPI Engine은 DAQ 계층을 통해 stream을 받고, 보안 판정과 offload 가능성을 결정합니다.
- Firewall acceleration: 초기 패킷 검사 후 신뢰된 흐름은 FastPath로 넘어가며, FastPath는 매 패킷마다 전체 firewall processing을 반복하지 않도록 stateful tracking으로 처리합니다.
- PKI acceleration: TLS Inspection에서 X.509 서버 인증서를 재서명해야 하는 qualifying flow는 Xstream Flow Processor의 crypto hardware로 PKI 작업을 넘길 수 있습니다. 공식 문서가 명시한 항목은 certificate re-signing이며, inspected TLS flow의 AES-GCM 레코드 전체가 NPU에서 line-rate로 처리된다고 확대 해석하면 안 됩니다.
- IPsec acceleration: XFRM stack이 Phase 2 SA를 기준으로 FastPath에 IPsec encryption/decryption offload를 지시합니다. 3DES, Blowfish, MD5 조합은 offload 대상에서 제외됩니다.
- Fallback: FastPath가 처리할 수 없는 프로토콜과 조건은 SlowPath로 남습니다. 공식 문서는 IP in IP 같은 미지원 프로토콜, SSL VPN, proxies/WAF, QoS/DoS, wireless/RED/LAG/PPPoE, IP fragmentation, packet capture 등을 제한 조건으로 제시합니다.
Sophos FastPath/PKI/IPsec 확인 명령
# Firewall acceleration 상태 확인 및 제어
system firewall-acceleration show
system firewall-acceleration enable
system firewall-acceleration disable
# PKI acceleration은 IPS/DPI 설정에 속합니다.
show ips-settings
set ips pki-acceleration enable
set ips pki-acceleration disable
# IPsec SA offload 상태 확인 및 제어
system ipsec-acceleration show
system ipsec-acceleration enable
system ipsec-acceleration disable
- Sophos Firewall 21.5: Architecture for offloading — SlowPath, DPI Engine, FastPath, Xstream Flow Processor, PKI/IPsec acceleration, 제한 조건
- Sophos XGS 2U Enterprise and Campus Edge Firewalls — XGS 8500 성능, 포트 구성, 시험 방법론
- Sophos Firewall CLI: firewall-acceleration — FastPath offload 상태 확인/제어 명령
- Sophos Firewall CLI: IPS / pki-acceleration — X.509 재서명 offload 설정과 inactive 조건
- Sophos Firewall CLI: ipsec-acceleration — IPsec SA offload와 제외 암호 조합
Linux 커널 기반 NGFW
Linux 커널과 오픈소스 도구를 조합하여 NGFW를 구축하는 접근법입니다. Inline SmartNIC + Lookaside SW 하이브리드 모델로, EST 세션은 SmartNIC eSwitch가 inline 처리(라인레이트)하고, DPI는 NFQUEUE를 통해 유저스페이스 Suricata에 위임(lookaside)합니다. 암호화는 NIC inline crypto 또는 QAT lookaside를 선택할 수 있습니다:
- nftables + NFQUEUE + Suricata — [Lookaside] 커널 네이티브 방화벽 + 유저스페이스 DPI
- nf_flowtable + SmartNIC — [Inline] eSwitch FDB HW offload로 EST 세션 라인레이트 가속
- IPSec (xfrm) — [Inline] NIC inline crypto 또는 [Lookaside] QAT 가속
- kTLS — [Inline] NIC TLS offload 또는 [Lookaside] QAT 가속
- VPP 기반 대안 — FD.io VPP의 유저스페이스 데이터 플레인으로 Netfilter 대신 패킷 처리
Linux NGFW 스택 구성
Linux 커널 기반 NGFW를 상용 수준으로 구축하기 위한 전체 스택:
| 계층 | 구성 요소 | 처리 방식 | 역할 | 대안 |
|---|---|---|---|---|
| HW Fast Path | eSwitch FDB (mlx5/ice) | Inline | EST 세션 라인레이트 전달 | OVS-DPDK TC offload |
| SW Fast Path | nf_flowtable | Inline (커널) | HW 미지원 EST 세션 가속 | VPP session table |
| Stateful FW | nftables + nf_conntrack | Inline (커널) | ACL, NAT, 세션 추적 | iptables (레거시) |
| DPI / IPS | Suricata (NFQUEUE mode) | Lookaside | 시그니처 기반 탐지/차단 | nDPI, Snort 3 |
| App-ID | nDPI 라이브러리 | Lookaside | L7 프로토콜 분류 | Suricata App-Layer |
| SSL 검사 | mitmproxy / Suricata TLS | Lookaside | SSL/TLS 프록시 | SSLsplit |
| DDoS Pre-filter | XDP BPF | Inline | L3/L4 사전 필터 | tc-bpf |
| QoS | TC qdisc (HTB/fq_codel) | Inline (커널) | 대역폭 제어, 우선순위 | CAKE |
| VPN | StrongSwan (xfrm) + WireGuard | Inline (NIC) / Lookaside (QAT) | 사이트 간/원격 접속 VPN | Libreswan |
| HA | conntrackd + Keepalived | 제어 플레인 | 세션 동기화 + VIP failover | Pacemaker |
| 관리 | nftables API + Prometheus | 제어 플레인 | 정책 관리 + 모니터링 | Firewalld |
VPP 기반 NGFW 데이터 플레인
FD.io VPP를 사용하면 커널 Netfilter 대신 유저스페이스에서 패킷 처리하여 더 높은 성능을 달성합니다:
- 장점: 벡터 패킷 처리(batch), DPDK 기반 NIC 접근, 커널 overhead 제거 → 단일 코어 40Gbps+
- 단점: 커널 네트워크 스택(Network Stack)(conntrack, nftables, flowtable)을 사용할 수 없음. VPP 자체 ACL/NAT 플러그인 사용
- 하이브리드 접근: VPP가 Fast Path를 처리하고, 새 세션만 TAP 인터페이스를 통해 커널/Suricata로 전달
# VPP 기반 NGFW 설정 예시
# /etc/vpp/startup.conf
dpdk {
dev 0000:03:00.0 { name eth0 }
dev 0000:03:00.1 { name eth1 }
}
# VPP CLI에서 ACL + session 설정
vppctl acl-plugin acl add permit+reflect \
src 10.0.0.0/8 dst 0.0.0.0/0 proto tcp
vppctl set acl-plugin interface eth0 input acl 0
# 새 세션만 TAP으로 전달 (DPI)
vppctl create tap id 0
vppctl set interface state tap0 up
Linux NGFW SSL/TLS 검사 아키텍처
Linux 기반 NGFW에서 SSL/TLS 검사는 여러 오픈소스 컴포넌트를 조합하여 구현합니다. 상용 NGFW와 달리 단일 통합 솔루션이 아닌 계층별 독립 도구의 조합이며, 각 계층에서 inline/lookaside HW 가속을 선택적으로 적용할 수 있습니다.
| TLS 처리 단계 | 구현 도구 | 처리 방식 | HW 가속 |
|---|---|---|---|
| TLS 핸드셰이크 (ECDHE/RSA) | mitmproxy / SSLsplit / Squid SSL Bump | Lookaside (유저스페이스 프록시) | QAT (Intel QuickAssist) — 비대칭키 가속 |
| MITM 인증서 생성 | OpenSSL (CA 서명) | CPU | QAT RSA 서명 가속 |
| TLS 레코드 복호화 (AES-GCM) | OpenSSL/kTLS/QAT 조합 | 대부분 유저스페이스 프록시 중심, endpoint termination 구성에서 kTLS 가능 | QAT 또는 NIC TLS offload는 애플리케이션·드라이버 통합 조건 확인 |
| DPI / IPS 검사 | Suricata (NFQUEUE) | Lookaside (유저스페이스) | AF_XDP, 멀티스레드 |
| TLS 재암호화 | OpenSSL/kTLS TX/QAT 조합 | 프록시 구현과 커널 TLS offload 지원 범위 의존 | NIC inline crypto, QAT는 구성별 검증 필요 |
| Session Resumption | OpenSSL Session Cache / Redis | CPU + 메모리 | - |
SSL 검사 아키텍처 선택지
Linux NGFW에서 SSL/TLS 트래픽을 검사하는 대표적인 3가지 아키텍처입니다:
| 아키텍처 | 구조 | 장점 | 단점 | 처리량 |
|---|---|---|---|---|
| NFQUEUE + mitmproxy | nftables → NFQUEUE → mitmproxy(TLS 프록시) → Suricata(DPI) | 구현 단순, Python 확장 | 성능 낮음, CPS 제한 | ~1-3 Gbps |
| Squid SSL Bump + ICAP | 투명 프록시 Squid → SSL Bump → ICAP → Suricata | 프록시 캐시, URL 필터링 통합 | TCP 프록시 오버헤드 | ~3-8 Gbps |
| kTLS + QAT + Suricata | 프록시 TLS termination + QAT crypto + 가능한 경우 kTLS/NIC offload → DPI 연동 | HW 가속 여지 큼 | 구성 복잡, 애플리케이션·NIC·QAT·커널 지원 범위 의존 | 구성별 측정 필요 |
- CPS 병목: 상용 NGFW는 모델별 inspection 자원을 제공하지만 SSL CPS 공개 범위가 다르고, Linux는 CPU+QAT+프록시 구현별 측정이 필요
- 통합도: 상용은 핸드셰이크→복호화→DPI→재암호화가 단일 파이프라인이지만, Linux는 프록시(mitmproxy/Squid)와 DPI(Suricata)가 별도 프로세스
- TLS 1.3 ECH: SNI가 암호화되면 mitmproxy/Squid의 SNI 기반 정책 적용이 불가 → IP/DNS 기반 우회 필요
- 세션 오프로드 불가: SSL 검사 세션은 flowtable/eSwitch HW offload 대상에서 제외됨 (모든 패킷이 프록시를 통과해야 하므로)
- Kernel: nf_flowtable — flowtable SW/HW offload 공식 문서
- Kernel: switchdev — eSwitch switchdev 모드 API
- NVIDIA MLNX_OFED: Connection Tracking Offload — ConnectX-6/7 CT offload, TC flower ct_state 규칙
- Suricata: NFQUEUE IPS Mode — Suricata NFQUEUE inline 모드 설정
- FD.io VPP Technology — VPP 벡터 패킷 처리 아키텍처, ACL/NAT 플러그인
벤더별 SSL/TLS 핸드셰이크 처리 비교
모든 NGFW의 SSL/TLS Inspection은 MITM(Man-in-the-Middle) TLS Proxy 방식입니다. 클라이언트와 서버 사이에 두 개의 독립된 TLS 세션을 수립하고, NGFW가 중간에서 복호화 → DPI → 재암호화를 수행합니다. 벤더 간 차이는 각 TLS 핸드셰이크 단계의 처리 위치(CPU vs 전용 HW)와 처리 방식(inline vs lookaside)에 있습니다.
TLS 핸드셰이크 단계별 벤더 비교
| TLS 핸드셰이크 단계 | Fortinet | Palo Alto | Check Point | Juniper | Linux |
|---|---|---|---|---|---|
| ClientHello 수신 + SNI 추출 | NP7 → CPU/inspection 경로 | Dataplane HW → CPU 분류 | SND → CoreXL 분류 | NP/PFE → SSL Proxy 서비스 경로 | nftables → 프록시 분류 |
| 서버측 TLS 세션 수립 | CP/SoC inspection 경로 + CPU | Dataplane CPU/모델별 HW | CPU (OpenSSL) | SSL Proxy 서비스 경로 | CPU / QAT 구성별 |
| ECDHE 키 교환 | 공식 문서상 TLS protocol processor/crypto 보조 | CPU/모델별 HW, CPS 공식 공개 범위 확인 | CPU 코어 수 의존 | 서비스 카드·릴리스별 확인 | CPU/QAT 구성별, TLS 프록시 통합 방식 확인 |
| RSA CA 서명 (MITM 인증서) | SSL inspection 경로, HW 분담 세부 미공개 | CPU/모델별 HW | CPU — 인증서 캐시로 보완 | SSL Proxy 서비스 경로 | CPU / QAT RSA 가속 구성별 |
| 인증서 캐시 / Session Resumption | FortiOS SSL proxy 정책·캐시 | Dataplane 메모리 캐시 | CoreXL 인스턴스 캐시 | SSL Proxy 정책·캐시 | OpenSSL Session Cache |
| 클라이언트측 TLS 세션 수립 | CP/SoC inspection 경로 + CPU | Dataplane CPU/모델별 HW | CPU (OpenSSL) | SSL Proxy 서비스 경로 | CPU / QAT 구성별 |
| AES-GCM 레코드 복호화 | SSL inspection 경로, 모델별 처리량 확인 | CPU/모델별 HW | CPU AES-NI | SSL Proxy 서비스 경로 | kTLS/NIC offload는 endpoint termination 구성에서 확인 |
| DPI / IPS 검사 (평문) | CPU + CP9 (Lookaside) | CPU SP3 Single-Pass | CoreXL FW Instance | flowd (CPU) | Suricata (NFQUEUE) |
| AES-GCM 레코드 재암호화 | SSL inspection 경로, 모델별 처리량 확인 | CPU/모델별 HW | CPU AES-NI | SSL Proxy 서비스 경로 | kTLS/NIC offload는 endpoint termination 구성에서 확인 |
| 세션 오프로드 가능 여부 | SSL inspection 세션은 NP fast path와 분리 | Decryption 세션은 dataplane 검사 경로 통과 | HTTPS Inspection은 Firewall Path 강제 | SSL Proxy 서비스 경로 통과 | 프록시 전구간 통과 필요 |
SSL/TLS 처리 성능 비교
| 지표 | Fortinet 7081F | PA-5440 | CP Quantum 28000 | Juniper SRX5800 | Linux (ConnectX-7 + QAT) |
|---|---|---|---|---|---|
| FW (비암호화) | 700 Gbps | 75 Gbps | 64 Gbps | ~2 Tbps (EP) | 200 Gbps (HW offload) |
| SSL Inspection 처리량 | 35 Gbps | 12 Gbps | 7 Gbps | 공식 데이터시트/카드 구성별 확인 | 프록시·Suricata·QAT 구성별 측정 필요 |
| SSL CPS | 공식 데이터시트 공개 범위 확인 | 공식 데이터시트 공개 범위 확인 | 모델별 차이 | 공식 미공개/릴리스별 측정 필요 | CPU/QAT/프록시 구현별 측정 필요 |
| FW 대비 SSL 감소율 | 1/20 | 1/6 | 1/9 | 모델별 | 1/10~1/20 |
| 핸드셰이크 HW 가속 | CP/SoC inspection 경로 | 모델별 dataplane 자원 | CPU 중심 | 서비스 카드/플랫폼별 | QAT 선택, 프록시 통합 필요 |
| 레코드 HW 가속 | CP/SoC inspection 경로 | 모델별 dataplane 자원 | CPU AES-NI 중심 | 서비스 카드/플랫폼별 | kTLS/NIC offload는 종단 TLS 구성에서 유효 |
| TLS 1.3 지원 | FortiOS 7.0+ | PAN-OS 10.0+ | R81.20+ | Junos 21.4+ | OpenSSL 1.1.1+ |
| 특성 | Fortinet (NP7/CP/SoC) | Palo Alto (SP3/dataplane) | Check Point | Juniper SRX | Linux SmartNIC |
|---|---|---|---|---|---|
| Fast Path 방식 | ASIC session table | Dataplane packet-processing hardware | SecureXL Accept Template | Express Path NP/PFE | eSwitch FDB + flowtable |
| Fast Path 처리량 | 모델별 NP 수량 의존 | 모델별 데이터시트 의존 | 모델/코어 수 의존 | NP/PFE 구성 의존 | NIC·드라이버·flow offload 조건 의존 |
| DPI 방식 | CPU + CP9 보조 | CPU (Single-Pass) | CPU (CoreXL) | CPU (flowd) | NFQUEUE + Suricata |
| IPSec 가속 | NP/CP/SoC 모델별 | Dataplane/CPU 모델별 | CPU/SecureXL 구성별 | PFE inline IPsec 또는 서비스 경로 | NIC inline crypto 또는 xfrm/QAT |
| SSL/TLS 가속 | CP/SoC inspection 경로 | Dataplane CPU/모델별 HW | CPU/CoreXL 중심 | SSL Proxy 서비스 경로 | CPU/QAT/kTLS 구성별 |
| NAT 오프로드 | NP HW | Dataplane HW | SecureXL SW | NP/PFE | flowtable/eSwitch |
| 세션 테이블 크기 | 수천만 | 수백만 | 수백만 | 수백만 | NIC 의존 (수만~수십만 HW) |
| 수평 확장 | HA cluster | HA cluster | Maestro | Chassis cluster | 커널 네임스페이스(Namespace)/VRF |
| 커스터마이즈 | 제한적 (벤더 종속) | 제한적 | 중간 | 제한적 | 완전 자유 |
| 라이선스 비용 | 높음 | 매우 높음 | 높음 | 높음 | 하드웨어 비용만 |
상용 NGFW 암호화 처리 비교
암·복호화 트래픽 관점에서 각 벤더의 아키텍처를 비교합니다. SSL/TLS Inspection과 IPSec VPN 처리는 NGFW 성능에서 가장 큰 차이를 만드는 영역입니다.
| 암호화 특성 | Fortinet (NP/CP/SoC) | Palo Alto (SP3/dataplane) | Check Point (SW) | Juniper SRX (서비스 카드) | Linux (SmartNIC+QAT) |
|---|---|---|---|---|---|
| SSL Inspection 가속 방식 | CP/SoC inspection 경로 | Dataplane CPU/모델별 HW | CPU (CoreXL + AES-NI) | SSL Proxy 서비스 경로 | CPU/QAT/kTLS 구성별 |
| TLS 핸드셰이크 가속 | 공식 문서상 TLS protocol processor 보조 | 모델별 공개 범위 확인 | CPU 멀티코어 | 서비스 카드/플랫폼별 확인 | QAT/NITROX 등 선택 구성 |
| TLS 레코드 암·복호화 | 모델별 SSL inspection 처리량으로 확인 | 모델별 SSL decryption 처리량으로 확인 | CPU (AES-NI) | 서비스 경로/카드 구성별 확인 | kTLS NIC offload는 종단 TLS 구성에서 확인 |
| SSL Inspection 처리량 | 35 Gbps (7081F 데이터시트 조건) | 12 Gbps (PA-5440 데이터시트 조건) | 7 Gbps (28000 공개 비교 조건) | 공식 데이터시트/카드 구성별 확인 | 구성·프록시·룰셋별 측정 필요 |
| SSL CPS | 공식 미공개/모델별 | 공식 미공개/모델별 | 공식 미공개/모델별 | 공식 미공개/모델별 | 구성별 측정 필요 |
| IPSec 가속 방식 | NP/CP/SoC 모델별 | Dataplane/CPU 모델별 | CPU (AES-NI) | PFE inline IPsec 또는 서비스 카드 | NIC inline crypto |
| IPSec 처리량 | 공식 데이터시트 조건별 | 모델 의존 | SW/코어 수 의존 | 공식 데이터시트 조건별 | NIC·SA·드라이버 조건 의존 |
| 지원 cipher suite | AES-GCM, ChaCha20 | AES-GCM, ChaCha20 | AES-GCM, ChaCha20 | AES-GCM | AES-GCM (NIC 의존) |
| TLS 1.3 지원 | 지원 | 지원 (초기 지원) | 지원 (R81.20+) | 지원 (22.x+) | 지원 (커널 5.3+) |
| FIPS 140-2/3 | 인증 | 인증 | 인증 | 인증 | QAT FIPS 모드 가능 |
| EST 세션 crypto offload | NP/SoC 모델별, SSL inspection은 별도 경로 | 모델별 dataplane 정책 의존 | HTTPS Inspection은 Firewall Path | IPsec/SSL Proxy별 서비스 경로 다름 | IPsec full offload는 NIC/드라이버 조건 의존 |
- Fortinet: NP와 CP/SoC inspection 경로를 결합하여 높은 데이터시트 SSL Inspection 성능을 제공합니다. 단, 기능 범위는 모델별 칩 조합에 종속됩니다.
- Palo Alto: 범용 CPU + SP3 파이프라인 → 유연한 cipher 지원, 빠른 TLS 표준 대응. 단, SSL 처리량 제한적
- Check Point: 순수 SW → Maestro로 수평 확장 가능. 단, 단일 장비 SSL 성능 가장 낮음
- Juniper: 섀시와 서비스 카드로 모듈식 확장이 가능하지만, SSL Proxy 성능은 카드 수뿐 아니라 flow 분산과 정책 조건을 함께 봐야 합니다.
- Linux: QAT(핸드셰이크) + kTLS NIC(레코드) + IPSec full offload 조합 → 가장 유연하지만 통합 복잡
종합 최적 NGFW H/W 아키텍처
앞의 Fortinet, Palo Alto Networks, Check Point, Juniper, Cisco, Sophos, Linux 기반 구조를 종합하면 최고 성능 NGFW는 특정 벤더의 한 가지 방식만 복제하는 장비가 아닙니다. 최적 구조는 L2~L4 반복 전달, IPsec/TLS crypto, DPI/IPS/App-ID, 파일·샌드박스 연동, 관측성·HA·정책 제어를 서로 다른 하드웨어 계층에 분리하고, 첫 패킷에서 세션을 정확히 분류한 뒤 이후 패킷을 가장 싼 경로로 고정하는 구조입니다.
최고 성능을 위한 10가지 설계 원칙
| 원칙 | 구현 방향 | 벤더 사례에서 얻는 교훈 | 실패하는 설계 |
|---|---|---|---|
| 1. First packet은 풍부하게, subsequent packet은 싸게 | 첫 패킷은 CPU/DPI에서 정책·앱·TLS·위험도를 충분히 판정하고, 허용된 후속 패킷은 ASIC/NPU/DPU fast path로 고정합니다. | Fortinet NP, Palo Alto dataplane, Check Point SecureXL, Juniper Express Path, Cisco flow offload, Sophos FastPath가 모두 이 원칙을 공유합니다. | 모든 패킷을 CPU/DPI로 보내면 100G 이상에서 메모리 대역폭과 context switch가 먼저 막힙니다. |
| 2. L4 fast path와 TLS inspection path를 분리 | 세션/NAT/QoS/DoS는 inline fast path, TLS 복호화·재암호화·평문 검사는 별도 service path로 분리합니다. | SSL Inspection이 켜진 세션은 일반 FW 처리량과 다른 병목을 갖습니다. | Firewall 최대 처리량을 TLS Inspection capacity로 착각하면 sizing이 실패합니다. |
| 3. Inline과 lookaside를 혼합 | 짧고 반복적인 per-packet 작업은 inline, 비싼 crypto·DPI·파일 검사는 lookaside 또는 service card/DPU로 보냅니다. | NP/PFE/eSwitch는 inline에 강하고, QAT/SPC/DPU/CPU worker는 lookaside 작업에 적합합니다. | 모든 기능을 하나의 inline ASIC에 넣으면 유연성이 떨어지고, 모든 기능을 CPU에 두면 처리량이 부족합니다. |
| 4. Flow affinity를 하드웨어 계약으로 보장 | 5-tuple, NAT 후 tuple, TLS proxy 양방향 세션, IPsec SA, DPI state가 같은 worker 또는 같은 service slice에 머물도록 합니다. | CoreXL, Snort worker, DPDK eventdev, RSS/RPS는 모두 affinity와 재분산의 균형이 핵심입니다. | 패킷마다 worker가 바뀌면 lock, cache miss, state lookup 비용이 급증합니다. |
| 5. Crypto는 세 가지로 나눕니다 | IPsec ESP data path, TLS handshake/인증서, TLS record bulk crypto를 서로 다른 엔진과 queue로 분리합니다. | IPsec full offload, TLS hardware decryption, PKI acceleration은 같은 crypto라는 이름이지만 병목이 다릅니다. | RSA/ECDHE 가속 수치를 AES-GCM record 처리량 또는 TLS Inspection 전체 성능으로 오해합니다. |
| 6. DPI는 stream engine과 verdict cache를 분리 | 초기 stream 재조립과 signature 평가를 CPU/NPU worker가 수행하고, verdict는 fast path가 읽을 수 있는 세션 metadata로 남깁니다. | Snort 3, Xstream DPI, App-ID, Suricata 모두 평문 stream 처리 비용이 큽니다. | DPI 결과를 캐시하지 않으면 같은 flow의 모든 패킷이 비싼 검사 경로를 반복합니다. |
| 7. Control plane은 dataplane과 물리적으로 격리 | 관리, 로그, route update, threat intelligence, 인증서/OCSP, HA sync는 별도 CPU/management fabric으로 분리합니다. | PA-7500 MPC, chassis fabric, Fortinet FIM/FPM 분리, Maestro/SMO 구조가 이 필요성을 보여줍니다. | 로그 폭주나 관리 plane 장애가 packet forwarding을 멈추게 합니다. |
| 8. Backpressure를 설계합니다 | DPI queue, crypto queue, sandbox queue, log queue가 포화될 때 drop, bypass, fail-close/fail-open 정책을 명확히 둡니다. | RFC 9411 관점에서도 단순 throughput보다 latency, transaction, connection ramp-up이 중요합니다. | queue가 무한히 쌓이면 지연이 폭증하고 TCP timeout이 전체 성능을 무너뜨립니다. |
| 9. 관측성은 fast path 안에 넣습니다 | hardware counter, sampled packet digest, flow state reason, offload miss reason을 dataplane에서 직접 남깁니다. | offloaded 세션은 CPU packet capture에 보이지 않을 수 있으므로 별도 telemetry가 필요합니다. | 성능 문제가 생겨도 어떤 세션이 왜 offload되지 않았는지 알 수 없습니다. |
| 10. PQC/ECH/QUIC 변화에 대비합니다 | 고정 ASIC만으로 끝내지 않고 DPU/FPGA/programmable parser와 CPU software update 경로를 남깁니다. | ECH는 SNI 기반 정책을 약화시키고, PQC는 handshake 크기와 crypto 비용을 바꿉니다. | 현재 TLS 1.2/RSA 중심 ASIC에만 최적화하면 새 TLS 생태계에서 병목이 바뀝니다. |
목표 참조 아키텍처
아래 목표 모델은 “최고 L4 처리량”과 “최고 보안 처리량”을 동시에 노리는 구조입니다. 핵심은 하나의 거대한 fast path가 아니라, fast path, service path, deep path, control path를 명확히 분리하고 세션 metadata로 다시 묶는 것입니다.
Plane별 하드웨어 구성
| Plane | 권장 하드웨어 | 주요 기능 | 성능 지표 | 분리해야 하는 이유 |
|---|---|---|---|---|
| Ingress/Egress Fast Path | NPU/ASIC, eSwitch, PFE, NP 계열 | parser, ACL prefilter, session lookup, NAT rewrite, QoS, telemetry sample | PPS, L4 throughput, concurrent sessions, offload hit ratio | 가장 반복되는 작업이므로 CPU와 분리해야 전체 처리량이 유지됩니다. |
| Session Metadata | 고속 SRAM/TCAM + DRAM backing store | 5-tuple, NAT tuple, policy id, crypto state id, DPI verdict, aging | lookup latency, hash collision, update rate, HA sync rate | fast path와 deep path가 같은 세션 사실을 공유해야 합니다. |
| Crypto Service | inline crypto engine, QAT/NITROX류 accelerator, DPU crypto block | IPsec ESP, TLS handshake assist, TLS record bulk crypto, certificate signing 보조 | IPsec throughput, HTTPS throughput, HTTPS CPS, queue latency | crypto 병목은 L4 forwarding이나 DPI 병목과 성격이 다릅니다. |
| DPI/App-ID | 고클럭 CPU, NUMA-local memory, SIMD, optional NPU/FPGA pattern assist | stream reassembly, IPS signature, URL/app classification, AV/file extraction | NGFW throughput, threat prevention throughput, per-flow latency | L7 검사는 룰셋과 업데이트 주기가 빨라 programmable CPU 자원이 필요합니다. |
| DPU/Service Card | BlueField류 DPU, service processing card, programmable NIC | tenant isolation, east-west firewall, IPsec full offload, service chaining, sandbox gateway | service-chain throughput, isolation overhead, per-tenant quota | datacenter 내부 동서 트래픽과 멀티테넌트 격리를 별도 확장할 수 있습니다. |
| Event Scheduler | DPDK eventdev/DLB/SSO류 scheduler 또는 ASIC flow distributor | ordered, atomic, parallel queue 분배, flow affinity, backpressure | queue depth, reorder latency, worker utilization | RSS만으로는 DPI/crypto/file 검사 부하가 동적으로 균형 잡히지 않습니다. |
| Control/Management | 분리된 management CPU, secure boot, TPM/HSM, management NIC | 정책 컴파일, route, certificate, OCSP/CRL, threat intel, 관리 GUI/API | policy install time, log ingest, route convergence | 관리 작업이 dataplane CPU를 잠식하지 않아야 합니다. |
| Telemetry/HA | hardware counter, flow digest engine, HA fabric, NVRAM/log buffer | offload reason, packet sample, session/SA sync, failover rebuild | sample rate, sync lag, failover packet loss, debug visibility | offload가 강할수록 CPU 기반 packet capture만으로는 진단이 불충분합니다. |
트래픽 유형별 최적 경로 매트릭스
| 트래픽 유형 | 최적 주 경로 | 필수 하드웨어 | Deep path 진입 조건 | Sizing 기준 |
|---|---|---|---|---|
| 단순 EST TCP/UDP | Ingress NPU -> Session SRAM -> Egress NPU | NPU/ASIC session table, NAT/QoS engine | 정책 변경, 로깅 샘플, 이상 플로우, app 재분류 | PPS, concurrent sessions, offload hit ratio |
| NAT/CGN 대량 세션 | NPU NAT table + port block allocator | TCAM/SRAM NAT table, atomic allocator, HA sync | ALG, hairpin, fragment, port exhaustion | CPS, NAT binding update rate, HA state size |
| IPsec site-to-site | SA lookup -> inline crypto/full offload -> fast path | IPsec crypto engine, anti-replay, SA table | unsupported cipher, NAT-T 특수 처리, rekey burst | VPN throughput, SA count, rekey CPS, anti-replay window |
| SSL/TLS Forward Proxy | Crypto service -> DPI worker -> record re-encrypt | TLS handshake assist, certificate cache, DPI CPU, queue scheduler | client auth, certificate pinning, unsupported cipher, ECH policy | HTTPS throughput, HTTPS CPS, handshake latency, DPI rule set |
| QUIC/HTTP/3 | UDP fast path + QUIC-aware classifier + selective deep path | UDP flow cache, QUIC parser, policy metadata | unknown ALPN, ECH/DoH, risk score 상승 | UDP CPS, QUIC transaction latency, app mix |
| 파일/멀웨어 검사 | DPI stream -> file extractor -> sandbox queue -> verdict cache | large memory, SSD/NVMe buffer, sandbox link, backpressure queue | unknown file, high-risk MIME, archive nesting | file/sec, queue latency, max object size, fail policy |
| DDoS/scan traffic | Ingress NPU/XDP prefilter -> drop template | rate counter, sketch/filter, hardware drop rule | 정상 트래픽과 유사한 L7 공격 | drop PPS, rule install latency, false positive |
| East-West tenant traffic | DPU/eSwitch local firewall -> central policy sync | DPU Arm/accelerator, eSwitch, per-tenant table | cross-tenant service chain, TLS inspection, mirror 정책 | per-tenant throughput, isolation overhead, policy scale |
Scheduler와 Queue 설계
최고 성능 NGFW에서 가장 쉽게 과소평가되는 부분은 scheduler입니다. RSS는 NIC queue로 첫 분산을 제공하지만, DPI, crypto, file extraction, sandbox, logging은 flow별 비용이 크게 다릅니다. 따라서 DPDK eventdev가 설명하는 ordered, atomic, parallel scheduling 개념처럼 순서 보존이 필요한 작업, flow state lock이 필요한 작업, 완전 병렬 가능한 작업을 queue 단계에서 구분해야 합니다.
메모리, NUMA, Fabric 설계
최고 성능 NGFW는 packet engine보다 메모리와 내부 fabric에서 먼저 실패하는 경우가 많습니다. 세션 테이블, TLS proxy buffer, TCP stream 재조립, file extraction, log buffer가 같은 DRAM 채널을 공유하면 fast path가 아무리 빨라도 L7 성능이 떨어집니다.
| 설계 항목 | 권장 구성 | 이유 | 검증 방법 |
|---|---|---|---|
| NUMA locality | NIC/NPU port group, CPU worker, crypto accelerator를 같은 NUMA domain에 배치합니다. | remote memory access와 PCIe hop이 TLS/DPI latency를 증가시킵니다. | port별 worker pinning, per-NUMA throughput, p99 latency 비교 |
| Session SRAM tier | hot session은 SRAM/TCAM, cold session은 DRAM backing store로 계층화합니다. | 수천만 세션 전체를 동일 속도로 처리할 필요는 없지만 hot flow lookup은 예측 가능해야 합니다. | hash collision, aging storm, burst CPS 테스트 |
| DPI buffer pool | stream reassembly와 file extraction buffer를 fast path memory와 분리합니다. | 대용량 파일 검사와 archive 분석이 L4 forwarding memory를 잠식하지 않아야 합니다. | file mix traffic에서 FW latency 동시 측정 |
| Fabric over-subscription | ingress, service card, crypto, egress 사이 fabric을 기능별 peak 합산으로 산정합니다. | TLS Inspection은 같은 payload가 decrypt, DPI, re-encrypt를 거치며 내부 이동량을 키웁니다. | FW-only, TLS-only, mixed traffic별 internal fabric counter 확인 |
| Log/telemetry buffer | packet path와 분리된 ring/NVRAM/log DMA 경로를 둡니다. | log 폭주가 packet forwarding을 막으면 보안 장비가 장애 원인이 됩니다. | logging full, SIEM outage, packet sample burst 테스트 |
Crypto 설계 관점
crypto는 “가속기가 있으면 빠릅니다”로 끝나지 않습니다. IPsec, TLS handshake, TLS record, certificate signing, PQC fallback은 서로 다른 data shape와 queue 특성을 갖습니다.
| Crypto 유형 | 최적 위치 | 하드웨어 요구 | 주의점 |
|---|---|---|---|
| IPsec ESP bulk | inline NPU/DPU crypto 또는 full offload | SA table, anti-replay, NAT-T 처리, AES-GCM pipeline | IKE/rekey는 CPU, ESP data path는 hardware로 나누어야 합니다. |
| TLS Forward Proxy handshake | crypto service queue + CPU policy path | ECDHE/RSA/ECDSA, certificate cache, OCSP/CRL 비동기 처리 | client-side와 server-side TLS 세션 2개를 만드는 비용을 CPS로 측정해야 합니다. |
| TLS record bulk | 가능하면 dedicated crypto block, 아니면 CPU AES-NI/VAES | AES-GCM, ChaCha20-Poly1305, key update, record ordering | kTLS/NIC TLS offload는 endpoint termination과 프록시 통합 조건을 확인해야 합니다. |
| Certificate re-signing | PKI accelerator 또는 CPU/HSM | private key protection, cache, HSM/FIPS option | PKI acceleration은 TLS payload 전체 offload와 다릅니다. |
| PQC hybrid TLS | CPU software fallback + update 가능한 DPU/FPGA path | 큰 key share buffer, ML-KEM library, handshake fragmentation 대응 | 2026년 6월 기준 대부분 NGFW ASIC 공개 자료는 ML-KEM 가속 범위를 명확히 제시하지 않습니다. |
성능과 보안 정확성의 균형
최고 성능 구조는 더 많은 세션을 offload하는 구조가 아니라, offload해도 되는 세션과 절대 offload하면 안 되는 세션을 정확히 구분하는 구조입니다. 성능 최적화가 보안 회피 경로가 되면 NGFW의 목적이 무너집니다.
| 검토 관점 | 좋은 설계 | 나쁜 설계 | 운영 확인 항목 |
|---|---|---|---|
| 정책 변경 | 정책 변경 시 영향 세션의 fast path entry를 선택적으로 무효화합니다. | 전체 table flush로 대규모 지연을 만들거나, 오래된 verdict를 유지합니다. | policy install time, stale verdict count |
| App reclassification | 초기에는 low-cost 분류, 위험 신호가 나오면 deep path로 승격합니다. | 초기 App-ID만 믿고 장기 세션을 영구 offload합니다. | reclassify event, long-lived flow audit |
| TLS 예외 | pinning, 금융, 개인정보, client cert, ECH 정책을 명확히 분리합니다. | 성능을 위해 broad bypass를 만들고 visibility를 잃습니다. | decrypt bypass reason, domain/IP reputation |
| Fail policy | queue별 fail-open/fail-close를 업무 위험도에 맞게 다르게 둡니다. | DPI queue 포화 시 무조건 bypass하거나 무조건 drop합니다. | queue depth, tail latency, fail action counter |
| Debug visibility | offload miss reason과 hardware counter를 정책 로그와 연결합니다. | fast path packet이 CPU capture에 안 보이는 상태로 운영합니다. | flow id, path id, offload state, sampled packet |
최적 아키텍처 산정 체크리스트
- 트래픽을 먼저 나눕니다.
FW-only, NAT/CGN, IPsec, TLS Inspection, QUIC, 파일 검사, east-west, DDoS/scan 비율을 분리합니다. - 각 비율을 다른 하드웨어 plane에 매핑합니다.
L4는 NPU/ASIC, IPsec은 crypto engine, TLS는 crypto+DPI, 파일 검사는 memory+sandbox queue, east-west는 DPU/eSwitch로 분리합니다. - 성능 수치를 하나로 합치지 않습니다.
Firewall Gbps, NGFW Gbps, TLS Inspection Gbps, HTTPS CPS, concurrent sessions, latency를 서로 다른 KPI로 유지합니다. - Offload hit ratio를 목표값으로 둡니다.
전체 처리량 목표보다 “어떤 세션이 왜 fast path에 못 들어갔는가”를 추적해야 튜닝이 가능합니다. - Crypto queue와 DPI queue를 따로 포화시킵니다.
TLS handshake burst, AES-GCM bulk, IPS rule-heavy stream, 파일 검사 burst를 독립 테스트합니다. - HA와 장애를 성능 시험에 포함합니다.
session sync, SA sync, policy update, active-passive failover, service card 장애 시 fast path 재구축 시간을 측정합니다. - 미래 프로토콜을 반영합니다.
TLS 1.3, QUIC/HTTP/3, ECH, DoH/DoQ, ML-KEM hybrid TLS를 별도 프로파일로 준비합니다.
2026년 구매 가능한 제품으로 구성하는 방법
2026년 6월 기준으로 직접 구현형 최고 성능 NGFW appliance를 만든다면, 단일 부품으로 모든 plane을 만족시키기보다 server CPU + DPU/SmartNIC + crypto accelerator + 고속 NIC/switch + DDR5/NVMe를 조합하는 것이 현실적입니다. 아래 표의 “구매 가능”은 제조사가 공식 제품군을 유지하고 OEM/총판/파트너 경로로 조달 가능한 범주를 뜻합니다. 실제 SKU, 리드타임, 펌웨어 기능, 드라이버 지원, 수출통제, 보안 인증은 구매 시점에 별도 확인해야 합니다.
| Plane / 기능 | 2026년 후보 제품군 | 제조사 | 충족하는 역할 | 선택 기준 |
|---|---|---|---|---|
| Host CPU / DPI worker | Intel Xeon 6 P-core / E-core, AMD EPYC 9005 | Intel, AMD | DPI, App-ID, TLS proxy, policy compile, Suricata/Snort 계열 worker, management/control plane | QAT/DLB/DSA 내장 accelerator가 필요하면 Xeon 6가 유리하고, 순수 CPU core·memory bandwidth·PCIe lane을 많이 쓰면 EPYC 9005가 강합니다. |
| Crypto acceleration | Intel QAT 내장 Xeon 6, NVIDIA BlueField-3 IPsec crypto, NVIDIA ConnectX-7 crypto offload | Intel, NVIDIA | IPsec ESP, TLS handshake/record 보조, compression, crypto queue 분리 | TLS proxy software가 QAT과 통합되어 있는지, IPsec offload가 xfrm/OVS/DOCA 경로에서 동작하는지 확인합니다. |
| DPU / Service card | NVIDIA BlueField-3 DPU, AMD Pensando Salina DPU | NVIDIA, AMD | east-west firewall, tenant isolation, service chaining, IPsec offload, host CPU isolation, programmable infrastructure services | DOCA/OVS/DPDK 생태계와 서버 호환성이 중요하면 BlueField-3, appliance/서비스 체인/클라우드 네트워킹 통합 방향이면 Pensando 계열을 검토합니다. |
| FPGA / Adaptive datapath | AMD Alveo V80/U55C/U50, AMD Versal Premium, Intel/Altera Agilex 7, BittWare IA-780i, Napatech N3070X, Achronix Speedster7t/VectorPath | AMD, Intel/Altera, BittWare, Napatech, Achronix | custom parser, QUIC/ECH 전처리, packet feature extraction, inline filtering, telemetry digest, P4/RTL 기반 특수 경로 | 상용 ASIC처럼 즉시 쓸 수 있는 NGFW 엔진이 아니라 직접 RTL/HLS/oneAPI/Vitis/SDK 개발이 필요합니다. 대신 프로토콜 변화와 특수 pipeline 대응력이 가장 높습니다. |
| High-speed NIC / eSwitch | NVIDIA ConnectX-7, Intel Ethernet E810 | NVIDIA, Intel | 100G/200G/400G 포트, RSS, SR-IOV, switchdev/TC offload, flow steering, timestamping | 400G와 DPU/DOCA 연계는 ConnectX-7/BlueField 계열이 유리하고, 100G x86/Linux ice 드라이버 기반 설계는 E810이 현실적입니다. |
| External fabric / lab switch | NVIDIA Spectrum SN5600, Broadcom Tomahawk 5 기반 스위치, Marvell Teralynx 10 기반 스위치 | NVIDIA, Broadcom, Marvell/OEM | 400G/800G leaf-spine, packet generator 연결, HA pair/fabric, telemetry, service cluster 확장 | 완제품 스위치가 필요하면 NVIDIA Spectrum, merchant silicon 기반 OEM/ODM 설계는 Tomahawk/Teralynx 계열을 검토합니다. |
| Memory | DDR5 RDIMM/MRDIMM, 128GB급 RDIMM, 256GB급 RDIMM validation 제품군 | Micron 등 | DPI stream buffer, TLS proxy buffer, file extraction, session table backing store, 로그 버퍼 | DPI와 TLS proxy는 memory bandwidth와 capacity가 동시에 필요하므로 socket당 채널 수와 NUMA locality를 우선합니다. |
| NVMe / logging / sandbox buffer | Micron 9550, KIOXIA CM7, Solidigm D7 계열 | Micron, KIOXIA, Solidigm | packet sample, PCAP ring, malware/file staging, local log spool, crash dump | 쓰기 내구성, PLP, OCP telemetry, sustained write latency, thermal throttling을 봅니다. |
| Security root / key custody | TPM 2.0, HSM/PKCS#11 appliance 또는 PCIe HSM | 플랫폼/OEM, HSM 벤더 | Secure Boot, attestation, CA private key 보호, FIPS 요구 대응 | TLS Forward Proxy CA 키를 host filesystem에 두지 않고 HSM 또는 최소 TPM-backed key protection으로 보호합니다. |
FPGA / Adaptive SoC 후보군
FPGA는 최적 NGFW H/W 아키텍처에서 상용 ASIC과 범용 CPU 사이의 programmable fast path 역할을 할 수 있습니다. 특히 ECH/QUIC/HTTP3, 신규 tunnel header, proprietary telemetry, ultra-low-latency prefilter, packet digest 생성처럼 고정 ASIC 업데이트 주기보다 빠르게 바뀌는 기능에 적합합니다. 다만 FPGA는 “구매하면 바로 NGFW가 되는 부품”이 아니라, RTL/HLS/oneAPI/Vitis/SDK로 pipeline을 직접 구현해야 하는 제품군입니다.
| 제품군 | 제조사/공급 형태 | NGFW에서 맡기 좋은 역할 | 장점 | 주의점 |
|---|---|---|---|---|
| AMD Alveo V80 / U55C / U50 | AMD data center accelerator card | custom packet parser, hashing, signature prefilter, compression, telemetry digest, low-latency side accelerator | AMD가 Alveo accelerator card portfolio를 유지하고, Vivado/Vitis 기반 전통 FPGA 개발과 datacenter 배포를 지원합니다. | NIC처럼 inline 포트가 충분한 모델과 host-attached accelerator 모델을 구분해야 합니다. TLS/DPI 전체를 자동 처리하지 않습니다. |
| AMD Versal Premium / Premium Gen 2 | AMD adaptive SoC, 보드/OEM 설계용 silicon | 800G급 secure network appliance, hardened Ethernet/Interlaken, high-speed crypto, custom service card | Versal Premium은 112G PAM4, 400G High-Speed Crypto Engine, PCIe/CXL 등 network appliance용 hard IP를 제공합니다. | 카드 완제품보다 보드 설계/OEM 통합 성격이 강합니다. 제품화에는 SI/thermal/firmware 개발 비용이 큽니다. |
| Intel/Altera Agilex 7 I-Series | Intel/Altera FPGA, 카드/OEM 설계용 | PCIe Gen5/CXL host-attached packet accelerator, 400G parser, flow feature extraction, DPDK/oneAPI pipeline | Agilex 7 I-Series는 bandwidth intensive workload와 high performance processor interface에 적합하며 PCIe Gen5/CXL 방향성이 좋습니다. | Altera/Intel FPGA toolchain, IP licensing, board vendor별 BSP 차이를 고려해야 합니다. |
| BittWare IA-780i | BittWare production PCIe FPGA card, Intel Agilex 7 기반 | 400G + PCIe Gen5 single-width inline/side accelerator, packet prefilter, FPGA 기반 telemetry, custom DPU 보조 | BittWare 공식 제품 페이지가 production/in-stock 상태와 2×QSFP-DD 400G, PCIe Gen5/CXL 지원을 제시합니다. | NGFW datapath IP는 직접 개발 또는 파트너 IP가 필요합니다. Linux driver와 FPGA image 운영 체계를 설계해야 합니다. |
| Napatech N3070X | Napatech 400G programmable SmartNIC, Altera Agilex FPGA 기반 | 고속 packet capture, inline filtering, flow-aware prefilter, monitoring/recording, DPI 전 단계 packet reduction | Napatech는 400G PCIe Gen5 SmartNIC와 production-grade software package를 함께 제공합니다. | NGFW inline 차단/정책 엔진까지 어느 범위가 제공되는지 Link-Capture/Virtualization/Inline 패키지와 라이선스를 확인해야 합니다. |
| Achronix Speedster7t / VectorPath | Achronix FPGA 및 VectorPath accelerator card | 400G Ethernet, PCIe Gen5, GDDR6 bandwidth를 활용한 custom high-bandwidth datapath, ML feature extraction | Speedster7t는 2D NoC, 400G Ethernet, PCIe Gen5, GDDR6를 내세우며 networking/data center acceleration에 적합합니다. | 생태계와 파트너 IP 범위가 AMD/Intel보다 좁을 수 있어 개발팀의 FPGA 역량이 중요합니다. |
구현 목적별 권장 조합
| 목표 | 권장 조합 | 장점 | 주의점 |
|---|---|---|---|
| 범용 고성능 100G NGFW appliance | Intel Xeon 6 + Intel E810 100GbE + QAT + DDR5 RDIMM + enterprise NVMe | Linux ice 드라이버, QAT, DLB/DSA 활용 여지가 크고 100G급 PoC와 상용 appliance 구현이 현실적입니다. | 400G 단일 포트 집약도와 DPU resident service chaining은 별도 보강이 필요합니다. |
| 400G급 DPU 중심 appliance | NVIDIA BlueField-3 DPU 또는 ConnectX-7 + Xeon 6/EPYC 9005 host + DDR5 + NVMe | DPU/SmartNIC에서 IPsec, eSwitch, OVS/DOCA, tenant isolation을 다루기 좋습니다. | TLS Forward Proxy와 DPI 전체를 DPU만으로 해결하려고 하면 안 되고, host CPU worker와 service queue 설계가 필요합니다. |
| CPU/DPI 최대 처리량 우선 | AMD EPYC 9005 + NVIDIA ConnectX-7 또는 Intel E810 + 별도 DPU/crypto accelerator | 많은 코어, memory bandwidth, PCIe lane을 DPI worker와 TLS proxy에 투입하기 좋습니다. | QAT/DLB 같은 Intel 내장 accelerator에 의존하는 소프트웨어 경로는 별도 이식 또는 대체가 필요합니다. |
| 멀티테넌트 / east-west 보안 | NVIDIA BlueField-3 또는 AMD Pensando Salina DPU + host CPU + ToR switch fabric | tenant별 policy, service chaining, host isolation, 가상화 환경 보안에 유리합니다. | north-south 대형 TLS Inspection appliance와 같은 sizing 기준을 적용하면 안 됩니다. |
| 대규모 HA/cluster lab | 2대 이상 appliance + NVIDIA Spectrum SN5600 또는 Tomahawk/Teralynx 기반 switch + RFC 9411 traffic generator | failover, session sync, fabric congestion, telemetry를 실제에 가깝게 검증할 수 있습니다. | 스위치 chip 성능이 NGFW 보안 처리량을 보장하지 않으므로 appliance 내부 병목을 따로 측정해야 합니다. |
- Intel Xeon 6 Product Brief — QAT, DSA, IAA, DLB, PCIe 5.0/CXL 기반 host CPU 후보
- AMD EPYC 9005 Series — Zen 5 기반 고코어·고메모리·고I/O host CPU 후보
- NVIDIA BlueField DPU 및 BlueField-3 User Guide — DPU/service card 후보
- NVIDIA ConnectX-7 Datasheet — 400G급 NIC/SmartNIC 후보
- Intel Ethernet E810 Network Adapters — 100G급 Linux 친화 NIC 후보
- AMD Pensando DPU Technology 및 Pensando Salina Product Brief — DPU/service chaining 후보
- AMD Alveo Accelerator Cards, AMD Versal Premium — FPGA/adaptive SoC 기반 programmable datapath 후보
- Intel/Altera Agilex 7 I-Series, BittWare IA-780i, Napatech N3070X — Agilex 기반 400G FPGA/SmartNIC 후보
- Achronix Speedster7t 및 VectorPath S7t-VG6 — 400G Ethernet/PCIe Gen5/GDDR6 기반 FPGA accelerator 후보
- NVIDIA Spectrum Ethernet Platform, Broadcom Tomahawk 5, Marvell Teralynx 10 — 외부 fabric/switch 후보
- Micron DDR5 DRAM 및 Micron 9550 NVMe SSD — memory/log/sandbox storage 후보
- RFC 9411은 NGFW/NGIPS 벤치마크에서 HTTPS throughput, HTTPS CPS, transaction latency, concurrent connection을 분리 측정하는 방법론을 제공합니다.
- Linux nf_flowtable 문서는 software flowtable fast path와 hardware offload datapath를 구분합니다.
- DPDK eventdev 문서는 ordered, atomic, parallel scheduling으로 flow affinity와 병렬성을 함께 다루는 모델을 제공합니다.
- NVIDIA BlueField IPsec 문서는 DPU에서 transparent IPsec, crypto offload, full offload를 분리해 설명합니다.
- 앞 절의 Fortinet, Palo Alto, Check Point, Juniper, Cisco, Sophos 공식 문서들은 모두 fast path와 deep/service path를 분리해서 sizing해야 함을 보여줍니다.
주요 NGFW 패킷 유형별 고성능 처리 흐름
NGFW 성능은 "장비 전체 처리량"보다 패킷 유형별로 어느 경로에 태우는지가 더 중요합니다. 같은 100Gbps 링크라도 단순 EST 세션, NAT 세션, IPsec 터널, SSL Inspection 세션, QUIC/ECH 세션, 파일 검사 세션은 병목 위치가 완전히 다릅니다. 고성능 설계의 핵심은 첫 패킷에서 충분히 분류하고, 이후 패킷은 가장 싼 경로로 고정하며, 비싼 L7 검사는 필요한 세션에만 적용하는 것입니다.
| 패킷 유형 | 권장 고성능 경로 | 벤더별 대표 구현 | 튜닝 포인트 | 성능 상한을 만드는 요소 |
|---|---|---|---|---|
| 단순 EST TCP/UDP 세션 | 첫 패킷만 CPU/정책 엔진에서 판정하고, 이후 패킷은 ASIC/NPU/NIC 세션 테이블에서 직접 전달합니다. | Fortinet NP7, Palo Alto dataplane fast path, Check Point SecureXL Accept Template, Juniper Express Path, Cisco flow offload, Sophos FastPath/Xstream Flow Processor, Linux nf_flowtable/eSwitch | 정책을 5-tuple/zone 중심으로 단순화하고, 로깅·QoS·DPI 예외를 최소화합니다. | 세션 테이블 메모리, hash 충돌, per-flow aging, 작은 패킷 PPS |
| NAT/CGN 세션 | NAT decision은 첫 패킷에서 만들고, tuple rewrite와 checksum update는 fast path에 설치합니다. | Fortinet NP7 policy/NAT engine, Check Point NAT Templates, Juniper NP rewrite, Linux flowtable NAT offload | NAT pool을 분산하고, hairpin/ALG/비대칭 라우팅을 줄입니다. | 포트 고갈, NAT binding 동기화, ALG가 유발하는 slow path |
| IPsec 터널 | IKE는 CPU가 처리하고, ESP 데이터 패킷은 SA lookup 후 inline crypto 또는 전용 crypto accelerator로 보냅니다. | Fortinet NP7/CP, Juniper PFE inline IPsec/SPC3, Cisco crypto accelerator, Sophos XFRM/FastPath IPsec acceleration, Linux xfrm offload/QAT | SA와 cleartext session affinity를 맞추고, AES-GCM과 large anti-replay window를 하드웨어 지원 범위 안에서 씁니다. | SA 분산 불균형, 재전송/anti-replay, tunnel fragmentation, NAT-T |
| SSL/TLS Inspection | TLS 세션을 client-NGFW, NGFW-server 두 세션으로 분리하고, 복호화된 평문만 DPI로 보낸 뒤 verdict를 캐시합니다. | Fortinet CP9/CP10/SoC path, Palo Alto SSL Forward Proxy, Check Point HTTPS Inspection/CoreXL, Juniper SSL Proxy, Cisco TLS hardware decryption + Snort 3, Sophos DPI Engine + PKI acceleration | 복호화 대상 도메인을 선별하고, 인증서 pinning·client auth·금융/개인정보 예외를 명확히 분리합니다. | TLS CPS, ECDHE/RSA 연산, AES-GCM 처리량, DPI rule set, 인증서 캐시 |
| QUIC/HTTP3 | UDP/443을 무조건 fast path로 보내지 않고, SNI/ALPN/DNS/endpoint telemetry로 분류한 뒤 정책상 허용 가능한 세션만 offload합니다. | 대부분 벤더의 App-ID/URL Filtering + DNS 보안, Linux eBPF/nftables + DNS 로그 상관 | 필요 시 QUIC 차단 후 TCP/TLS fallback을 유도하고, SaaS/CDN 예외 정책을 별도로 둡니다. | UDP connection tracking, 암호화된 L7 metadata 부족, CDN 공유 IP |
| ECH/DoH 환경 | SNI가 보이지 않는 세션은 DNS control, endpoint agent, SASE/SSE 연동, IP 평판, JA4/flow fingerprint로 보완합니다. | Palo Alto PQC/ECH visibility 정책, Cisco EVE/Encrypted Visibility, Fortinet/Check Point/Juniper/Sophos DNS·endpoint 통합 | 내부 DNS에서 HTTPS RR/ECHConfig 정책을 관리하고, DoH/DoT 사용 경로를 통제합니다. | SNI 손실, 프라이버시 정책 충돌, BYOD 단말 가시성 부족 |
| 파일/멀웨어 검사 세션 | 초기 stream은 DPI로 보내되, 파일 추출·샌드박스 전송은 backpressure와 파일 크기 제한을 둡니다. | FortiGuard/FortiSandbox, Palo Alto WildFire, Check Point Threat Emulation, Cisco AMP/Talos, Juniper ATP, SophosLabs/Sandboxing, Linux Suricata + sandbox | 파일 크기·MIME·도메인 신뢰도별 검사 깊이를 다르게 하고, 대용량 파일은 async verdict 정책을 설계합니다. | 파일 버퍼 메모리, sandbox queue, 재조립 비용, 장기 TCP 세션 |
벤더별 패킷 흐름 최적화 관점
| 벤더 | fast path에 남기기 쉬운 트래픽 | slow/deep path로 보내야 하는 트래픽 | 운영자가 확인할 지표 |
|---|---|---|---|
| Fortinet | NP7 fast path 조건을 만족하는 EST 세션, NAT, IPsec ESP, VXLAN/GTP 일부 | Deep SSL Inspection, proxy inspection, flow-based IPS/App Control이 요구하는 초기 payload | diagnose npu np7, offload flag, session count per NP, CP utilization |
| Palo Alto | App-ID가 안정적으로 판정된 허용 세션, 단순 routing/NAT 세션 | SSL Forward Proxy, WildFire/file blocking, URL category 미확정 세션 | dataplane CPU, session browser, decryption logs, packet buffer utilization |
| Check Point | SecureXL Accept/NAT Template로 처리 가능한 반복 세션 | HTTPS Inspection, 복잡한 blade 조합, 비가속 feature가 필요한 세션 | fwaccel stat, Accept/NAT Templates, SND/CoreXL balance, UPPAK/KPPAK mode |
| Juniper | Express Path 조건을 만족하는 세션, inline IPsec 대상 트래픽 | SSL Proxy, AppSecure/IDP 심층 검사, Express Path plugin이 ignore하지 않는 세션 | flow session offload 상태, SPU/NP utilization, SSL proxy statistics, IPsec hardware offloaded 여부 |
| Cisco | prefilter로 fastpathed된 trusted/large flow, 동적 flow offload 대상 | TLS decryption 후 Snort 3 inspection, malware/file/URL 분석 세션 | show flow-offload, show snort tls-offload, Snort worker CPU, FMC connection events |
| Sophos | 초기 분류 후 FastPath로 넘길 수 있는 신뢰된 TCP/UDP 흐름, DPI Engine이 일부 또는 전체 offload를 허용한 세션 | Decrypt 동작의 SSL/TLS inspection, web proxy/WAF/SSL VPN, QoS/DoS, packet capture 중인 흐름, FastPath 제한 조건에 걸린 세션 | firewall acceleration, pki-acceleration, ipsec-acceleration CLI 상태, FastPath hit 여부, DPI Engine CPU, TLS inspection 로그 |
| Linux | nftables/nf_flowtable/eSwitch가 처리 가능한 EST/NAT 세션 | NFQUEUE/Suricata/프록시로 보내는 L7 검사 세션 | nft monitor, ethtool -S, TC offload hit, conntrack table pressure |
NGFW 배포 아키텍처 패턴
NGFW를 네트워크에 배치하는 방식에 따라 가시성, 성능 영향, 장애 복원력이 달라집니다. 배포 모드는 크게 4가지로 분류되며, 각 모드에서 HW 오프로드의 적용 범위가 다릅니다.
| 배포 모드 | 네트워크 위치 | 동작 방식 | 장점 | 단점 | HW 오프로드 적용 |
|---|---|---|---|---|---|
| 인라인 브릿지(L2 Transparent) | 두 세그먼트 사이 직렬 삽입 | L2 브릿지로 동작하며 모든 트래픽 검사·차단 | IP 주소 변경 불필요, 기존 네트워크 토폴로지 유지 | NGFW 장애 시 통신 단절 (bypass 모듈 필요) | eSwitch FDB, flowtable 전체 활용 |
| 인라인 라우팅(Routing)(L3 Gateway) | 라우터/게이트웨이 위치 | L3 라우팅 + NAT + 정책 적용 | NAT/VPN/QoS 통합, 가장 일반적인 배포 | 라우팅 설정 변경 필요, 지연 추가 | eSwitch FDB, flowtable, NIC inline crypto |
| TAP/미러(Out-of-Band) | 스위치 미러 포트에 연결 | 트래픽 복사본만 수신하여 검사 (IDS 모드) | 네트워크에 영향 없음, 장애 무관 | 차단 불가 (탐지만), 미러 대역폭 제한 | 제한적 (NIC RX만 사용) |
| 투명 프록시(TPROXY) | 인라인이지만 프록시로 동작 | TCP 세션을 가로채어 L7 프록시 처리 후 재전달 | SSL Inspection 최적, 세밀한 L7 제어 | UDP/비TCP 처리 제한, CPU 집약적 | QAT(핸드셰이크), kTLS(레코드) |
인라인 배포의 장애 대응: HW 바이패스
인라인 브릿지/라우팅 배포에서 NGFW 장애 시 네트워크 단절을 방지하기 위해 HW 바이패스(Hardware Bypass) 모듈을 사용합니다. 바이패스는 전기·광학 수준에서 패킷을 NGFW를 우회하여 직접 전달합니다.
| 바이패스 유형 | 동작 원리 | 전환 시간 | 적용 환경 |
|---|---|---|---|
| 전기 바이패스(Copper Bypass) | 릴레이 스위치가 NIC 포트 쌍을 직접 연결 | ~10ms | 1G/10G 구리 환경 |
| 광 바이패스(Optical Bypass) | MEMS 스위치가 광 경로를 전환 | ~50ms | 10G/40G/100G 광 환경 |
| NIC 내장 바이패스 | SmartNIC 펌웨어가 eSwitch를 바이패스 모드로 전환 | ~1ms | SmartNIC/DPU 배포 |
| Watchdog 타이머 | 호스트 OS/프로세스 모니터링 → 응답 없으면 자동 바이패스 | 설정 의존 (1~30초) | 모든 인라인 배포 |
# SmartNIC 바이패스 모드 설정 (Silicom 예시)
# Watchdog 타이머 설정 — 5초 무응답 시 자동 바이패스
bpctl_util eth0 set_bypass_wd 5000 # 5000ms = 5초
# 바이패스 상태 확인
bpctl_util eth0 get_bypass
# bypass: off (normal mode)
# 수동 바이패스 전환 (유지보수 시)
bpctl_util eth0 set_bypass on
# Intel E810 NIC 바이패스 (ice 드라이버)
ethtool --set-priv-flags eth0 bypass on
고가용성(HA) 아키텍처
NGFW의 HA 구성은 세션 동기화가 핵심입니다. 장애 발생 시 기존 세션이 끊기지 않으려면 Active 장비의 conntrack 테이블을 Standby 장비에 실시간 복제해야 합니다.
| HA 모드 | 상용 NGFW | Linux NGFW | 세션 동기화 | Failover 시간 |
|---|---|---|---|---|
| Active-Standby | FortiGate HA, PA HA (A/P) | Keepalived VRRP + conntrackd | 전체 세션 테이블 복제 | ~1-3초 |
| Active-Active | FortiGate HA (A/A), PA HA (A/A) | Keepalived + conntrackd multicast | 세션 소유권 분산 + 동기화 | ~0.5-1초 |
| 클러스터 | Check Point Maestro, FortiGate Cluster | Linux IPVS + conntrackd | 클러스터 멤버 간 분산 | ~0.1-0.5초 |
# Linux NGFW HA 구성 — conntrackd + Keepalived
# 1. conntrackd — 세션 테이블 실시간 동기화
# /etc/conntrackd/conntrackd.conf
Sync {
Mode FTFW { # Fault Tolerant FW 모드
ResendQueueSize 131072
ACKWindowSize 300
}
Multicast {
IPv4_address 225.0.0.50
Group 3780
IPv4_interface 192.168.100.1
Interface eth2 # 전용 동기화 인터페이스
}
}
General {
HashSize 32768
HashLimit 131072
Syslog on
LockFile /var/lock/conntrack.lock
UNIX { Path /var/run/conntrackd.ctl }
Filter From Userspace {
Protocol Accept {
TCP SCTP DCCP
}
Address Ignore {
IPv4_address 127.0.0.1
IPv4_address 192.168.100.0/24 # 동기화 서브넷 제외
}
}
}
# 2. Keepalived — VIP failover
# /etc/keepalived/keepalived.conf
vrrp_instance NGFW_HA {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass ngfw_ha_secret
}
virtual_ipaddress {
10.0.0.1/24 # 게이트웨이 VIP
}
notify_master "/etc/conntrackd/primary-backup.sh primary"
notify_backup "/etc/conntrackd/primary-backup.sh backup"
notify_fault "/etc/conntrackd/primary-backup.sh fault"
}
# 3. failover 스크립트 — primary-backup.sh
# primary 승격 시 conntrackd에서 세션 테이블 bulk 로드
# conntrackd -C /etc/conntrackd/conntrackd.conf -c
# conntrackd -C /etc/conntrackd/conntrackd.conf -B
nf_flowtable의 offload timeout이 만료되면 세션이 커널로 복귀하며, 이 시점에서 conntrackd가 동기화합니다. HW offload 세션의 failover는 NIC FDB 테이블 재구축이 추가되므로, SW-only 대비 ~1-2초 추가 지연이 발생할 수 있습니다.
TLS 1.3/ECH와 SSL Inspection의 미래
TLS 1.3과 ECH(Encrypted Client Hello)의 확산은 NGFW SSL Inspection에 근본적인 도전을 제기합니다. 기존 SSL Inspection의 핵심 가정 — ClientHello에서 SNI를 읽을 수 있고, MITM 프록시를 통해 복호화할 수 있습니다 — 이 흔들리고 있습니다.
TLS 1.3이 NGFW에 미치는 영향
| TLS 1.3 변경점 | NGFW에 미치는 영향 | 대응 방안 |
|---|---|---|
| 1-RTT 핸드셰이크 | RTT는 줄지만 MITM 프록시의 CPS 향상은 구현, cipher suite, 인증서 캐시, 정책 조건에 따라 달라집니다. | 장비별 TLS 1.3 지원 cipher/group과 decryption profile 확인 |
| 0-RTT (Early Data) | 첫 패킷에 애플리케이션 데이터 포함 → 정책 적용 전 데이터 전달 위험 | 0-RTT 차단 정책 또는 재전송 공격(Replay Attack) 방어 |
| PFS 필수 (ECDHE only) | RSA 정적 키 기반 패시브 복호화는 TLS 1.3에서 불가합니다. Inbound/Forward Proxy 방식의 능동 복호화 정책이 필요합니다. | Forward Proxy, Inbound Inspection, 예외 정책을 트래픽 유형별로 분리 |
| 인증서 암호화 | ServerHello 이후 인증서가 암호화됨 → 패시브 모니터링에서 서버 식별 불가 | MITM 프록시는 영향 없음 (프록시가 직접 서버와 핸드셰이크) |
| HelloRetryRequest | NGFW가 지원하지 않는 key share 시 추가 RTT 발생 | NGFW의 지원 curve 목록 최신 유지 (X25519, P-256) |
ECH(Encrypted Client Hello)의 도전
ECH는 TLS ClientHello의 SNI 필드를 암호화하여 중간자(NGFW 포함)가 접속 대상 서버를 식별하지 못하게 합니다. 이는 SNI 기반 SSL Inspection 정책의 핵심 전제를 무력화합니다.
| 기존 SSL Inspection | ECH 적용 후 |
|---|---|
ClientHello의 server_name 확장에서 SNI 추출 | 외부 ClientHello(ClientHelloOuter)에는 프론팅 도메인만 노출, 실제 SNI는 암호화 |
| SNI 기반 정책: "banking.com → 바이패스, sns.com → 검사" | 실제 대상 서버를 알 수 없으므로 SNI 기반 정책 무효화(Invalidation) |
| MITM 프록시가 서버에 직접 연결 시 SNI 전달 | ECH 키가 없으면 MITM 프록시도 실제 SNI를 복호화할 수 없음 |
NGFW 벤더별 ECH 대응 전략:
| 대응 전략 | 동작 방식 | 장점 | 한계 |
|---|---|---|---|
| ECH 차단 | ECH 확장이 포함된 ClientHello를 DROP 또는 ECH 없이 재시도 유도 | 구현 단순, 즉시 적용 가능 | 사용자 경험 저하, ECH 필수 서비스 접속 불가 |
| DNS 기반 정책 | DNS 쿼리를 모니터링하여 도메인→IP 매핑 캐시 → IP 기반 정책 적용 | SNI 없이도 도메인 식별 가능 | CDN/공유 IP에서 정확도 저하, DoH/DoT 우회 가능 |
| 엔드포인트 에이전트 | 엔드포인트에 에이전트를 설치하여 프로세스/URL 수준 가시성 확보 | TLS 계층 우회, 정확한 대상 식별 | BYOD 환경 적용 어려움, 에이전트 관리 부담 |
| SASE/SSE 통합 | 클라이언트 트래픽을 클라우드 보안 게이트웨이로 터널링 | 네트워크 경로에 관계없이 검사 가능 | 지연 증가, 클라우드 의존성 |
- Cloudflare: 2026년 4월 기준 공식 문서는 Free zone에서 ECH가 기본 활성화된다고 안내합니다. 다른 플랜은 존 설정과 대시보드 구성을 함께 확인해야 합니다.
- Firefox: ECH 관련 설정과 배포 상태는 버전별 차이가 있으므로, 실제 기본 활성 여부는 릴리스 노트와 about:config 기본값을 함께 확인해야 합니다.
- Chrome: ECH를 지원하며 DNS HTTPS 레코드 기반 자동 사용 경로가 있습니다. 다만 실제 적용 여부는 브라우저 버전, DNS, 서버 측 ECH 설정에 함께 좌우됩니다.
- ECH가 보편화되면 SNI 기반 SSL Inspection은 사실상 무력화됩니다. NGFW 벤더들은 DNS 가시성(DoH 복호화), 엔드포인트 통합, SASE 전환을 병행하는 방향으로 전략을 전환하고 있습니다
- 기업 환경에서는 내부 DNS 서버에서 ECH HTTPS 레코드를 제거하여 ECH 협상을 차단하는 단기 대응이 가능합니다
포스트 양자(PQC) 암호화와 NGFW
NIST가 표준화한 포스트 양자 암호화 알고리즘(ML-KEM, ML-DSA)이 TLS에 도입되면, NGFW의 SSL Inspection 성능에 직접적인 영향을 미칩니다.
| 항목 | ECDHE P-256 (현행) | ML-KEM-768 (PQC) | NGFW 영향 |
|---|---|---|---|
| 키 교환 크기 | P-256 공개키 약 65 bytes | ML-KEM-768 공개키 1,184 bytes + 암호문 1,088 bytes | 하이브리드 TLS에서는 ClientHello/ServerHello 크기가 커져 fragmentation, 버퍼, RTT 민감도가 증가합니다. |
| 키 교환 연산 | CPU와 라이브러리 구현별 | CPU와 PQC 라이브러리 구현별 | CPS 영향은 소프트웨어 구현, 하이브리드 구성, 세션 재개 비율에 따라 측정해야 합니다. |
| 하이브리드 모드 | - | ECDHE + ML-KEM 이중 키 교환 | 핸드셰이크 크기·연산 모두 증가. 현행 전환기의 기본 모드 |
| HW 가속 지원 | RSA/ECDHE/AES 계열은 플랫폼별 가속 가능 | NGFW ASIC의 ML-KEM 가속 지원은 2026년 6월 기준 공개 문서에서 제한적입니다. | SW fallback과 라이브러리 최적화가 초기 전환기의 핵심 병목입니다. |
상용 vs Linux NGFW 선택 기준
상용 NGFW와 Linux 기반 NGFW는 하드웨어 아키텍처뿐 아니라 운영 모델, 비용 구조, 조직 역량 요구사항이 근본적으로 다릅니다. 아래 표는 실무에서 선택 시 고려해야 할 핵심 차원을 정리합니다.
| 평가 차원 | 상용 NGFW | Linux NGFW | 판단 기준 |
|---|---|---|---|
| 초기 도입 비용 | 높음 (장비+라이선스+지원 계약) | 낮음 (범용 서버+SmartNIC+OSS) | 3년 TCO로 비교. 상용은 HW 교체 주기(5~7년), Linux는 NIC 세대 교체 비용 고려 |
| 운영 인력 요구 | 보안 운영자 (GUI/CLI 중심) | 커널·네트워크·보안 엔지니어 (코드 수준) | nftables/Suricata/kTLS 직접 튜닝 가능한 인력 확보 여부가 핵심 |
| 보안 인증 | CC EAL4+, FIPS 140-2/3, NDPP 취득 완료 | 개별 컴포넌트별 인증 필요 (QAT FIPS 모드 등) | 금융·공공·국방 규제 환경에서는 사실상 상용 필수 |
| SSL Inspection CPS | 모델별 공식 공개 범위 확인 | QAT+CPU+프록시 구현별 측정 필요 | HTTPS 트래픽 비율이 높은 환경에서는 반드시 별도 벤치마크가 필요합니다. |
| DPI/IPS 성능 | 벤더 최적화 엔진 (ASIC 보조) | Suricata/nDPI (범용 CPU) | 시그니처 수 1만+ 환경에서 CPU 기반 DPI의 한계 |
| FW L4 처리량 | 벤더 데이터시트의 모델별 stateful firewall 수치 | eSwitch FDB/flowtable/NIC 조건별 | L4 전달은 SmartNIC이 강할 수 있지만, 동등 조건 RFC 9411 측정이 필요합니다. |
| 프로토콜 유연성 | 벤더 펌웨어 업데이트 의존 | 커널/유저스페이스 코드 직접 수정 | QUIC, MASQUE 등 신규 프로토콜 즉시 대응 가능 여부 |
| 수평 확장 | Maestro 클러스터, 고가 chassis | conntrackd + Keepalived + 범용 서버 추가 | 클라우드/컨테이너(Container) 환경에서 Linux가 유연 |
| 관리 플레인 | 통합 GUI (FortiManager, Panorama 등) | Ansible/Terraform + Prometheus/Grafana 조합 | NOC/SOC 팀의 기존 운영 도구 체계와의 호환성 |
| 벤더 종속 | 높음 (ASIC·OS·라이선스 묶음) | 없음 (표준 커널 API, NIC 교체 자유) | 멀티벤더 전략 또는 장기 아키텍처 자율성 필요 시 |
| 장애 대응 | 벤더 TAC (4시간 SLA 등) | 내부 엔지니어 + 커뮤니티 | 24×7 SLA 보장이 사업 요구인지 여부 |
| 위협 인텔리전스 | 벤더 피드 포함 (FortiGuard, WildFire 등) | ET Open/Pro + Abuse.ch + MISP 조합 | 제로데이 대응 속도와 시그니처 품질 |
시나리오별 선택 가이드
| 시나리오 | 추천 | 근거 |
|---|---|---|
| 금융·공공 규제 환경 CC/FIPS 인증 필수 | 상용 NGFW | 개별 OSS 컴포넌트로 규제 인증을 취득하는 비용이 상용 도입 비용을 초과합니다 |
| 데이터센터 100G+ 게이트웨이 동서 트래픽 필터링 | Linux NGFW (SmartNIC) | eSwitch FDB HW offload로 라인레이트 L4 필터링. DPI가 필요한 세션만 선별적으로 Suricata 경유 |
| 중소기업 인터넷 경계 IT 인력 1~2명 | 상용 NGFW | GUI 기반 관리, 벤더 지원, 올인원 UTM으로 운영 부담 최소화 |
| 통신사/CDN 인프라 커스텀 파이프라인 필수 | Linux NGFW + VPP/DPDK | eBPF/XDP 기반 프로그래머블 파이프라인, DPDK eventdev(DLB/SSO) 연동 |
| 클라우드 네이티브 환경 Kubernetes 마이크로서비스 | Linux NGFW (eBPF) | Cilium + Hubble 기반 서비스 메시 보안, Pod 단위 정책, 서비스 메시(Service Mesh) 통합 |
| 지사/원격 사무소 SD-WAN 통합 필요 | 상용 NGFW | FortiGate SD-WAN, PA Prisma SD-WAN 등 NGFW+SD-WAN 통합 제품이 운영 효율적 |
| 보안 연구/교육 환경 | Linux NGFW | 커널 소스 수준의 분석과 실험이 가능하고, 라이선스 비용이 없습니다 |
- 상용 관리 플레인 + Linux 데이터 플레인: 상용 NGFW의 정책 관리 GUI를 사용하되, 실제 데이터 플레인은 SmartNIC/eBPF 기반으로 가속 (일부 벤더가 이 모델 채택 중)
- 인터넷 경계 = 상용 + 내부 = Linux: 규제가 적용되는 외부 경계는 인증된 상용 NGFW, 데이터센터 내부 동서 트래픽은 Linux SmartNIC 기반 필터링
- 클라우드 = Linux + 온프레미스 = 상용: 클라우드 워크로드는 eBPF/Cilium, 온프레미스 레거시는 기존 상용 NGFW 유지
성능 비교 벤치마크 (참고 수치)
다음 표는 공식 데이터시트에 공개된 대표 수치와, 공식 수치가 공개되지 않은 항목의 확인 상태를 분리한 참고표입니다. 서로 다른 벤더의 데이터시트는 패킷 크기, 보안 기능 조합, TLS 버전, cipher suite, 로깅 조건이 다르므로 직접적인 순위표로 사용하면 안 됩니다. 실제 환경에서는 정책 복잡도, 트래픽 믹스, DPI 시그니처 수에 따라 크게 달라집니다:
| 메트릭 | Fortinet 7081F (NP7) | PA-5440 | Check Point 29200 | Sophos XGS 8500 | Linux + CX-7 (200G) |
|---|---|---|---|---|---|
| FW 처리량 (L4) | 700 Gbps | 75 Gbps | 500 Gbps | 190 Gbps | NIC 200G급, 방화벽 처리량은 flowtable/eSwitch 조건별 |
| NGFW 처리량 (DPI+IPS) | 60 Gbps | 30 Gbps | 165 Gbps | 76 Gbps | Suricata/룰셋/코어 수별 측정 필요 |
| Threat Protection | 40 Gbps | 22 Gbps | 75 Gbps | 92.5 Gbps | OSS 룰셋과 검사 엔진별 측정 필요 |
| SSL Inspection | 35 Gbps (데이터시트 조건) | 12 Gbps (데이터시트 조건) | 공식 비교 페이지 미기재 | 24 Gbps (IPS enabled HTTPS 조건) | 프록시/QAT/kTLS 구성별 측정 필요 |
| CPS | 공식 데이터시트 항목별 확인 | 공식 데이터시트 항목별 확인 | 공식 비교 페이지 미기재 | 공식 페이지 미기재 | conntrack/프록시/QAT 구성별 측정 필요 |
| 동시 세션 | 공식 데이터시트 항목별 확인 | 공식 데이터시트 항목별 확인 | 공식 비교 페이지 미기재 | 공식 페이지 미기재 | conntrack_max, 메모리, flowtable 정책 의존 |
Linux NGFW의 처리량은 eSwitch/flowtable 오프로드 비율, Suricata 룰셋, TLS 프록시 구현, QAT/NIC 드라이버 지원 범위에 크게 좌우됩니다. 따라서 상용 데이터시트와 비교할 때는 L4 forwarding, DPI, TLS inspection, CPS를 분리하여 같은 트래픽 조건으로 재측정해야 합니다.
- Fortinet 7081F: FortiGate 7000 Series Data Sheet 기준. FW 처리량 700Gbps는 NP7 ASIC 다중 장착 시 합산 값
- PA-5440: PA-5400 Series Data Sheet 기준. App-ID + IPS + logging 활성화 시 30Gbps
- Check Point 29200: Quantum Gateway 모델 비교 기준. FW/NGFW/Threat Prevention처럼 공식 페이지에 공개된 항목만 수치로 유지했습니다.
- Sophos XGS 8500: Sophos XGS 2U models 기준. TLS Inspection은 IPS enabled HTTPS와 cipher suite 조건으로 측정된 값입니다
- Linux + CX-7: NVIDIA ConnectX-7 Product Brief 기준 NIC 용량은 확인할 수 있지만, NGFW 처리량은 커널 flowtable, eSwitch offload, Suricata, TLS 프록시, QAT 구성별로 직접 측정해야 합니다.
- 모든 벤더 수치는 최적 조건(단순 트래픽 믹스, 최소 정책)에서의 데이터시트 값이며, 실제 환경에서는 RFC 9411 방법론에 따라 독립적으로 측정해야 합니다
NGFW 성능 측정 방법론 (RFC 9411)
RFC 9411 (Benchmarking Methodology for Network Security Device Performance)은 NGFW 성능을 표준화된 방식으로 측정하기 위한 IETF 표준입니다. 벤더 데이터시트의 수치는 대부분 최적 조건에서 측정되므로, 실제 환경 성능을 예측하려면 RFC 9411 기반 독립 벤치마크가 필수입니다.
핵심 성능 메트릭
| 메트릭 | 정의 | 측정 방법 | 실무 의미 |
|---|---|---|---|
| FW 처리량 | L4 stateful 방화벽의 최대 양방향 처리량 (bps) | UDP/TCP 혼합, 다양한 패킷 크기, EST 세션 상태 | 데이터시트 최대값은 대형 패킷(1518B) + 단순 정책 기준. 소형 패킷(64B)에서 1/5~1/10으로 감소 가능 |
| NGFW 처리량 | App-ID + IPS + URL 필터링 전체 활성 시 처리량 | HTTP/HTTPS 혼합 트래픽, 실 시그니처 로드 | FW 처리량 대비 30~60% 수준이 일반적 |
| SSL Inspection 처리량 | TLS 복호화 + DPI + 재암호화 시 처리량 | TLS 1.2/1.3 혼합, AES-256-GCM, RSA-2048/ECDHE P-256 | FW 처리량의 1/5~1/20. NGFW 성능에서 가장 큰 차이를 만드는 메트릭 |
| CPS (Connections Per Second) | 초당 새 TCP/TLS 연결 수립 가능 수 | TCP SYN → ACK → data → FIN 전체 사이클 | 웹 트래픽 특성상 소형 연결이 다수. SSL CPS는 핸드셰이크 부하로 TCP CPS의 1/10~1/100 |
| CC (Concurrent Connections) | 동시 유지 가능한 세션 수 | 점진적 세션 누적 후 최대치 측정 | conntrack 테이블/ASIC 세션 메모리 크기에 의존. 메모리 포화 시 새 세션 거부 |
| 지연 시간 (Latency) | 패킷 입력→출력 간 추가 지연 | RFC 2544 기반 one-way 또는 round-trip | 인라인 HW offload: <10μs, SW DPI 경유: 50~500μs |
트래픽 프로파일과 성능 변동
데이터시트 수치와 실제 성능의 격차는 트래픽 프로파일에 의해 결정됩니다. RFC 9411은 다양한 실 환경 트래픽 패턴을 반영한 테스트를 권고합니다.
| 트래픽 특성 | 데이터시트 조건 (최적) | 실 환경 조건 | 성능 영향 |
|---|---|---|---|
| 패킷 크기 | 1518B (jumbo frame 포함) | IMIX (64B:7, 570B:4, 1518B:1) | 소형 패킷 비율 ↑ → PPS 병목, 처리량 30~50% 감소 |
| HTTPS 비율 | 0% (비암호화 HTTP) | 80~90% (실 트래픽) | SSL Inspection 활성 시 처리량 80~95% 감소 |
| 정책 수 | 1~10개 단순 규칙 | 500~5,000개 복합 규칙 | 정책 수 ↑ → 규칙 평가 시간 증가, 10~30% 추가 감소 |
| IPS 시그니처 | 기본 시그니처 세트 | 10,000~50,000개 활성 | 시그니처 수 ↑ → 패턴 매칭 시간 비례 증가 |
| 세션 수 | 소수 대용량 세션 | 수백만 소형 세션 동시 | conntrack 메모리 압박, 해시 충돌, CPS 병목 |
| DLP/파일 검사 | 비활성 | 활성 (대용량 파일 스캔) | 파일 버퍼링으로 지연 급증, 메모리 소모 증가 |
- 데이터시트 수치는 상한선: 실 환경 처리량은 데이터시트의 30~60% 수준이 일반적입니다. SSL Inspection 활성 시 5~20%까지 감소할 수 있습니다
- IMIX 기준 측정: RFC 9411의 IMIX(Internet Mix) 프로파일로 측정한 수치가 실 환경에 가장 가깝습니다
- SSL Inspection은 반드시 별도 측정: TLS 1.2 RSA-2048, TLS 1.3 ECDHE P-256, 혼합 비율별 CPS와 처리량을 각각 측정합니다
- 장기 안정성 테스트: 1시간 이상 지속 부하를 주어 메모리 누수, 세션 테이블 포화, CPU 서멀 스로틀링 등을 확인합니다
- 벤치마크 도구: Cisco TRex (DPDK 기반 트래픽 생성기), BreakingPoint, Keysight CyPerf가 RFC 9411 호환 테스트를 지원합니다
참고자료
벤더 기술 문서
- Fortinet: NP7 acceleration — NP7 fast path, hyperscale session/NAT setup, ISF, 200Gbps/NP, 1,200만 세션 설명
- Fortinet: CP9 capabilities — flow-based IPS/Application Control pattern matching, IPsec, SSL/TLS protocol processor 설명
- Fortinet: FortiGate 90G/91G fast path architecture — SOC5(SP5), NP7Lite, CP10, integrated switch fabric 설명
- Fortinet: FortiGate-7000F overview — FIM의 NP7 session-aware load balancing과 FPM의 NP7/CP9 역할
- Fortinet: FortiGate 7121F — 16U 12-slot chassis, 1Tbps fabric backplane, FIM/FPM/SMM 구조
- Fortinet: FortiGate 7121F Data Sheet — FPM-7620F NP7/CP9 성능과 SSL Inspection/NGFW/Threat Protection 수치
- Palo Alto Networks: PA-7500 Series Firewall Overview — MPC, NPC, DPC, SFC 모듈형 chassis 구조와 PAN-OS 11.1 지원
- Palo Alto Networks: PA-7500 NPC — QSFP-DD 400G/100G/40G 포트와 SFP-DD 포트 구성
- Palo Alto Networks: PA-7500 Hardware Firewall Innovations — App-ID 1.5Tbps, L7 Threat Prevention 1.44Tbps, NPC/DPC 최대 구성
- Palo Alto Networks: PA-Series Hardware Architectures — PA-7500 NPC/DPC/MPC/SFC와 FE-400 ASIC 기능 블록 설명
- Palo Alto Networks: Single Pass Parallel Processing Architecture — SP3 single-pass software와 parallel processing hardware 개념
- Palo Alto Networks: SSL Forward Proxy — client-NGFW, NGFW-server 두 TLS 세션으로 복호화·검사·재암호화하는 흐름
- Check Point Quantum Force 29200 — 29200 성능 highlight와 2RU modular platform 설명
- Check Point Quantum Force 29200 Data Sheet — 29200 공식 데이터시트
- Check Point Maestro Hyperscale Network Security — Maestro 175 fabric capacity, threat prevention, port 구성
- Check Point R82: CoreXL — 다중 Firewall kernel instance와 SecureXL instance 병렬 처리
- Check Point: fwaccel stat — SecureXL KPPAK/UPPAK, Acceleration, Cryptography, Accept/NAT Template 상태 확인
- Check Point Maestro: SMO and Policies — Security Group을 단일 Security Gateway처럼 관리하는 SMO 구조
- Juniper: SRX5400/SRX5600/SRX5800 Firewalls Datasheet — SRX5800 3.36Tbps FW, 638Gbps IPS, 699Gbps VPN, SPC/IOC 확장 구조
- Juniper: SRX5800 Firewall System Overview — SCB, SPC, MPC, IOC, Flex IOC 12-slot carrier-class 구조
- Juniper: Express Path Overview — fast-path packet을 SRX firewall SPU 대신 network processor에서 처리하는 구조
- Juniper: Inline IPsec — IPsec 처리를 CPU에서 Packet Forwarding Engine ASIC으로 오프로드하는 구조
- Juniper: SSL Proxy — forward/reverse SSL proxy와 TLS 1.3 secp256r1 key exchange 제한
- Cisco Secure Firewall 4200 Datasheet — multi-threaded Snort 3, crypto acceleration, TLS hardware decryption, 16-node cluster, 400G interface option
- Cisco Secure Firewall Threat Defense Command Reference —
show snort tls-offload와 TLS crypto acceleration 진단 - Cisco: Large flow offloads — prefilter policy와 static flow offload 동작
- Sophos Firewall 21.5: Architecture for offloading — SlowPath, DPI Engine, FastPath, Xstream Flow Processor, PKI/IPsec acceleration과 제한 조건
- Sophos XGS 2U Enterprise and Campus Edge Firewalls — XGS 8500 Firewall/TLS Inspection/IPS/IPsec/NGFW/Threat Protection 성능과 포트 구성
- Sophos Enterprise Firewall: Xstream Architecture — Xstream TLS inspection, DPI Engine, FastPath 개요
- Sophos: XGS 7500 and XGS 8500 announcement — XGS 7500/8500 성능 highlight와 SFOS 19.5 MR1 지원 시점
- NVIDIA MLNX_OFED: Connection Tracking Offload — ConnectX-6/7 CT offload 설정 가이드
- NVIDIA BlueField: TC Flower Offload — BlueField DPU TC flower 규칙 HW offload
- NVIDIA ConnectX-7 Product Brief — ConnectX-7 NIC 사양 및 오프로드 기능
- NVIDIA Crypto Offload — ConnectX-6 Dx/7 IPSec, TLS 하드웨어 암호화 오프로드
- Intel ICE Driver (E810) — E810 eSwitch switchdev 모드 지원 드라이버
- Broadcom SmartNIC — Stingray PS1100R, 하드웨어 방화벽 오프로드
표준/벤치마크
- RFC 9411: Benchmarking Methodology for Network Security Device Performance — NGFW 벤치마크 표준 방법론
- RFC 3511: Benchmarking Methodology for Firewall Performance — 전통 방화벽 벤치마크 (RFC 9411의 기반)
- FortiGate 7000 Series Data Sheet — Fortinet 7081F 사양
- PA-5400 Series Data Sheet — Palo Alto PA-5440 사양
- Check Point Quantum Gateway 모델 비교 — Check Point 28000 시리즈 사양
- NGFW HW 오프로드 — 오프로드 아키텍처 개요
- NGFW 암/복호화 오프로드 — kTLS, IPSec, QAT 심층
- HW 오프로드 인터페이스 레퍼런스 — TC action, switchdev API
- eBPF + P4 NGFW 파이프라인 — 프로그래머블 NGFW