hotfix(pmtud): set TCP MSS before changing MTU, and revert to original MTU if TCP MSS route set fails

This commit is contained in:
Quentin McGaw
2026-03-05 16:53:26 +00:00
parent 48317a0d55
commit c2c9504e94
+8 -5
View File
@@ -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
} }