# huaweicloud-solution-build-a-global-network-connection-solution-based-on-cloud-connectivity
**Repository Path**: HuaweiCloudDeveloper/huaweicloud-solution-build-a-global-network-connection-solution-based-on-cloud-connectivity
## Basic Information
- **Project Name**: huaweicloud-solution-build-a-global-network-connection-solution-based-on-cloud-connectivity
- **Description**: 通过云连接服务实现全球网络互联
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master-dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-08-16
- **Last Updated**: 2022-12-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[TOC]
# 基于云连接的全球网络互联解决方案
**解决方案介绍**
===============
该解决方案解决用户在跨境管理云服务资源进行运维操作时,由于链路远、公网质量不佳导致的命令延时高、操作卡顿、丢包等问题。方案基于云连接,为运维人员建立一条“境内-境外”之间的稳定运维链路(链路默认建立在广州-香港,可调整),两个跳转IP之间实现内网互通。用户可其通过境内、境外两个ip进行接入和跳出,实现跳转至境外公网,进行境外资源的运维,实现合规、安全与稳定的跨境连接。
**架构图**
---------------

**架构描述**
---------------
该解决方案会部署如下资源:
1. 在境内region(默认广州)、境外region(默认香港)分别部署一台弹性云服务器作为跳板机,提供SSH登陆其他服务器的通道。
2. 分别为两台跳板机服务器绑定公网ip,运维人员可在境内接入广州跳板机、并通过香港跳板机访问境外其他地区待运维资源。
3. 云连接打通两个跳板机所在的VPC,实现两个VPC中的资源通过内网互通,更加稳定、安全。
4. 通过设置安全组规则,对允许连接服务器的源IP进行策略控制,既能满足运维需要,又能够保护运维环境安全。
例如,运维人员在境内,需要运维海外的资源或平台,则运维人员可以将两台跳板机分别设置在华为云-广州region,以及华为云-香港region,使用云连接将两地的VPC环境内网打通。运维人员通过公网ip登录广州的服务器,再通过ip登录至香港服务器后,即可发送指令管理境外的运维资源。
**组织结构**
---------------
``` lua
build-a-global-network-connection-solution-based-on-cloud-connectivity
├──variable.tf -- 资源编排模板,用于填写部署资源相关参数,部署前需要用户进行修改
├──main.tf -- 资源编排模板,主函数,无需修改
├──bgp_and_region.tf -- 资源编排模板,无需修改
```
**约束限制**
---------------
1.该解决方案部署前,需注册华为云账户,完成实名认证,且账号不能处于欠费或冻结状态。
2.方案仅支持完成架构部署的能力,云连接仅创建了跨区域互通的实例,并未包含带宽包。未挂载带宽包时,只提供10kpbs测试带宽进行连通性测试,无法支持实际使用的流量带宽。
3.实际投入业务使用时,建议另外手动在控制台[购买及挂载](https://console.huaweicloud.com/cc/?region=cn-north-4#/cc/bwpManage)云连接的流量带宽包,购买前需要遵循云连接的使用资质限制,在[华为云控制台-网络控制台-云连接-带宽包管理](https://console.huaweicloud.com/cc/?region=cn-north-4#/cc/bwpManage)完成相应的资质认证。
**部署资源情况**
---------------
**1. 跳板机均为CentOS版本**
|云服务 |配置示例 |
| ------------ | ------------ |
|弹性云服务器 ECS-境内(广州)侧|规格:X86计算/计算通用型/ s6.medium.2/1Cpu 2GiB |
| | 镜像:CentOS 7.9 64bit|
| | 系统盘:通用型SSD 40GB|
|弹性云服务器 ECS-ECS-境外(香港)侧|规格:X86计算/计算通用型/ s6.medium.2/1Cpu 2GiB |
| | 镜像:CentOS 7.9 64bit|
| | 系统盘:通用型SSD 40GB|
|弹性公网IP |计费模式: 按需计费/按带宽计费 |
| | 带宽大小:5Mbit/s |
| | 线路:动态bgp|
| 云连接 | 区域:按两台跳板机所在region进行选择,若广州-香港链路可选择中国大陆-亚太|
| | 计费模式:云连接实例免费提供10kbps测试带宽;可额外购买跨境带宽包:按需计费或带宽包计费 |
|安全组|入方向放通icmp全部端口,放通源0.0.0.0/0|
| | 入方向放通TCP 22端口,放通源0.0.0.0/0|
| | 出方向全部放通|
**2. 跳板机均为Windows版本**
|云服务 |配置示例 |
| ------------ | ------------ |
|弹性云服务器 ECS-境内(广州)侧|规格:X86计算/计算通用型/ s6.large.2/2Cpu 4GiB |
| | 镜像:Windows 2019 数据中心版 64bit简体中文|
| | 系统盘:通用型SSD 40GB|
|弹性云服务器 ECS-境外(香港)侧|规格:X86计算/计算通用型/ s6.large.2/2Cpu 4GiB |
| | 镜像:Windows 2019 数据中心版 64bit简体中文|
| | 系统盘:通用型SSD 40GB|
|弹性公网IP |计费模式: 按需计费/按带宽计费 |
| | 带宽大小:5Mbit/s |
| | 线路:动态bgp|
| 云连接 | 区域:按两台跳板机所在region进行选择,若广州-香港链路可选择中国大陆-亚太 |
| | 计费模式:云连接实例免费提供10kbps测试带宽;可额外购买跨境带宽包:按需计费或带宽包计费 |
|安全组|入方向放通icmp全部端口,放通源0.0.0.0/0|
| | 入方向放通TCP 3389端口,放通源0.0.0.0/0|
| | 出方向全部放通|
**3. 调整说明**:
1)若需要调整云服务器规格,可在main.tf中的对应代码行修改。(可按main代码备注的说明修改)
2)安全组调整:可根据运维场景需求,在华为云控制台,找到对应的跳板机,放通不同端口
**参数填写说明**
---------------
- `access_key` (必填,String)获取账号AK:[如何获取账号的访问密钥AK/SK](https://support.huaweicloud.com/iam_faq/iam_01_0618.html),默认为空。
- `secret_key` (必填,String)获取账号SK:[如何获取账号的访问密钥AK/SK](https://support.huaweicloud.com/iam_faq/iam_01_0618.html),默认为空。
- `region_operation` (必填,String)选择运维人员在境内设置的跳板机所在区域,根据:[地区和终端节点](https://developer.huaweicloud.com/endpoint)中的“区域”一栏, 填写至对应的default取值中。若通过广州-香港链路跨境,即可选择华南-广州一节点作为境内出网的跳板机,填写“cn-south-1” (区分大小写,若大小写错误则会部署失败)。默认为“cn-south-1”。
- `region_resource`(必填,String)选择设置境外跳板机所在的区域,根据:[地区和终端节点](https://developer.huaweicloud.com/endpoint)中的“区域”一栏, 填写至对应的default取值中。若通过广州-香港链路跨境,即可选择亚太-香港节点作为境外出网的跳板机,填写“ap-southeast-1”(区分大小写,若大小写错误则会部署失败) 。默认为“ap-southeast-1”。
- `OS_type` (必填,String)选择两台ECS的操作系统,支持“Windows”或“CentOS”(区分大小写,若大小写错误则会部署为CentOS系统)
- `ecs_operation_admin_pass`(必填,String)该方案部署的靠近运维侧人员的ECS的密码,默认为空。
- `ecs_resource_admin_pass`(必填,String)该方案部署的靠近待管理资源侧ECS的密码,默认为空。
- `eip_charging_mode`(必填,String)弹性IP计费模式,取值为bandwidth(按带宽计费)或traffic(按流量计费)。默认按流量计费。
- `ecs_charging_mode` (必填,String)弹性云服务器计费模式,取值为prePaid(包年/包月)或postPaid(按需计费)。默认postPaid
- `ecs_charging_unit` (选填,String)弹性云服务器及弹性IP订购周期类型,仅当charging_mode为prePaid(包年/包月)生效。取值范围:month(月),year(年)。默认month
- `ecs_charging_period`(选填,String)弹性云服务器及弹性EIP订购周期,仅当charging_mode为prePaid(包年/包月)生效。取值范围:period_unit=month(周期类型为月)时,取值为[1,9];period_unit=year(周期类型为年)时,取值为[1,3]。默认为1.
**部署指南**
---------------
**步骤 1** 获取开源代码。
**Windows系统:**
1. 登录华为云[开源解决方案代码仓-“基于云连接的全球网络互联解决方案”](https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-build-a-global-network-connection-solution-based-on-cloud-connectivity).
2. 点击右上角“克隆/下载”,选择下方“下载zip”。
3. 解压下载后的压缩包,找到“基于云连接的全球网络互联解决方案”文件夹,即为获取到的开源代码。
**Linux系统:**
使用命令:git clone https://gitee.com/HuaweiCloudDeveloper/solution-as-code.git 将代码clone到本地机器上。
**步骤 2** Terraform环境准备:
**Windows系统:**
1. 转至https://www.terraform.io/downloads.html,下载适用于本机器的程序包,建议使用1.3.5及更新的版本。(windows_386结尾为32位系统,windows_amd64结尾为64位系统)
2. 将程序包解压缩至任意路径(解压缩后为可执行文件),复制该路径。
3. 将解压所在的路径设置为环境变量
(控制面板-系统-高级系统设置-环境变量-(系统变量窗格)找到PATH,点击“编辑”-新建,粘贴添加Terraform 可执行文件所在的文件夹路径-点击确定退出“环境变量 ”窗口 – 点击确定退出“系统属性 ”窗口)。
验证配置效果:点击键盘“Win图标键 + R键”进入cmd控制台,输入terraform version指令,返回所下载的terraform版本即为配置成功。
图1 配置terraform成功示例

4. 下载华为云privider,v1.42.0版压缩包,下载连接:下载华为云Provider。可参考:[加速terraform init 命令](https://support.huaweicloud.com/terraform_faq/index.html)。注意选择的操作系统必须与1.中下载的terraform程序包的操作系统保持一致。(32位系统以windows_386结尾,下载版本应为“terraform-provider-huaweicloud_1.42.0_windows_386”;64位系统以windows_amd64结尾,下载版本应为“terraform-provider-huaweicloud_1.42.0_windows_amd64 ”)
5. 配置路径,并将上一步中的压缩包解压缩至该路径中。
待配置的路径名为:
%APPDATA%\terraform.d\plugins\ local-registry \ huaweicloud \ huaweicloud \1.42.0\ <操作系统版本名>。
图2 进入配置文件操作说明


最终路径示例:32位版本:
C:\Users\Administrator\AppData\Roaming\terraform.d\plugins\local-registry\huaweicloud\huaweicloud\1.42.0\windows_386
64位版本:
C:\Users\Administrator\AppData\Roaming\terraform.d\plugins\local-registry\huaweicloud\huaweicloud\1.42.0\windows_amd64
验证配置效果:点击键盘“Win图标键 + R键”进入cmd控制台,输入terraform validate指令,返回“Success!”即为配置成功。
图3 路径配置成功示例

**Linux系统:**
1~3点中terraform软件安装命令见:https://www.terraform.io/downloads
4.下载华为云provoder加速:在下载华为云Provider下载连接:https://github.com/huaweicloud/terraform-provider-huaweicloud/releases 找到与terraform软件系统匹配的压缩包,解压至路径:
```
# 若为Linux64位系统
~/.terraform.d/plugins/local-registry/huaweicloud/huaweicloud/1.42.0/linux_amd64
# 若为Linux32位系统
~/.terraform.d/plugins/local-registry/huaweicloud/huaweicloud/1.42.0/linux_386
```
**步骤 3** 打开variable.tf 文件(可使用记事本打开),填写参数。
可按照本章开始部分的参数填写说明指导表格,将设定值填写至对应项目的default等号右侧取值的双引号内。如图4所示。
填写示例:参数模块以variable+ “ 参数 ” 为开头,例如variable “region_operate”项,需要选择运维人员在境内搭建跳板机的区域,根据:[地区和终端节点](https://developer.huaweicloud.com/endpoint)中的“区域”一栏, 填写至对应的default取值中。如通过广州-香港链路跨境,即可选择广州节点,填写“cn-south-1” (区分大小写,若大小写错误则会部署失败) 。
图4 填写参数示例

**步骤 4** 进入命令行
选中文件路径(图5),输入cmd, 敲击键盘回车键(图6),进入该路径下的命令行程序(图7)。
图5 选中路径

图6 路径处输入cmd

图7 进入命令行

**步骤 5** 输入部署命令
在命令框界面依次输入指令:terraform init(用于初始化)、terraform plan(用于查看待部署资源列表)、terraform apply 完成部署(需要输入yes确认部署)。
图8 terraform init 命令

图9 terraform plan 命令

图10-11 terraform apply 命令,确认部署输入yes


图12 部署完成提示

**开始使用**
---------------
**步骤 1** 登录华为云[弹性云服务器控制台](https://console.huaweicloud.com/ecm/?agencyId=9649fa69841c440d86bb0027eadc3155&locale=zh-cn®ion=cn-north-4#/ecs/manager/vmList),进入云服务器列表。
图13 弹性云服务器控制台

**步骤 2** 分别查看在两个region创建的弹性云服务器基本信息和绑定的弹性公网IP。
图14 弹性云服务绑定的EIP(境内-广州的服务器)

图15 弹性云服务绑定的EIP(境外-香港的服务器)

**步骤 3** 开始运维操作
通过本地运维平台远程连接登录到靠近运维人员的弹性云服务器,再利用IP远程登录至靠近云服务资源/本地IDC的弹性云服务器后,即可通过此通道进行资源运维操作。
**CentOS系统**
用户名默认为root,远程登录命令操作及效果见图16:
1. 输入命令:ssh root@1xx.xxx.xx.xxx (此处“xxx.xxx.xxx.xxx”为ECS的ip地址)
2. 在显示问题“Are you sure want to continue connecting(yes/no)?” 后,输入yes
3. 在提示输入password时,输入部署时所设置的该ECS的登录密码。
图16 远程登录服务器(跳板机使用CentOS系统)

**Windows系统**
用户名默认为Administrator,远程登录操作及效果见图7-5:
1. 打开系统自带“远程桌面连接”软件,输入本方案部署生成的云服务器ip
2. 输入用户名Administrator,密码为部署过程中所设置的云服务器密码。
图17-18 远程登录服务器(跳板机使用Windows系统)


**【附录1】申请开通按需计费云连接带宽包操作介绍。**
---------------
通过提交工单申请按需使用云连接带宽包权限操作介绍。(如不使用云连接带宽包或按月购买云连接,不需要进行此步骤)
**步骤 1** 登录华为云控制台,点击提交工单,进入“新建工单”界面,在输入框内输入“云连接”,选择产品-云连接(CC)
图19 提交工单


**步骤 2** 问题类型选择“云连接使用及配置”,进入智能客服界面
图20 进入智能客服界面

**步骤 3** 输入“人工”,创建工单。“问题描述”一栏内容:
开通云连接按需带宽包
华为云账号:xxxxxx
使用场景:跨境运维场景下使用云连接。
图21 人工处理

**【附录2】:购买包月带宽包的相关操作。**
------------
**步骤 1** 进入[网络控制台-云连接-带宽包管理](https://console.huaweicloud.com/cc/?region=cn-north-4#/cc/bwpManage),右上角“购买带宽包”
图22 购买带宽包

**步骤 2** 进入购买带宽包界面,选择计费模式(包年包月,若已开通按需付费权限会多出按需付费入口),根据运维人员位置、业务部署地域选择连通的大区。可自行设置带宽和购买时长。绑定本方案生成的(名称为“cc_global_operation”)云连接实例。点击“立即购买”即可。
图23 选择带宽包大区

**快速卸载**
------------
**步骤 1** 若已申请购买云连接带宽包,请先手动解绑带宽包。
①[解绑云连接的带宽包](https://support.huaweicloud.com/usermanual-cc/cc_03_0304.html)
②若申请购买了**按需带宽包**,建议在不使用时及时[删除按需带宽包](https://support.huaweicloud.com/usermanual-cc/cc_03_0307.html)。(按需带宽包存在即计费)
**步骤 2** 移除云连接实例
登录华为云[网络控制台-云连接](https://console.huaweicloud.com/cc/?region=cn-north-4#/cc/cns),选择名称为“cc_global_operation”的云连接实例。将实例下的两个VPC全部移除。
图24 云连接控制台-云连接实例

图25 将网络实例(VPC)移除云连接

**步骤 3** 资源一键删除
在开源代码所在路径下输入cmd进入命令行控制台(参考“第六章.快速部署-步骤4”)。输入命令:terraform destroy 并执行,删除所有资源
图26 执行terraform destroy

图27 输入yes确认删除

图28 删除完成提示
