This commit is contained in:
Adam Ierymenko 2018-04-17 10:48:00 -07:00
parent e276b6463e
commit f0a23ae0ea
4 changed files with 67 additions and 85 deletions

View File

@ -1,29 +1,19 @@
ZeroTier - A Planetary Ethernet Switch ZeroTier - A Planetary Ethernet Switch
====== ======
ZeroTier is an enterprise Ethernet switch for planet Earth. ZeroTier is a smart programmable Ethernet switch for planet Earth.
It erases the LAN/WAN distinction and makes VPNs, tunnels, proxies, and other kludges arising from the inflexible nature of physical networks obsolete. Everything is encrypted end-to-end and traffic takes the most direct (peer to peer) path available. It replaces the physical LAN/WAN boundary with a virtual one, allowing devices of any type at any location to be managed as if they all reside in the same cloud region or data center. All traffic is encrypted end-to-end and takes the most direct path available for minimum latency and maximum performance. The goals and design of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum).
Visit [ZeroTier's site](https://www.zerotier.com/?pk_campaign=github_ZeroTierOne) for more information and [pre-built binary packages](https://www.zerotier.com/download.shtml?pk_campaign=github_ZeroTierOne). Apps for Android and iOS are available for free in the Google Play and Apple app stores. Visit [ZeroTier's site](https://www.zerotier.com/?pk_campaign=github_ZeroTierOne) for more information and [pre-built binary packages](https://www.zerotier.com/download.shtml?pk_campaign=github_ZeroTierOne). Apps for Android and iOS are available for free in the Google Play and Apple app stores.
### Getting Started ### Getting Started
ZeroTier's basic operation is easy to understand. Devices have 10-digit *ZeroTier addresses* like `89e92ceee5` and networks have 16-digit network IDs like `8056c2e21c000001`. All it takes for a device to join a network is its 16-digit ID, and all it takes for a network to authorize a device is its 10-digit address. Everything else is automatic. Everything in the ZeroTier world is controlled by two types of identifier: 40-bit/10-digit *ZeroTier addresses* and 64-bit/16-digit *network IDs*. A ZeroTier address identifies a node or "device" (laptop, phone, server, VM, app, etc.) while a network ID identifies a virtual Ethernet network that can be joined by devices.
A "device" in our terminology is any "unit of compute" capable of talking to a network: desktops, laptops, phones, servers, VMs/VPSes, containers, and even user-space applications via our [SDK](https://github.com/zerotier/ZeroTierSDK). Another way of thinking about it is that ZeroTier addresses are port numbers on a giant planetary-sized smart switch while network IDs are VLANs to which these ports can be assigned. For more details read about VL1 and VL2 in [the ZeroTier manual](https://www.zerotier.com/manual.shtml).
For testing purposes we provide a public virtual network called *Earth* with network ID `8056c2e21c000001`. You can join it with: *Network controllers* are ZeroTier nodes that act as access control certificate authorities and configuration managers for virtual networks. The first 40 bits (or 10 digits) of a network ID is the ZeroTier address of its controller. You can create networks with our [hosted controllers](https://my.zerotier.com/) and web UI/API or [host your own](controller/) if you don't mind posting some JSON configuration info or writing a script to do so.
sudo zerotier-cli join 8056c2e21c000001
Now wait about 30 seconds and check your system with `ip addr list` or `ifconfig`. You'll see a new interface whose name starts with *zt* and it should quickly get an IPv4 and an IPv6 address. Once you see it get an IP, try pinging `earth.zerotier.net` at `29.209.112.93`. If you've joined Earth from more than one system, try pinging your other machine. If you don't want to belong to a giant Ethernet party line anymore, just type:
sudo zerotier-cli leave 8056c2e21c000001
The *zt* interface will disappear. You're no longer on the network.
To create networks of your own, you'll need a network controller. ZeroTier One (for desktops and servers) includes controller functionality in its default build that can be configured via its JSON API (see [README.md in controller/](controller/)). ZeroTier provides a hosted solution with a nice web UI and SaaS add-ons at [my.zerotier.com](https://my.zerotier.com/?pk_campaign=github_ZeroTierOne). Basic controller functionality is free for up to 100 devices.
### Project Layout ### Project Layout
@ -56,10 +46,9 @@ To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU
- Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line. - Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line.
- CentOS 7 ships with a version of GCC/G++ that is too old, but a new enough version of CLANG can be found in the *epel* repositories. Type `yum install epel-release` and then `yum install clang` to build there. - CentOS 7 ships with a version of GCC/G++ that is too old, but a new enough version of CLANG can be found in the *epel* repositories. Type `yum install epel-release` and then `yum install clang` to build there.
- **Windows** - **Windows**
- Windows 7 or newer (and equivalent server versions) are supported. This *may* work on Vista but you're on your own there. Windows XP is not supported since it lacks many important network API functions. - Windows 7 or newer is supported. This *may* work on Vista but isn't officially supported there. It will not work on Windows XP.
- We build with Visual Studio 2015. Older versions may not work with the solution file and project files we ship and may not have new enough C++11 support. - We build with Visual Studio 2015. Older versions may not work. Clang or MinGW will also probably work but may require some makefile hacking.
- Pre-built signed Windows drivers are included in `ext/bin/tap-windows-ndis6`. The MSI files found there will install them on 32-bit and 64-bit systems. (These are included in our multi-architecture installer as chained MSIs.) - Pre-built signed Windows drivers are included in `ext/bin/tap-windows-ndis6`. The MSI files found there will install them on 32-bit and 64-bit systems. We don't recommend trying to build Windows drivers from scratch unless you know what you're doing. One does not simply "build" a Windows driver.
- Windows builds are more painful in general than other platforms and are for the adventurous.
- **FreeBSD** - **FreeBSD**
- Tested most recently on FreeBSD-11. Older versions may work but we're not sure. - Tested most recently on FreeBSD-11. Older versions may work but we're not sure.
- GCC/G++ 4.9 and gmake are required. These can be installed from packages or ports. Type `gmake` to build. - GCC/G++ 4.9 and gmake are required. These can be installed from packages or ports. Type `gmake` to build.

View File

@ -1,13 +1,13 @@
ZeroTier Release Notes ZeroTier Release Notes
====== ======
# 2018-04-12 -- Version 1.2.6 # 2018-04-16 -- Version 1.2.6
* Features and Core Improvements * Features and Core Improvements
* Path selection has been overhauled to improve path stability, simplify code, and prepare for multi-path and trunking in the next major release. * Path selection has been overhauled to improve path stability, simplify code, and prepare for multi-path and trunking in the next major release.
* This version introduces remote tracing for remote diagnostics. Network controllers can set a node (usually the controller itself) to receive remote tracing events from all members of the network or from select members. Events are only sent if they pertain to a given network for security reasons. * This version introduces remote tracing for remote diagnostics. Network controllers can set a node (usually the controller itself) to receive remote tracing events from all members of the network or from select members. Events are only sent if they pertain to a given network for security reasons.
* Multicast replication can now be done by designated multicast replicators on a network (flagged as such at the controller) rather than by the sender. Most users won't want this, but it's useful for specialized use cases on hub-and-spoke networks and for low-power devices. * Multicast replication can now be done by designated multicast replicators on a network (flagged as such at the controller) rather than by the sender. Most users won't want this, but it's useful for specialized use cases on hub-and-spoke networks and for low-power devices.
* Cryptographic performance improvements. * Cryptographic performance improvements on several platforms.
* Multithreaded performance improvements throughout the code base, including the use of an inline lightweight spinlock for low-contention resources. * Multithreaded performance improvements throughout the code base, including the use of an inline lightweight spinlock for low-contention resources.
* Bugs fixed * Bugs fixed
* Disappearing routes on Mac (GitHub issue #600) * Disappearing routes on Mac (GitHub issue #600)

View File

@ -1,65 +1,58 @@
<html> <html>
<head> <head>
<style type="text/css"> <style type="text/css">
html,body { html,body {
background: #ffffff; background: #ffffff;
margin: 0; margin: 0;
padding: 0; padding: 0;
font-family: "Helvetica"; font-family: sans-serif;
font-size: 12pt; font-size: 12pt;
height: 100%; height: 100%;
width: 100%; width: 100%;
} }
div.icon { div.icon {
background: #ffb354; background: #ffb354;
color: #000000; color: #000000;
font-size: 100pt; font-size: 100pt;
border-radius: 2.5rem; border-radius: 2.5rem;
display: inline-block; display: inline-block;
width: 1.3em; width: 1.3em;
height: 1.3em; height: 1.3em;
padding: 0; padding: 0;
margin: 0; margin: 0;
line-height: 1.4em; line-height: 1.4em;
vertical-align: middle; vertical-align: middle;
text-align: center; text-align: center;
} }
div.icon_container { div.icon_container {
font-weight: bold; font-weight: bold;
} }
a,p,h1,h2,h3,h4,span,div,strong,center,lead,nav,ol,ul,li,img,button,input,textarea,form { a,p,h1,h2,h3,h4,span,div,strong,center,lead,nav,ol,ul,li,img,button,input,textarea,form {
font-family: "Clear Sans Light","Helvetica Neue","Helvetica",sans-serif !important; font-family: sans-serif;
-webkit-font-smoothing: antialiased; }
} .code {
.code { font-family: "Menlo",monospace !important;
font-family: "Menlo","Consolas","Lucida Console","Bitstream Vera Sans Mono","Courier",monospace !important; }
} a:link {
a:link { text-decoration: none;
text-decoration: none; }
} </style>
div.text { </head>
padding: 5px; <body>
} <center><div class="icon_container"><div class="icon">&#x23c1;</div></div></center>
</style> <div>
<h2>Welcome to ZeroTier</h2>
</head> <h4>Getting Started</h4>
<body> <p>Networks are identified by 16-digit network IDs. If someone invited you to join theirs you probably received one. If not you can create your own at <a href="https://my.zerotier.com/">my.zerotier.com</a> or by running <a href="https://github.com/zerotier/ZeroTierOne/tree/master/controller">running your own network controller</a>.
<center> <p>Your computer is identified by a 10-digit ZeroTier address. You can find it at the top of the ZeroTier app's pull-down menu or by typing <span class="code">"sudo zerotier-cli info"</span> in a terminal window. This number is unique to your system and is how network administrators can recognize you. If someone invited you to a network, give them this ID so they can authorize you to join.</p>
<div class="icon_container"> <h4>Starting, Stopping, and Uninstalling</h4>
<div class="icon">&#x23c1;</div> <p>The ZeroTier service is separate from the UI app and starts on system boot. The app can be started on login or only when needed. To stop the ZeroTier service use:<br><br>
</div> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="code">sudo launchctl unload /Library/LaunchDaemons/com.zerotier.one.plist</span><br><br>
</center> Replace "unload" with "load" to start it again.</p>
<p>ZeroTier can be uninstalled with:<br><br>
<div class="text"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="code">sudo '/Library/Application Support/ZeroTier/One/uninstall.sh'
<h2>Getting Started</h2> </p>
<p><b>For more information, visit <a href="http://www.zerotier.com">zerotier.com</a>.</b></p>
<p>Getting started is simple. Simply click <font class="code">Join Network</font> from the ZeroTier status bar menu. To join the public network "Earth", enter <font class="code">8056c2e21c000001</font> and click the Join button. Once connected, you'll be able to navigate to <a href="http://earth.zerotier.net">earth.zerotier.net</a>.</p> </div>
</body>
<h3>Create a Network</h3>
<p>Visit <a href="http://my.zerotier.com">my.zerotier.com</a> to create and manage your own virtual networks.</p>
<p>For more information, visit <a href="http://www.zerotier.com">zerotier.com</a>.</p>
</div>
</body>
</html> </html>

View File

@ -1,5 +1,5 @@
Name: zerotier-one Name: zerotier-one
Version: 1.2.4 Version: 1.2.5
Release: 1%{?dist} Release: 1%{?dist}
Summary: ZeroTier One network virtualization service Summary: ZeroTier One network virtualization service