亚马逊AWS官方博客
利用 AWS Transit Gateway 构建全球传输网络 Global Transit Network
什么是全球传输网络 Global Transit Network?
AWS在全球21个地理区域内运营着66个可用区,得利于AWS广泛的全球基础设施,企业可以快速地将业务部署到全球各地,同时出于业务需求他们往往需要将分布在全球各地的IT资源连接起来,通过内网实现应用程序间安全、高效的通讯。典型的应用场景有:游戏的全球同服、企业全球内部组网等。
我们将在这篇文章中描述如何利用AWS 丰富的网络服务构建全球传输网络。
构建全球传输网络我们需要解决什么问题?
AWS 提供了丰富的网络组件和服务帮助用户灵活的构建他们的网络架构,AWS的用户可以利用 Amazon VPC创建多个虚拟网络,Amazon VPC之间包括非AWS基础设施可以实现相互连接。
传统的做法是利用VPC Peering功能,将区域内或者跨区域之间的VPC进行连接,利用Direct Connect 或VPN实现非AWS基础设施与AWS的互联。参见如下架构图:
随着 AWS 上运行的工作负载数量的增加,传统方式的管理工作将成倍增加,迫切需要提供一种集中管理链接的方案。AWS 在2018年 Re:Invent 推出了新的服务AWS Transit Gateway,使用 AWS Transit Gateway,只需创建和管理从中央网关到网络中每个 Amazon VPC、本地数据中心或远程办公室的单个连接。Transit Gateway 就像一个中心,控制流量在所有连接的网络之间的路由方式,而这些网络就像辐条。这种轴辐式模型可显著简化管理并降低运营成本,因为每个网络只需连接到 Transit Gateway,而不是连接到所有其他网络。任何新的 VPC 都只需连接到 Transit Gateway,然后自动向连接到 Transit Gateway 的所有其他网络开放。这种易连接性使您可以随着增长轻松扩展网络。
AWS Transit Gateway 目前只支持单个区域内VPC的连接,如果需要实现跨区域的全球传输网络,我们可以借助Transit VPC 的方式来实现。
全球传输网络架构概览:
- 区域内部使用 AWS Transit Gateway 替代 VPC Peering 简化 VPC之间的互联
- 选取一个区域创建一个 VPC 我们称之为 Transit VPC,部署软路由(例如:Cisco CSR),各个区域内的Transit Gateway 通过 VPN 连接到 Transit VPC 实现跨区域的连接
- 非AWS基础设施(例如本地数据中心、远程办公室)通过专线或者VPN 方式接入AWS Transit Gateway
全球传输网络实施方案:
1.网络拓扑
2.实施部署
2.1 实验环境准备
分别在 Oregon Region 和 Frankfurt Region 部署VPC 实验环境,并且配置Transit Gateway(以下简称 TGW),具体的配置如下表:
Region | Resources | ||
Oregon | VPC-1 CIDR: 10.1.0.0/16 |
Subnet-1-1 CIDR: 10.1.1.0/24 |
EC2-1-1 |
VPC-2 CIDR: 10.2.0.0/16 |
Subnet-2-1 CIDR: 10.2.1.0/24 |
EC2-2-1 | |
TGW BGP ASN:65100 关联 VPC1 与 VPC2 |
|||
Frankfurt
|
VPC-3 CIDR: 10.3.0.0/16 |
Subnet-3-1 CIDR: 10.3.1.0/24 |
EC2-3-1 |
VPC-4 CIDR: 10.4.0.0/16 |
Subnet-4-1 CIDR: 10.4.1.0/24 |
EC2-4-1 | |
TGW BGP ASN:65200 关联 VPC3 与 VPC4 |
如果不熟悉 VPC 创建和 TGW 配置请参考:
- VPC 创建:https://docs.thinkwithwp.com/zh_cn/vpc/latest/userguide/vpc-getting-started.html
- TGW 配置:https://thinkwithwp.com/cn/blogs/china/build-transit-gateway-easily-use-complex-network-structure/
2.2 部署Transit VPC(Cisco)
我们将在Singapore Region使用 CloudFormation自动创建 Transit VPC,在本方案中我们使用 AWS Transit Gateway 来替换 VGW,所以只需要完成 步骤1和 步骤2 即可。
在创建CloudFormation 时,请注意我们这里使用 BGP ASN 为65300 ,其它保持默认配置即可。
具体操作参考:
Transit Network VPC (Cisco CSR):
https://docs.thinkwithwp.com/solutions/latest/cisco-based-transit-vpc/deployment.html
整个创建过程将在10分钟内完成,当CloudFormation Stacks 状态为Complete 时,查看 Outputs 信息,并且记录 CSR1 和 CSR2 的 Public IP信息(以下将简称 CSR1-PublicIP, CSR2-PublicIP )。
注意:CloudFormation 模版在N.Virginia 启动,注意手动切换到 Singapore Region。
2.3 建立Transit Gateway 与 Transit VPC 之间的连接
步骤1: 创建 Transit Gateway Attachments
控制台切换到 Oregon, 进入VPC 服务,选择 Transit Gateway Attachments。
按照下表作为参数,创建两个 Transit Gateway Attachment,TGW 将分别与两个CSR 建立VPN连接。
Transit Gateway ID | 章节 2.1 中创建的 TGW |
Attachment type | VPN |
Customer Gateway | New |
IP Address | 章节2.2 中生成的CSR 公网IP(例如:CSR1-PublicIP) |
BGP ASN | 65300 |
Routing options | Dynamic (requires BGP) |
步骤2: 下载并修改VPN 隧道配置文件
在VPC 服务控制台中,选择 Site-to-Site VPN Connections ,选中 CSR-1 点击 Download Configuration,下载 Platform 为 CSRv AMI的模版。
用文本编辑器,打开 配置模版,替换 <interface_name/private_IP_on_outside_interface> 为 GigabitEthernet 1。
用ssh 命令登录CSR1(例如:ssh -i key.pem ec2-user@CSR1-PublicIP)
进入配置模式:输入 config ,粘贴所有配置模版中的内容
步骤3: CSR 状态检查
退出配置模式: (config)# exit
检查Key交换状态: # show crypto isakmp sa
检查IPSec状态: # show crypto ipsec sa
检查BGP状态: # show ip bgp summary
检查路由传播:#show ip route
2.4 在Frankfurt Region建立Transit Gateway 与 Transit VPC 之间的连接
在2.3 章节中,我们介绍了在 Oregon Region 中创建 Transit Gateway 与 Transit VPC之间的连接,接下来我们重复 2.3 章节的内容在 Frankfurt Region 执行相同配置。
注意:当执行 “章节 2.3 步骤2: 下载并修改VPN 隧道配置文件”,修改配置文件的时候,
需要把 interface Tunnel1 改为 interface Tunnel3,interface Tunnel2 改为 interface Tunnel4 ,不然会覆盖 Oregon Region 的配置。
保存Cisco 配置:# copy running-config startup-config
2.5 Transit VPC 高可用 部署
参考 2.3 & 2.4 配置 CSR2 实现 Transit VPC 的高可用架构。
3.VPC的路由策略与连通性测试
通过章节2 的部署与配置,我们已经完成了 Transit VPC 与 两个不同Region之间的高可用连接。要让分布在两个Region 之间的VPC 能够互相通讯,我们还需要配置一下,VPC 子网的路由表,以及 安全组。
3.1 配置 VPC 子网路由表
添加一条记录 10.0.0.0/8 指向 Region 所在的 TGW
3.2 配置安全组
根据需求开放对应的协议和端口即可。
3.3 连通性测试
从VPC-3(Frankfurt Region)EC2 Ping VPC-1 (Oregon Region)EC2
至此,本次部署完成,您可以参考本教程,把跨账户、跨Region、甚至是本地机房通过专线 接入 Transit VPC 完成全球传输网络的部署。