Cloud Native 12 min read

How Merbridge Uses eBPF to Accelerate Istio Traffic: A Deep Dive

Merbridge, an open‑source project, replaces Istio’s iptables‑based traffic handling with eBPF sockops and redir, dramatically reducing kernel processing steps, improving latency and QPS, and providing seamless integration without modifying existing Istio configurations.

Efficient Ops
Efficient Ops
Efficient Ops
How Merbridge Uses eBPF to Accelerate Istio Traffic: A Deep Dive

Merbridge Open Source Launch: Network Acceleration Takes a Step Forward

Merbridge is an open‑source project that, with a single command in an Istio cluster, uses eBPF to replace iptables, achieving network acceleration.

Why Replace iptables?

Istio relies on a sidecar proxy and iptables to intercept inbound and outbound traffic. This double interception forces packets to traverse the kernel four times instead of two, causing noticeable performance loss in latency‑sensitive scenarios.

eBPF Emergence and Merbridge Creation

With the rise of eBPF, projects such as Cilium have demonstrated its power for observability and packet processing. DaoCloud engineers leveraged eBPF’s sockops and redir capabilities to replace iptables in Istio, creating the Merbridge project.

One‑Line Installation

kubectl apply -f https://raw.githubusercontent.com/merbridge/merbridge/main/deploy/all-in-one.yaml

Note: Requires Linux kernel 5.7 or newer.

Performance Optimization with eBPF Sockops

eBPF provides the bpf_msg_redirect_hash helper to forward packets directly to the destination socket, bypassing iptables and greatly speeding up kernel processing.

The sock_map stores socket rules; during connection establishment, the original destination address is saved, and a rule (typically a 4‑tuple) is used to look up the appropriate socket.

Implementation Principles

Merbridge mimics iptables’s DNAT behavior using eBPF:

Modify the destination address at connection time (using an eBPF connect program) while preserving the original address in a cookie.

Ensure Envoy can retrieve the original destination via the ORIGINAL_DST mechanism.

For outbound traffic, the eBPF connect program changes the target to 127.x.y.z:15001 and stores the original address in cookie_original_dst. The sockops program records the socket and its 4‑tuple in sock_pair_map and maps the original destination in pair_original_dst. Envoy then calls getsockopt to retrieve the original address, establishing the connection.

During data transmission, the redir program reads the socket from sock_pair_map and uses bpf_msg_redirect_hash to forward packets directly.

Ingress Traffic Handling

Ingress processing mirrors outbound handling, changing the destination to port 15006. Because eBPF operates cluster‑wide, a lightweight control plane (deployed as a DaemonSet) watches all Pods, records the IPs of Pods with injected sidecars in local_pod_ips, and skips processing for non‑Istio Pods to avoid unintended interference.

Same‑Node Acceleration and Feedback Mechanism

When both source and destination Pods reside on the same node, Envoy may mistakenly route traffic to the sidecar port, causing recursion. Merbridge detects this by comparing source and destination IPs in the sockops stage; if they match, the connection is dropped and the process‑IP mapping is recorded in process_ip for subsequent fast‑path checks.

Performance Results

Benchmarks (using wrk) show that replacing iptables with eBPF reduces overall latency and increases QPS significantly.

Project Invitation

Merbridge is an independent early‑stage open‑source project. Contributors are welcome to help improve its components and advance service‑mesh technology.

Project repository: https://github.com/merbridge/merbridge

Community Slack: https://join.slack.com/t/merbridge/shared_invite/...

Illustrative Diagrams

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

eBPFIstioService MeshNetwork Acceleration
Efficient Ops
Written by

Efficient Ops

This public account is maintained by Xiaotianguo and friends, regularly publishing widely-read original technical articles. We focus on operations transformation and accompany you throughout your operations career, growing together happily.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.