

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 集中式出站访问互联网
<a name="centralized-egress-to-internet"></a>

当您在多账户环境中部署应用程序时，许多应用程序需要仅出站访问互联网（例如，下载库、补丁或操作系统更新）。IPv4 和 IPv6 流量都可以实现这一点。对于 IPv4，这可以通过网络地址转换 (NAT) 来实现，其形式为 NAT 网关（推荐），或者在 Amazon EC2 实例上运行的自管理 NAT 实例，作为所有出口互联网访问的一种手段。内部应用程序位于私有子网中，而 NAT 网关和 Amazon EC2 NAT 实例则位于公有子网中。

AWS 建议您使用 NAT 网关，因为它们可以提供更好的可用性和带宽，而且您管理所需的精力更少。有关更多信息，请参阅[比较 NAT 网关和 NAT 实例](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-comparison.html)。

对于 IPv6 流量，可以将出口流量配置为以分散的方式通过仅限出口 Internet 网关离开每个 VPC，也可以将其配置为使用 NAT 实例或代理实例将其发送到集中式 VPC。中讨论了这些 IPv6 模式[集中出口 IPv6](centralized-egress-for-ipv6.md)。

**Topics**
+ [使用 NAT 网关进行集中 IPv4 出口](using-nat-gateway-for-centralized-egress.md)
+ [将 NAT 网关与 AWS Network Firewall 用于集中 IPv4 出口](using-nat-gateway-with-firewall.md)
+ [将 NAT 网关和网关 Load Balancer 与 Amazon EC2 实例配合使用以实现集中 IPv4 出口](using-nat-gateway-and-gwlb-with-ec2.md)
+ [集中出口 IPv6](centralized-egress-for-ipv6.md)

# 使用 NAT 网关进行集中 IPv4 出口
<a name="using-nat-gateway-for-centralized-egress"></a>

NAT 网关是一种托管网络地址转换服务。在每个分支 VPC 中部署 NAT 网关的成本可能会让人望而却步，因为您需要为部署的每个 NAT 网关按小时付费（请参阅 A [mazon VPC 定价](https://aws.amazon.com/vpc/pricing/)）。集中化 NAT 网关可能是降低成本的可行选择。要进行集中化，请在网络服务账户中创建单独的出口 VPC，在出口 VPC 中部署 NAT 网关，然后使用 Transit Gateway 或 CloudWAN 将所有出口流量从分 VPCs 支路由到出口 VPC 中驻留的 NAT 网关，如下图所示。

**注意**  
与在每个 VPC 中运行 NAT 网关的去中心化方法相比，使用 Transit Gateway 集中管理 NAT 网关时，您需要支付额外的 Transit Gateway 数据处理费用。在某些边缘情况下，当您通过 NAT 网关从 VPC 发送大量数据时，将 NAT 保留在 VPC 本地以避免 Transit Gateway 数据处理费用可能更具成本效益。

![\[描绘分散式高可用性 NAT 网关架构的示意图\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/images/decentralized-ha-nat-gateway.png)


![\[描绘使用 Transit Gateway 的集中式 NAT 网关的示意图（概述）\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/images/centralized-nat-gateway-tg.png)


![\[描绘使用 Transit Gateway 的集中式 NAT 网关的示意图（路由表设计）\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/images/nat-gateway-tg-rt.png)


在此设置中，分支 VPC 附件与路由表 1 (RT1) 关联并传播到路由表 2 (RT2)。有一条[黑洞](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html)路线可以 VPCs 禁止两者相互通信。如果要允许 VPC 间通信，可以从 RT1中删除`10.0.0.0/8 -> Blackhole`路由条目。这允许他们通过传输网关进行通信。您还可以将分支 VPC 附件传播到 RT1 （或者，您可以使用一个路由表和 associate/propagate 所有路由表），从而在使用 Transit Gateway 的 T VPCs ransit Gateway 之间实现直接流量。

您可以添加一条静态路由，将所有流量 RT1 指向出口 VPC。由于此静态路由，Transit Gateway 会通过其 ENIs 出口 VPC 发送所有互联网流量。进入出口 VPC 后，流量将遵循这些 Transit Gateway 所在的子网路由表中定义的路由。 ENIs 您可以在子网路由表中添加一条路由，将所有流量指向同一可用区中相应的 NAT 网关，以最大限度地减少跨可用区 (AZ) 流量。NAT 网关子网路由表将互联网网关 (IGW) 作为下一跳。要使返回流量回流，您必须在 NAT 网关子网路由表中添加一个静态路由表条目，将所有分支 VPC 绑定的流量指向 Transit Gateway 作为下一跳。

## 高可用性
<a name="HA-1"></a>

 为了获得高可用性，您应该使用多个 NAT 网关（每个可用区一个）。如果 NAT 网关不可用，则通过受影响的 NAT 网关的可用区中的流量可能会被丢弃。如果一个可用区不可用，则该可用区中的 Transit Gateway 终端节点和 NAT 网关将出现故障，所有流量都将通过另一个可用区中的 Transit Gateway 和 NAT 网关终端节点流动。

## 安全性
<a name="Security-1"></a>

您可以依赖源实例上的安全组、Transit Gateway 路由表中的黑洞路由以及 NAT 网关所在子网的网络 ACL。例如，客户可以在 NAT Gateway 公有子网 ACLs 上使用来允许或屏蔽源或目标 IP 地址。或者，您可以将 NAT Gateway 与 AWS Network Firewall 下一节中所述的集中式出口配合使用，以满足此要求。

## 可扩展性
<a name="Scalability-1"></a>

对于每个分配的 IP 地址，一个 NAT 网关最多可支持 55,000 个与每个唯一目的地的同步连接。您可以请求调整配额，允许最多分配八个 IP 地址，从而允许与单个目标 IP 和端口同时连接 440,000 个。NAT 网关提供 5 Gbps 的带宽，并自动扩展到 100 Gbps。Transit Gateway 通常不充当负载均衡器，也不会在多个可用区的 NAT 网关之间均匀分配您的流量。如果可能，通过 Transit Gateway 的流量将保持在可用区域内。如果启动流量的 Amazon EC2 实例位于可用区 1 中，则流量将流出出口 VPC 中同一个可用区 1 的 Transit Gateway 弹性网络接口，并根据弹性网络接口所在的子网路由表流向下一个跳点。有关规则的完整列表，请参阅 Amazon Virtual Private Cloud 文档中的 NA [T 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)。

 有关更多信息，请参阅[ VPCs 使用 AWS Transit Gateway 从多个互联网出口点创建单个互联网出口点](https://aws.amazon.com/blogs/networking-and-content-delivery/creating-a-single-internet-exit-point-from-multiple-vpcs-using-aws-transit-gateway/)博客文章。

# 将 NAT 网关与 AWS Network Firewall 用于集中 IPv4 出口
<a name="using-nat-gateway-with-firewall"></a>

如果您想检查和筛选出站流量，可以在集中式出口架构中将 AWS Network Firewall 与 NAT 网关结合起来。 AWS Network Firewall 是一项托管服务，可让您轻松地为所有人部署基本的网络保护 VPCs。它可以控制和查看整个 VPC 的第 3-7 层网络流量。您可以对 URL/domain 姓名、IP 地址和基于内容的出站流量进行筛选，以阻止可能的数据丢失，帮助满足合规性要求并阻止已知的恶意软件通信。 AWS Network Firewall 支持成千上万条规则，这些规则可以过滤出发往已知的错误 IP 地址或错误域名的网络流量。您还可以将 Suricata IPS 规则用作 AWS Network Firewall 服务的一部分，方法是导入开源规则集或使用 Suricata 规则语法编写自己的入侵防御系统 (IPS) 规则。 AWS Network Firewall 还允许您导入来自 AWS 合作伙伴的兼容规则。

在带检查功能的集中式出口架构中， AWS Network Firewall 终端节点是出口 VPC 的传输网关附件子网路由表中的默认路由表目标。使用下图 AWS Network Firewall 所示检查分支 VPCs 和互联网之间的流量。

![\[描绘了带有 AWS Network Firewall NAT 网关的集中出口（路由表设计）的示意图\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/images/centralized-egress-rt.png)


对于使用 Transit Gateway 的集中部署模式，AWS 建议在多个可用区部署 AWS Network Firewall 终端节点。客户运行工作负载的每个可用区中都应有一个防火墙终端节点，如上图所示。最佳做法 AWS Network Firewall 是，防火墙子网不应包含任何其他流量，因为防火墙子网无法检查来自防火墙子网内源或目标的流量。

与之前的设置类似，分支 VPC 附件与路由表 1 (RT1) 关联并传播到路由表 2 (RT2)。明确添加了 Blackhole 路由，以 VPCs 禁止两者相互通信。

继续使用默认路由将所有流量 RT1 指向出口 VPC。Transit Gateway 会将所有流量转发到出口 VPC 中的两个可用区域之一。流量到达出口 VPC ENIs 中的一个 Transit Gateway 后，您就会到达一条默认路由，该路由会将流量转发到相应可用区域中的一个 AWS Network Firewall 终端节点。 AWS Network Firewall 然后将根据您设置的规则检查流量，然后使用默认路由将流量转发到 NAT 网关。

这种情况不需要 Transit Gateway 设备模式，因为您没有在附件之间发送流量。

**注意**  
AWS Network Firewall 不会为您执行网络地址转换，此功能将在通过进行流量检查后由 NAT 网关处理 AWS Network Firewall。在这种情况下，不需要入口路由，因为默认情况下，返回流量将转发到 NATGW IPs 。

由于您使用的是 Transit Gateway，因此我们可以将防火墙放在 NAT 网关之前。在此模型中，防火墙可以看到 Transit Gateway 背后的源 IP。

如果您在单个 VPC 中执行此操作，我们可以使用 VPC 路由增强功能，允许您检查同一 VPC 中子网之间的流量。有关详细信息，请参阅[AWS Network Firewall 使用 VPC 路由增强功能的部署模型](https://aws.amazon.com/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall-with-vpc-routing-enhancements/)博客文章。

## 可扩展性
<a name="scalability-2"></a>

AWS Network Firewall 可以根据流量负载自动向上或向下扩展防火墙容量，以保持稳定、可预测的性能，从而最大限度地降低成本。 AWS Network Firewall 旨在支持成千上万的防火墙规则，每个可用区的吞吐量最高可扩展到 100 Gbps。

## 重要注意事项
<a name="key-considerations-1"></a>
+ 每个防火墙终端节点可以处理大约 100 Gbps 的流量，如果您需要更高的突发流量或持续的吞吐量，请联系 [AWS 支持](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html)。
+ 如果您选择在您的 AWS 账户中创建 NAT 网关和 Network Firewall，则可以免除标准 NAT 网关处理费和每小时使用[费，前提](https://aws.amazon.com/network-firewall/pricing/)是防火墙 one-to-one按每 GB 处理量和使用时数收费。
+ 您也可以考虑在没有 Transit Gateway AWS Firewall Manager 的情况下通过分布式防火墙终端节点。
+ 在将防火墙规则移至生产环境之前对其进行测试，类似于网络访问控制列表，因为顺序很重要。
+ 要进行更深入的检查，需要高级的 Suricata 规则。网络防火墙支持对入口和出口流量进行加密流量检查。
+ `HOME_NET`规则组变量定义了有资格在状态引擎中进行处理的源 IP 范围。使用集中式方法，您必须添加 CIDRs 连接到 Transit Gateway 的所有其他 VPC，使其符合处理资格。有关`HOME_NET`规则组变量的更多详细信息，请参阅 [Network Firewall 文档](https://docs.aws.amazon.com/network-firewall/latest/developerguide/stateful-rule-groups-domain-names.html)。
+ 考虑在单独的网络服务账户中部署 Transit Gateway 和出口 VPC，以便根据职责分配隔离访问权限；例如，只有网络管理员才能访问网络服务账户。
+  为了简化此模型 AWS Network Firewall 中的部署和管理， AWS Firewall Manager 可以使用。Firewall Manager 允许您通过自动将您在集中位置创建的保护应用于多个帐户来集中管理不同的防火墙。Firewall Manager 支持网络防火墙的分布式和集中式部署模式。要了解更多信息，请参阅博客文章[如何使用 AWS Network Firewall 进行部署 AWS Firewall Manager](https://aws.amazon.com/blogs/security/how-to-deploy-aws-network-firewall-by-using-aws-firewall-manager/)。

# 将 NAT 网关和网关 Load Balancer 与 Amazon EC2 实例配合使用以实现集中 IPv4 出口
<a name="using-nat-gateway-and-gwlb-with-ec2"></a>

使用基于软件的虚拟设备（在 Amazon EC2 上） AWS Partner Network 作为退出点与 NAT 网关设置类似。 AWS Marketplace 如果您想使用各种供应商产品的高级第 7 层（firewall/Intrusion Prevention/Detection System (IPS/IDS）和深度数据包检测功能，则可以使用此选项。

在下图中，除了 NAT 网关外，您还使用网关负载均衡器 (GWLB) 后面的 EC2 实例部署虚拟设备。在此设置中，GWLB、Gateway Load Balancer 终端节点 (GWLBE)、虚拟设备和 NAT 网关部署在使用 VPC 连接到 Transit Gateway 的集中式 VPC 中。分支 VPCs 还使用 VPC 附件连接到 Transit Gateway。由于 GWLBEs 是可路由的目标，因此您可以将来自 Transit Gateway 的流量路由到配置为 GWLB 后面目标的虚拟设备队列。GWLB 充当，透明 bump-in-the-wire地通过第三方虚拟设备传递所有第 3 层流量，因此流量的来源和目的地都看不见。因此，该架构允许您集中检查通过 Transit Gateway 的所有出口流量。

有关流量如何通过此设置从应用程序流 VPCs 向互联网并返回互联网的更多信息，请参阅使用 [AWS Gateway Load Balancer 的集中检查架构和 AWS Transit Gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/centralized-inspection-architecture-with-aws-gateway-load-balancer-and-aws-transit-gateway/)。

您可以在 Transit Gateway 上启用设备模式，以通过虚拟设备保持流量对称性。这意味着双向流量将在流量生命周期内通过同一个设备和可用区路由。此设置对于执行深度数据包检查的状态防火墙尤其重要。启用设备模式无需复杂的解决方法（例如源网络地址转换 (SNAT)）来强制流量返回正确的设备以保持对称。有关详细信息，请参阅[部署 Gateway Load Balancer 的最佳实践](https://aws.amazon.com/blogs/networking-and-content-delivery/best-practices-for-deploying-gateway-load-balancer/)。

还可以在没有 Transit Gateway 的情况下以分布式方式部署 GWLB 端点以启用出口检查。在 [AWS Gateway Load Balancer 简介：支持的架构模式博客文章中了解有关这种架构模式](https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-gateway-load-balancer-supported-architecture-patterns/)的更多信息。

![\[一张图描绘了使用 Gateway Load Balancer 和 EC2 实例的集中出口（路由表设计）\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/images/centralized-egress-gwlb-and-ec2.png)


## 高可用性
<a name="high-availabilty-2"></a>

AWS 建议在多个可用区部署网关负载均衡器和虚拟设备以提高可用性。

Gateway Load Balancer 可以执行运行状况检查以检测虚拟设备故障。如果设备运行状况不佳，GWLB 会将新的流量重新路由到健康的设备。无论目标的健康状况如何，现有流量总是流向同一个目标。这允许连接耗尽并适应由于设备上的 CPU 峰值而导致的运行状况检查失败。有关更多详细信息，请参阅博客文章 Gate [way Load Balancer 部署最佳实践中的第 4 节：了解设备和可用区故障场景](https://aws.amazon.com/blogs/networking-and-content-delivery/best-practices-for-deploying-gateway-load-balancer/)。Gateway Load Balancer 可以使用自动伸缩组作为目标。这一优势省去了管理设备群组可用性和可扩展性的繁重工作。

## 优点
<a name="advantages"></a>

Gateway Load Balancer 和 Gateway Load Balancer 终端节点由 AWS PrivateLink提供支持，这允许跨越VPC边界安全地交换流量，而无需穿越公共互联网。

Gateway Load Balancer 是一项托管服务，它消除了管理、部署、扩展虚拟安全设备等无差别的繁重工作，因此您可以专注于重要的事情。Gateway Load Balancer 可以将防火墙堆栈作为终端节点服务公开，供客户使用订阅。[AWS Marketplace](https://aws.amazon.com/marketplace)这称为防火墙即服务 (FWaaS)；它引入了简化的部署，无需依赖 BGP 和 ECMP 在多个 Amazon EC2 实例之间分配流量。

## 重要注意事项
<a name="key-considerations-2"></a>
+ 这些设备需要支持 [Geneve](https://datatracker.ietf.org/doc/html/rfc8926) 封装协议才能与 GWLB 集成。
+ 某些第三方设备可以支持 SNAT 和覆盖路由（[双臂模式](https://networkgeekstuff.com/networking/basic-load-balancer-scenarios-explained/)），因此无需创建 NAT 网关即可节省成本。但是，在使用此模式之前，请咨询您选择的 AWS 合作伙伴，因为这取决于供应商的支持和实施。
+  记下 [GWLB 空闲超时](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html#idle-timeout)。这可能会导致客户端连接超时。您可以调整客户端、服务器、防火墙和操作系统级别的超时时间以避免这种情况。有关更多信息，请参阅 *G [ateway Load Balancer 部署最佳实践博客文章中的第 1 节：调整 TCP 保持活动状态或超时值以支持长寿命的 TCP](https://aws.amazon.com/blogs/networking-and-content-delivery/best-practices-for-deploying-gateway-load-balancer/) 流*。
+ GWLBE 由提供动力 AWS PrivateLink，因此将 AWS PrivateLink 收取费用。您可以在[AWS PrivateLink 定价页面](https://aws.amazon.com/privatelink/pricing/)了解更多信息。如果您在 Transit Gateway 中使用集中模式，则将收取 TGW 数据处理费用。
+ 考虑在单独的网络服务账户中部署 Transit Gateway 和出口 VPC，以便根据职责分配隔离访问权限，例如只有网络管理员才能访问网络服务账户。

# 集中出口 IPv6
<a name="centralized-egress-for-ipv6"></a>

 要在具有集中 IPv6 出口的双堆栈部署中支持 IPv4 出口，必须选择以下两种模式之一：
+  集中 IPv4 式出口，分散 IPv6 出口 
+  集中 IPv4 式出口和集中式 IPv6 出口 

 在下图所示的第一种模式中，每个分支 VPC 中都部署了仅限出站的 Internet 网关。仅限出口 Internet 网关是水平扩展、冗余且高度可用的网关，允许从 VPC 内的 IPv6 实例进行出站通信。它们会阻止互联网启动与您的实例的 IPv6 连接。仅限出口的互联网网关不收费。在此部署模型中， IPv6 流量流出每个 VPC 中的仅限出口 Internet 网关， IPv4 流量通过部署的集中式 NAT 网关流出。

![\[该图描述了集中式 IPV4 出口和分散式仅限 IPv6 出站的出站出口。\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/images/centralized-ipv4-egress-and-decentralized-outbound-ipv6.png)


 在第二种模式中（如下图所示），您的实例的出口 IPv6 流量将发送到集中式 VPC。这可以通过 IPv6对实例和 NAT 网关使用IPv6 网络前缀转换 (NPTv6) 或使用代理 NAT66 实例和 Network Load Balancer 来实现。如果需要对出站流量进行集中流量检查，并且无法在每个分支 VPC 中执行此操作，则此模式适用。

![\[该图描绘了使用 NAT 网关和 NAT66 实例的集中 IPv6 出口。\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/images/centralized-ipv6-egress-using-nat-gateways.png)


![\[一张图描绘了使用代理实例 IPv4 和 Network IPv6 Load Balancer 的集中式和出站流量。\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/images/centralized-ipv4-and-ipv6-egress.png)


 [AWS IPv6 上的白皮书](https://docs.aws.amazon.com/whitepapers/latest/ipv6-on-aws/advanced-dual-stack-and-ipv6-only-network-designs.html)描述了集中 IPv6 式出口模式。出 IPv6 站模式将在博客中详细讨论[双堆栈的集中出站互联网流量 IPv6 VPCs， IPv4 以及](https://aws.amazon.com/blogs/networking-and-content-delivery/centralizing-outbound-internet-traffic-for-dual-stack-ipv4-and-ipv6-vpcs/)特殊注意事项、示例解决方案和图表。