Installation

To install ZeroTier on OpenWRT, Execute the following from shell:

opkg update
opkg install zerotier
restart

You should see something similar to the below:

Installing zerotier (1.12.2-2) to root...
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/mips_24kc/packages/zerotier_1.12.2-2_mips_24kc.ipk
Installing libstdcpp6 (12.3.0-4) to root...
Downloading https://downloads.openwrt.org/releases/23.05.3/targets/ath79/generic/packages/libstdcpp6_12.3.0-4_mips_24kc.ipk
Installing kmod-tun (5.15.150-1) to root...
Downloading https://downloads.openwrt.org/releases/23.05.3/targets/ath79/generic/packages/kmod-tun_5.15.150-1_mips_24kc.ipk
Installing ip-tiny (6.3.0-1) to root...
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/mips_24kc/base/ip-tiny_6.3.0-1_mips_24kc.ipk
Installing libminiupnpc (2.2.3-1) to root...
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/mips_24kc/packages/libminiupnpc_2.2.3-1_mips_24kc.ipk
Installing libnatpmp1 (20150609-3) to root...
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/mips_24kc/packages/libnatpmp1_20150609-3_mips_24kc.ipk
Installing libatomic1 (12.3.0-4) to root...
Downloading https://downloads.openwrt.org/releases/23.05.3/targets/ath79/generic/packages/libatomic1_12.3.0-4_mips_24kc.ipk
Configuring kmod-tun.
Configuring libstdcpp6.
Configuring ip-tiny.
Configuring libminiupnpc.
Configuring libnatpmp1.
Configuring libatomic1.
Configuring zerotier.
disabled in /etc/config/zerotier

Then I tried to follow the documentation, and failed with uci command line:

uci delete zerotier.sample_config
root@OpenWrt:~# uci delete zerotier.sample_config
root@OpenWrt:~# uci add zerotier zt_prokop_dev
cfg0217eb
root@OpenWrt:~# uci add_list zerotier.zt_prokop_dev.join=3**************c
uci: Invalid argument
root@OpenWrt:~# uci set zerotier.zt_prokop_dev.enabled='1'
uci: Invalid argument

So ended manually creating /etc/config/zerotier file:

config zerotier zt_prokop_dev
        option enabled 1
        list join '3**************c'

Finally, run the following to establish connection to your ZeroTier network for the very first time.

root@OpenWrt:~# service zerotier restart
Generate secret - please wait...

Now, you should be connected to the ZeroTier “Earth’s Switch”:

zt******* Link encap:Ethernet  HWaddr AE:36:60:95:0D:95
          inet6 addr: fe80::____:____:____:____/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2800  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:746 (746.0 B)

If you revise now /etc/config/zerotier file, you should notice new ‘option secret’ entry there.

Final step is to add ZeroTier interfaces to lan firewall zone. You need to add it as list device, rather than as a list network list in the /etc/config/firewall file. Ahh… that’s inconsistency in OpenWrt naming.

config zone
        option name             lan
        list   network          'lan'
        list   device           'zt+'
        option input            ACCEPT
        option output           ACCEPT
        option forward          ACCEPT

Note that zt+ will cover all ZeroTier interfaces.