在pfSense中配置ZeroTier网络

ZeroTier是一个分布式网络虚拟机管理程序,建立在加密安全的全球对等网络之上。它提供与企业 SDN 交换机同等的高级网络虚拟化和管理功能,而且可以跨本地和广域网并连接几乎任何类型的应用程序或设备。 在OPNsense中,ZeroTier已经做为一个插件提供,pfSense官方还没发布该插件,但ZeroTier有freeBSD平台的安装包,这为我们在pfSense安装ZeroTier提供了途径。

一、安装软件包

第一步,先安装zerotier软件包。

方法一:使用Xshell等工具进入pfSense终端,以root用户运行以下命令:

pkg add https://pkg.opnsense.org/FreeBSD:12:amd64/21.7/latest/All/zerotier-1.8.3.txz

方法二:下载zerotier-1.8.3.txz,解压缩后上传到pfSense后台,然后在pfSense shell环境下执行以下安装命令:

pkg install zerotier-1.8.3.txz

第二步,安装pfSense-pkg-zerotier软件包,这个软件包提供了在pfSense web界面管理zerotier网络的功能。

下载pfSense-pkg-zerotier-0.00.1.txz软件包,解压缩后上传到pfSense后台,然后在pfSense shell环境下执行以下安装命令:

pkg install pfSense-pkg-zerotier-0.00.1.txz

二、修改配置文件

在启动ZeroTier服务之前,需要手动修改两个文件。导航到防火墙>系统诊断>编辑文件。

打开etc>rc.conf文件,添加以下内容并保存:

zerotier_enable="YES"

打开etc>sysctl.conf,添加以下内容并保存:

net.link.tap.up_on_open=1

三、启动ZeroTier服务

转到防火墙>系统诊断>命令行(或终端下),输入以下命令:

service zerotier start

四、加入ZeroTier网络

导航到防火墙>系统诊断>命令行(或终端下),输入以下命令:

zerotier-cli join e5cd7a9e1c######

注:蓝色部分是你在ZeroTier网站上创建的网络ID。

五、添加路由

加入ZeroTier网络后,还必须在ZeroTier网站上进行授权,才能进行路由设定、网络互访。ZeroTier网络的详细设置,请参考这篇文章

六、菜单设置

进入pfSense防火墙Web界面,导航到VPN>zerotier菜单,这里可以对zerotier进行各项设置。

先导航到VPN>zerotier,配置选项卡,启用zerotier网络。

然后就可以在网络和peers列表中,看到各项参数。

七、分配接口

这里与OPNsense Zerotier网络配置示例教程一样,分配接口不是必须的,如果只是节点之间互相访问,只需启用网络即可。如果要访问防火墙后面的子网,就必须分配接口并添加规则。

注意:要给该节点分配接口,必须在Zerotier门户网站上将该节点IP地址的自动分配改为手动分配,如下图所示(引用在OPNsense中配置的图片,仅供参考):

然后导航到到”接口>”菜单项,单击分配。这里可以找到一个以zt开头的新接口。单击+符号进行分配。打开新添加的接口并启用,可以将接口的“描述”更改为ZT,以方便记忆,IPv4地址填写在Zerotier门户网站上手动分配的IP地址。

八、添加防火墙规则

给Zerotier使用的接口添加一个any to any的规则。

将防火墙内部客户端所所使用的接口规则采用的网关修改为默认。这一步非常重要,由于本人使用的是双线负载,在默认网关使用负载平衡功能时,发现内部客户端无法正常连接到Zerotier网络中的其他节点,改为默认网关后访问才正常。

网关修改为默认。

九、测试

经过以上设置,Zerotier网络的各个节点之间可以相互进行访问了。

在防火墙上ping另一个节点(OPENWRT):

从防火墙内部客户端ping OPENWRT后面连接的NAS服务器:

访问一切正常。

十、其他

近期作者对插件进行了更新,经过近半个月的测试,现在该插件已基本处于可以稳定使用的状态,重启以后也可以正常使用。由于插件仍处于开发阶段,还未被官方正式收录,在安装使用中,有可能会造成防火墙假死、无法访问网络、CPU占用增加等问题,建议只在试验环境中使用。该插件由国外网友ChanCM独立完成,文末已附上编译好的安装包,测试视频请点击这里

zerotier-1.6.5.txz

zerotier-1.6.6.txz

zerotier-1.8.3.txz

pfSense-pkg-zerotier-0.00.1.txz