토픽 110 / 147·네트워크 응용 및 고급 프로토콜
eBPF (Extended Berkeley Packet Filter)
eBPF (Extended Berkeley Packet Filter)
리눅스 커널 내에서 샌드박스화된 프로그램을 실행할 수 있는 기술로, 커널 수정 없이 네트워킹, 보안, 관측성(Observability) 기능을 동적으로 확장하며, XDP(eXpress Data Path)와 결합하여 초고속 패킷 처리 가능
목적: 커널 확장, 고속 패킷 처리, 네트워크 관측성, 보안 모니터링, 시스템 추적
특징: 커널 내 실행, 샌드박스(안전), JIT 컴파일, 다양한 Hook Point, 맵(Map) 기반 데이터 공유
구성요소
- •eBPF 프로그램: C로 작성, LLVM 컴파일, 바이트코드, 커널 로드
- •Verifier: 안전성 검증(무한 루프, 메모리 접근), 로드 전 검사
- •JIT Compiler: 바이트코드→네이티브 코드, 성능 최적화
- •Maps: 키-값 저장소, 커널-사용자 공간 데이터 공유, Hash/Array/Ring Buffer
- •Hook Points: XDP, TC(Traffic Control), Socket, Kprobe, Tracepoint
XDP (eXpress Data Path)
- •NIC 드라이버 레벨에서 패킷 처리, 커널 스택 진입 전
- •액션: XDP_PASS(커널 전달), XDP_DROP(폐기), XDP_TX(송신), XDP_REDIRECT(리다이렉트)
- •성능: 수백만 pps, DPDK에 근접, 커널 내 동작(유지보수 용이)
활용 분야
- •네트워킹: XDP 패킷 필터링, 로드밸런싱(Cilium, Katran), DDoS 방어
- •관측성: 시스템 추적(bpftrace), 성능 분석, 네트워크 모니터링
- •보안: 시스템콜 필터링(Seccomp-BPF), 런타임 보안(Falco, Tetragon)
장점: 커널 수정 불필요, 안전(Verifier), 고성능, 유연한 확장, 다양한 Hook
단점: 학습 곡선, 제한된 명령어, 스택 크기 제한(512B), 디버깅 어려움
적용사례: Cilium(K8s CNI), Katran(Facebook LB), Falco(보안), bpftrace(추적), Cloudflare DDoS
기술요소: XDP, TC, Kprobe, Tracepoint, Maps, Verifier, JIT, bpftrace, libbpf
비교: eBPF/XDP(커널 내/안전/유연) vs DPDK(사용자공간/폴링/최고속) vs 커널모듈(위험/복잡)
연관: XDP, Cilium, 네트워크 관측성, 보안, DPDK, 고속 패킷 처리