使用vpn隧道模式打通gcp和华为云内网

背景

公司某业务目前有海外和国内服务,需求是国内数据需要实时同步到海外,DBA同事使用mysql主从同步的方式进行,所以建议打通海外和国内网络。

分析

目前实现这个背景有两种方式:

  • 专线
  • vpn隧道

由于目前业务量级非常小,数据量不大,所以使用专线方式难免有点贵,所以我们采用vpn隧道的方式打通两方内网。

技术实现

想要实现vpn隧道,目前我们使用云服务商的话,可以直接使用云服务商提供的vpn服务。

1
2
3
GCP:混合连接-vpn

华为云:云连接-虚拟专用网络
1
2
vpn隧道其实比较简单,你就认为是A和B都有一台公网机器,通过一定协议实现了互联,那么这台机器最终充当的一个角色就是网关路由,当你A地的一台机器访问B地的一台机器,都是需要先通过网关的。
注意:流量都是走公网的,不过传输过程是加密的。

画了一个简单的架构图,大致是这个样子吧:

png1

具体步骤

  1. 创建gcp网关
  2. 创建华为云网关
  3. 创建gcp隧道
  4. 创建华为云隧道
  5. 检查防火墙、安全组、acl等限制
  6. 测试网络联通性

1.创建gcp网关

首先学习下红框中的3个概念:

1
2
3
1. Cloud vpn隧道---真实隧道,连接AB两地网关
2. Cloud vpn网关---GCP端网关
3. 对等vpn网关---对方侧网关

注:由于华为云没有提供高可用类型网关(就是多个ip,防止被封),所以不必创建对等vpn网关。
png1

创建传统的vpn网关,可以先不用创建隧道:
png1

2.创建华为云网关

几个地方需要注意和填写下:

1
2
3
4
1. 本端子网---就是你要跟gcp网络互通的网段
2. 远端网关---就是你刚刚创建的gcp的网关ip地址
3. 远端子网---gcp的网段
4. 秘钥---填写一个密码,到时候创建隧道的时候会用到,通过这个来认证建立连接

png1

3.创建gcp隧道

png1

4.创建华为云隧道

其实第二步的时候已经顺便创建隧道了,可以直接去看看状态

5.检查状态

创建好gcp的隧道之后,他们就会默认去尝试建立连接,可以观察gcp和华为云上隧道的状态
png1

6.检查防火墙、安全组、acl等限制

检查两边网段的防火墙规则和安全组是否放行了,不论你用ping还是telnet。

默认创建完隧道之后,都会生成一条新的路由,就是到对端网段的数据包都走隧道过,保证数据能够正常流通。

注:gcp上mysql是专用的一个网段,这个网段是自动生成的,当你创建隧道新生成了一条路由,他是不会被自动发现的,需要手动去更新mysql的网段路由发现,勾选一下下图即可。

png1

7.测试网络联通性

在gcp和华为云上各找一台机器测试(注意:找的机器一定是要在你创建隧道的网段内)