ZeroTier and Syncthing

Okay that’s unusual. I automatically assumed Windows because “broadcast not working when using multiple interfaces” is like one of my top 10 network issues on Windows.

In general, the network implementation on *Nix systems is more sane and handles multiple interfaces more cleanly compared to Windows, so in theory it should work.

As for your issue: You can just set up static addresses for all devices and forget about it. That’s an absolutely acceptable solution, since ZeroTier networks in general maintain their assigned IP addresses. Only if you plan to add/remove devices often, or have a dynamic ZeroTier-enviroment you should prefer an automatic configuration.

If you still want to debug this further, I have a few ideas:

  1. I assume you run your own ZeroTier network and have access to the network controller (for most people this is the web gui)? If so, re-check your configuration - are broadcasts enabled on the controller, any custom rules on the controller?

  2. As calmh said: Any local firewalls?

  3. What’s the listen address for your syncthing instances? Have you tried binding them to your ZeroTier addresses (set listen addresses to the ZT-IP’s)?

  4. You could check - for example using WireShark - if your machines are actually sending the local discovery packets on (any) interface. You’re searching for UDP packets send to IP 255.255.255.255 (global broadcast) port 21027 (ignore IPv6 for the moment). The broadcast address could differ depending on your listen address configuration, I haven’t checked this. Those packets should be send over a tunX (e.g tun0) interface, which belongs to ZeroTier. In case they’re being sent over a different interface, it’s likely a misconfiguration. If they’re not being send at all, it’s likely a firewall issue. If they’re being send correctly, it might be an issue with the receiving side.