#系列教程#ZeroTier从入门到精通系列(二)——组件内网

这篇中阶教程从这个网络拓扑图说起。

本文教大家如何通过 ZeroTier 让拓扑图中的 两台 PC、两台 Router、两台 Server、iPhone 之间可以互相访问。

初阶方案

如果读过初阶教程,那一定能想得到最容易的方法:在所有的设备上都安装 Zerotier 就可以实现互相访问的目的。但这也是最麻烦的方法,毕竟要在所有设备上安装 ZeroTier

正确的做法是什么?

只需要在两台 Router上安装 ZeroTier 并正确配置 路由表 和 防火墙 即可。

正式开始

  1. 在 Router1 上安装 Zerotier,并填写 network ID 加入 ZeroTier 网络
  2. 假设 ZeroTier 为 Router1 分配的 IP 为 10.10.10.11
  3. 在 ZeroTier 官网设置 Managed Routes 选项 如下图填写:
  4. 点击加号,等待生效。
  5. 配置 Router1 的防火墙(以 OPENWRT 路由器为例)
# 其中 zt0 是 ZeroTier 的物理接口,可以使用  zerotier-cli listnetworks 命令查看,其中 zt0 在其他平台可能是 其他名字
[email protected]:~# zerotier-cli listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks xxxxxxxxx MarIxs xx:xx:xx:xx:xx:xx OK PRIVATE zt0 10.10.10.11/20
#配置防火墙
[email protected]:~# iptables -I FORWARD -i zt0 -j ACCEPT
[email protected]:~# iptables -I FORWARD -o zt0 -j ACCEPT
[email protected]:~# iptables -t nat -I POSTROUTING -o zt0 -j MASQUERADE
  1. 为了测试 iPhone 安装并运行 ZeroTier 并加入 ZeroTier 网络

如此 Router1 下的所有设备和 iPhone 可以互相访问了,也就是说 iPhone、Router1、PC1、Server1 任意两个之间都可以 ping 通。

比如在 iPhone 上 ping 10.10.10.11(Router1)、192.168.10.1(Router1)、192.168.10.100(PC1)、192.168.10.200(Server1) 都是没问题的。

更进一步

将 Router2 网络加入 ZeroTier,过程和 Router1 类似。

  1. 在 Router2 上安装 Zerotier,并填写相同 network ID 加入 ZeroTier 网络
  2. 假设 ZeroTier 为 Router2 分配的 IP 为 10.10.10.12
  3. 在 ZeroTier 官网设置 Managed Routes 选项 如下图填写:
  4. 点击加号,等待生效。
  5. 配置 Router2 的防火墙(以 OPENWRT 路由器为例)
#其中 zt0 是 ZeroTier 的物理接口,可以使用  zerotier-cli listnetworks 命令查看,其中 zt0 在其他平台可能是 其他名字
[email protected]:~# zerotier-cli listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks xxxxxxxxx MarIxs xx:xx:xx:xx:xx:xx OK PRIVATE zt0 10.10.10.12/20
#配置防火墙
[email protected]:~# iptables -I FORWARD -i zt0 -j ACCEPT
[email protected]:~# iptables -I FORWARD -o zt0 -j ACCEPT
[email protected]:~# iptables -t nat -I POSTROUTING -o zt0 -j MASQUERADE

至此,拓扑图上的所有设备都可以互相访问了。而 Router1 和 Router2 所在的两个网络被无缝连接在了一起,如果两个网络在异地,那就是所谓的异地组网了。

ZeroTier 的 Managed Routes 功能

按上面教程设置后, Managed Routes 如下图,

对于熟悉路由表的朋友应该没什么难度,但对于对于网络了解很少的朋友可能会有些困难。

这里简单说明下:

  • networks/bits:填写需要被访问的网段
  • (lan):网络中接入 ZeroTier 的设备被分配的 IP

所以前面的教程例子很容易理解了,以 Router1 为例:

  • 需要被访问的是 Router1 下的设备,就是 Router1 的 lan IP 段,拓扑图上可以看出 Router1 lan IP 段为 192.168.10.1/24
  • 这部分网络,接入 ZeroTier 的是 Router1 ,被分配的 IP 为 10.10.10.11
  • 所以 networks/bits 为 192.168.10.1/24,(lan)为 10.10.10.11

用相同的思路分析 Router2 的网络,也能得到:networks/bits 为 192.168.5.1/24,(lan)为 10.10.10.12

ZeroTier 会根据你的设置,自动(智能)下发路由表到设备中,从而实现多个网段互联互通。

感兴趣的朋友可以按照教程组网,然后查看设备上路由表。

需要注意

  • 组网的多个局域网,IP 段不能冲突,
  • 如拓扑图中 Router1 192.168.10.1/24 和 Router2 192.168.5.1/24 是不冲突的。
  • 防火墙的配置可能因设备而异
  • 主要的目的是放行 ZeroTier 的数据包和 SNAT 转换。

其他 FAQ

  1. ZeroTier 一定要安装路由器上才能实现组网嘛?
  • 不,只要能运行 ZeroTier 的设备加上正确的路由表都可以实现。只是在路由器(网关上)某些配置更加方便。
  1. 只能两个局域网互相访问嘛?
  • 当然可以更多
  1. 延迟如何?
  • 实测在 4G 网络下十分不稳定。
  • 在固网(宽带)的情况下很稳定。

本文转自:https://stray.love/jiao-cheng/zerotier-zhong-jie-jiao-cheng

VPS评审,版权所有丨如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权.
转载请注明转自:https://vpsps.com/1384.html
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论