인셔셔RSS 관심 있는 블로그, 뉴스, 기술 정보를 효율적으로 추적하고 읽으세요
원문 읽기 InertiaRSS에서 열기

추천 피드

博客园 - 司徒正美
V
V2EX
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
月光博客
月光博客
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python)
eBPF 기초부터: eBPF 가상 머신부터 자신만의 도구 작성까지 (실제 Cilium 클러스터에서 테스트됨)
Huỳnh Lê Nhấ · 2026-05-24 · via DEV Community

현재, 내가 만든 Kubernetes 클러스터의 한 워커에서 140개의 eBPF 프로그램이 리눅스 커널 안에서 실행 중입니다 — 모든 패킷을 라우팅하고, 장치 접근을 제어하며, 메트릭을 수집합니다. 커널을 재컴파일한 사람은 없습니다. 모듈을 로드한 사람도 없습니다.

그 문장이 바로 내가 eBPF From Scratch을 쓴 전체 이유입니다: 무료의, 22장 시리즈로, 당신을"eBPF 가상 머신이란 무엇인가요" 모든 것을자신의 eBPF 프로그램을 작성하고 로드하는 것까지 — C 언어로 libbpf + CO-RE와 함께, 그리고 Go로 cilium/ebpf와 함께.

👉 무료로 읽으세요 (영어): https://kkloudtarus.net/en/blog/series/ebpf-from-scratch
💻 소스 코드: https://github.com/nghiadaulau/ebpf-from-scratch

무엇이 그것을 다르게 만듭니다

  • 모든 것이 실제 하드웨어에서 테스트됩니다kernel 6.17Cilium 1.19 (kube-proxy 없음, 수백 개의 BPF 프로그램이 살아있음)을 실행하는 Kubernetes 클러스터는 전체 연구실입니다. 어지러운 다이어그램은 없습니다; 실제로 실행 중인 프로그램을 분석합니다.
  • 공식 문서에 근거합니다 — ebpf.io, kernel.org, libbpf, cilium. 주장은 검증되지만, 감성이 아닙니다.
  • 심층 분석이 아닌 표면적인 것 — 우리는 레지스터까지 내려가며, 검증기의 안전 증명, JIT, 맵, 그리고 프로그램이 거치는 정확한 생애주기에 대해 다룹니다.
  • 또한 완전히 이중 언어(영어 + 베트남어)입니다.

빠른 맛보기 — 모든 eBPF 개념은 당신이 보실 수 있는 것입니다는 실제 노드에서:

sudo bpftool prog show id 2871

전체 화면 모드 입력 전체 화면 모드 종료

2871: sched_cls  name tail_no_service_ipv4  tag fe7bcb57c001d434  gpl
    xlated 4920B  jited 2778B  memlock 8192B  map_ids 171,631
    btf_id 758

전체 화면 모드 입력 전체 화면 모드 종료

xlated = 검증기가 수락한 후의 바이트코드. jited = 네이티브 머신 코드. map_ids = 그는 어떻게 상태를 유지하는지. 그것은 eBPF이고 슬라이드에 없음 — 실행 중.

배울 내용 (7 부분, 22 장)

제1부 — 기초

  • eBPF 가상 머신: 레지스터, 명령어 세트, 바이트코드
  • 검증기: 왜 eBPF가 커널을 멈추지 않는가
  • 맵: 메모리와 유저스페이스로의 다리
  • 프로그램 유형과 훅: 어디에 연결하고, 무엇을 볼 수 있는가
  • BTF와 CO-RE: 한 번 컴파일하고 모든 커널에서 실행

제2부 — 추적

  • bpftrace 한 줄로부터 맵, 카운팅 및 히스토그램으로
  • uprobe, USDT, 그리고 호스트에서 파드 검사로

Part III — 실제 도구 작성

  • libbpf + CO-RE: C로 eBPF 도구 직접 작성하기
  • cilium/ebpf: Go에서 eBPF 로드하기

Part IV — 네트워킹

  • XDP: 가장 일찍 패킷 처리하기 — 방화벽 작성
  • tc/sched_cls와 실시간 Cilium 데이터패스 분석
  • tc 프로그램을 직접 작성하는 방법: __sk_buff와 tcx 체인

제 5 부 — 보안

  • LSM BPF: 커널 내에서 보안을 강제 적용
  • seccomp-bpf: 모든 컨테이너에서 시스템 콜 필터링
  • Tetragon 방식: bpf_send_signal

를 통해 관찰에서 강제 적용__JHSNS_SEG_b7f9df4b_60__제 6 부 — 관찰 가능성

  • perf_event를 이용한 CPU 프로파일링 (파이롤 그래프의 기초)
  • CPU 외부 작업 및 스케줄러 지연
  • Hubble 내부: eBPF 이벤트에서 클러스터 전체 네트워크 흐름까지

VII 부분 — 모두 합치기

  • 사례 연구: Cilium의 eBPF 데이터 경로를 통과하는 패킷
  • 결론: connmon 작성, 노드 전체 TCP 연결 모니터

누구에게 적합한가요

백엔드 / 플랫폼 / SRE / 보안 전문가들이 "Cilium이 eBPF로 그것을 한다"는 말을 계속 듣고 실제로 이해하고 싶으며 — 그리고 작성하고 싶은 경우. Linux 명령줄에서 편안하게 작업할 수 있어야 합니다; 나머지 모든 것은 0부터 구축됩니다.


이 중 하나를 읽었다면, 진심으로 피드백을 원합니다 — 무엇이 명확했고, 무엇이 아니었는지. 그리고 유용하다면, ⭐를repo는 많은 도움이 됩니다.

여기서 시작하세요→ https://kkloudtarus.net/en/blog/series/ebpf-from-scratch