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

zerotier windows - not ajusting interface mtu #2294

Open
giobatta opened this issue May 14, 2024 · 7 comments
Open

zerotier windows - not ajusting interface mtu #2294

giobatta opened this issue May 14, 2024 · 7 comments

Comments

@giobatta
Copy link

giobatta commented May 14, 2024

We are experiencing this issue which causes packet loss on Windows

If you change to zerotier MTU to something lower than 2800, the windows client ignores this setting and the windows interface mtu says at 2800; if you query via zerotier-cli get NET_ID mty you get the correct value.
In our case, with windows zerotier client 1.12.2 and also latest version, we get:

zerotier-cli get NET_ID mtu - we get 1388
if we do
netsh interface ipv4 show subinterface
2800 1 2240 58058 ZeroTier One [NET_ID]

So if one of the members is on a mobile network which requires lower mtu, you can ping from mobile to windows, but from windows to mobile you get erratic behaviour.

If we force it via netsh interface ipv4 set interface "ZeroTier One [NET_ID]" mtu=1388 it works fine.

Client should be modified as mobile client: when MTU gets changed on the zerotier network, it gets notified and modifies the Windows interface mtu accordingly.

@laduke
Copy link
Contributor

laduke commented May 14, 2024

Try to leave and re-join the network on the client

@giobatta
Copy link
Author

giobatta commented May 14, 2024

Try to leave and re-join the network on the client

Hello If you mean to go to zerotier UI and do "disconnect" and "reconnect" we did, but did not do anything.
Mobile client (Android) updates it on the fly without even disconnecting/reconnecting, windows does not do it neither automatically nor disconnecting/reconnecting.

As per my point of view, it should

  1. Do it automatically like Android client
  2. The Zerotier central should do it dynamically (if allowed) because when a client roams from a Wifi network to a mobile network which have different phisical interface MTUs (wifi 1500 and our mobile il 1412), traffic gets disrupted unless the zerotier mtu is manually forced as low as possible (1280).
    In my point of view each client joined to a network should periodically report its physical interface MTU and the zerotier central should dynamically change the network MTU to the lowest MTU - 28 bytes, this based on our experience up to now.

@laduke
Copy link
Contributor

laduke commented May 14, 2024

I mean on the client

@giobatta
Copy link
Author

I mean on the client

Yes, on the client: we disconnect and reconnect but MTU remains the same (2800) even if the zerotier central mtu is 1388

@laduke
Copy link
Contributor

laduke commented May 14, 2024

I thought this had been fixed actually. #1804 maybe only linux got fixed.
If you restart the windows zerotier-one system service, that might change the mtu.

The real issue is, users shouldn't need to fuss with the virtual mtu to make it work on mobile carriers

@giobatta
Copy link
Author

giobatta commented May 14, 2024

I thought this had been fixed actually. #1804 maybe only linux got fixed. If you restart the windows zerotier-one system service, that might change the mtu.

The real issue is, users shouldn't need to fuss with the virtual mtu to make it work on mobile carriers

We also rebooted the machine, no way.
I do confirm that with 2800 mtu no traffic flows with most mobile ISP here (we tried the 3 most important operators in Italy).
Only way is to lower Zerotier central MTU down to PHY mobile interface -28
And with some mobile operators we have also to change the secondaryPort to some well known UDP port such as 1194 (OpenVPN) otherwise after some packets their DOS systems block UDP traffic so you can ping from Mobile to Fixed client, but reverse traffic (to Mobile) has huge packet loss.

@giobatta
Copy link
Author

I thought this had been fixed actually. #1804 maybe only linux got fixed. If you restart the windows zerotier-one system service, that might change the mtu.
The real issue is, users shouldn't need to fuss with the virtual mtu to make it work on mobile carriers

We also rebooted the machine, no way. I do confirm that with 2800 mtu no traffic flows with most mobile ISP here (we tried the 3 most important operators in Italy). Only way is to lower Zerotier central MTU down to PHY mobile interface -28 And with some mobile operators we have also to change the secondaryPort to some well known UDP port such as 1194 (OpenVPN) otherwise after some packets their DOS systems block UDP traffic so you can ping from Mobile to Fixed client, but reverse traffic (to Mobile) has huge packet loss.

As per Linux I do confirm that latest version on Ubuntu works fine: change the MTU on Zerotier Central and it "adapts"

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

No branches or pull requests

2 participants