FOR TIPS, gUIDES & TUTORIALS

subscribe to our Youtube

GO TO YOUTUBE

14455 questions

17168 answers

28195 comments

0 members

We are migrating to our new platform at https://community.teltonika.lt. Moving forward, you can continue discussions on this new platform. This current platform will be temporarily maintained for reference purposes.
+2 votes
807 views 4 comments
by anonymous

I'm trying to deploy ZeroTier in my environment. The goal is to gain access to my private network from anywhere from the internet. Originally I was successfully using WireGuard, but that has disadvantages. Let me summarize my findings.

WireGuard Pros:

  • reliable
  • fast
  • stable

WireGuard Cons:

  • not available on RUTX12 device
  • not ready for macOs Big Sur
  • DKMS not compatible with Oracle Enterprise Linux 7, custom patching required

ZeroTier Pros:

  • overall better platform support (Linux, Mac, Android)

ZeroTier Cons:

  • slow startup (VPN is ready after cca 1 to 2 minutes)
  • older versions have great reliability issues
  • the network interface is not visible in System Preferences in macOs

I'm also unable to setup additional routing with ZeroTier, but it might be my mistake—hence I'm not including this in the list above.

And now the issue

The provided zerotier-one executable provided by Teltonika package is really obsolete and is loosing connection every 10 minutes. I've been forced to upgrade it manually which seems to solve the problem.

It will be cool to see latest version in Package Manager.

by anonymous
Hello,

I am having stability issues with zerotier on an RUT955.  Can you advise how you did the manual upgrade?

Thanks

James
by anonymous

Hello James,

The process is pretty simple.

First of all you have to figure out the architecture of your device. Take a look at /etc/opkg/distfeeds.conf. Mine looks like:

root@rutx12:/etc/opkg# cat distfeeds.conf 
src/gz openwrt_core http://downloads.openwrt.org/releases/18.06.8/targets/ipq40xx/generic/packages
src/gz openwrt_base http://downloads.openwrt.org/releases/18.06.8/packages/arm_cortex-a7_neon-vfpv4/base
src/gz openwrt_luci http://downloads.openwrt.org/releases/18.06.8/packages/arm_cortex-a7_neon-vfpv4/luci
src/gz openwrt_packages http://downloads.openwrt.org/releases/18.06.8/packages/arm_cortex-a7_neon-vfpv4/packages
src/gz openwrt_routing http://downloads.openwrt.org/releases/18.06.8/packages/arm_cortex-a7_neon-vfpv4/routing
src/gz openwrt_telephony http://downloads.openwrt.org/releases/18.06.8/packages/arm_cortex-a7_neon-vfpv4/telephony

From this listening I could see that the base version of OpenWRT used by my RUTX12 is 18.06.8 and the architecture is arm_cortex-a7_neon-vfpv4.

Now, look for the latest version of zerotier package. I found one in the OpenWRT 19.07.5 version. The download link is https://downloads.openwrt.org/releases/19.07.5/packages/arm_cortex-a7_neon-vfpv4/packages/zerotier_1.6.2-2_arm_cortex-a7_neon-vfpv4.ipk. You can clearly see the OpenWRT version and the architecture.

When you have the package ready, do the following:

  1. Rename the package to something with .tar.gz extension and unpack it.
  2. Locate data.tar.gz file created by the previous unpacking and extract it as well.
  3. Finally, locate the zerotier-one executable (it is in usr/bin/ directory) in the product of extraction of the previous step.
  4. Copy the new zerotier-one file to your device (scp) to /root/.
  5. SSH into your device.
  6. Back-up original version in case of disaster happens: mv /usr/bin/zerotier-one /usr/bin/zerotier-one-original
  7. Copy the new version: cp /root/zerotier-one /usr/bin/
  8. Inspect dynamic libraries: ldd /usr/bin/zerotier-one
  9. Most probably you will see selibminiupnpc.so.17 as missing. The default firmware comes with older version of this library. Simply create new symlink to the existing one. Yes, hack, but works! cd /usr/bin && ls -s libminiupnpc.so libminiupnpc.so.17
  10. Try zerotier-one -version
  11. If it gives you the version number (the latest at the time of this writing is 1.6.2), reload the service: service zerotier restart
  12. You are good to go!

The best way to do the upgrade would be to use the SDK and build the package from scratch. It should be cool to "patch" the Teltonika's package but I don't know if the sources are part of the SDK. Anyway, I do plan to set-up the up-and-running SDK for my router as it seems I need it for other features as well. I'm still dancing around it because I don't have any experience with OpenWRT at all! LOL

Good luck and backup first!

With best regards,

PETR


EDIT:

Here are the exact library dependences of the zerotier-one 1.6.2:

root@rutx12:~# ldd /usr/bin/zerotier-one
 /lib/ld-musl-armhf.so.1 (0xb6ed6000)
 libminiupnpc.so.17 => /usr/lib/libminiupnpc.so.17 (0xb6ebb000)
 libnatpmp.so.1 => /usr/lib/libnatpmp.so.1 (0xb6ea8000)
 libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6da8000)
 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6d8c000)
 libc.so => /lib/ld-musl-armhf.so.1 (0xb6ed6000)

And here are the dependencies for the original version:

root@rutx12:~# ldd /usr/bin/zerotier-one-1.4.6 
 /lib/ld-musl-armhf.so.1 (0xb6f51000)
 libminiupnpc.so.16 => /usr/lib/libminiupnpc.so.16 (0xb6f36000)
 libnatpmp.so.1 => /usr/lib/libnatpmp.so.1 (0xb6f23000)
 libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6e23000)
 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6e07000)
 libc.so => /lib/ld-musl-armhf.so.1 (0xb6f51000)

The differences are in bold.

1 Answer

0 votes
by anonymous
Hi,

Thank you for your feedback, we'll try to update it as soon as it is possible.

EB.
Best answer
by anonymous
Hello Ernestas,

Thank you very much.

With best regards,

PETR
by anonymous
Hi @ErnestasB, do you have an update for us regarding a new zeroTier package?