<!-- AI_TASK_START: AI标题翻译 -->
[解决方案] 设计和构建 IPv6 互联网检查架构
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 解决方案分析
## 解决方案概述
本解决方案针对组织采用IPv6以应对IPv4地址耗尽、私有IPv4稀缺以及支持IPv6-only客户端的场景,提供在Amazon VPC中对IPv4和IPv6流量的安全检查。核心内容包括使用**AWS Network Firewall**和**AWS Gateway Load Balancer (GWLB)** 结合第三方防火墙设备,实现IPv6互联网出口检查。**解决方案**的目标是确保一致的流量检查,维护安全性,同时支持双栈(IPv4和IPv6共存)或IPv6-only部署。背景是IPv6的日益采用,解决的问题包括保护私有子网免受互联网发起的连接,并处理大规模网络需求。该方案适用于需要IPv6流量检查的企业级网络架构,尤其在云计算环境中,强调了IPv6的独立处理以保持与IPv4的兼容性。
## 实施步骤
1. **准备环境**:确保熟悉AWS基础网络组件,如Amazon VPC、Internet Gateway (IGW)、子网和路由表。配置双栈VPC,包括为IPv6栈添加**Egress-only Internet Gateway (EIGW)**,以实现私有子网的出站连接。
2. **部署检查架构**:
- 对于分布式检查:在每个VPC中部署**Network Firewall**或**GWLB**端点,并使用VPC本地IGW访问互联网。通过子网路由表将出站流量路由到这些端点,确保对称路由处理返回流量。
- 对于集中式出口检查:部署分布式**GWLB**端点在每个发言VPC,并将流量重定向到集中式出口VPC中的防火墙设备。使用路由表配置IPv6流量路由到**GWLB**端点。
3. **配置GWLB和端点**:
- 创建目标组,选择**Instances**作为目标类型,并配置健康检查协议和端口(参考第三方设备文档)。
- 部署**GWLB**,选择双栈配置,并关联目标组。
- 创建端点服务,选择**Gateway**类型,并支持IPv4和IPv6。
- 在每个发言VPC中创建端点,关联端点服务,并确保每个子网有专用路由表。
4. **路由表配置**:在发言VPC和出口VPC中配置路由表,将IPv6流量指向**GWLB**端点,并确保安全组和**Network Access Control Lists (NACLs)** 允许相关IPv6端口。
5. **验证和监控**:使用**VPC Flow Logs**和**Amazon CloudWatch**监控流量,确保高可用性和可伸缩性。
## 方案客户价值
- **提升安全性**:通过**Network Firewall**和**GWLB**实现本地流量检查,防止互联网端点发起的IPv6连接,保持私有子网一致性,从而减少安全风险。
- **优化网络管理**:在双栈环境中,使用**EIGW**保持私有子网概念一致,避免IPv4和IPv6栈的复杂性,提高架构灵活性。
- **成本效益**:避免使用**AWS NAT Gateway**等设备,降低数据处理成本,并通过分布式端点优化路由,减少不必要的流量中转。
- **与传统方案的差异**:相比传统IaaS架构,本方案引入**GWLB**的分布式设计,显著提高了可伸缩性和故障隔离,但可能在多AZ管理中增加路由配置复杂度。
## 涉及的相关产品
- **Amazon Virtual Private Cloud (VPC)**:提供隔离的网络环境,作为架构基础,支持IPv6子网和路由表配置。
- **AWS Network Firewall**:用于分布式流量检查,处理IPv6出站和入站流量,确保安全策略执行。
- **AWS Gateway Load Balancer (GWLB)**:在集中式出口检查中重定向流量,支持**GENEVE**协议封装,并结合第三方防火墙设备进行检查。
- **Egress-only Internet Gateway (EIGW)**:专为IPv6私有子网提供出站连接,防止入站威胁。
- **AWS Transit Gateway**:可选用于集中式检查,路由流量到中央VPC,但本文焦点在分布式端点方案。
## 技术评估
本解决方案的技术先进性体现在原生支持IPv6流量检查,利用**GWLB**的**GENEVE**封装实现高效流量重定向,提升了IPv6网络的安全性和可伸缩性。可行性高,因为它基于AWS现有服务,适用于双栈或IPv6-only环境,但需第三方设备支持**NAT66**或**NPTv6**。优势包括简化路由避免Transit Gateway依赖,以及通过本地端点提高故障隔离;可能的限制是第三方设备需兼容**GENEVE**协议和双臂模式,如果不支持,可能导致部署复杂性上升。此外,在大规模组网时,路由表管理和健康检查配置可能增加操作开销。总体上,该方案符合IPv6趋势,推动云原生应用,但需根据具体环境评估IPv4遗留系统的兼容性。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 在 AWS 上设计和构建 IPv6 互联网检查架构
**原始链接:** [https://aws.amazon.com/blogs/networking-and-content-delivery/design-and-build-ipv6-internet-inspection-architectures-on-aws/](https://aws.amazon.com/blogs/networking-and-content-delivery/design-and-build-ipv6-internet-inspection-architectures-on-aws/)
**发布时间:** 2025-06-03
**厂商:** AWS
**类型:** BLOG
---
随着组织越来越多地采用 IPv6 以应对公有 IPv4 耗尽、私有 IPv4 稀缺(尤其在大型网络中)以及支持 IPv6-only 客户端的需求,确保 IPv4 和 IPv6 流量的安全变得至关重要。我们可以在 [Amazon Virtual Private Clouds (Amazon VPCs)](https://aws.amazon.com/vpc/) 中对进出流量应用一致的流量检查,以维护安全。本文探讨了在 Amazon VPCs 中实现 IPv6 流量互联网出口检查的最佳实践和参考架构。这可以通过 [Amazon Web Services (AWS) Network Firewall](https://aws.amazon.com/network-firewall/) 和 [AWS Gateway Load Balancer (GWLB)](https://aws.amazon.com/elasticloadbalancing/gateway-load-balancer/) 与第三方防火墙设备来实现。
AWS 为部署 IPv6 提供了两种主要方法:双栈和 IPv6-only。在双栈设置中,工作负载使用 IPv4 和 IPv6 地址;在 IPv6-only 部署中,工作负载仅使用 IPv6 地址。这两种 IP 栈独立运作;因此,本文重点关注与 IPv6 相关的具体最佳实践和设计考虑。
## 先决条件
我们假设您熟悉 AWS 上的基础网络结构,例如 Amazon VPCs、Internet Gateway (IGW)、子网、路由表、Network Firewall 和 GWLB。我们不会详细定义这些服务,而是概述它们与设计和构建 IPv6 互联网出口检查架构的相关功能。
## AWS 上的 IPv6 互联网连接
在双栈 Amazon VPC 中,我们为 IPv4 栈保留相同的互联网连接结构,同时为 IPv6 栈添加 [Egress-only Internet Gateway (EIGW)](https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.html#egress-only-internet-gateway-basics)。虽然 IPv6 的公有子网通过 IGW 实现双向互联网连接,但 IPv6 的私有子网使用 EIGW 进行互联网连接。Egress-only IGW 是一个水平可扩展、冗余且高可用的 VPC 组件,仅允许 VPC 中的资源进行出站 IPv6 通信。EIGW 的作用是保持私有子网的概念在 IPv4 和 IPv6 栈中一致。EIGW 阻止互联网端点向私有 IPv6 子网中的实例发起 IPv6 连接。以下图示显示了 VPC 中私有和公有子网的 IPv6 互联网连接:

图 1: Amazon VPC IPv4 和 IPv6 互联网连接
- VPC 中的私有 IPv4 或双栈子网中的资源使用 [AWS NAT Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) 出口到互联网 IPv4 端点。NAT Gateway 会转换数据包的源 IPv4 地址,并通过 IGW 发送流量到互联网。
- 公有 IPv4 或双栈子网中的资源使用 Elastic IPv4 地址,通过 IGW 与互联网 IPv4 端点进行双向通信。流量可以从 VPC 中的资源或互联网资源发起。
- 公有 IPv6 或双栈子网中的资源使用 VPC 中的 IPv6 地址,通过 IGW 与互联网 IPv6 端点进行双向通信。流量可以从 VPC 中的资源或互联网资源发起。
- 私有 IPv6 或双栈子网中的资源使用 VPC 中的 IPv6 地址,通过 Egress-only IGW 与互联网 IPv6 端点通信。流量仅从 VPC 中的资源发起。
## AWS 上 IPv6 流量的检查模式
在 IPv6 中,VPC 的互联网流量可以使用 Network Firewall 和 GWLB 与第三方设备进行本地检查。我们区分了检查 IPv6 互联网流量的两种主要模式:
### 分布式出口和入口 IPv6 互联网流量检查
在分布式设计中,您在每个 VPC 中部署 Network Firewall 或 GWLB 端点,并使用 VPC-本地 IGW 访问互联网。需要流量检查的子网会将出站流量路由到这些端点。对于返回或入口互联网流量,IGW 路由表确保在每个 [Availability Zone (AZ)](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) 内通过防火墙或负载均衡器端点实现对称路由。对于不应允许互联网入口流量的子网,您的防火墙策略必须拒绝所有互联网源流量,仅允许返回流。以下图示显示了分布式互联网流量检查的高级 VPC 路由的两个版本:左侧使用 GWLB 和设备,右侧使用 Network Firewall:

图 2: 分布式互联网流量检查—入口和出口
VPC 中的资源发出的出口互联网流量会发送到同一 AZ 中的 Network Firewall 或 GWLB 端点。入口流量通过防火墙端点流动,遵循关联 IGW 边缘路由表的配置。
### 集中式入口 IPv6 互联网流量检查
对于集中式入口,您需要使用 [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/) 或 [AWS Cloud WAN](https://aws.amazon.com/cloud-wan/) 在中央入口 VPC 和内部 VPC 之间路由。部署的入口弹性负载均衡器充当代理并执行地址转换。因此,您可以使用 Network Firewall 或 GWLB 与第三方设备进行流量检查。有关使用 Network Firewall 的检查架构细节,建议阅读 [IPv6 deployment models for AWS Network Firewall](https://aws.amazon.com/blogs/networking-and-content-delivery/ipv6-deployment-models-for-aws-network-firewall/)。
### 集中式出口 IPv6 互联网流量检查
集中式出口 IPv6 流量检查有两种选项:
- **在每个辐条 VPC 中部署分布式 GWLB 端点:** 您可以在每个 VPC 中部署 GWLB 端点,并在包含 GWLB 和防火墙设备的 VPC 中集中出口,如以下图示所示。此选项通过消除通过 Transit Gateway 或 AWS Cloud WAN 路由流量的需求来优化数据处理成本。此选项仅适用于出口,且不能从设备端接受新流。此外,您不能在 IPv6-only 子网中创建负载均衡器。

图 3: 带有分布式端点的集中式出口互联网流量检查
- **使用 Transit Gateway 或 AWS Cloud WAN 将出口流量路由到集中式出口 VPC:** 该出口 VPC 包含 GWLB、GWLB 端点和第三方防火墙设备,如以下图示所示。有关使用 Transit Gateway 配置集中式出口的细节,请查看 [Centralized inspection architecture with AWS Gateway Load Balancer and AWS Transit Gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/centralized-inspection-architecture-with-aws-gateway-load-balancer-and-aws-transit-gateway/)。

图 4: 使用 Transit Gateway 或 AWS Cloud WAN 的集中式出口流量检查
本文重点关注第一个选项,使用分布式 GWLB 端点。此设计允许流量在每个 VPC 内本地重定向到集中式检查设备,从而避免通过 Transit Gateway 路由。它简化了路由、改进了故障隔离并通过分布检查入口点提升了可扩展性。
### 第三方设备集中式出口的考虑因素
以下是使用 GWLB 端点和第三方设备的集中式 IPv6 出口互联网流量检查的设计考虑:
- **对 NAT66 或 NPTv6 的支持:** 确保用于架构的第三方检查设备支持 IPv6 地址转换。IPv6 前缀局限于其分配的 VPC,因此在集中式 VPC 中必须转换 IPv6 地址。因此,您的第三方设备必须支持 NAT66(有状态的 IPv6 到 IPv6 网络地址转换)或 NPTv6(无状态的一对一 IPv6 前缀转换)。此架构当前不适用于 Network Firewall,因为它不支持 NAT66/NPTv6。此架构还允许为使用 GUA、IPv6 ULA 或私有 GUA IPv6 地址的资源提供互联网出口连接。
- **对双臂模式的支持:** 确认您选择的检查设备能够以双臂模式运行,从而通过入口和出口接口处理流量。这是必要的,因为设备执行 NAT66 / NPTv6。参考 [Best practices for deploying Gateway Load Balancer](https://aws.amazon.com/blogs/networking-and-content-delivery/best-practices-for-deploying-gateway-load-balancer/) 以了解更多关于双臂模式的信息。
- **对 GENEVE 协议的支持:** 确保您的检查设备支持 Generic Network Virtualization Encapsulation (GENEVE) 协议(UDP 端口 6081),能够解释 GENEVE 元数据,并响应 GWLB 健康检查。
### 带有分布式端点的集中式出口互联网流量检查的流量流
#### 从应用程序/Amazon EC2 实例到互联网的流量流:
- VPC 中的 [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/) 实例发出的互联网绑定流量会本地路由到同一可用区中的 GWLB 端点。
- GWLB 端点将流量发送到与之关联的 GWLB,该 GWLB 使用 GENEVE 协议对其进行封装。
- 然后,GWLB 将 GENEVE 封装流量转发到其内部防火墙接口上的安全设备进行检查。
- 检查流量后,设备执行网络地址转换(NAT66 或 NPTv6,取决于其功能),并通过外部防火墙接口路由 GENEVE 解封装流量,向 IGW 发送出站传输。
#### 从互联网到应用程序/EC2 实例的返回流量流:
- 来自互联网的返回流量根据入口路由表从 IGW 导向防火墙的外部防火墙接口。防火墙执行反 NAT(逆转 NAT66 或 NPTv6)以恢复目标 EC2 实例的原始私有 IP 地址。
- 反 NAT 后,安全设备使用 GENEVE 协议重新封装流量并发送到 GWLB。
- GWLB 检查 GENEVE 头,其中包含标识源 GWLB 端点的元数据。根据此信息,GWLB 将流量返回到原始请求的同一可用区和 VPC。GWLB 将封装数据包发送到源 VPC 和可用区中的 GWLB 端点,该端点随后解封装数据包并本地转发到 EC2 实例。
- 此设计需要将每个 GWLB 端点放置在其自己的子网中,以确保可以使用专用路由表。这一点至关重要,因为它允许对 GWLB 返回流量进行精确路由控制。
### GWLB 和 GWLB 端点的双栈操作配置
#### 步骤 1: 创建目标组
- 转到 **EC2** 服务,在 **Load Balancing** 部分,选择 *Target Groups*。
- 选择 **Create target group**。
- 选择 **target type** 为 *Instances* ,如以下图示所示。

图 5. 目标组设置
- 创建目标组时,确保正确配置健康检查。在设置健康检查协议和端口之前,请咨询设备制造商的推荐。设置因设备而异:有些使用 Web 接口端口,有些指定专用心跳端口,有些需要完全不同的协议或端口。遵循制造商的指南可确保最佳性能和准确健康检查。错误设置可能导致假阳性或假阴性健康检查,从而影响应用程序可用性和性能。请彻底查看设备的文档。
#### 步骤 2: 部署 GWLB
- 转到 **EC2** 服务,在 **Load Balancing** 部分,选择 *Load Balancers*。
- 选择 **Create Load Balancer** 并选择 *Gateway Load Balancer*。
- 在 **Basic configuration** 下,选择 *Dualstack* 并添加 VPC 和可用区,如以下图示所示。

图 6. GWLB 设置
- 选择您刚创建的目标组并选择 **Create load balancer**。
- 等待 GWLB 部署完成。GWLB 部署后,转到 **Target Groups**,选择您创建的目标组,并等待设备实例显示健康状态。如果在 50 秒后(使用默认计时器)它们没有响应,则排查健康检查设置和设备。
#### 步骤 3: 创建端点服务
- 转到 **VPC** 服务,在 **Virtual private cloud** 部分,选择 *Endpoint services*。
- 选择 **Create endpoint service**。
- 在 **Endpoint service settings** 下,选择 **Load balancer type** 为 *Gateway*,并选择您刚创建的 GWLB。
- 在 **Additional settings** 下,您可以选择保持 **Acceptance required** 复选框选中。但是,确保在 **Support IP address types** 下选择 **IPv4** 和 **IPv6**,如以下图示所示。

图 7. 端点服务设置
- 完成操作后,选择 **Create**。
- 有关更多细节,请查看 [Create an endpoint service](https://docs.aws.amazon.com/vpc/latest/privatelink/create-gateway-load-balancer-endpoint-service.html#create-endpoint-service-glb) 文档。
#### 步骤 4: 在每个辐条 VPC 中创建端点
端点服务创建后,您必须为应用程序连接创建一个端点每个子网。要执行此操作:
- 转到 **VPC** 服务,在 **Virtual private cloud** 部分选择 *Endpoint*。
- 按照 [connect to an endpoint service as the service customer](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html#connect-to-endpoint-service) 下的步骤创建端点。
- 创建端点时,确保它与您刚创建的 GWLB 端点服务名称关联,如以下图示所示。

图 8. 端点 VPC 关联
- 选择 *Create endpoint*。
### 辐条 VPC 和出口 VPC 的路由表配置

图 9: 带有分布式端点的集中式出口互联网流量检查的路由表配置
## 考虑因素
1. **GWLB IPv6 行为:** GWLB 原生支持 IPv6 流量。但是,它通过在 IPv4 数据包中使用 GENEVE 协议(端口 6081)封装流量,无论流量是 IPv4 还是 IPv6。确保在第三方安全设备上允许端口 6081 以解封装和路由 IPv4 GENEVE 流量。
2. **资源的双栈配置:** 确保所有相关 AWS 资源(例如 EC2 实例、子网、路由表和负载均衡器)配置为双栈(IPv4 和 IPv6)。
3. **子网和路由配置:** 为安全起见,GWLB 应在私有子网中使用。确保您的 VPC 配置为双栈子网。这允许配置 IPv6 CIDR 块来路由 IPv6 流量。通过路由表将 IPv6 流量发送到 VPC 中的 GWLB 端点。此外,GWLB 端点是区域性的,因此在每个可用区中需要仔细编排路由。
4. **IPv6 的安全组和 NACLs:** 确保您的安全组和 NACLs 允许对感兴趣端口(http/HTTPS)的入口 IPv6 连接。
5. **IPv6-only 与双栈设计:** 决定您的网络是 IPv6-only 还是 IPv4+IPv6 双栈。在构建现代云原生应用程序时,选择 IPv6-only 架构可简化网络管理并减少对遗留 IPv4 支持的需求,从而降低操作开销。双栈可为新应用程序启用 IPv6,同时保留对遗留客户端的 IPv4 支持。在运行双栈配置时,请考虑 [NAT64 或其他协议](https://aws.amazon.com/blogs/networking-and-content-delivery/centralizing-outbound-internet-traffic-for-dual-stack-ipv4-and-ipv6-vpcs/),以使 IPv6-only 后端能够与 IPv4 资源通信。
6. **可观察性和日志记录:** 您可以考虑使用 VPC Flow Logs 监控到 GWLB 端点的 IPv6 流量。这有助于识别异常模式和排查连接问题。
7. **流量日志和指标:** [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 和 [Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 可用于理解流量行为并识别潜在问题。确保您的第三方设备记录和监控 IPv6 流量。
8. **高可用性和可扩展性:** GWLB 和其端点默认具有高可用性。尽管如此,为确保高正常运行时间,请在多个可用区中运行 GWLB 端点,并在每个子网的路由表中设置流量导向本地端点。确保 GWLB 后面的虚拟设备水平可扩展,因为 GWLB 能够 [处理大量流量](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/quotas-limits.html),但取决于设备。
9. **成本影响:** 熟悉 AWS 使用成本。通过 [AWS Pricing Calculator](https://calculator.aws/#/) 计算每月成本。
10. **IPv6 DNS 考虑:** 确保您的 [Amazon Route 53](https://aws.amazon.com/route53/) 记录包含针对在 IPv6 地址上接收流量的资源的 AAAA 记录。这允许客户端直接连接到 IPv6 地址。如果您的服务支持 IPv4 和 IPv6 客户端,则添加双栈 DNS 记录。
## 结论
本文概述了使用 Gateway Load Balancers 设计 IPv6 出口检查架构的方法。此方法利用第三方防火墙/安全设备执行 NAT66 或 NPTv6 的能力,使客户能够无缝迁移到 IPv6,而无需担心出口检查。此外,从 AWS 角度看,此解决方案具有成本效益,因为它避免了在架构中使用 AWS NAT Gateway 类型的设备。我们还详细说明了出口和返回路径流量的流量流,并提供了部署过程的逐步指南,以建立 IPv6 架构。有关更多信息,请查看 [Centralized egress to internet](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/centralized-egress-to-internet.html) 文档。如果您对本文有疑问,请在 [AWS re:Post](https://repost.aws/) 上启动新线程,或联系 [AWS Support](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html)。
## 作者介绍

### Nikhil Bhagat
Nikhil Bhagat 是 Amazon Web Services (AWS) 的高级解决方案架构师。他拥有超过十年的 WAN、DNS 和数据中心网络架构经验,专长于云基础设施、网络和安全。他帮助客户设计、构建和优化其云解决方案,同时确保强大的安全姿态。

### Alexandra Huides
Alexandra Huides 是 Amazon Web Services 的战略账户高级网络专家解决方案架构师。她专注于帮助客户构建和开发高度可扩展和弹性的 AWS 环境。Alex 还是 AWS 的公开演讲者,并帮助客户采用 IPv6。工作之外,她热爱航海,尤其是双体船、旅行、探索新文化和阅读。
<!-- AI_TASK_END: AI全文翻译 -->