Protocol Detection: A Deep Dive into How Linkerd Achieves Zero-Config

July 20, 2022

Zero-config is one of Linkerd's claims to fame: for (most) Kubernetes apps, adding Linkerd doesn't require user config, even if the app uses arbitrary TCP protocols which Linkerd must proxy in a fully transparent manner. The use of protocol detection automatically determines the protocol based on the data on the connection. Linkerd maintainer Kevin Leimkuhler will describe the mechanics of how Linkerd's protocol detection works, covering the strengths and weaknesses of the current implementation, including so-called server-speaks-first protocols and why they need to be handled differently. He'll also cover how the implementation has evolved over the years as Linkerd adoption has grown to encompass even more types of applications and protocols, including the introduction of "skip ports" and "opaque ports". Finally, attendees will learn how opaque ports are implemented in the proxy using ALPN, and how Linkerd is still able to provide mTLS and golden metrics for this type of traffic.