一、功能介绍
在一些企业网络中,需要特定的路由出口以供员工使用,这里我们将介绍如何通过 ZeroTier One 网络配置特定的路由出口。
ZeroTier One 是一个开源应用程序,它可以通过点对点加密将各区域的网络通信连接到一起,从而达到安全的网络通信。
在本文中我们将介绍如何通过 ZeroTier One 网络配置路由出口。
二、先决条件
在完成本文中的所有任务之前,我们需要先了解如下内容:
- 运行 Ubuntu 20.04 系统的服务器,在此服务器上您还需要具有sudo权限的用户。
- Zerotier One 的账户,您可以访问 ZeroTier One 的官网,并在此网站注册一个账户。
- 已配置 ZeroTier One 的本地路由器,如果您没有配置路由器,您可以参考 通过 ZeroTier One 异地组网联通子公司网络 进行配置。
完成这些先决条件,您就可以开始本文的学习了。
三、操作流程
-
安装 ZeroTier One,这里根据官网提示进行安装即可
curl -s https://install.zerotier.com | bash
在 ZeroTier One 的路由器上配置 ZeroTier One 网络
zerotier-cli join <ZeroTier One 网络 ID>
访问 ZeroTier One 的管理页面 ,在此页面上允许此服务器连接 ZeroTier One 网络并配置服务器的IP地址。 服务器IP本文以
10.0.0.1/24
为例,ZeroTier One 分配给到服务器的IP地址以10.1.1.1/24
为例。 -
检查服务器是否启用 Linux 内核数据转发功能。
sudo sysctl -a | grep net.ipv4.ip_forward
如果没有启用,则需要启用:
sudo sysctl -w net.ipv4.ip_forward=1
-
配置
iptables
规则通过
ip addr
命令查看网络接口名称,输出如下1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:7a:c9:0f:62 brd ff:ff:ff:ff:ff:ff inet 10.0.0.1/24 brd 10.0.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fec9:f57/64 scope link valid_lft forever preferred_lft forever 3: zt0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether 5a:89:77:77:77:77 brd ff:ff:ff:ff:ff:ff inet 10.1.1.1/24 brd 10.1.1.255 scope global zt0 valid_lft forever preferred_lft forever inet6 fe80::5889:7777:7777:7777/64 scope link valid_lft forever preferred_lft forever
添加
iptables
规则,配置如下:sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT #允许服务器的网卡 eth0 转发所有来自 ZeroTier One 的流量 sudo iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT
因为
iptables
规则会在服务器重启后丢失,这里安装iptables-persistent
实现程序的持久化。sudo apt install iptables-persistent sudo netfilter-persistent save
如果您的服务器重启后无法转发流量,请检查
iptables
规则是否保存。 -
访问 ZeroTier One 的管理界面 ,在此页面上配置需要路由的IP段。这里我们以
8.8.8.0/24
为例。 -
接下来,配置 ZeroTier One 客户端软件允许承载默认路由流量,这将修改客户端的路由,使其路由到 ZeroTier One 的网络。这里我们在本地路由上执行:
sudo zerotier-cli set <ZeroTier One 网络 ID> allowDefault=1 sudo zerotier-cli set <ZeroTier One 网络 ID> allowGlobal=1
每次重启客户端的 ZeroTier 服务时,值会被重置为 0 ,这意味着客户端将不会路由到 ZeroTier One 的网络。所以需要再次运行此命令以激活路由。
-
客户端的DNS设置
建议客户端配置为企业内部的DNS服务器,既能实现内网访问,同时也可以避免请求到不正确的IP地址。
至此已配置完成,您可以在 ZeroTier One 的管理界面上查看网络的状态和管理网络规则。