mirror of
https://github.com/traefik/traefik.git
synced 2025-08-06 22:57:14 +02:00
Disable MPTCP by default
Co-authored-by: Kevin Pollet <pollet.kevin@gmail.com>
This commit is contained in:
parent
27326e6569
commit
b2b4b66b08
@ -703,3 +703,14 @@ and Traefik now keeps them encoded to avoid any ambiguity.
|
|||||||
| `/foo/../bar` | PathPrefix(`/bar`) | Match | Match |
|
| `/foo/../bar` | PathPrefix(`/bar`) | Match | Match |
|
||||||
| `/foo/%2E%2E/bar` | PathPrefix(`/foo`) | Match | No match |
|
| `/foo/%2E%2E/bar` | PathPrefix(`/foo`) | Match | No match |
|
||||||
| `/foo/%2E%2E/bar` | PathPrefix(`/bar`) | No match | Match |
|
| `/foo/%2E%2E/bar` | PathPrefix(`/bar`) | No match | Match |
|
||||||
|
|
||||||
|
## v2.11.28
|
||||||
|
|
||||||
|
### MultiPath TCP
|
||||||
|
|
||||||
|
Since `v2.11.28`, the MultiPath TCP support introduced with `v2.11.26` has been removed.
|
||||||
|
It appears that enabling MPTCP on some platforms can cause Traefik to stop with the following error logs message:
|
||||||
|
|
||||||
|
- `set tcp X.X.X.X:X->X.X.X.X:X: setsockopt: operation not supported`
|
||||||
|
|
||||||
|
However, it can be re-enabled by setting the `multipathtcp` variable in the GODEBUG environment variable, see the related [go documentation](https://go.dev/doc/godebug#go-124).
|
||||||
|
@ -457,7 +457,15 @@ func buildProxyProtocolListener(ctx context.Context, entryPoint *static.EntryPoi
|
|||||||
}
|
}
|
||||||
|
|
||||||
func buildListener(ctx context.Context, entryPoint *static.EntryPoint) (net.Listener, error) {
|
func buildListener(ctx context.Context, entryPoint *static.EntryPoint) (net.Listener, error) {
|
||||||
listener, err := net.Listen("tcp", entryPoint.GetAddress())
|
config := net.ListenConfig{}
|
||||||
|
|
||||||
|
// TODO: Look into configuring keepAlive period through listenConfig instead of our custom tcpKeepAliveListener, to reactivate MultipathTCP?
|
||||||
|
// MultipathTCP is not supported on all platforms, and is notably unsupported in combination with TCP keep-alive.
|
||||||
|
if !strings.Contains(os.Getenv("GODEBUG"), "multipathtcp") {
|
||||||
|
config.SetMultipathTCP(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
listener, err := config.Listen(ctx, "tcp", entryPoint.GetAddress())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error opening listener: %w", err)
|
return nil, fmt.Errorf("error opening listener: %w", err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user