在Centos7上部署ZeroTier 创建sd-wan虚拟网络

一、关于ZeroTier

在任何设备上连接来自世界任何地方的团队成员。
ZeroTier 在内部部署、云、桌面和移动设备之间创建安全网络。
ZeroTier官网: https://www.zerotier.com/

二、注册账号,创建网络ID

1、注册账号

2、客户端安装Zerotier

提供Windows,Linux,Mac等客户端
a) Linux上安装:
curl -s https://install.zerotier.com | sudo bash
b) 启动服行:
systemctl start zerotier-one
c) 加入网络:
zerotier-one -d   #启动zerotier
zerotier-cli info   #查看zerotier信息
zerotier-cli join 1d71939404ca12a5   #ID是你自己创建的network ID
d) Windows10客户端加入

3、创建网段

a) 创建虚拟IP网段
选择一个虚拟的IP网段,私有或公开类型
b) 授权并分配IP
添加好后,给增加的客户端授权,分配Managed IPS

三、网络验证

1、查看客户端IP

回到centos7主机上通过ifconfig命令即可看到,此处又多了一个内网IP,此内网IP和zerotier一致,表示配置完成
查看IP信息:

ifconfig

Windows10

2、主机验证

3、退出、列出网络状态明令

zerotier-cli leave 1d71939404ca12a5
zerotier-cli listnetworks

四、建立moon中转

1、搭建ZeroTier的Moon中转服务器,生成moon配置文件

cd /var/lib/zerotier-one/
sudo zerotier-idtool initmoon identity.public > moon.json
修改配置文件moon.json,添加IP及端口(moon 要放通udp/9993端口),iptables里添加 -A INPUT -p udp –dport 9993 -j ACCEPT

vi moon.json

修改stableEndpoints,如图:

2、生成签名文件

zerotier-idtool genmoon moon.json
执行之后会生产一个000000xxxx.moon的文件,将这个文件下载到本地, xxxx是随机的如图,记住这个后面要用

3、将moon节点加入网络

创建moons.d文件夹,并把签名文件移动到文件夹内:
sudo mkdir moons.d
sudo mv 0000009e7a6753b4.moon moons.d/
此处的0000009e7a6753b4.moon是上一步生成的文件名,请改成你自己本人的。
重启中转服务器的 zerotier-one :
sudo systemctl restart zerotier-one
到这里,服务器的moon就配置完成了。
客户端安装zerotier后,将配置好的moon文件配置到客户端,并重启zerotier完成与moon的连接。

五、配置客户端

1、Linux客户端

使用之前步骤中 moon.json 文件中的 id 值 (10 位的字符串,就是xxxxxx),不知道的话在服务器上执行如下命令可以得到id。
执行命令:
grep id /var/lib/zerotier-one/moon.json | head -n 1
然后在客户端机器里执行命令:
zerotier-cli orbit e761237ae5 e761237ae5  //添加sh_ moon
zerotier-cli orbit  7d5f958ab2 7d5f958ab2 //添加hk_moon
zerotier-cli listpeers   //查看moon
2、Windows客户端
方法一:
打开服务程序services.msc, 找到服务”ZeroTier One”的执行文件路径,在其下建立moons.d文件夹,然后将moon服务器下生成的000xxxx.moon文件,拷贝到此文件夹内,再重启该服务即可。
方法二:
以管理员权限运行cmd
cd C:\ProgramData\ZeroTier\One   //Win10的目录
C:\Program Files (x86)\ZeroTier\One  //win7的目录
zerotier-cli orbit e761237ae5 e761237ae5  //添加sh_ moon
zerotier-cli orbit  7d5f958ab2 7d5f958ab2 //添加hk_moon
zerotier-cli listpeers
百度云moon ID
grep id /var/lib/zerotier-one/moon.json | head -n 1
82da87347a
六、异常问题
更换了network ID,可能需要完全卸载重新安装
ZeroTier 显示 waiting for zerotier system service 的解决方案
打开资源管理器并在位置栏中键入:
%LOCALAPPDATA%\ZeroTier\
删除authtoken.secret。
如果存在One子文件夹,也删除其中的删除authtoken.secret