TCP Proxying and Protocol Detection
Linkerd performs protocol detection to determine whether traffic is HTTP orHTTP/2 (including gRPC). If Linkerd detects that a connection is using HTTP orHTTP/2, Linkerd will automatically provide HTTP-level metrics and routingwithout configuration from the user. (SeeHTTP, HTTP/2, and gRPC Proxying for more.)
In some cases Linkerd’s protocol detection requires configuration. Currently,this is required for unencrypted “server-speaks-first” protocols, or protocolswhere the server sends data before the client sends data. In these cases,Linkerd cannot automatically recognize the protocol used on the connection.(Note that TLS-enabled connections work as normal, because TLS itself is aclient-speaks-first protocol.)
- 3306 - MySQL
- 8086 - InfluxDB
- 27017 - MongoDBIf you’re working with a protocol that can’t be automatically recognized byLinkerd, use the and flags whenrunning .
For example, if your application makes requests to a MySQL database running onport 4406, use the command:
Plaintext MySQL and SMTP
For MySQL and SMTP, if you are using Linkerd to proxy plaintext connections ontheir default ports (3306 and 25, respectively), then Linkerd will currentlyidentify these protocols based on the port, and will not attempt to performprotocol detection. Thus, no extra configuration is necessary for plaintextMySQL and SMTP connections.