亚马逊AWS官方博客
使用Amazon Site-to-site VPN建立SAP高可用链路
一、背景介绍
客户是一家跨国生物合成领军企业,在海外拥有生产基地和办公场所。客户采用 SAP 作为企业的供应链平台,SAP 部署在亚马逊云科技 新加坡区域,为方便新加坡员工访问 SAP,需要在公司和 SAP 之间建立安全稳定的链路。
二、解决方案
方案基于 Amazon Site-to-site VPN 和 Amazon Transit Gateway 实现。由于在 Amazon 云端部署的 SAP 采用了 RISE with SAP 方案,而客户没有 SAP RISE 账号的管理权,因此客户注册了自己的Amazon 账号以使用上述服务来建立链路。
2.1 环境规划
以下为本文的测试环境网络规划情况,
- on-premises:CIDR 192.168.0.0/16。并有两个 IPSec VPN 网关,其配置如下:
- 公网 IP 地址分别是:IP A 和 IP B
- BGP Local ASN 都是:65000
- 均启用非对称路由
- SAP RISE VPC:CIDR 10.0.0.0/16
2.2 整体架构
![]() |
其中涉及多个 Amazon 网络功能,这些功能的概念和用途如下:
- Customer Gateway:Amazon 中用于代表客户本地 IPSec VPN 网关的逻辑资源。通过 Customer Gateway 定义客户本地的 IPSec VPN 网关的公网 IP 地址以及 BGP ASN 等
- Transit Gateway:Amazon 提供的 region 级别网络中枢服务,用于集中连接和转发多个网络。通过 Transit Gateway 把 VPC、Site-to-Site VPN 集中互联
- Transit Gateway VPN Attachment:代表 VPN 与 TGW 之间的逻辑绑定关系。用户创建的 Transit Gateway VPN Attachment 在 Amazon 会自动随之创建一个 VPN Connection
- VPN Connection:Amazon 与 Customer Gateway 之间建立的一条 Site-to-Site VPN 连接。通过 VPN Connection 定义 IPsec VPN 的加密参数和认证方式
- VPN Tunnel:VPN Connection 中的单条 IPsec 加密隧道。通过 VPN Tunnel 提供实际的数据加密传输通道
- Transit Gateway VPC Attachment:代表 VPC 与 TGW 之间的逻辑绑定关系
2.3 方案优势
- 管理简化
- 绝大部分网络配置在客户的 Amazon 账户中管理,从而使客户拥有更多控制权
- Transit Gateway 集中管理 VPC、Site-to-Site VPN 等多个网络的拓扑和路由转发
- 传输安全
- 云上与云下连接的 Site-to-Site VPN 使用标准的 IPSec 协议族,确保数据在互联网传输时不会被窃听或篡改
- 高可用
- 两个 Customer Gateway 双活部署,避免 on-premises 环境的 IPSec VPN 网关单点故障
- 四条 VPN Tunnel 流量分担,借助 ECMP 聚合多个 VPN Tunnel 获得更高的 VPN 带宽
三、具体方案实现
3.1 客户 Amazon 账号内的配置过程
1、创建一个 transit gateway,注意启用 “VPN ECMP 支持” 选项,便于能在 transit gateway 的 VPN 连接上使用 ECMP 路由。
![]() |
2、创建两个 customer gateway,其 IP Address 分别对应 on-premises 环境的两个 IPSec VPN 网关的公网 IP 地址(也就是 IP A 和 IP B),BGP ASN 是 on-premises 环境的 ASN。
![]() |
3、创建两个 VPN attachment,将 transit gateway 和两个 customer gateway 分别连接起来。因为本文的 on-premises 环境中,IPSec VPN 网关支持BGP动态路由功能,这里创建 VPN attachment 时 “routing options” 选项应选择了 Dynamic,否则选择 Static。
![]() |
4、稍等几分钟以后,会看到 Amazon 自动创建了两个 Site-to-Site VPN Connection,对应上一步的两个 VPN attachment
![]() |
5、在 Site-to-Site VPN Connection 详情页面选择 “Download Configuration”,有多个设备厂商的配置模板可供下载。配置模板中含有 IPSec、BGP 相关配置参数。
![]() |
6、使用配置模板在 on-premises 环境的 IPSec VPN 网关完成配置之后,两个 Site-to-Site VPN Connection 下的共计四条 VPN tunnel 都将变为 UP 状态。
-
- 这一步需要保证,IPSec VPN 网关上对所有 Site-to-Site VPN Tunnel 的流量执行了 ECMP,并且所有向 Amazon 通告的 BGP 路由的 AS-Path 等于 on-premises 环境的 BGP Local ASN 即 65000。参考 https://repost.aws/knowledge-center/transit-gateway-ecmp-multiple-tunnels
![]() |
-
- 并且transit gateway 也自动学习到了 on-premises 环境的路由(168.0.0./16)。
![]() |
7、在 transit gateway 的详情页面,通过 Amazon RAM 将其共享给 SAP RISE 账号。
![]() |
3.2 SAP RISE 账号内的配置过程
1、在 Amazon RAM 中接受从客户 Amazon 账号共享的 transit gateway 之后,创建一个 VPC attachment,将 transit gateway 和 SAP RISE VPC 连接起来。
![]() |
2、修改 SAP RISE VPC 的子网路由表,添加一条路由,设定去往 on-premises 的流量都走 transit gateway。
![]() |
3.3 客户 Amazon 账号内确认 VPC Attachment
在 Transit gateway attachments 菜单中找到处于 pending acceptance 状态的 attachment,点击接受以后即可看到 transit gateway 自动学习到了 SAP RISE VPC 的路由(10.0.0.0/16)。
![]() |
3.4 连通性验证
- on-premises 环境(左)和 SAP RISE VPC (右)内的两台机器互 ping,可见连通性正常。
![]() |
- 在 on-premises 环境的测试机和 SAP RISE VPC 内的测试机之间使用 iperf 测试网络带宽,可见带宽达到 3Gbps 以上,表明 VPN ECMP 成功实现了在多条最大带宽为1.25Gbps 的 VPN Tunnel 上的流量分担。
![]() |
四、高可用测试
4.1 关闭 on-premises 环境内其中的一台 IPSec VPN 网关,模拟 IPSec VPN 网关异常的场景
Amazon 上其中的一个 Site-to-Site VPN Connection 下的两条 VPN Tunnel,随后显示都 down 掉了。
![]() |
但是从 SAP RISE VPC 到 on-premises 环境的双向互 ping 没有观察到丢包。
![]() |
4.2 修改另外一个 VPN Connection 下的 Tunnel1 的 Pre-shared key,模拟 Amazon 设备的例行维护场景
当测试场景触发时,Amazon 上从原有的四条 UP 状态的 VPN Tunnel 变成只剩下一条 UP 状态的了。
![]() |
从 SAP RISE VPC 到 on-premises 环境的双向互 ping,观察到了短暂的丢包,而后迅速恢复,所有的流量都走剩下的唯一一条 UP 状态的 VPN Tunnel。
![]() |
五、总结
在客户的 Amazon 账号使用 Transit Gateway + Site-to-Site VPN 连接 on-premises 环境与 SAP RISE VPC,可实现混合架构下网络的连通;使用 VPN ECMP 聚合多条 VPN Tunnel,可实现流量分担和高可用。整体方案简洁可靠、可扩展。
六、参考材料
本篇作者
AWS 架构师中心:云端创新的引领者探索 AWS 架构师中心,获取经实战验证的最佳实践与架构指南,助您高效构建安全、可靠的云上应用 |
![]() |



















