Brussels / 3 & 4 February 2024


Load balancing using XDP

eBPF permits to run sandboxed programs in the OS kernel, mainly event-driven. It's used to extend the kernel without recompiling it or use modules. eXpress Data Path (XDP) provides a eBPF-based, high performance, programmable network data path in the Linux kernel. It provides bare metal packet processing at the lowest point in the software stack, which makes it ideal for speed. A XDP program returns an action code to tell the kernel what to do with the packet: XDP_PASS, XDP_DROP (and XDP_ABORTED), XDP_TX (and XDP_REDIRECT).

This talk, after a brief introduction of what XDP is, presents how redirecting packets, using the XDP_TX return code, can be used to implement a load balancer. It shows how using Direct Server Return can increase the throughput and how to use a consistent hashing algorithm to redirect all the packets of a specific connection to the same backend server. Finally, it explores how the load balancer can be deployed directly to backend servers without the need for a dedicated machine, leveraging the Equal-Cost Multi-Path routing. The presentation of a possible network topology to deploy this load balancer using BPG or static routes completes the seminar.


Luca Bassi