Foreword

RouterOS 从7版本开始加入了WireGuard,方便用户做异地组网,当然如果有ZeroTier,也能组网,作为RouterOS 力推的组网方式,试一试看效果如何。

SD-WAN

做异地组网还有一种方案就是使用SD-WAN,不过这个技术随便查查就知道了,基本是天价,运营商给的价格非常高,带宽又特别小,很不实用。

WireGuard

https://www.wireguard.com/

WireGuard最早听说是用来当VPN,翻墙用的,各种工具,UI封装以后拿来翻墙。不过随着封锁力度逐步增大,WireGuard也变得可以精准识别了,同时由于WireGuard本身是UDP,很容易被QOS,所以也没尝试过。由于他本身的一些特性,非常适合用来做异地组网,所以如果是国内做组网就可以简单的使用WireGuard来实现 。

较新的Linux内核中已经集成了WireGuard,所以大多数Linux系统已经是开箱即用的状态了,十分便捷。

RouterOS

https://help.mikrotik.com/docs/display/ROS/WireGuard

这里是官方的wiki

他配置的比较复杂,额外配置了防火墙等内容,实际使用中不配置防火墙似乎也能正常使用。

需要实现的拓扑图就是类似这样的,将异地两个地方的网络组网,让内部使用起来就像都在同一个局域网一样。

WireGuard本身不是C/S架构,所以主动发起连接的一方就作为客户端,而另一方就被动知道了对方是谁、在哪,就能建立起双向的链接。所以如果使用WireGuard至少要有一方是具有公网IP的,否则主动方就不知道找谁建立连接了。

如图所示,假设ROS-A的10.1.0.1是他的公网 IP,而10.2.0.1是ROS-B的公网IP。

分别在ROS-A和ROS-B上开启WireGuard

  • 注意,端口13231最好换一下,可能国内这个端口会被运营商屏蔽
  • 如果有上级或同级路由,防火墙也要注意开启对应端口

开启WireGuard以后,还需要设置对应WireGuard网口(虚拟出来的网口)的IP地址

分别在两边路由的Peers中添加对方,获取A的公钥

将A的公钥填入B的Peer中,由于要知道对方是谁,Endpoint填写对方的IP地址,如果是非主动发起方,可以不填写。

Endpoint Port填入对方的端口,Allowed Address写入允许连接的客户端的IP段,这里直接指定对方的真实IP即可。

同理将B的公钥也填入A中,其他设置差不多。

完成以后就可以ping对方的WireGuard的IP来测试是否组网成功了

ZeroTier

RouterOS安装ZeroTier比较简单,下载对应的Extra Packages 然后把里面ZeroTier的npk上传到File中,直接重启就自动安装好了

输入Network ID然后在Instance中启动对应的controller即可

通过ping工具已经可以ping通对方了

但是这样有一个问题,只有部署了ZeroTier的路由才能ping通,他的下一级设备都无法直接ping通

静态路由

想做到对于主路由下面的设备无感,那就需要将两边的路由打通,利用Nat来通信,本身RouterOS在这里并不需要怎么配置了,都是ZeroTier端进行配置。

ZeroTier中添加一个静态路由,比如要访问192.168.1.x网络内的任意客户端,需要通过某个ZeroTier内的设备,这里是10.244.179.68

这样就等于是建立了两个子网之间的桥梁,但是此时还是单向通道,同理如果要从另一个子网访问过去,也需要建立一个路由。

网络部署的时候最好把两边的子网错开,这样静态路由不会冲突,这里反向访问就是192.168.4.x

设置好以后就能在路由表中看到通过ZeroTier中获取到的路由表信息了

但是这样有一个小问题,如果要使用NAS,但是SMB服务的默认发现是不能跨网段的,所以底下的子设备是无法知道当前局域网中存在NAS的。

只能手动指定NAS的IP和存储路径,然后添加到网络位置中

\\10.244.179.68\公司xx

类似于这样。

如果想要可以直接看到对应的设备,那么就需要底下的每个设备都加入ZeroTier中,每个设备都有自己的ZeroTier IP,那么就可以直接发现NAS设备了。

增加Moon

在RouterOS中增加Moon节点

进入zerotier中

zerotier/peer/

查看当前所有节点

print

研究半天,发现RouterOS中的ZeroTier是不支持的Moon的,peer中没有增加的操作,这就非常尴尬了

Summary

总而言之,可以组网了,但是不够完美吧,距离好用还差一些

Quote

https://help.mikrotik.com/docs/display/ROS/WireGuard

https://www.77bx.com/154.html

https://zhuanlan.zhihu.com/p/623640331?utm_id=0

https://zhuanlan.zhihu.com/p/447375895

https://zhuanlan.zhihu.com/p/636198518

http://www.irouteros.com/?p=1690

http://www.irouteros.com/?p=1710

https://help.mikrotik.com/docs/display/ROS/ZeroTier