<!-- AI_TASK_START: AI标题翻译 -->
[解决方案] 使用 SD-WAN 和 AWS Cloud WAN Connect with GRE 构建弹性的 IPv6 网络
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 解决方案分析
## 解决方案概述
本文档详细介绍了使用 AWS Cloud WAN Connect 结合 **Generic Routing Encapsulation (GRE)** 隧道和 **Multi-protocol BGP (MP-BGP)** 实现 IPv6 网络的弹性设计。该解决方案针对 IPv4 地址空间耗尽和公有 IPv4 短缺问题,提供 **Equal Cost Multi-Path (ECMP)** 路由,以平衡负载并消除单点故障。适用于企业级混合网络环境,特别是需要连接本地网络和 AWS 的场景,如多区域网络扩展。背景在于 IPv6 的普及需求和 **Software-Defined Wide Area Networking (SD-WAN)** 的兴起,帮助用户构建高可用性网络架构。
## 实施步骤
1. **创建核心网络附件**
- 使用 AWS 控制台或 AWS CLI 创建名为“Transport VPC”的附件,选择两个可用区(AZ)的子网,并启用 IPv6 支持。这确保了网络的冗余和 IPv6 兼容性。
2. **创建 Connect 附件**
- 创建基于 GRE 的核心网络 Connect 附件,选择先前创建的 Transport VPC 作为传输附件,并指定区域(如 US East (Ohio))。此步骤建立连接的基础,允许 SD-WAN 与 AWS 集成。
3. **为每个 SD-WAN 设备创建 Connect 同行(GRE 隧道)**
- 为每个 SD-WAN 设备创建 Connect 同行,配置 IPv4 和 IPv6 的 BGP 内部 CIDR 块(例如,从 169.254.0.0/16 范围选取 IPv4 /29 块,从 fd00::/8 范围选取 IPv6 /125 块)。这支持 MP-BGP 地址交换,实现路由冗余。
4. **配置 SD-WAN 设备使用 GRE 和 BGP**
- 在 SD-WAN 设备上(如 Cisco)配置 GRE 隧道,包括设置 IP 地址、MTU(如 8476 字节)和 IPv6 启用。然后配置 BGP,包括路由映射(route-map)设置 IPv6 下一跳,并激活 MP-BGP 邻居以支持 IPv4 和 IPv6 地址族。这确保了路由的动态性和 ECMP 功能。
5. **检查 Connect 同行关联状态**
- 通过 AWS 控制台或 AWS CLI 查看 Connect 同行状态,确保所有连接正常建立。
6. **搜索并显示核心网络路由**
- 在控制台中选择段和边缘位置搜索路由,确认 SD-WAN 设备已正确宣传路由,并验证 ECMP 配置。这允许负载均衡和路由验证。
7. **验证故障转移能力**
- 通过从源 EC2 实例发起 ping 和 traceroute 测试,观察 ECMP 路由在设备故障时的行为(如停止一个 SD-WAN 设备后,流量自动切换)。这证明了解决方案的弹性。
8. **清理资源**
- 删除 SD-WAN EC2 实例、Connect 同行、附件和核心网络,以避免不必要的成本。
## 方案客户价值
- **提升网络弹性**:通过 ECMP 路由消除单点故障,实现负载平衡,减少网络中断影响,尤其适用于高可用性需求的企业网络。
- **优化资源利用**:平衡负载分布允许扩展带宽,适用于突发流量场景,提高整体网络性能。
- **简化混合网络管理**:与传统网络相比,该方案减少了手动路由配置的需求,易于扩展多区域网络。
- 与传统 IaaS 架构的差异在于,AWS Cloud WAN 提供自动故障转移机制,显著降低了运维复杂性。
## 涉及的相关产品
- **AWS Cloud WAN**:作为核心网络管理服务,负责连接和隔离流量段,实现多区域网络管理。
- **SD-WAN 设备**(运行在 EC2 实例上):提供软件定义的广域网功能,支持 GRE 和 BGP 配置,与 Cloud WAN 集成以连接本地环境。
- **Amazon Virtual Private Cloud (VPC)**:用作传输 VPC,提供 IPv6 和 IPv4 子网,支持网络隔离。
- **Amazon EC2**:托管 SD-WAN 设备实例,确保计算资源可用。
- **Multi-protocol BGP (MP-BGP)**:用于路由协议,支持 IPv6 地址交换,在方案中处理动态路由。
## 技术评估
该解决方案的技术先进性体现在对 IPv6 的原生支持和 ECMP 路由的集成,提升了网络的可扩展性和高可用性;可行性高,依赖成熟的 AWS 服务和标准协议如 GRE 和 MP-BGP,便于企业实施。优势包括消除单点故障和负载均衡,但可能面临配置复杂性上升的问题,尤其在多设备管理时,需要专业知识。此外,在大规模组网场景下,BGP 会话维护可能增加延迟风险,需结合监控工具如 CloudWatch 进行优化。整体而言,该方案符合云计算趋势,但用户应评估其对现有网络架构的兼容性。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 使用 SD-WAN 和 AWS Cloud WAN Connect with GRE 构建弹性 IPv6 网络
**原始链接:** [https://aws.amazon.com/blogs/networking-and-content-delivery/building-resilient-ipv6-network-with-sd-wans-and-aws-cloud-wan-connect-with-gre/](https://aws.amazon.com/blogs/networking-and-content-delivery/building-resilient-ipv6-network-with-sd-wans-and-aws-cloud-wan-connect-with-gre/)
**发布时间:** 2025-03-12
**厂商:** AWS
**类型:** BLOG
---
在本帖中,我们探讨如何使用 AWS Cloud WAN Connect with GRE (通用路由封装 (GRE)) 隧道和多协议 BGP (MP-BGP) 来实现 IPv6 网络的等价多路径 (ECMP) 路由。我们还将涵盖路由验证和故障转移测试的最佳实践。
许多 Amazon Web Services (AWS) 用户正越来越多地采用 IPv6 和软件定义广域网 (SD-WAN) 来将本地网络连接到 AWS,使用 [AWS Cloud WAN (AWS Cloud WAN)](https://aws.amazon.com/cloud-wan/)。由于私有 IPv4 地址空间迅速耗尽以及公有 IPv4 地址稀缺,IPv6 在现代网络中变得更加重要。为了最大化弹性,高可用性 SD-WAN 设计应实现平衡负载分布,从而减轻网络架构中单个节点故障的影响。用户可以为 AWS Cloud WAN Connect 对等体配置 ECMP 路由,以消除单点故障并扩展 WAN 带宽。
## 先决条件
我们假设您熟悉 [Amazon Virtual Private Cloud (Amazon VPC) (Amazon Virtual Private Cloud (VPC))](https://aws.amazon.com/vpc/) 结构、IPv4 和 IPv6 功能,以及常见 VPC 服务的配置选项,以及 AWS Cloud WAN、Connect 和 [无隧道连接 (Tunnel-less connect)](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-connect-attachment.html#cloudwan-connect-tlc) 功能。您还应了解 [IPv6 协议定义 (IPv6 protocol definition)](https://datatracker.ietf.org/doc/html/rfc8200)、地址类型和配置机制。
实施此解决方案需要以下先决条件:
- 一个双栈 [Amazon Virtual Private Cloud (Amazon VPC) (Amazon Virtual Private Cloud (VPC))](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) ,带有 [IPv6 (IPv6)](https://docs.aws.amazon.com/vpc/latest/userguide/modify-vpcs.html#vpc-associate-ipv6-cidr) 和 [IPv4 (IPv4)](https://docs.aws.amazon.com/vpc/latest/userguide/modify-vpcs.html#add-ipv4-cidr) CIDR 块,用作传输 VPC。
- 在 VPC 中定义的两个独立私有 [子网和对应的可用区 (Availability Zones) (AZs)](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html),并为两者分配 IPv6 CIDR 块。
- 为 SD-WAN 设备分配的 BGP ASNs。
- [AWS Identity and Access Management (IAM) (AWS Identity and Access Management (IAM))](https://aws.amazon.com/iam/) 权限,用于 [AWS Network Manager (AWS Network Manager)](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkmanager.html) 和 [Amazon Elastic Compute Cloud (Amazon EC2) (Amazon Elastic Compute Cloud (EC2))](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html)。
- AWS Cloud WAN 全局网络和核心网络。
- 运行在 EC2 实例上的两个 SD-WAN 设备。[使用 AWS Marketplace 的基础设施软件类别](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-product-categories.html#infrastructure-software-category),从可用列表中选择您首选的 SD-WAN 供应商。
## GRE 基础的 AWS Cloud WAN Connect 设置概述
图 1 显示了一个示例 SD-WAN 和 AWS Cloud WAN Connect 部署模式,用于分段多环境网络。
两个 SD-WAN 设备运行在 EC2 实例上,在 SD-WAN VPC 中。我们使用 AWS Cloud WAN Connect 附加将这些设备连接到 AWS Cloud WAN 网络,并连接到本地环境。我们通过 AWS Cloud WAN Connect 附加扩展本地网络能力以连接到 AWS。
AWS Cloud WAN 核心网络使用三个段来隔离流量。SD-WAN 段和生产 (Prod) 段相互共享路由。虽然本帖中描述的基本示例仅跨一个 AWS 区域,但 AWS Cloud WAN 可以管理更大的多区域网络。

图 1: 完成的解决方案概述
本演练包括以下步骤:
1. 创建核心网络附加。
2. 创建 Connect 附加。
3. 为每个设备创建 Connect 对等体。
4. 配置 SD-WAN 设备使用 GRE 和 BGP。
5. 检查 Connect 对等体的关联状态。
6. 搜索并显示核心网络路由。
7. 验证故障转移能力。
8. 清理资源。
## 步骤 1: 创建核心网络附加
1. 使用 [控制台 (the Console)](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-vpc-attachment.html) 或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmanager/create-vpc-attachment.html) 创建一个名为 **“Transport VPC”** 的附加。
2. 创建附加时,选择每个可用区中的一个子网。
3. 创建附加时,启用 IPv6 支持 (图 2)。

图 2: 使用 IPv6 支持创建核心网络传输 VPC 附加
## 步骤 2: 创建 Connect 附加
1. 使用 [控制台 (the Console)](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-connect-attachment.html) 如下图所示,或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmanager/create-connect-attachment.html) 创建基于 GRE 的核心网络 Connect 附加 (图 3)。选择前一步创建的 “Transport VPC” 作为传输附加 ID,并选择 US East (Ohio) 作为区域。

图 3: 创建 Connect 附加
## 步骤 3: 为每个 SD-WAN 设备创建 Connect 对等体 (GRE 隧道)
1. 为第一个 SD-WAN 设备创建 Connect 对等体 (GRE 隧道) (图 4)。
2. 对于 **BGP Inside CIDR blocks IPv4**,输入 169.254.0.0/16 范围内的 /29 CIDR 块。此块将用于为 AWS Cloud WAN Connect 附加的 BGP 对等体以及 SD-WAN 设备分配 IPv4 地址。
3. 对于 **BGP Inside CIDR blocks IPv6**,输入 fd00::/8 范围内的 /125 CIDR 块。从此 CIDR 中的 IPv6 地址将用于在 SD-WAN 设备上配置下一跳路由。请注意,BGP 对等主要使用 IPv4 地址,但通过 MP-BGP 支持 IPv6 地址交换。

图 4: 为第一个 SD-WAN 设备创建 Connect 对等体
4. 为第二个 SD-WAN 设备创建 Connect 对等体 (图 5)。

图 5: 为第二个 SD-WAN 设备创建 Connect 对等体
## 步骤 4: 配置 SD-WAN 设备使用 GRE 和 BGP
1. 本节中,我们使用 [Cisco (Cisco)](https://www.cisco.com/) 配置语句作为示例。请查阅您的设备供应商文档以确认特定设备的说明。
2. 如以下所示配置 GRE。AWS [Cloud WAN 核心网络支持 VPC 之间 8500 字节的 MTU](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-quotas.html#cloudwan-mtu),如传输网关对等和无隧道 Connect VPC 附加。如果未使用巨型帧,请相应调整隧道 MTU。
> !
> ipv6 unicast-routing
> !
> interface Tunnel1
> ip address 169.254.8.1 255.255.255.248
> ip mtu 8476
> ipv6 enable
> ipv6 address fde2:aa1a:d66:443b:d9d8:30c9:9674:6379/125
> tunnel source 172.31.0.178
> tunnel destination 10.0.0.8
> end
> !
3. AWS Cloud WAN 仅支持通过 IPv4 BGP 对等体使用 MP-BGP 交换 IPv6 地址。要为 IPv6 单播建立 BGP 会话,必须配置 IPv4 单播寻址。在示例配置中,我们首先定义一个路由映射,并将 IPv6 下一跳设置为设备上的 GRE 隧道。
> !
> route-map IPV6_NEXT_HOP permit 10
> set ipv6 next-hop fde2:aa1a:d66:443b:d9d8:30c9:9674:6379/125
> end
> !
4. 继续在 BGP 配置中使用此路由映射。对于带有 IPv4 邻接的 MP-BGP,请确保在相应地址族下激活邻居。在本示例中,ASN 64515 用于 AWS Cloud WAN 核心网络,64525 用于 SD-WAN 对等体。
> !
> router bgp 64525
> bgp log-neighbor-changes
> no bgp default ipv4-unicast
> neighbor 169.254.8.2 remote-as 64515
> neighbor 169.254.8.2 ebgp-multihop 2
> neighbor 169.254.8.3 remote-as 64515
> neighbor 169.254.8.3 ebgp-multihop 2
>
> address-family ipv4
> neighbor 169.254.8.2 activate
> neighbor 169.254.8.3 activate
> exit-address-family
>
> address-family ipv6
> neighbor 169.254.8.2 activate
> neighbor 169.254.8.2 route-map IPV6_NEXT_HOP out
> neighbor 169.254.8.3 activate
> neighbor 169.254.8.3 route-map IPV6_NEXT_HOP out
> exit-address-family
> !
## 步骤 5: 检查 Connect 对等体的关联状态
1. 使用 [控制台 (the Console)](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-attachments-viewing-editing-connect.html) (图 6) 或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmanager/get-connect-peer-associations.html) 检查 Connect 对等体的状态。

图 6: 检查 Connect 对等体的关联状态
## 步骤 6: 搜索并显示核心网络路由
1. 在 [控制台 (the Console)](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-visualize-networks-core.html#cloudwan-visualize-core-routes) 中查看 **核心网络路由** 选项卡 (图 7),选择 **段** 和 **边缘位置**,然后选择 **搜索路由**。

图 7: 为您的段和边缘位置搜索核心网络路由
2. 结果中由 SD-WAN 设备公布的路由。您也可以使用 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmanager/get-network-routes.html) 显示此信息。
3. 此外,由于您使用相等的 BGP 属性 (如 ASN 和 AS 路径) 从两个 SD-WAN 设备公布默认 IPv6 路由,因此已将 AWS Cloud WAN 核心网络配置为执行 ECMP 路由。
4. 目标详细信息 (图 8) 显示有两个正确配置的 Connect 对等体。

图 8: 核心网络路由的目标详细信息
## 步骤 7: 验证故障转移能力
1. 在此故障转移测试中,我们从 Non-Prod VPC 中的源 Amazon EC2 实例向位于本地环境的目标发起 ping 流量。
2. 要检查网络跳数,从源到目标运行 traceroute。观察到 IPv6 CIDR 中的两个 SD-WAN 设备都出现在结果中。由于 ECMP 能力,流量通过 SD-WAN-1 和 SD-WAN-2 路由。
> !
> sh-5.2$ traceroute6 2001:db8:0:400::2
>
> traceroute to 2001:db8:0:400::2, 30 hops max, 80 byte packets
> 1 * * *
> 2 fde2:aa1a:d66:443b:d9d8:30c9:9674:6379 0.950 ms 0.933 ms
> fde2:aa1a:d66:443b:d9d8:30c9:9674:5379 1.520 ms
> 3 * * *
> 2001:db8:0:400::2: 647 ms 2.621 ms 2.769 ms
> !
3. 从源到目标发起持续 ping。
> !
> sh-5.2$ ping6 2001:db8:0:400::2
> !
4. 要模拟 AZ-A 的丢失,使用 [控制台 (the Console)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#starting-stopping-instances) 或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/stop-instances.html) 停止 SD-WAN-1 设备。
5. 观察 SD-WAN-2 立即使用 SD-WAN-2 路由 ping 流量。
> !
> 64 bytes from 2001:db8:0:400::2 icmp_seq=1 ttl=61 time=1.74 ms
> 64 bytes from 2001:db8:0:400::2 icmp_seq=2 ttl=61 time=1.64 ms
> 64 bytes from 2001:db8:0:400::2 icmp_seq=3 ttl=61 time=1.61 ms
> 64 bytes from 2001:db8:0:400::2 icmp_seq=4 ttl=61 time=1.62 ms
>
> SDWAN-1 BGP down
> Traffic routed via SDWAN-2
>
> 64 bytes from 2001:db8:0:400::2 icmp_seq=16 ttl=61 time=2.55 ms
> 64 bytes from 2001:db8:0:400::2 icmp_seq=17 ttl=61 time=2.14 ms
> 64 bytes from 2001:db8:0:400::2 icmp_seq=18 ttl=61 time=2.27 ms
> 64 bytes from 2001:db8:0:400::2 icmp_seq=19 ttl=61 time=2.12 ms
> !
6. 为确认,再次运行 traceroute。我们仅观察到 SD-WAN-2 的内部 BGP CIDR,这意味着流量现在仅通过 SD-WAN-2 路由。
> sh-5.2$ traceroute6 2001:db8:0:400::2
> traceroute to 2001:db8:0:400::2, 30 hops max, 80 byte packets
> 1 * * *
> 2 fde2:aa1a:d66:443b:d9d8:30c9:9674:5379 1.767 ms 1.750 ms 1.753 ms
> 3 * * *
> 4 2001:db8:0:400::2: 2.747 ms 2.721 ms 2.669 ms
7. 在 AWS Cloud WAN 控制台中,该段的路由信息仅列出一个目标,即幸存的 SD-WAN-2 设备的 Connect 对等体 (图 9)。

图 9: 显示单个 SD-WAN 设备的更新路由
## 步骤 8: 清理
为避免不必要的费用,请在完成时删除解决方案。
1. 使用 [控制台 (the Console)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) 或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/terminate-instances.html) 终止 SD-WAN EC2 实例。
2. 使用 [控制台 (the Console)](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#delete-tgw-connect-peer) 或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmanager/delete-peering.html) 删除对应每个 SD-WAN 设备的 Connect 对等体。
3. 使用 [控制台 (the Console)](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-attachments-deleting.html) 或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmanager/delete-attachment.html) 删除 Connect 附加。
4. 使用 [控制台 (the Console)](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-attachments-deleting.html) 或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmanager/delete-attachment.html) 删除传输 VPC 附加。
5. 使用 [控制台 (the Console)](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-core-network-delete.html) 或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmanager/delete-core-network.html) 删除核心网络。
6. 使用 [控制台 (the Console)](https://docs.aws.amazon.com/network-manager/latest/cloudwan/cloudwan-global-network-delete.html) 或 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/networkmanager/delete-global-network.html) 删除全局网络。
## 结语
在本帖中,我们探讨了如何使用 AWS Cloud WAN 和 SD-WAN 构建弹性且高性能的 IPv6 网络。通过利用 AWS Cloud WAN Connect with GRE 隧道,我们展示了如何创建一个强大的混合网络架构,以满足不断增长的 IPv6 连接需求。
本逐步指南为网络工程师和云架构师提供了一条清晰路径,用于实施 IPv6 流量的 ECMP 路由,从而有效平衡负载并消除单点故障。我们涵盖了设置的关键方面,包括多协议 BGP 配置、路由验证和故障转移测试,为您提供一个全面工具包,用于在您自己的环境中部署此解决方案。
如果您对本帖有疑问,请在 [AWS re:Post](https://repost.aws/) 上启动新线程,或联系 [AWS Support](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html)。
## 作者介绍

**Sankalp H Tadwalkar**
Sankalp 是初创客户的技术账户经理,也是 Transit Gateway 专家。他为全球的企业 AWS 客户提供架构指导。原籍孟买,他获得了 UT Dallas 的电信工程硕士学位。工作之外,Sankalp 是一名历史爱好者,同时喜欢旅行和听不同语言的音乐。

**Nick Worthington**
Nick 是位于华盛顿 DC 地区的公共部门客户解决方案架构师。他拥有超过 20 年的基础设施工程经验,并在过去五年中帮助 AWS 客户迁移工作负载并构建应用程序。工作之外,Nick 喜欢与家人共度时光、玩经典视频游戏和听现场音乐。
<!-- AI_TASK_END: AI全文翻译 -->