Community discussions

MikroTik App
 
vovan700i
Frequent Visitor
Frequent Visitor
Topic Author
Posts: 52
Joined: Wed Jun 06, 2012 8:34 am

Why is Zerotier unavailable on X86 CHR?

Tue Jan 21, 2025 2:12 pm

Hi,

I would like to discuss why Zerotier is unavailable on X86 CHR. According to the forum, there are many people asking for it (e.g. viewtopic.php?p=1109645&hilit=zerotier#p1109645)

I know Zerotier could be run in a container on X86, but it doesn't provide for the same level of integration and ease of use as a native package currently available on ARM and ARM64 only. I can also understand non-ARM routerboard devices (e.g. MIPSBE) don't have enough flash and/or RAM, but there is usually plenty of it on X86. And it's true that there are ARM64 VMs (e.g. Apple, Ampere), but as of 2025 the majority of VPS/VDS is still X86.

Technical information to consider:
- The ARM64 Zerotier package basically contains 2 binaries (zerotier-one, 2.6MB and zerotier, 99KB) and a tun kernel module, 54KB.
- The former binary is non-Mikrotik. It could be an original zerotier-one compiled for ARM64, or a patched one. The source code of zerotier-one is public, and it's definitely compilable on X86.
- The latter binary is vendor-specific. It is a cpp wrapper over zerotier-one and uses the same API as all the rest binaries of RouterOS (nv::Handler, nv::Looper, etc.). I doubt there is any ARM-specific code inside that prevents from compiling on X86.

Given these details, there are no technical issues in providing the Zerotier package for X86, or have I missed anything? In my view, it's so weird Mikrotik still limits CHR functionality on X86 with no official explanation, or did anyone comment on it?

If it is for marketing purposes, I would reconsider this plan since no ARM/ARM64 routerboard device really competes with a X86 VM. Even if they are interchangeable for someone, Zerotier won't be the main factor to choose ARM64. But it could be such a factor, if one compares CHR with other systems, whether free or not, since Zerotier is available almost everywhere. And what's really important, if Zerotier was available on X86 CHR, it would strengthen the whole Mikrotik ecosystem, allowing both hardware and software machines running RouterOS to join secure private networks over the internet in an easy and cost-effective way.

Community, do you think it is fair that Zerotier is unavailable on X86? It would be great if someone from the Mikrotik team could publish their position as well.

P.S. I know there is a difference between X86 and X86_64/X64, but I'm using the notation suggested by MikroTik on the official website. You may read X86 as X64, it barely makes any difference with regards to the topic in question.
 
User avatar
Larsa
Forum Guru
Forum Guru
Posts: 1702
Joined: Sat Aug 29, 2015 7:40 pm
Location: The North Pole, Santa's Workshop

Re: Why is Zerotier unavailable on X86 CHR?

Tue Jan 21, 2025 2:50 pm

You’d probably have to ask Mikrotik directly to get the real reason. Since this is just a user forum, we can only guess, and our opinions probably don’t affect their design decisions anyway.

One plus of running ZeroTier externally is that you get full access to all configuration settings, which are limited when running on ROS.
 
vovan700i
Frequent Visitor
Frequent Visitor
Topic Author
Posts: 52
Joined: Wed Jun 06, 2012 8:34 am

Re: Why is Zerotier unavailable on X86 CHR?

Tue Jan 21, 2025 4:19 pm

our opinions probably don’t affect their design decisions anyway.
I would be more optimistic, as it has always been a strong community that contributed to Mikrotik success. Although there is definitely very little feedback from developers, I can see they do listen and implement some features we ask for.
One plus of running ZeroTier externally is that you get full access to all configuration settings, which are limited when running on ROS.
While you are technically right, it's also a major drawback because you have to manage these settings manually as opposed to the unified approach provided by RouterOS.

With a native Zerotier package I can do routing/filtering over ZT interfaces. It requires much more effort in containers which are also limited in terms of iptables, by the way. And a native package is more reliable, since there is always some probability that a container won't start after reboot/update (I've experienced it dozens of times).