eBPF 기초와 실무 활용
목차
실습 환경 설정
필수 환경
환경 설정
1. eBPF 소개
1.1 eBPF란 무엇인가?
1.2 전통적인 BPF에서 eBPF로의 진화
특성
전통적 BPF
eBPF
1.3 eBPF가 혁신적인 이유
1.4 eBPF vs 커널 모듈 비교
측면
eBPF
커널 모듈
2. eBPF 아키텍처
2.1 eBPF 실행 흐름
2.2 검증기 (Verifier)
2.3 JIT 컴파일러
2.4 eBPF 맵 (Maps)
맵 유형
설명
사용 사례
2.5 헬퍼 함수 (Helper Functions)
2.6 프로그램 라이프사이클
3. eBPF 프로그램 유형
3.1 XDP (eXpress Data Path)
모드
설명
성능
3.2 TC (Traffic Control)
특성
XDP
TC
3.3 Kprobes/Uprobes
3.4 Tracepoints
3.5 LSM (Linux Security Module) BPF
3.6 Socket Filter
3.7 Cgroup 프로그램
4. eBPF 개발 도구
4.1 bpftool
4.2 bpftrace
4.3 BCC (BPF Compiler Collection)
도구
설명
4.4 libbpf와 CO-RE
5. eBPF와 Kubernetes 네트워킹
5.1 Cilium: eBPF 기반 CNI
kube-proxy 대체
네트워크 정책
로드 밸런싱
5.2 Calico eBPF 모드
5.3 성능 비교: iptables vs eBPF
측면
iptables
eBPF
6. eBPF 기반 관찰성 (Observability)
6.1 Hubble: Cilium 네트워크 관찰성
6.2 Pixie: 자동 계측 관찰성
6.3 Coroot: "No-Code" 모니터링
6.4 Kepler: 에너지 소비 모니터링
6.5 기존 에이전트 vs eBPF 계측 비교
측면
기존 에이전트
eBPF 계측
7. eBPF 기반 보안
7.1 Tetragon: 런타임 보안
7.2 Falco: eBPF 기반 이상 탐지
7.3 seccomp-bpf: 시스템 콜 필터링
7.4 LSM BPF: 동적 보안 정책
8. eBPF 실전 활용 예제
8.1 bpftrace로 시스템 성능 분석하기
8.2 Cilium Hubble로 네트워크 흐름 관찰
8.3 Tetragon으로 프로세스 보안 모니터링
8.4 eBPF를 사용한 지연 시간 분석
9. eBPF 제한 사항과 주의점
9.1 기술적 제한 사항
제한 사항
값
설명
9.2 루프 제한
9.3 커널 버전 호환성
기능
최소 커널 버전
9.4 디버깅의 어려움
9.5 권한 요구사항
권한
용도
9.6 보안 고려사항
10. 다음 단계
10.1 관련 퀴즈
10.2 심화 학습 자료
10.3 관련 문서
주제
문서 링크
설명
10.4 실습 체크리스트
요약
마지막 업데이트