AWS HA 部署方案
一、方案背景
业务需要在 AWS 上部署两台 NE900(主/备),实现跟其他站点的组网,同时实现主备冗余
传统 VRRP 因 AWS 不支持无法部署
采用 AWS Transit Gateway (TGW) + BGP 冗余 方案
通过主备设备LAN侧跟 TGW 之间建立BGP,LAN侧通过 AS_PATH 长度 控制主备优先级,传输网络 通过站点 VRF路由发布优先级 控制优先级。
二、网络架构
拓扑说明:
两台 NE900 部署在同一 VPC,分别绑定到2个站点
两个站点分别配置网关
每个站点 与 TGW Attachment (Connect类型)通过LAN侧建立 BGP 连接
主站点发布 BGP 路由 AS_PATH 短,备设备 AS_PATH 长
主站点设置 VRF路由发布优先级高,备站点设置为 低
TGW 将业务 VPC 的流量根据路由策略转发到优先的 NE900

说明:
VPC1 为NE900所在的VPC,也可以是客户的业务VPC
VPC2 为客户的另一个业务VPC(如果客户有多个VPC)
NE900-A为主用VCPE,用于站点SITE-A; NE900-B为备用VCPE,用于站点SITE-B
SITE-C 为客户的另一个非AWS的站点,LAN侧网段为 192.168.100.0/24
三、配置流程
配置背景:以上面拓扑为例进行配置; 客户已有VPC1(10.255.0.0/16)和VPC2(172.16.0.0/16)
SITE-A:主站点,绑定设备NE900-A
SITE-B:备站点,绑定设备NE900-B
SITE-C:另一个站点
配置目标:VPC1和VPC2可以和SITE-C互通
3.1 AWS 端-NE900配置
1. 创建子网
在已有VPC1(10.255.0.0/16)下创建3个子网,一个子网用于wan,两个用于lan
subnet-wan: 10.255.255.0/24
subnet-lan: 10.255.200.0/24
subnet-lan-2: 10.255.201.0/24

如果客户需要多个WAN出口,那么需要创建多个wan的子网,比如需要2个出口,那么就创建2个子网。同时请注意开启的EC2支持的网卡数量。
2. 配置安全组
创建或修改安全组default,添加入站规则
- 放行如下图所示的协议和端口

3. 创建EC2实例
创建2台EC2(2C4G)使用NE900镜像进行安装VCPE
配置 2C4G (medium规格,最大支持3个网卡)
镜像选择 NE900(自行上传到aws)
子网使用 subnet-wan
安全组使用 default
硬盘选择30G

4. 添加网络接口
创建成功后,为每台设备增加一个私网接口
进入实例,选择网络与安全-网络接口,创建网络接口
子网选择之前创建的subnet-lan
接口类型默认ENA
IPv4地址填写站点LAN口的IP
SITE-A: 10.255.200.201
SITE-B: 10.255.201.202

- 选择创建的网络接口ENI,点击操作-附加,选择VPC1中我们创建的NE900实例

如果有多个wan,那么继续添加接口,方式同上
lan使用的网络接口必须 关闭 源/目标检查
5. 添加接口到系统
登录创建的NE900设备,通过命令行执行以下命令,添加接口
config -u ports/GE2 -m put '{"ifname": "eth1", "name": "GE2"}'
如果有多个wan接口,比如还有GE3,那么同样的方式添加
config -u ports/GE3 -m put '{"ifname": "eth2", "name": "GE3"}'
- 另一个NE900执行相同的操作
3.2 AWS 端-TGW配置
1. 创建 TGW
配置asn: 例如 64555
配置Transit Gateway CIDR:例如 10.80.0.0/24

2. 创建 VPC1 的 TGW VPC Attachment
为VPC1(为 NE900 所在VPC) 创建 TGW VPC Attachment(VPC挂载)
进入中转网关-中转网关连接,创建 Transit Gateway 挂载
选择之前创建的tgw
挂载类型选择 VPC
VPC挂载,选择VPC1(10.255.0.0/16)
子网选择之前创建的subnet-wan(该子网是用来放 TGW 的 ENI)

如果VPC有多个可用区,必须 每个可用区都选择一个子网,否则跨可用区的流量会不通
3. 创建 VPC2 的 TGW VPC Attachment
为VPC2(172.16.0.0/16,客户另一个VPC) 创建 TGW VPC Attachment(VPC挂载)
进入中转网关-中转网关连接,创建 Transit Gateway 挂载
选择之前创建的tgw
挂载类型选择 VPC
VPC挂载,选择VPC2(172.16.0.0/16)
子网选择任一子网
4. 创建 TGW Connect Attachment
进入中转网关-中转网关连接,创建 Transit Gateway 挂载
选择之前创建的tgw
挂载类型选择 Connect
传输挂载 ID选择刚才挂载VPC1的 tgw-attach id

5. 创建 Connect 对等(NE900-A)
在 TGW Connect Attachment 上创建 Connect 对等(NE900-A)
参考:Connect attachments and Connect peers
- 在中转网关-中转网关挂载中,选中刚才创建的Connet挂载,然后点击创建 Connect对等

Transit Gateway GRE 地址:在Transit Gateway CIDR中分配一个,比如 10.80.0.201
对等 GRE 地址: NE900-A 的 lan 地址 10.255.200.201
CIDR 块 IPv4 内的 BGP: 169.254.0.16/29
The inside IP addresses that are used for BGP peering. You must specify a /29 CIDR block from the 169.254.0.0/16 range for IPv4. The following CIDR blocks are reserved and cannot be used:
- 169.254.0.0/29
- 169.254.1.0/29
- 169.254.2.0/29
- 169.254.3.0/29
- 169.254.4.0/29
- 169.254.5.0/29
- 169.254.169.248/29
- 对等 ASN: 例如 65423

6. 创建 Connect 对等(NE900-B)
在 TGW Connect Attachment 上创建 Connect 对等(NE900-B)
在中转网关-中转网关挂载中,选中刚才创建的Connet挂载,然后点击创建 Connect对等
Transit Gateway GRE 地址:在Transit Gateway CIDR中分配一个,比如 10.80.0.202
对等 GRE 地址: NE900-B 的 lan 地址 10.255.201.202
CIDR 块 IPv4 内的 BGP: 169.254.0.32/29
对等 ASN: 例如 65423(注意:2个Connet的 BGP AS必须一致)

7. 配置 VPC1 路由表 - TGW CIDR
在 VPC1(10.255.0.0/16) 的 VPC Route Table 中添加 Transit Gateway CIDR 到TGW的路由
该条路由的目的是让NE900可以访问到TGW
进入VPC-路由表-路由-编辑路由-添加路由
目标为Transit Gateway CIDR,即10.80.0.0/24
下一跳为 Transit Gateway,选择创建的tgw实例

8. 配置 VPC1 路由表 - 私网网段
在VPC1(10.255.0.0/16)的 VPC Route Table 中添加 私网网段 到TGW的路由
该条路由的目的是把需要访问的东西向流量导入到TGW
目标为私网地址 192.168.0.0/16; 10.0.0.0/8; 172.16.0.0/12
下一跳为 Transit Gateway,选择创建的tgw实例
这里按照需求填写,例如远端规划的是 10.0.0.0/16,那就按需填写,如果不确定可以写3大私网网段
9. 配置 VPC2 路由表
在VPC2(172.16.0.0/16)的 VPC Route Table 中添加 私网网段 到TGW的路由
该条路由的目的是VPC把流量导入到TGW
目标为私网地址 192.168.0.0/16; 10.0.0.0/8; 172.16.0.0/12
下一跳为 Transit Gateway,选择创建的tgw实例
这里按照需求填写,例如远端规划的是 10.0.0.0/16,那就按需填写,如果不确定可以写3大私网网段
10. 查看 Connect 对等信息
创建完成后,查看Connect对等信息,获取 对等 BGP 地址

3.3 SASE 端配置
1. 创建站点
创建2个站点,绑定2台NE900
SITE-A NE900-A
SITE-B NE900-B
2. 配置 WAN 和 LAN 接口
2个站点分别配置WAN和LAN接口
WAN口配置 Nova Internet 传输网络标签(如果为云专线就改为 Nova专线)
LAN口,选择GE2,并配置地址(地址使用之前挂载的网卡地址)
SITE-A 10.255.200.201/24
SITE-B 10.255.201.202/24
3. 配置 BGP 连接
2个站点分别配置到TGW的BGP连接,信息参考TGW的 Connect对等信息(keep-alive 10秒 hold timer 30秒)
注意:每个站点必须和TGW建立2个BGP连接。
参考: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html

SITE-A:主站点
AS Path Prepend 默认 0

SITE-B:备站点
AS Path Prepend长度为 3

注意:TGW 默认 BGP keep-alive 10 seconds;默认 hold timer 30 seconds.
所以SASE配置小于上面默认值不会生效,建议配置成和TGW一致。
参考: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html
4. 配置 VRF 路由发布优先级
SITE-A
设置 VRF路由发布优先级高

SITE-B
设置 VRF路由发布优先级低

5. 配置静态路由(SITE-A)
在VRF配置中,进入LAN-VRF路由-静态路由
- 添加静态路由
- IP前缀:Transit Gateway CIDR:例如 10.80.0.0/24
- 下一跳: LAN口所在subnet的网关 10.255.200.1

6. 配置静态路由(SITE-B)
在VRF配置中,进入LAN-VRF路由-静态路由
- 添加静态路由
- IP前缀:Transit Gateway CIDR:例如 10.80.0.0/24
- 下一跳: LAN口所在subnet的网关 10.255.201.1

7. 配置GRE隧道
地址信息参考TGW的Connect配置

1. 在SITE-A添加gre隧道
【站点】-【VRF配置】-【GRE隧道】-【新建】
- 本地地址: LAN口ip
- 远端地址: TGW的Connect配置的tgw gre地址
- IPv4地址:TGW的Connect配置的对等BGP地址

2. 在SITE-B添加gre隧道
【站点】-【VRF配置】-【GRE隧道】-【新建】
- 本地地址: LAN口ip
- 远端地址: TGW的Connect配置的tgw gre地址
- IPv4地址:TGW的Connect配置的对等BGP地址

3.5 确认配置状态
上述配置都完成后,在中转网关连接-Connect 对等中确认BGP状态为 UP

四、故障切换机制
- 当主 NE900(SITE-A) 故障或与 TGW BGP 会话中断时,TGW 自动撤销主路由,选择备NE900的路由
- 恢复后,主NE900重新建立 BGP 会话,AS_PATH 短路由再次成为首选
五、查看路由信息
在 TGW 查看路由
- 中转网关-中转网关路由表,选择我们的路由表,在路由信息中确认收到了SITE-C的路由

在 SASE 上查看 SITE-C 站点的路由
- 在站点-监控-诊断中,通过查询BGP路由,可以看到已经学到了VPC1和VPC2的路由
