English

bpftool — eBPF 프로그램·맵 관리

Linux / 장애 진단 및 복구 / bpftool.html

장애 진단 및 복구원문등록 2026-10-18T22:00:00+09:00

💬 "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)
RHELsudo dnf install bpftool
소스 빌드github.com/libbpf/bpftool
확인bpftool version

설치 확인은 bpftool --version으로 합니다.

자주 쓰는 옵션

옵션설명
bpftool prog list실행 중 eBPF 프로그램 목록
bpftool prog show <id>특정 프로그램 상세
bpftool map listeBPF 맵 목록
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 프로그램 부착 상태를 확인한 결과입니다.

bpftool 명령어 실행 결과

실제 운영 중인 서버

실무에서는 이렇게 씁니다

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 명령어 실행 결과 2

실제 운영 중인 서버

주의할 점

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