Learning
토픽 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, 고속 패킷 처리