zerotier / ZeroTierOne

A Smart Ethernet Switch for Earth
https://zerotier.com
Other
13.85k stars 1.61k forks source link

MTU issue with some mobile operators #2284

Open giobatta opened 2 months ago

giobatta commented 2 months ago

Hello, with some mobile operators, it seems that lowering the MTU to 1280 (the min allowed) still causes huge packet loss for inbound packets. Lowering the MTU lower than 1280 is not allowed (if you do, zerotier central sets it to 1280). No issue if the connection is made via cable. Would it be possibile to allow lower MTUs ?

glimberg commented 2 months ago

Per RFC 2460, "IPv6 requires that every link in the internet have an MTU of 1280 octets or greater." Hence the reason for the lower limit. ZeroTier supports IPv6 networks and as such, cannot lower the MTU lower than 1280.

giobatta commented 2 months ago

So if the mobile operator is using IPv4, these operators are unusable ? Or might the packet loss be due to other reasons ? It occurs only one way. Both devices have direct (not relayed) connection. Of course mobile operator itself has no packet loss and signal is strong.

glimberg commented 2 months ago

Packet loss could be due to other reasons, but I can't tell you what they are from where I sit.

giobatta commented 2 months ago

Issue is many mobile operators use private IPv4 networks with no IPv6 and then they nat outbound after many hops. Due to the technologies they use (radio bridges) often the max MTU is lower and zerotier becomes unusable...

ShadowX117 commented 3 weeks ago

Hello, with some mobile operators, it seems that lowering the MTU to 1280 (the min allowed) still causes huge packet loss for inbound packets. Lowering the MTU lower than 1280 is not allowed (if you do, zerotier central sets it to 1280). No issue if the connection is made via cable. Would it be possibile to allow lower MTUs ?

Are you using Windows? Because the mtu fails to set correctly on windows regardless of the mtu setting of the ZeroTier Network. You have to force set the mtu of the ZeroTier adapter to match the mtu of the ZeroTier network. e.g. netsh interface ipv4 set interface "ZeroTier One [NET-ID]" mtu=1388