SlideShare a Scribd company logo
[Unfinished Draft] Fast Prototyping with DPDK &
eBPF in Containernet
July 18, 2018
Containernet
• Containernet is a fork of the mininet project, which supports using Docker containers as hosts in
emulated networks.
- https://containernet.github.io/
• How does it work?
- Uses network namespaces to simulate multiple networking stacks (i.e., hosts) in a single machine
- Uses veth to connect hosts
- Written mostly in Python that wraps all the network namespace and veth setup and configuration
- Exports an API that can be used to create a network on the fly
- Supports executing commands in the individual hosts
• In a nutshell:
- Containernet creates a virtual network on which we can deploy our applications
- Easily scalable (think how many containers can run in a host, as opposed to how many same
spec’ed VMs can coexist in a host)
- Access to all hosts in the virtual network
- Ability to change network conditions to trigger failures/testing scenarios
[Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet2
eBPF in Containernet
• eBPF stands for extended Berkely Packet Filter. It allows a user defined program to process
packets inside the kernel without having to stop or recompile the kernel.
• How does it work?
- Linux kernel since 3.15, more features added to later kernel versions
- Small VM inside the kernel that can load and execute compiled code from user space
- Verifier and loop free requirements to guarantee program will finish
- Has multiple helper functions that can actually modify the packets in kernel
- Programs can be attached to multiple points. We will examine 2 points:
- Ingress at a node at XDP (Express Data Path)
- Egress at tc (traffic controller in kernel)
- iovisor/bcc project https://github.com/iovisor/bcc facilitates loading and setup of programs. We will
show how it can be setup to load filters at the 2 points mentioned above
• In a nutshell
- Supports in-kernel packet filtering at a running server without having to modify the kernel
(assuming certain conditions are met)
- Transparent to applications, have access to packets before and after applications have processed
them, so one ideal place where we can apply network function
[Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet3
DPDK & eBPF in Containernet
• DPDK stands for Data Plane Development Kit. It is an open source project managed by the Linux
Foundation and supports fast packet processing via a set of libraries and drivers for NICs.
• How does it work?
- DPDK provides an Environmental Abstraction Layer (EAL) that lets DPDK work in different
hardware and operating systems.
- Devices in the host are released from the kernel and bound directly to the DPDK application via
EAL’s drivers and libraries (there is a kernel module just to initialize the device and assign the PCI
interface only).
- Techniques to improve speed:
- Packets arriving are processed directly by the DPDK app, without going through kernel
processing
- Use of Poll Mode Driver (instead of interrupts)
- …
• In a nutshell:
- Fast packet processing achieves high throughput so we can use commodity hardware to perform
specialized network functions
[Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet4
Fast Prototyping with DPDK & eBPF in Containernet
• DPDK and eBPF are great tools for developing network functions
- DPDK can be used where we want to use commodity hardware to perform specialized network
functions
- eBPF can be used to support functionality needed on application server without disrupting the
host
• Prototyping with the 2 of them require a testbed where to run the functions written
- Multiple VMs on a single server can quickly exhaust the resources in the server
- Lab environment can be slow and/or hard to scale for testing purposes
- Production networks are (understandably) fiercely guarded by network operators to prevent
disruptions
• Containernet is the ideal environment to prototype network functions
- Scales much better than the VM scenario
- DPDK has PMD that supports running applications in Containernet (so we can verify correct
functionality of the functions we write)
- eBPF filters can be deployed in Containernet
- Access to all hosts in the network and most tools needed for debugging (wireshark, tcpdump,
dropwatch on the host, etc)
- Easily verify outcome of the functions written, rewrite fast and re-verify fast
[Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet5
Demo Proposed
• Create a network in Containernet, go through steps of the python script and show how the network
is setup and configured
• Run GoBGP containers and show how routes can be altered (truly emulate a real network)
• Run client DPDK application generating traffic
• Run network function developed in DPDK to forward traffic to application server
• Run eBPF filters in the application server responsible for processing incoming traffic and return
traffic directly to client
[Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet6
[Draft] Fast Prototyping with DPDK and eBPF in Containernet

More Related Content

PDF
Elk for applications on k8s
PPT
Docker Multi Host Networking, Rachit Arora, IBM
PDF
CNTUG x SDN Meetup #33 Talk 1: 從 Cilium 認識 cgroup ebpf - Ruian
PPTX
DockerCon US 2016 - Docker Networking deep dive
PDF
Introduction of eBPF - 時下最夯的Linux Technology
PDF
IP Virtual Server(IPVS) 101
PDF
Driving containerd operations with gRPC
PDF
OSDC 2018 | Hardware-level data-center monitoring with Prometheus by Conrad H...
Elk for applications on k8s
Docker Multi Host Networking, Rachit Arora, IBM
CNTUG x SDN Meetup #33 Talk 1: 從 Cilium 認識 cgroup ebpf - Ruian
DockerCon US 2016 - Docker Networking deep dive
Introduction of eBPF - 時下最夯的Linux Technology
IP Virtual Server(IPVS) 101
Driving containerd operations with gRPC
OSDC 2018 | Hardware-level data-center monitoring with Prometheus by Conrad H...

What's hot (20)

PDF
Load Balancing 101
PDF
OSMC 2021 | Robotmk: You don’t run IT – you deliver services!
PDF
Locking down your Kubernetes cluster with Linkerd
PPTX
DCUS17 : Docker networking deep dive
PDF
faastRuby - Building a FaaS platform with Redis (RedisConf19)
PPTX
Apache Pulsar: A Foundation Backbone for Clever Cloud - Pulsar Virtual Summit...
PPTX
GW Tester
PDF
Is there still room for innovation in container orchestration and scheduling
PPTX
Docker summit : Docker Networking Control-plane & Data-Plane
PPTX
Better Kafka Performance Without Changing Any Code | Simon Ritter, Azul
PDF
iptables and Kubernetes
PDF
Kubernetes networking in AWS
PDF
VPNaaS in Neutron
PDF
Running Legacy Applications with Containers
PDF
Scale Kubernetes to support 50000 services
PPTX
What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021
PDF
Docker 1.12 networking deep dive
PDF
Netty @Apple: Large Scale Deployment/Connectivity
PDF
Serverless Workflow: New approach to Kubernetes service orchestration | DevNa...
Load Balancing 101
OSMC 2021 | Robotmk: You don’t run IT – you deliver services!
Locking down your Kubernetes cluster with Linkerd
DCUS17 : Docker networking deep dive
faastRuby - Building a FaaS platform with Redis (RedisConf19)
Apache Pulsar: A Foundation Backbone for Clever Cloud - Pulsar Virtual Summit...
GW Tester
Is there still room for innovation in container orchestration and scheduling
Docker summit : Docker Networking Control-plane & Data-Plane
Better Kafka Performance Without Changing Any Code | Simon Ritter, Azul
iptables and Kubernetes
Kubernetes networking in AWS
VPNaaS in Neutron
Running Legacy Applications with Containers
Scale Kubernetes to support 50000 services
What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021
Docker 1.12 networking deep dive
Netty @Apple: Large Scale Deployment/Connectivity
Serverless Workflow: New approach to Kubernetes service orchestration | DevNa...
Ad

Similar to [Draft] Fast Prototyping with DPDK and eBPF in Containernet (20)

PDF
LF_DPDK17_DPDK support for new hardware offloads
PDF
DoS and DDoS mitigations with eBPF, XDP and DPDK
PDF
DPDK Support for New HW Offloads
PDF
7 hands on
PDF
Zero-overhead Container Networking with eBPF and Netkit by Liz Rice
PPTX
Dataplane programming with eBPF: architecture and tools
PPTX
Cfgmgmtcamp 2023 — eBPF Superpowers
PDF
SDN Programming with Go
PDF
Cilium - Fast IPv6 Container Networking with BPF and XDP
PDF
ebpf and IO Visor: The What, how, and what next!
PDF
eBPF/XDP
PDF
XDP in Practice: DDoS Mitigation @Cloudflare
PDF
LF_DPDK_Mellanox bifurcated driver model
PDF
Replacing iptables with eBPF in Kubernetes with Cilium
PPTX
High Performance Networking Leveraging the DPDK and Growing Community
PDF
Cilium: Kernel Native Security & DDOS Mitigation for Microservices with BPF
PDF
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
PDF
KubernetesNetworkingAndImplementation-Lecture.pdf
PDF
Calico-eBPF-Dataplane-CNCF-Webinar-Slides.pdf
PPTX
StreamSleuth 100 GbE Network Packet Processing Appliance
LF_DPDK17_DPDK support for new hardware offloads
DoS and DDoS mitigations with eBPF, XDP and DPDK
DPDK Support for New HW Offloads
7 hands on
Zero-overhead Container Networking with eBPF and Netkit by Liz Rice
Dataplane programming with eBPF: architecture and tools
Cfgmgmtcamp 2023 — eBPF Superpowers
SDN Programming with Go
Cilium - Fast IPv6 Container Networking with BPF and XDP
ebpf and IO Visor: The What, how, and what next!
eBPF/XDP
XDP in Practice: DDoS Mitigation @Cloudflare
LF_DPDK_Mellanox bifurcated driver model
Replacing iptables with eBPF in Kubernetes with Cilium
High Performance Networking Leveraging the DPDK and Growing Community
Cilium: Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
KubernetesNetworkingAndImplementation-Lecture.pdf
Calico-eBPF-Dataplane-CNCF-Webinar-Slides.pdf
StreamSleuth 100 GbE Network Packet Processing Appliance
Ad

Recently uploaded (20)

PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
System and Network Administration Chapter 2
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Digital Strategies for Manufacturing Companies
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
medical staffing services at VALiNTRY
VVF-Customer-Presentation2025-Ver1.9.pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Which alternative to Crystal Reports is best for small or large businesses.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
System and Network Administration Chapter 2
Reimagine Home Health with the Power of Agentic AI​
CHAPTER 2 - PM Management and IT Context
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Design an Analysis of Algorithms I-SECS-1021-03
Odoo Companies in India – Driving Business Transformation.pdf
Digital Strategies for Manufacturing Companies
2025 Textile ERP Trends: SAP, Odoo & Oracle
Odoo POS Development Services by CandidRoot Solutions
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
medical staffing services at VALiNTRY

[Draft] Fast Prototyping with DPDK and eBPF in Containernet

  • 1. [Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet July 18, 2018
  • 2. Containernet • Containernet is a fork of the mininet project, which supports using Docker containers as hosts in emulated networks. - https://containernet.github.io/ • How does it work? - Uses network namespaces to simulate multiple networking stacks (i.e., hosts) in a single machine - Uses veth to connect hosts - Written mostly in Python that wraps all the network namespace and veth setup and configuration - Exports an API that can be used to create a network on the fly - Supports executing commands in the individual hosts • In a nutshell: - Containernet creates a virtual network on which we can deploy our applications - Easily scalable (think how many containers can run in a host, as opposed to how many same spec’ed VMs can coexist in a host) - Access to all hosts in the virtual network - Ability to change network conditions to trigger failures/testing scenarios [Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet2
  • 3. eBPF in Containernet • eBPF stands for extended Berkely Packet Filter. It allows a user defined program to process packets inside the kernel without having to stop or recompile the kernel. • How does it work? - Linux kernel since 3.15, more features added to later kernel versions - Small VM inside the kernel that can load and execute compiled code from user space - Verifier and loop free requirements to guarantee program will finish - Has multiple helper functions that can actually modify the packets in kernel - Programs can be attached to multiple points. We will examine 2 points: - Ingress at a node at XDP (Express Data Path) - Egress at tc (traffic controller in kernel) - iovisor/bcc project https://github.com/iovisor/bcc facilitates loading and setup of programs. We will show how it can be setup to load filters at the 2 points mentioned above • In a nutshell - Supports in-kernel packet filtering at a running server without having to modify the kernel (assuming certain conditions are met) - Transparent to applications, have access to packets before and after applications have processed them, so one ideal place where we can apply network function [Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet3
  • 4. DPDK & eBPF in Containernet • DPDK stands for Data Plane Development Kit. It is an open source project managed by the Linux Foundation and supports fast packet processing via a set of libraries and drivers for NICs. • How does it work? - DPDK provides an Environmental Abstraction Layer (EAL) that lets DPDK work in different hardware and operating systems. - Devices in the host are released from the kernel and bound directly to the DPDK application via EAL’s drivers and libraries (there is a kernel module just to initialize the device and assign the PCI interface only). - Techniques to improve speed: - Packets arriving are processed directly by the DPDK app, without going through kernel processing - Use of Poll Mode Driver (instead of interrupts) - … • In a nutshell: - Fast packet processing achieves high throughput so we can use commodity hardware to perform specialized network functions [Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet4
  • 5. Fast Prototyping with DPDK & eBPF in Containernet • DPDK and eBPF are great tools for developing network functions - DPDK can be used where we want to use commodity hardware to perform specialized network functions - eBPF can be used to support functionality needed on application server without disrupting the host • Prototyping with the 2 of them require a testbed where to run the functions written - Multiple VMs on a single server can quickly exhaust the resources in the server - Lab environment can be slow and/or hard to scale for testing purposes - Production networks are (understandably) fiercely guarded by network operators to prevent disruptions • Containernet is the ideal environment to prototype network functions - Scales much better than the VM scenario - DPDK has PMD that supports running applications in Containernet (so we can verify correct functionality of the functions we write) - eBPF filters can be deployed in Containernet - Access to all hosts in the network and most tools needed for debugging (wireshark, tcpdump, dropwatch on the host, etc) - Easily verify outcome of the functions written, rewrite fast and re-verify fast [Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet5
  • 6. Demo Proposed • Create a network in Containernet, go through steps of the python script and show how the network is setup and configured • Run GoBGP containers and show how routes can be altered (truly emulate a real network) • Run client DPDK application generating traffic • Run network function developed in DPDK to forward traffic to application server • Run eBPF filters in the application server responsible for processing incoming traffic and return traffic directly to client [Unfinished Draft] Fast Prototyping with DPDK & eBPF in Containernet6