커널 안에 L7 방화벽을 넣었다: XDP에서 200나노초 만에 HTTP/2 판정

We Put an L7 Firewall in the Kernel

커널 안에 L7 방화벽을 넣었다: XDP에서 200나노초 만에 HTTP/2 판정

Jason Evans와 팀은 eBPF를 이용해 커널(XDP)에서 HTTP/2 헤더를 검사하는 L7 방화벽을 구축했다. 정책은 JavaScript 앱으로 작성하며, Aho-Corasick DFA를 사용해 단일 패스로 수천 개의 패턴을 매칭한다. 판정 시간은 p50 기준 200나노초 미만으로, 시스템 콜보다 빠르며 코어당 초당 약 500만 건의 결정을 처리한다. 사용자 공간 프록시와 달리 패킷이 네트워크 스택에 들어가기 전에 차단되어 가장 저렴한 드롭을 실현한다. 또한 HPACK 동적 테이블을 추적하여 HTTP/2 압축 헤더도 정확히 검사한다. 이 방화벽은 이미 실제 엔터프라이즈 트래픽 앞에서 운영 중이다.

이 방화벽의 p50 판정 시간은 DRAM에서 두 번 읽는 것과 거의 같고, 단일 시스템 콜보다도 짧다.

이 날의 다른 글

2026-07-13