bpftool — eBPF 프로그램·맵 관리
Linux / 장애 진단 및 복구 / bpftool.html
💬 "bpftool 명령어"
bpftool는 eBPF 프로그램·맵 관리 eBPF 프로그램·맵·링크를 조회·관리합니다. bpftrace의 실행 결과를 더 깊이 분석할 때 씁니다.
실행 중인 eBPF 프로그램 목록·상세를 조회합니다. eBPF 맵 내용을 실시간으로 덤프합니다.
- 개념: 실행 중인 eBPF 프로그램 목록·상세를 조회합니다.
- 주요 기능: eBPF 맵 내용을 실시간으로 덤프합니다.
- 장점: 네트워크 인터페이스별 XDP/TC 프로그램을 확인합니다.
- 활용: 커널 BTF(BPF Type Format)를 탐색합니다.
설치 및 다운로드
bpftool는 패키지 매니저 또는 공식 스크립트로 설치합니다.
| 환경 | 명령 |
|---|---|
| linux-tools 내장 | sudo apt install linux-tools-$(uname -r) |
| RHEL | sudo dnf install bpftool |
| 소스 빌드 | github.com/libbpf/bpftool |
| 확인 | bpftool version |
설치 확인은 bpftool --version으로 합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
bpftool prog list | 실행 중 eBPF 프로그램 목록 |
bpftool prog show <id> | 특정 프로그램 상세 |
bpftool map list | eBPF 맵 목록 |
bpftool map dump <id> | 맵 내용 덤프 |
bpftool net show | 인터페이스별 BPF 프로그램 |
필수 명령어 조합 3가지
bpftool prog list— 실행 중 eBPF 프로그램 확인bpftool map dump name my_map— 특정 맵 내용 확인bpftool net show— XDP/TC 프로그램 부착 인터페이스 확인
💬 "실제 서버에서 bpftool를 사용하는 예시를 보여줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 설치 확인
설치 여부를 확인합니다.
bpftool version || sudo apt install -y linux-tools-$(uname -r)
2단계 · 프로그램 목록
실행 중 eBPF 프로그램을 확인합니다.
sudo bpftool prog list
3단계 · 맵 조회
eBPF 맵 내용을 확인합니다.
sudo bpftool map list
실제 실행 화면
bpftool로 XDP 프로그램 부착 상태를 확인한 결과입니다.

실제 운영 중인 서버
실무에서는 이렇게 씁니다
1. XDP 프로그램 확인
상황 — XDP 필터가 제대로 붙어 있는지 확인합니다.
sudo bpftool net show
결과 — eth0에 prog_xdp_filter가 보입니다.
포인트 — XDP 프로그램의 부착 상태를 직접 확인합니다.
2. 맵 내용 조회
상황 — 동적으로 관리되는 IP 화이트리스트를 확인합니다.
sudo bpftool map dump name blocklist
결과 — 등록된 IP 목록이 출력됩니다.
포인트 — 커널과 유저스페이스 사이의 데이터 동기화를 검증합니다.
실제 실행 화면
bpftool map dump로 맵 내용을 조회한 결과입니다.

실제 운영 중인 서버
주의할 점
- bpftool은 루트 권한이 필요합니다. 맵 덤프는 민감한 연결 정보를 포함할 수 있습니다.
- 커널 버전에 따라 출력 형식이 조금씩 다릅니다. 최신 bpftool을 쓰는 것이 좋습니다.
- bpftrace로 만든 프로그램은 exit 시 정리됩니다. bpftool로 보려면 bpftrace 실행 중에 조회합니다.