Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: MTU testing to find the best MTU #2570

Open
qdm12 opened this issue Nov 7, 2024 · 1 comment · May be fixed by #2586
Open

Feature request: MTU testing to find the best MTU #2570

qdm12 opened this issue Nov 7, 2024 · 1 comment · May be fixed by #2586

Comments

@qdm12
Copy link
Owner

qdm12 commented Nov 7, 2024

What's the feature 🧐

Implement in Go an MTU testing using ICMP packets, starting from a large packet and lowering it until it's no longer fragmented/unreachable.

  • Add a new option VPN_MTU_START=1450 to indicate the starting MTU to test
  • Add a new option VPN_MTU_STEP=30 to indicate the step to add or subtract for the next MTU to test
  • if MTU testing it fast enough, deprecate WIREGUARD_MTU, OPENVPN_MSSFIX and remove default MTU values in Openvpn configurations
  • do we need a large link MTU to send large ICMP packets to test the MTU? If yes, we should hold all traffic (firewall?) until the MTU is found. This would make the implementation complicated.

Extra information and references

  • Created from issue Bug: dns over tls timing out on latest image (TLS handshake) #2533 (comment)
  • High MTU gives a higher bandwidth (less header overhead)
  • Low MTU is more reliable
  • All network links from the VPN client to the VPN server must support the MTU (AFAIK)
  • OpenVPN has the mtu-test option which takes about 3 minutes
  • Wireguard would need its own implementation, so we might as well have the same implementation for both wireguard and openvpn
Copy link
Contributor

github-actions bot commented Nov 7, 2024

@qdm12 is more or less the only maintainer of this project and works on it in his free time.
Please:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant