mirror of
https://github.com/tailscale/tailscale.git
synced 2025-08-11 21:27:31 +00:00
version/distro,wgengine/router: raise WSL eth0 MTU when too low
WSL has started to set the eth0 default route interface default to 1280 MTU, which is too low to carry 1280 byte packets from tailscale0 once wrapped in WireGuard. The change down to 1280 is very likely smaller than necessary for almost all users. We can not easily determine the ideal MTU, but if all the preconditions match, we raise the MTU to 1360, which is just enough for Tailscale traffic to work. Updates #4833 Updates #7346 Signed-off-by: James Tucker <james@tailscale.com>
This commit is contained in:

committed by
James Tucker

parent
d92ef4c215
commit
7b73c9628d
@@ -32,6 +32,7 @@ const (
|
||||
)
|
||||
|
||||
var distro lazy.SyncValue[Distro]
|
||||
var isWSL lazy.SyncValue[bool]
|
||||
|
||||
// Get returns the current distro, or the empty string if unknown.
|
||||
func Get() Distro {
|
||||
@@ -47,6 +48,15 @@ func Get() Distro {
|
||||
})
|
||||
}
|
||||
|
||||
// IsWSL reports whether we're running in the Windows Subsystem for Linux.
|
||||
func IsWSL() bool {
|
||||
return runtime.GOOS == "linux" && isWSL.Get(func() bool {
|
||||
// We could look for $WSL_INTEROP instead, however that may be missing if
|
||||
// the user has started to use systemd in WSL2.
|
||||
return have("/proc/sys/fs/binfmt_misc/WSLInterop") || have("/mnt/wsl")
|
||||
})
|
||||
}
|
||||
|
||||
func have(file string) bool {
|
||||
_, err := os.Stat(file)
|
||||
return err == nil
|
||||
|
Reference in New Issue
Block a user