After just over a year (!!!), ZeroTier 1.2.8 has finally been released. It's not a major change, just a bug and compatibility fix release whose most noticable difference will be canonical device names on Linux (see below). The majority of our work for the past year has been behind the scenes on infrastructure, supporting large customers, the ZeroTier Edge, and R&D toward future products and services.
Other than minor fixes this should be the last 1.2 series release. This post summarizes 1.2.8 and what's coming next.
1.2.8 introduces canonical device naming on Linux. This means that devices get names that are calculated deterministically from network IDs like ztnganyb6e instead of zt0. If you already have existing configurations and scripts that rely on the old names don't worry. Networks you've already joined in previous versions will recall their old names. If you want to stop them from doing this, delete devicemap from /var/lib/zerotier-one.
We realize this is less convenient for casual use cases, but it's incredibly convenient for "devops." With canonical device names you can have ZeroTier join, say, two different networks on 50 machines and write "iptables" and other scripts to be distributed across those systems without worrying about which network will end up being "zt0" or "zt1" on each. With the old behavior device names depended on which order a network happened to be joined, and even if you join two networks in one order they can in some cases appear in the reverse order if one happens to initialize before the other.
Another major feature in 1.2.8 is remote tracing. A network controller can now elect to receive or nominate another node to receive debugging information from nodes on a network for events that are relevant to a given network. While this is now present in the protocol and controller code it's not yet exposed on ZeroTier Central's UI. If you want to experiment with this feature you can try running your own controller and examining its logs. Exposure in the UI is awaiting the completion of some large-scale under-the-hood work on ZeroTier Central to support the added overhead this amount of dynamic information will require.
Last but not least we've increased the number of Debian, Ubuntu, CentOS, Fedora, and other distributions we officially support as well as the number of architectures. Debian Buster and other recent releases are there and we've added mips, mips64el, and ppc64el architectures for most distributions that support them.
1.4.0 should be our next major release. It includes support for multiple concurrent physical network paths (discovered automatically in most cases) with load balancing and much faster handling of path failures. This is step one toward "SD-WAN" features, bringing us closer to our goal of a converged VPN/SDN/SD-WAN/P2P solution. After automatic path bonding and fast fail-over we will be introducing support for QoS (quality of service) rules and very likely a plugin architecture for packet classification.
Our other big project for the past year has been the ZeroTier Edge. We'd initially hoped to ship the first Edge units in March, but it's been a victim of Hofsteader's Law. Some delay came from our upstream hardware vendors, but the majority of the delay is ours. We've been busy supporting and on-boarding a number of large scale enterprise users in addition to producing the Edge, so our attention has been a bit divided. The good news is that we are beginning hardware assembly, firmware loading, and testing this week (weel of May 7th) so it should not be long.