双十一个个云厂商都有一定的优惠,我在阿里云和腾讯云都购买了服务器,原本主要是使用的阿里云,一堆乱七八糟的东西都是部署在阿里云的,现在买了一台腾讯云之后就在思考一个问题,怎么在腾讯云使用阿里云原本部署的服务。
我逛论坛看到v2上有个redis跨VPC的问题,感觉跟我的需求很像,只不过我的是跨云而已,帖子下面有很多解决方案。最后我找到了一个叫SD-WAN的概念,可以用SD-WAN来打通阿里云和腾讯云的网络,让他们看起来像是在一个内网一样,听起来有点像是VPN,网上找到一些做SD-WAN产品的公司以及一些开源项目,这里选两个来进行详细分享,一步一步配置,看他们是如何解决这个问题的,希望给有需要实现跨云网络打通的朋友一些参考。
我这里分享的是两个产品:
- zerotier,老外开发的一个项目,这个比较出名了,可以用来做异地组网和内网穿透
- 比扬云SD-WAN,我了解到他们主要也是看到他们创始人在github上做的项目,比扬云的SD-WAN应该猜测是从他的开源项目演进过来的
当然做SD-WAN的还有很多,我之所以分享这两个产品仅仅只是因为这是我能跑的起来的,而且都是可以免费使用的,这个对于白嫖党来说还是很重要的,其他的产品都要我留下联系方式等他们联系我,然后又问我是哪个公司的,还问我有多大量,我一个白嫖党哪来的公司,所以自然没办法推荐了。
接下来看一下如何通过这两个产品来打通我的阿里云和腾讯云,操作都非常简单,我个人认为5分钟以内就能操作完成。
基本信息
我有一个阿里云,内网网段是172.19.0.0/24,其中一台云服务器的IP是172.19.16.7
我有一个腾讯云,内网网段是172.20.0.0/24,其中一台云服务器的IP是172.20.0.4
我的目标很简单,帮我把这两个公有云的内网进行打通,让他们通过内网IP能够连通就行,这样也能屏蔽掉公网的访问。
zerotier连通多云网络
zerotier网上已经有很多资料了,很多人拿来做SD-WAN,做内网穿透,他的使用方式也简单,接下来我来分享一下我是如何通过zerotier来打通阿里云和腾讯云网络的。
-
首先登录到控制台,登录之后会看到我们具备的一些额度信息,然后点击创建网络就可以增加一个网络了。这里的网络ID比较重要,所有的客户端都是通过这个网络id加入网络的。
-
安装客户端,也就是zerotier one,这个很简单,只需要一行命令就可以安装了
curl -s https://install.zerotier.com | sudo bash
执行完之后看到提示则表示安装成功。
安装完之后我一度在找我应该怎么用,最后看文档发现已经安装了zerotier-cli的命令行工具,通过这个工具来加入网络就可以了。
zerotier-cli join 网络ID
之后刷新控制台就能看到新的客户端出来了,然后需要给这个客户端进行授权,同样的方式再阿里云和腾讯云分别操作一次。
- 接下来需要配置路由,我需要把阿里云的网段配置上去,配置完就可以通了,但是zerotier免费的只允许配置一条路由,也就是说我只能在腾讯云单向主动访问阿里云,没办法在阿里云主动发起访问腾讯云。
整体感觉zerotier还是需要一些门槛的,比如我安装的时候,装完关了终端了,找半天自己的客户端ID,然后不得不重装,再看看配置路由这个操作,一开始看上去还是有点懵逼的,不懂怎么配置。
zerotier是可以自己搭建自己的节点的,但是自己搭建这个是需要一些学习成本的,同时也会碰到一些坑,我整体体验如果用zerotier不如直接用wireguard。
比扬云SD-WAN连通多云网络
比扬云的SD-WAN我是第一次接触,他们是专注于做网络连接的,整体感觉跟蒲公英是类似的东西,最主要的是大部分产品都可以免费使用,甚至都不需要找他们的官方客服去额外开通,直接在网站上配置就能用。
接下来看看如何用他们的产品来连通阿里云和腾讯云。
首先进入到他们的控制台,比扬云的SD-WAN只有两个概念。
第一是虚拟网络,逻辑网络
第二是站点,站点跟微PN客户端不是一个东西,更像是隧道,站点有自己的一个网段,比如我的阿里云是个站点,网段是172.19.0.0/16,同一个虚拟网络内的其他站点如果访问172.19.0.0/16这个网段,都会被转发到阿里云的站点,这个跟zerotier是非常像的。
理解这两个之后接下来就是配置,先创建虚拟网络,再创建阿里云和腾讯云的站点,这个都非常简单。
-
创建虚拟网络,虚拟网络可以一直创建,但是一般来说一个就能够满足需求了,虚拟网络下面有站点和员工账号,员工账号是mac和windows的客户端,我暂时还用不到
-
创建阿里云和腾讯云的站点,把网段填上就行了。
接下来我重点介绍一下如何激活站点,比扬云的体验好就好在他的站点激活只需要运行一行命令就可以了,在每个站点前面有一个>展开按钮,展开之后就会看到激活站点的命令,运行之后刷新就能看到站点在线的状态了,整个过程很流畅,没有碰到什么卡点的地方。
接下来进行测试,测试我直接用的腾讯云连接阿里云的grpc服务就行了,这里涉及到具体的信息就不继续分享了。
整体对比
-
首先在易用性上,我认为比扬云是要更好用的。
我的判断标准是我能不能一次性把这个东西运行起来,zerotier其实也很容易用,但是我是需要看文档,跟着文档操作才行的,不然会有点不知所措,从这个感觉zerotier倒更像是开源项目演变而成的,有点技术味道。而比扬云SD-WAN虽然是从github项目演进而来的,但是我个人感觉他已经慢慢往产品化方向去发展了,虽然产品自身还有点瑕疵,主要是缺一些编外功能,但是产品的使用的简洁性应该是他比较看重的地方,从他设计一行命令以及配置的方式就可以看出来。 -
配置方式的设计上,我觉得是大同小异。
zerotier采用的是客户端主动加入网络再进行授权的方式,zerotier的配置流程是先创建网络,然后再运行客户端加入网络,此时客户端会有一个内网的IP,类似微PN的虚拟IP,接下来需要配置路由,让哪个网段通过哪个虚拟IP发出去
比扬云的SD-WAN的配置流程是先创建网络,然后创建站点,可以类比zerotier的客户端,站点是和网段关联的,一个网段会关联一个站点,这个是创建站点的时候就已经指定了的,最后运行客户端就可以了,也就是说比扬云是还没使用客户端就已经将客户端加入网络去了,跟zerotier刚好实现相反,zerotier的方式可能是考虑传播,因为不需要你只需要告诉别人的网络ID就能让对方使用了,不需要对方登录zerotier的控制台 -
最后来关注一个现实的问题,价格。
这两个产品都是可以免费使用的,zerotier的免费有限制,比如之前看到的路由条目只能创建1条,那就没法双向通信,所以很多人拿来做内网穿透是有原因的,内网穿透只需要单向访问就可以了,如果需要双向访问,那你就要掏钱了,而且zerotier是海外的公司,我怀疑在国内使用是否会水土不服。
比扬云SD-WAN也是免费使用的,这是我见到的唯一一个在官网就能配置免费使用的SD-WAN产品,如果有其他的麻烦也留言我体验(我说的免费使用是不需要任何销售的参与,那些打着免费的旗号叫我加销售联系方式的可以不要浪费彼此的时间了)我一度在想他们是靠什么盈利的,然后发现从我的角度使用免费的是没问题的,因为我本来就是白嫖的,但是从企业客户的角度,免费反而不是什么好事,你免费给他,他还不一定愿意,因为免费意味着没有可以拿捏的地方。