eBPF Superpowers
Raphaël Pinson | @raphink | @raphink@mastodon.social
A dynamic Kernel
Solutions Architect, Isovalent
⬢ What is eBPF?
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
⬢ The Future
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
⬢ The Future
⬢ Practical Labs
eBPF Superpowers
A dynamic Kernel
The Linux Kernel
The Power Behind Modern Technology
- From cars to servers to fridges
- Foundation of the GNU/Linux operating system
- Most widely used operating system in the world
- Powers the vast majority of:
- embedded systems / IoT
- Cloud Server
- Super Computers
@raphink | @raphink@mastodon.social
Before
@raphink | @raphink@mastodon.social
With
@raphink | @raphink@mastodon.social
Have you used eBPF?
eBPF is already used in many places
- Load balancing
- DDOS protection on large Internet platforms
- Kernel live-patching (5.7+ with LSM/eBPF)
- Android (e.g. app data stats)
@raphink | @raphink@mastodon.social
Who am I
Raphaël Pinson
Solutions Architect @ Isovalent
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
⬢ The Future
⬢ Practical Labs
eBPF Superpowers
A dynamic Kernel
Makes the Linux kernel
programmable in a
secure and efficient way.
“What JavaScript is to the
browser, eBPF is to the
Linux Kernel”
@raphink | @raphink@mastodon.social
@raphink | @raphink@mastodon.social
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
⬢ The Future
⬢ Practical Labs
How does it work?
@raphink | @raphink@mastodon.social
How does it work?
@raphink | @raphink@mastodon.social
How does it work?
@raphink | @raphink@mastodon.social
How does it work?
@raphink | @raphink@mastodon.social
How does it work?
@raphink | @raphink@mastodon.social
How does it work?
@raphink | @raphink@mastodon.social
How does it work?
@raphink | @raphink@mastodon.social
How does it work?
@raphink | @raphink@mastodon.social
eBPF Helpers
@raphink | @raphink@mastodon.social
Stacks & hooks
@raphink | @raphink@mastodon.social
BPF / user-space communication
@raphink | @raphink@mastodon.social
SDK (cilium/ebpf)
@raphink | @raphink@mastodon.social
SDK (cilium/ebpf)
@raphink | @raphink@mastodon.social
SDK (cilium/ebpf)
@raphink | @raphink@mastodon.social
SDK (cilium/ebpf)
@raphink | @raphink@mastodon.social
Safety
@raphink | @raphink@mastodon.social
Performance
@raphink | @raphink@mastodon.social
@raphink | @raphink@mastodon.social
Cloud Native Identities
eBPF Projects & SDKs
@raphink | @raphink@mastodon.social
Cilium & Friends
- performance gains
(no need for iptables, bypass TCP/IP)
- simpler architecture
(e.g. no sidecar proxy for Service Mesh)
Cilium
@raphink | @raphink@mastodon.social
Cilium & Friends
Hubble
- fine-grained network observability
- exports to SIEM
- support for OpenTelemetry
- performance gains
(no need for iptables, bypass TCP/IP)
- simpler architecture
(e.g. no sidecar proxy for Service Mesh)
Cilium
@raphink | @raphink@mastodon.social
Cilium & Friends
Tetragon
- observe & export kernel events
- act on events (e.g. SIGKILL)
- performance gains
(no need for iptables, bypass TCP/IP)
- simpler architecture
(e.g. no sidecar proxy for Service Mesh)
Cilium
Hubble
- fine-grained network observability
- exports to SIEM
- support for OpenTelemetry
@raphink | @raphink@mastodon.social
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
⬢ The Future
⬢ Practical Labs
Observability
Observe directly in the kernel
- Low-overhead tracing/observability
- Example: network performance / SRTT / micro-bursts
- HTTP / TLS in-kernel visibility
- Troubleshooting prod on the fly (see bpftrace)
@raphink | @raphink@mastodon.social
Observability
Example software
- BCC
- bpftrace
- Pixie
- Cilium (network)
- Cilium Tetragon (system)
@raphink | @raphink@mastodon.social
Observe directly in the kernel
- Low-overhead tracing/observability
- Example: network performance / SRTT / micro-bursts
- HTTP / TLS in-kernel visibility
- Troubleshooting prod on the fly (see bpftrace)
Observability: bpftrace
@raphink | @raphink@mastodon.social
Observability: Hubble (CLI)
@raphink | @raphink@mastodon.social
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
tiefighter 1/1 Running 0 2m34s
xwing 1/1 Running 0 2m34s
deathstar-5b7489bc84-crlxh 1/1 Running 0 2m34s
deathstar-5b7489bc84-j7qwq 1/1 Running 0 2m34s
$ hubble observe --follow -l class=xwing
# DNS lookup to coredns
default/xwing:41391 (ID:16092) -> kube-system/coredns-66bff467f8-28dgp:53 (ID:453) to-proxy FORWARDED (UDP)
kube-system/coredns-66bff467f8-28dgp:53 (ID:453) -> default/xwing:41391 (ID:16092) to-endpoint FORWARDED (UDP)
# ...
# Successful HTTPS request to www.disney.com
default/xwing:37836 (ID:16092) -> www.disney.com:443 (world) to-stack FORWARDED (TCP Flags: SYN)
www.disney.com:443 (world) -> default/xwing:37836 (ID:16092) to-endpoint FORWARDED (TCP Flags: SYN, ACK)
www.disney.com:443 (world) -> default/xwing:37836 (ID:16092) to-endpoint FORWARDED (TCP Flags: ACK, FIN)
default/xwing:37836 (ID:16092) -> www.disney.com:443 (world) to-stack FORWARDED (TCP Flags: RST)
# ...
# Blocked HTTP request to deathstar backend
default/xwing:49610 (ID:16092) -> default/deathstar:80 (ID:16081) Policy denied DROPPED (TCP Flags: SYN)
Observability: Hubble (UI)
@raphink | @raphink@mastodon.social
Observability: Cilium + Grafana ❤️
@raphink | @raphink@mastodon.social
Observability: Network Metrics (Hubble)
@raphink | @raphink@mastodon.social
Observability: HTTP Metrics (Hubble)
@raphink | @raphink@mastodon.social
Observability: Network Policy Verdicts
@raphink | @raphink@mastodon.social
Observability: TLS (Tetragon)
@raphink | @raphink@mastodon.social
Observability: Combined Network & Runtime
@raphink | @raphink@mastodon.social
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
⬢ The Future
⬢ Practical Labs
Networking
Bypass native kernel network stack:
- eXpress Data Path (XDP)
- TCP improvements (bandwidth manager, BBR, Big TCP)
- NAT64/NAT46
- Performant load-balancing algorithms (Maglev)
- Network Policies
- Cluster Mesh
- Egress Gateway
- Sidecar-free service mesh
- etc.
@raphink | @raphink@mastodon.social
Networking: XDP
Drop packets before they reach the kernel
- E.g. packet of death, DDOS
- XDP allows to drop packets before
they reach the kernel routing stack
@raphink | @raphink@mastodon.social
Networking: XDP
Efficient Cloud Native LB
- E.g. Socket Load Balancer
@raphink | @raphink@mastodon.social
Drop packets before they reach the kernel
- E.g. packet of death, DDOS
- XDP allows to drop packets before
they reach the kernel routing stack
Networking: IPtables vs eBPF
kube-proxy / iptables
- Linear list / sieve
- All rules have to be replaced as a whole
eBPF based
- Per-CPU hash table ⇒ more performant
- Native metadata (e.g. Pod labels) ⇒ Cloud Native routing
🏆
@raphink | @raphink@mastodon.social
Networking: BBR (TCP Congestion)
@raphink | @raphink@mastodon.social https://isovalent.com/blog/post/accelerate-network-performance-with-cilium-bbr/
Networking: NAT46/NAT64
IPv6 / IPv4 bridge
DNS64
NAT64
[64:ff9b::<z>] -> [<z>]
IPv6 Single Stack
K8s cluster
bar.com
A 4.3.2.1
DNS
bar.com
AAAA 64:ff9b::4.3.2.1
SYN 64:ff9b::4.3.2.1
IPv4 / Internet
SYN 4.3.2.1
ext. node
(Dual Stack)
https://www.youtube.com/watch?v=Kvdh78TURck
@raphink | @raphink@mastodon.social
Networking: BIG TCP
https://www.youtube.com/watch?v=Kvdh78TURck
Back to back: AMD Ryzen 9 3950X @ 3.5 GHz, 128G RAM @ 3.2 GHz, PCIe 4.0, ConnectX-6 Dx, mlx5 driver
netperf -t TCP_RR -H <remote pod> -- -r 80000,80000 -O MIN_LATENCY,P90_LATENCY,P99_LATENCY,THROUGHPUT
2.2x lower p99 latency
@raphink | @raphink@mastodon.social
Networking: Sidecar-free Service Mesh
@raphink | @raphink@mastodon.social
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
⬢ The Future
⬢ Practical Labs
Security
Observe and manipulate kernel events in real time
- Performant and transparent process visibility
- Metadata
- Fix kernel bugs on the fly
- Catch & kill
@raphink | @raphink@mastodon.social
Security Visibility & Enforcement
Traditional approaches
- App instrumentation / LD_PRELOAD ⇒ bypassed by statically linked executables
- ptrace(2) ⇒ TOCTTOU with syscalls
- Existing Kernel Runtime Enforcement ⇒ can benefit from BPF (BPF LSM with kernel 5.7+)
- Kernel module ⇒ stability & maintenance
@raphink | @raphink@mastodon.social
Security Visibility & Enforcement with eBPF
@raphink | @raphink@mastodon.social
Security: Catch & Kill
@raphink | @raphink@mastodon.social
eBPF Superpowers
A dynamic Kernel
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
⬢ The Future
⬢ Practical Labs
To Infinity…
… and beyond 🚀
- Improved device I/O perf with eBPF (XRP)
- Support for 100% of C (in a safe way)
- Cross-platform:
- archs
- compilers (LLVM/gcc)
- platforms (Linux, Windows, etc.)
- Towards a micro-kernel approach?
@raphink | @raphink@mastodon.social
All major cloud providers have picked
-based Networking & Security
for their Kubernetes platforms
@raphink | @raphink@mastodon.social
How about you?
eBPF resources
eCHO
eBPF YouTube podcast:
https://www.youtube.com/channel/UCJFUxkVQTBJh3LD1wYB
WvuQ
eBPF & Cilium Slack
http://slack.cilium.io/
eCHO News
Bi-weekly eBPF newsletter:
https://cilium.io/newsletter/
@raphink | @raphink@mastodon.social
⬢ What is eBPF?
⬢ Principles
⬢ Observability
⬢ Networking
⬢ Security
⬢ The Future
⬢ Practical Labs
eBPF Superpowers
A dynamic Kernel
Practical Labs
… to become a Cilium & eBPF Jedi
📅 Come tomorrow 2023-02-08, 09:00–13:00
🏛️ In room B.2.015
💻 Bring your laptop (web-based labs)
Get badges 🏅 and goodies 👕!
@raphink | @raphink@mastodon.social
Thank you!

More Related Content

PDF
Building Network Functions with eBPF & BCC
PDF
Meet cute-between-ebpf-and-tracing
PDF
BPF - in-kernel virtual machine
PDF
Linux Networking Explained
PDF
Kernel Recipes 2019 - Suricata and XDP
PPTX
Understanding eBPF in a Hurry!
PDF
Using eBPF for High-Performance Networking in Cilium
PDF
eBPF Trace from Kernel to Userspace
Building Network Functions with eBPF & BCC
Meet cute-between-ebpf-and-tracing
BPF - in-kernel virtual machine
Linux Networking Explained
Kernel Recipes 2019 - Suricata and XDP
Understanding eBPF in a Hurry!
Using eBPF for High-Performance Networking in Cilium
eBPF Trace from Kernel to Userspace

What's hot (20)

PDF
BPF: Tracing and more
PDF
EBPF and Linux Networking
PDF
eBPF - Rethinking the Linux Kernel
PDF
Faster packet processing in Linux: XDP
PDF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
PDF
High-Performance Networking Using eBPF, XDP, and io_uring
ODP
eBPF maps 101
PPTX
eBPF Workshop
PDF
Linux kernel tracing
PDF
DoS and DDoS mitigations with eBPF, XDP and DPDK
PPTX
Révolution eBPF - un noyau dynamique
PDF
UM2019 Extended BPF: A New Type of Software
PDF
BPF Internals (eBPF)
PDF
Introduction to eBPF
PDF
Apache Arrow Flight: A New Gold Standard for Data Transport
PDF
Container Performance Analysis
PDF
macvlan and ipvlan
PDF
eBPF Perf Tools 2019
PDF
DevConf 2014 Kernel Networking Walkthrough
PPTX
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
BPF: Tracing and more
EBPF and Linux Networking
eBPF - Rethinking the Linux Kernel
Faster packet processing in Linux: XDP
Linux 4.x Tracing: Performance Analysis with bcc/BPF
High-Performance Networking Using eBPF, XDP, and io_uring
eBPF maps 101
eBPF Workshop
Linux kernel tracing
DoS and DDoS mitigations with eBPF, XDP and DPDK
Révolution eBPF - un noyau dynamique
UM2019 Extended BPF: A New Type of Software
BPF Internals (eBPF)
Introduction to eBPF
Apache Arrow Flight: A New Gold Standard for Data Transport
Container Performance Analysis
macvlan and ipvlan
eBPF Perf Tools 2019
DevConf 2014 Kernel Networking Walkthrough
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Ad

Similar to Cfgmgmtcamp 2023 — eBPF Superpowers (20)

PDF
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
PDF
DevOpsDays Zurich 2023 — Bridging Dev and Ops with eBPF: Extending Observabil...
PPTX
Getting started with IPv6
PDF
Cisco CCNA in 60 Days 2nd Edition Paul William Browning
PDF
IAA Life in Lockdown series: Securing Internet Routing
PPTX
ARIN 34 IPv6 IAB/IETF Activities Report
PDF
Things I wish I had known about IPv6 before I started
PDF
What is Digital Rebar Provision (and how RackN extends)?
PDF
Buildinga billionuserloadbalancer may2015-sre-con15europe-shuff
PPTX
Dan York - Presentation at Emerging Communications Conference & Awards (eComm...
PDF
VYOS & RPKI at the BGP as edge
PDF
IPv4aaS tutorial and hands-on
PDF
How You Will Get Hacked Ten Years from Now
PPTX
Espresso Database Replication with Kafka, Tom Quiggle
PDF
RackN Physical Layer Automation Innovation
PDF
Welcome to the APNIC Member Gathering, Mongolia
PDF
FD.io - The Universal Dataplane
PDF
Tutorial: IPv6-only transition with demo
PDF
Update on IPv6 activity in CERNET2
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
DevOpsDays Zurich 2023 — Bridging Dev and Ops with eBPF: Extending Observabil...
Getting started with IPv6
Cisco CCNA in 60 Days 2nd Edition Paul William Browning
IAA Life in Lockdown series: Securing Internet Routing
ARIN 34 IPv6 IAB/IETF Activities Report
Things I wish I had known about IPv6 before I started
What is Digital Rebar Provision (and how RackN extends)?
Buildinga billionuserloadbalancer may2015-sre-con15europe-shuff
Dan York - Presentation at Emerging Communications Conference & Awards (eComm...
VYOS & RPKI at the BGP as edge
IPv4aaS tutorial and hands-on
How You Will Get Hacked Ten Years from Now
Espresso Database Replication with Kafka, Tom Quiggle
RackN Physical Layer Automation Innovation
Welcome to the APNIC Member Gathering, Mongolia
FD.io - The Universal Dataplane
Tutorial: IPv6-only transition with demo
Update on IPv6 activity in CERNET2
Ad

More from Raphaël PINSON (20)

PDF
Explore the World of Cilium, Tetragon & eBPF
PDF
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
PDF
ContainerDays Hamburg 2023 — Cilium Workshop.pdf
PDF
Cloud Native Bern 05.2023 — Zero Trust Visibility
PDF
Cloud Native Networking & Security with Cilium & eBPF
PDF
2022 DevOpsDays Geneva — The Hare and the Tortoise.pdf
PDF
SKS in git ops mode
PDF
The Hare and the Tortoise: Open Source, Standards & Technological Debt
PDF
Devops stack
PDF
YAML Engineering: why we need a new paradigm
PDF
Container Security: a toolchain for automatic image rebuilds
PDF
K9s - Kubernetes CLI To Manage Your Clusters In Style
PDF
Argocd up and running
PDF
Bivac - Container Volumes Backup
PDF
Automating Puppet Certificates Renewal
PDF
Running the Puppet Stack in Containers
PDF
Automating Puppet Certificates Renewal
PDF
Narcissus — mapping configs in Go
ODP
FTTH Factory — an illustration of the "Everything as Code" paradigm
PDF
Puppet Test Driven Development with Travis CI and Docker
Explore the World of Cilium, Tetragon & eBPF
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
ContainerDays Hamburg 2023 — Cilium Workshop.pdf
Cloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Networking & Security with Cilium & eBPF
2022 DevOpsDays Geneva — The Hare and the Tortoise.pdf
SKS in git ops mode
The Hare and the Tortoise: Open Source, Standards & Technological Debt
Devops stack
YAML Engineering: why we need a new paradigm
Container Security: a toolchain for automatic image rebuilds
K9s - Kubernetes CLI To Manage Your Clusters In Style
Argocd up and running
Bivac - Container Volumes Backup
Automating Puppet Certificates Renewal
Running the Puppet Stack in Containers
Automating Puppet Certificates Renewal
Narcissus — mapping configs in Go
FTTH Factory — an illustration of the "Everything as Code" paradigm
Puppet Test Driven Development with Travis CI and Docker

Recently uploaded (20)

PDF
AI-Powered Fuzz Testing: The Future of QA
PDF
Visual explanation of Dijkstra's Algorithm using Python
PDF
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
PPTX
Cybersecurity: Protecting the Digital World
PDF
AI Guide for Business Growth - Arna Softech
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PDF
E-Commerce Website Development Companyin india
PPTX
Tech Workshop Escape Room Tech Workshop
PPTX
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
PDF
Topaz Photo AI Crack New Download (Latest 2025)
PDF
CCleaner 6.39.11548 Crack 2025 License Key
PDF
DNT Brochure 2025 – ISV Solutions @ D365
PDF
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
PPTX
Airline CRS | Airline CRS Systems | CRS System
PPTX
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
PPTX
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
PDF
novaPDF Pro 11.9.482 Crack + License Key [Latest 2025]
PPTX
Introduction to Windows Operating System
PDF
PDF-XChange Editor Plus 10.7.0.398.0 Crack Free Download Latest 2025
PPTX
Python is a high-level, interpreted programming language
AI-Powered Fuzz Testing: The Future of QA
Visual explanation of Dijkstra's Algorithm using Python
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
Cybersecurity: Protecting the Digital World
AI Guide for Business Growth - Arna Softech
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
E-Commerce Website Development Companyin india
Tech Workshop Escape Room Tech Workshop
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
Topaz Photo AI Crack New Download (Latest 2025)
CCleaner 6.39.11548 Crack 2025 License Key
DNT Brochure 2025 – ISV Solutions @ D365
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
Airline CRS | Airline CRS Systems | CRS System
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
novaPDF Pro 11.9.482 Crack + License Key [Latest 2025]
Introduction to Windows Operating System
PDF-XChange Editor Plus 10.7.0.398.0 Crack Free Download Latest 2025
Python is a high-level, interpreted programming language

Cfgmgmtcamp 2023 — eBPF Superpowers

Editor's Notes

  • #10: Linux is used on tons of devices, with a very wide range of device types and sizes, and usages
  • #11: It’s not uncommon to require adding new features to Linux (esp in Cloud Native: security, networking, etc.). However, sending patches is a very long process, and it might take years before the patches end up in a stable distribution.
  • #53: Cloud Native Identities in eBPF
  • #61: BBR = Bottleneck Bandwidth and Round-trip propagation time vs Cubic algo Google saw up to a staggering 2,700x improvement in throughput in their tests
  • #62: Stateful or stateless e.g. k8s on IPv6 on IPv4 network, or the opposite
  • #63: Overcoming the current 64KB TSO/GRO packet limit size for IPv6 traffic using IPv6 jumbogram extension header Not supported in most Linux kernels
  • #68: TOCTTOU = Time-of-check to time-of-use