mirror of
https://github.com/qdm12/gluetun.git
synced 2026-05-06 20:10:11 +02:00
hotfix(pmtud): set TCP MSS before changing MTU, and revert to original MTU if TCP MSS route set fails
This commit is contained in:
@@ -195,16 +195,19 @@ func updateToMaxMTU(ctx context.Context, vpnInterface string,
|
|||||||
logger.Infof("setting VPN interface %s MTU to maximum valid MTU %d", vpnInterface, vpnLinkMTU)
|
logger.Infof("setting VPN interface %s MTU to maximum valid MTU %d", vpnInterface, vpnLinkMTU)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = setTCPMSSOnVPNRoute(vpnInterface, vpnLinkMTU, routing, netlinker)
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("setting safe TCP MSS for MTU %d: %w", vpnLinkMTU, err)
|
||||||
|
vpnLinkMTU = originalMTU
|
||||||
|
logger.Infof("reverting VPN interface %s MTU to %d (due to: %s)",
|
||||||
|
vpnInterface, originalMTU, err)
|
||||||
|
}
|
||||||
|
|
||||||
err = netlinker.LinkSetMTU(link.Index, vpnLinkMTU)
|
err = netlinker.LinkSetMTU(link.Index, vpnLinkMTU)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("setting VPN interface %s MTU to %d: %w", vpnInterface, vpnLinkMTU, err)
|
return fmt.Errorf("setting VPN interface %s MTU to %d: %w", vpnInterface, vpnLinkMTU, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = setTCPMSSOnVPNRoute(vpnInterface, vpnLinkMTU, routing, netlinker)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("setting safe TCP MSS for MTU %d: %w", vpnLinkMTU, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user