You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The leaf cluster should successfully reconnect to the root cluster after root proxy listener mode is changed to multiplex. The connection should be maintained consistently across root proxy restarts, utilizing the correct protocols as configured.
Turning multiplexing on will not affect existing connections of trusted clusters, reverse tunnel agents and tsh/ssh clients. As long as the legacy listeners are enabled (see step 7 below), all clients will keep connecting in the backwards compatibility mode until restarted or relogged in/reconfigured in case of tsh/ssh as described below.
Current Behavior
After switching the root cluster's proxy listener mode from separate to multiplex, the leaf cluster can no longer connect. Once the root proxy pods are restarted, the leaf cluster fails to reconnect. The packet capture indicates the leaf proxy sends a TLS client handshake with an ALPN value of teleport-reversetunnel, but the root proxy may not be accepting this when it should.
Bug Details
Teleport Version
Customer original reported with a recent 15.x version.
Reproduced in version 16.4.8
Recreation Steps
Deploy a root cluster with proxy_listener_mode set to separate.
Deploy a leaf cluster and configure it to join the root cluster.
Verify successful connection and functionality between root and leaf clusters.
Change root cluster's proxy_listener_mode to multiplex.
Confirm that the leaf cluster reconnects successfully upon deployment completion.
At this point, the leaf should join successfully and tctl get rc on the root cluster should show the same.
At this point, the migration to TLS multiplexing can start. The root cluster values file is updated. Instead of setting the entire chart mode to multiplex, an override in the teleportConfig section preserves the separate listeners, but still activates TLS multiplexing.
The root proxy pods will not be updated during this change. The leaf clusters seem to stay connected during this step. I initially thought that this was a failure to reproduce the reported symptom. Once the root proxy pods are restarted, however, the issue is triggered. Leaf clusters are not able to establish a connection.
Once the trusted_cluster object is re-created, the leaf cluster successfully rejoins. For a root cluster that has dozens or hundreds of leaf clusters, this loss of intermediate migration in functionality poses a problem. The graceful migration path should keep working until each leaf cluster can be updated to use the multiplexed port.
Debug Logs
root cluster:
{"caller":"alpnproxy/proxy.go:335","component":"alpn:proxy","level":"warning","message":"Failed to handle client connection: failed to find ALPN handler based on received client supported protocols [\"teleport-reversetunnel\"]","timestamp":"2024-11-22T23:02:57Z"}
leaf cluster:
{"caller":"reversetunnel/agentpool.go:279","component":"proxy:agent","error":"EOF","level":"debug","message":"Failed to connect agent.","timestamp":"2024-11-22T23:03:04Z","trace.fields":{"localCluster":"folio.example.com","targetCluster":"rhiza.example.com"}}
The text was updated successfully, but these errors were encountered:
Expected Behavior
The leaf cluster should successfully reconnect to the root cluster after root proxy listener mode is changed to
multiplex
. The connection should be maintained consistently across root proxy restarts, utilizing the correct protocols as configured.When migrating from separate listeners to TLS Multiplexing, the migration guide in the docs says:
Current Behavior
After switching the root cluster's proxy listener mode from
separate
tomultiplex
, the leaf cluster can no longer connect. Once the root proxy pods are restarted, the leaf cluster fails to reconnect. The packet capture indicates the leaf proxy sends a TLS client handshake with an ALPN value ofteleport-reversetunnel
, but the root proxy may not be accepting this when it should.Bug Details
Teleport Version
Recreation Steps
proxy_listener_mode
set toseparate
.proxy_listener_mode
tomultiplex
.Expand for more detailed repro steps
Root cluster helm values:
leaf cluster values:
Once the root cluster was up, I created a user account and assigned myself to access, auditor, editor.
I created this token on the root:
on the leaf I created this trusted_cluster object:
At this point, the leaf should join successfully and
tctl get rc
on the root cluster should show the same.At this point, the migration to TLS multiplexing can start. The root cluster values file is updated. Instead of setting the entire chart mode to
multiplex
, an override in theteleportConfig
section preserves the separate listeners, but still activates TLS multiplexing.The root proxy pods will not be updated during this change. The leaf clusters seem to stay connected during this step. I initially thought that this was a failure to reproduce the reported symptom. Once the root proxy pods are restarted, however, the issue is triggered. Leaf clusters are not able to establish a connection.
Once the
trusted_cluster
object is re-created, the leaf cluster successfully rejoins. For a root cluster that has dozens or hundreds of leaf clusters, this loss of intermediate migration in functionality poses a problem. The graceful migration path should keep working until each leaf cluster can be updated to use the multiplexed port.Debug Logs
root cluster:
leaf cluster:
The text was updated successfully, but these errors were encountered: