warning tmml: POD_IP:8080 -> F5_IP:52097: Connection error: ssl_null_parse: alert invalid record type
warning tmml: SSL Handshake failed for TCP POD_IP:8080 -> F5_IP:52097
The F5 should not initiate an SSL handshake for POD_IP:8080 (HTTP).
Solution Proposed
Update the configuration to allow persistent connections across multiple services within the same VirtualServer that combines both SSL and HTTP pools.
Modify the iRules or LTM traffic policies to manage SSL enablement/disablement at the HTTP request level.
Review and adjust the current configuration to allow switching between different pools while reusing the persistent connection.
Alternatives
A temporary solution is to use the Connection: close header to force a new connection for each request. However, this negatively impacts performance and increases response times.
Title
Persistent connection issue with SSL and HTTP pools in a VirtualServer Hostgroup
Setup Details
Description
We have multiple Kubernetes services published within a VirtualServer "Hostgroup":
https://[url1.com]/task-service
-> POD IP for task-service (8080: HTTP)https://[url1.com]/image-service
-> POD IP for image-service (80: HTTP)https://[url2.com]/
-> POD IP for Grafana (443: SSL)We want to enable the reuse of the client <==> F5 connection (Connection: keep-alive header) even when requests are directed to differents pools.
additional information: One Connect enabled on the Virtual Server
Actual Problem
When making a second request to another service, we receive an RST (connection reset), despite using the
Connection: keep-alive
header.https://[url1.com]/task-service
: 200 OKhttps://[url1.com]/image-service
: RST (connection reset)This issue only occurs when another rule is configured with an active SSL context pointing to a pool within the VirtualServer Hostgroup:
https://[url2.com]/
-> F5 ->https://[POD_IP]:443/
ltm.log
The F5 should not initiate an SSL handshake for
POD_IP:8080
(HTTP).Solution Proposed
Alternatives
A temporary solution is to use the
Connection: close
header to force a new connection for each request. However, this negatively impacts performance and increases response times.