背景
公司某业务目前有海外和国内服务,需求是国内数据需要实时同步到海外,DBA同事使用mysql主从同步的方式进行,所以建议打通海外和国内网络。
分析
目前实现这个背景有两种方式:
- 专线
- vpn隧道
由于目前业务量级非常小,数据量不大,所以使用专线方式难免有点贵,所以我们采用vpn隧道的方式打通两方内网。
技术实现
想要实现vpn隧道,目前我们使用云服务商的话,可以直接使用云服务商提供的vpn服务。
1 | GCP:混合连接-vpn |
1 | vpn隧道其实比较简单,你就认为是A和B都有一台公网机器,通过一定协议实现了互联,那么这台机器最终充当的一个角色就是网关路由,当你A地的一台机器访问B地的一台机器,都是需要先通过网关的。 |
画了一个简单的架构图,大致是这个样子吧:
具体步骤
- 创建gcp网关
- 创建华为云网关
- 创建gcp隧道
- 创建华为云隧道
- 检查防火墙、安全组、acl等限制
- 测试网络联通性
1.创建gcp网关
首先学习下红框中的3个概念:
1 | 1. Cloud vpn隧道---真实隧道,连接AB两地网关 |
注:由于华为云没有提供高可用类型网关(就是多个ip,防止被封),所以不必创建对等vpn网关。
创建传统的vpn网关,可以先不用创建隧道:
2.创建华为云网关
几个地方需要注意和填写下:
1 | 1. 本端子网---就是你要跟gcp网络互通的网段 |
3.创建gcp隧道
4.创建华为云隧道
其实第二步的时候已经顺便创建隧道了,可以直接去看看状态
5.检查状态
创建好gcp的隧道之后,他们就会默认去尝试建立连接,可以观察gcp和华为云上隧道的状态
6.检查防火墙、安全组、acl等限制
检查两边网段的防火墙规则和安全组是否放行了,不论你用ping还是telnet。
默认创建完隧道之后,都会生成一条新的路由,就是到对端网段的数据包都走隧道过,保证数据能够正常流通。
注:gcp上mysql是专用的一个网段,这个网段是自动生成的,当你创建隧道新生成了一条路由,他是不会被自动发现的,需要手动去更新mysql的网段路由发现,勾选一下下图即可。
7.测试网络联通性
在gcp和华为云上各找一台机器测试(注意:找的机器一定是要在你创建隧道的网段内)