AWS 网络防火墙的 IPv6 部署模型 网络与内容交付

在 AWS 网络防火墙中部署 IPv6 的模型

关键要点

在本文中,我们将讨论在 AWS 网络防火墙中实现 IPv6 的两种主要部署模型:双栈模型和仅 IPv6 模型。AWS网络防火墙支持这两种模型,使得用户能够灵活地选择合适的网络架构。同时,还会探讨实施这些模型时要考虑的因素及其优缺点。

AWS 网络防火墙是一种管理状态的网络防火墙和入侵防护服务,允许用户对网络流量实施精细的防火墙规则。如果您是 AWS网络防火墙的新用户,并想了解其功能和使用案例,建议您查看这篇博客文章 。

在这篇文章中,我们将展示如何在双栈和仅 IPv6 的环境中使用 AWS 网络防火墙。我们将详细讲解不同的部署模型、与 IPv6环境相关的考虑因素和权衡。如果您对仅 IPv4 网络的部署模型感兴趣,可以参考文章 。

AWS 网络防火墙在 2023 年 1 月增加了 ,并在 2023 年 4 月加入了 。您可以在 re:Post 文章 中找到有关 IPv6 最佳实践、参考架构和文档的更多资源。

AWS 上的 IPv6 部署模型

在 AWS(Amazon Web Services)上部署 IPv6 环境时,主要有两种部署选项:双栈与仅 IPv6。在双栈模型中,您的环境支持 IPv4和 IPv6,而仅 IPv6 意味着工作负载只配置了 IPv6 地址。

双栈部署模型

双栈部署模型的环境支持 IPv4 和 IPv6 流量。您的资源可以同时具有 IPv4 和 IPv6 地址。部署双栈环境的一个好处是能够与不支持 IPv6的资源保持向后兼容。例如,您可能有仅支持 IPv4 的客户端,因此可以通过原生 IPv4 连接到双栈终端。

仅 IPv6 部署模型

在仅 IPv6 环境中,您的资源只配置了 IPv6 地址,能够发送和接收 IPv6 流量。在确保客户端、AWS 服务和第三方资源支持 IPv6或配置了向后兼容层之后,可以选择仅 IPv6 模型。例如,您可以在虚拟专用云(VPC)中为某项服务部署仅 IPv6 的 Amazon ElasticCompute Cloud (Amazon EC2) 实例,并使用双栈负载均衡器以允许 IPv4和 IPv6 客户端访问该服务。

接下来,我们将回顾 AWS 网络防火墙在启用 IPv6 环境中的常见架构模式。

互联网入口流量检测架构模式

在本节中,我们将探索如何使用 AWS 网络防火墙检查 IPv6 的互联网入口流量。AWS 网络防火墙可以在分布式或集中式模型中使用。

IPv6 分布式互联网入口流量检测

在第一个场景中,我们重点关注连接到 AWS 上托管的使用 IPv6 的应用程序的外部客户端,如下图所示(图 1)。

![图 1: IPv6删除)

互联网入口流量检测流程:

  1. 双栈应用负载均衡器在 中维护了 A(IPv4)和 AAAA(IPv6)完全限定域名(FQDN)记录,以允许 IPv4 和 IPv6 客户端访问您的应用程序。您可以创建一个 Route 53 公共托管区域,用于您的自定义 DNS 名称,创建 A 和 AAAA 别名记录,并将它们指向应用负载均衡器的 FQDN。
  2. 您的 IPv4 和 IPv6 客户端将根据其功能,接收 A 或 AAAA 记录。
  3. 互联网入口流量通过在双栈子网中的 AWS 网络防火墙进行检查。
  4. 入口路由功能使用 ,允许 AWS 网络防火墙插入在互联网网关与应用程序之间的流量路径中。
  5. 流量目的地是您的弹性负载均衡器(ELB),防火墙充当插入式检查资源,对客户端和应用程序透明。
  6. 检查后,流量将被转发到负载均衡器而不更改 IP 地址(IPv4 或 IPv6)。
  7. 然后,ELB 根据其支持的协议版本将流量发送到后端 EC2 实例,可以是 IPv4 或 IPv6。双栈负载均衡器支持 IPv4 目标组和 IPv6 目标组。

该模型支持应用程序负载均衡器和网络负载均衡器,而 AWS 网络防火墙能够过滤 IPv4 和 IPv6 流量。

AWS 网络防火墙配置

以下示例显示了标准状态规则,允许将 HTTP 端口 443 访问 ELB 子网,同时阻止 HTTP 端口 80 流量。客户还可以使用 。

![图 2: 允许 HTTP 端口 443删除)

一个允许 IPv6 无类别间域路由(CIDR)入口流量的 Suricata 规则示例如下:

pass tcp any any -> [2600:1f14:f25:df00::/56] 443 (flow:established,to_server; msg:"允许 TCP 443 流量"; sid: 1000005; rev:1;)

IPv6 集中式互联网入口流量检测

IPv6 的集中式互联网入口模式仅限于双栈应用程序和具有 IPv4 目标的网络负载均衡器。目前,您不能配置 IP 类型的目标组,其中包含位于其他 VPC或本地网络中工作负载的 IPv6 地址,即使您通过 VPC 对等连接、、 或 配置了私有连接。

然而,如果您希望拥有 IPv6 目标和 IPv6 服务,您可以通过使用双栈弹性负载均衡器和 IPv6 目标,在集中的入口 VPC 中使用 IPv6 IP类型目标作为双栈 终端节点。PrivateLink 终端节点允许您的前端应用或网络负载均衡器以 IPv6 连接到其他 VPC 中的服务或本地网络。

![图 3: 使用 PrivateLink 的 IPv6删除)

AWS 网络防火墙配置

当您为防火墙策略配置网络防火墙政策变量时,可以添加一个或多个 CIDR 表示法的 IPv4 或 IPv6 地址,以覆盖 Suricata HOME_NET的默认值。如果您的防火墙使用集中式部署模型,您可能希望通过以下图例(图 4)将 HOME_NET 覆盖为您检查 VPC 的 CIDR。

![图 4: AWS 网络防火墙 HOME_NET删除)

互联网出口流量检测架构模式

当您在 AWS 中部署工作负载时,许多资源需要访问互联网。这类流量通常需要进行检查。接下来,我们将探索两种检查您 AWS 资源向互联网出口流量的选项。

IPv6 分布式互联网出口流量检测

在双栈或仅 IPv6 子网中部署的工作负载,可以使用 IPv4 或 IPv6 连接到互联网端点,并且该流量可以通过 AWS 网络防火墙进行检查,如下图(图 5)所示。我们在双栈子网中部署 AWS 网络防火墙终端节点,以允许对 IPv4 和 IPv6 协议的流量进行检查。

使用 AWS 网络防火墙过滤 IPv6 出口流量目前仅适用于公共子网。私有 IPv6子网配置了一个默认路由指向出口仅互联网网关,它不支持入口路由功能,以允许通过防火墙端点对返回流量进行对称检查。

![图 5: IPv6删除)

使用互联网网关进行出口意味着在 IPv6 中,子网是公共的。因此,应该在 AWS 网络防火墙上施加适当的限制,以阻止来源于互联网的入口流量到达工作负载子网。

使用 NAT64 和 DNS64 与仅 IPv4 服务进行通信

如果您有具有仅 IPv6 工作负载的子网需要和互联网的 IPv4 服务进行通信,可以使用 AWS 托管的 DNS64 结合 NAT64。如果 DNS记录中未与目的地关联 IPv6 地址,Route 53 解析器将通过在 IPv4 地址前添加预定义的 64:ff9b::/96 前缀(在 中定义)合成一个 IPv6 地址。您的 IPv6-only 服务将数据包发送到合成的 IPv6 地址。然后,您需要通过 NAT 网关路由此流量,该 NAT 服务执行必要的 NAT64转换,以使子网中的 IPv6 服务访问该子网外的 IPv4 服务。

您可以使用 AWS CLI 的 aws ec2 modify-subnet-attribute 或通过 VPC 控制台编辑子网设置来启用或禁用子网上的 DNS64。NAT64 当前在您现有的 NAT 网关或您创建的任何新 NAT 网关上自动可用。有关更多信息,请参阅 DNS64 和 NAT64 文档。

如图 5 所示,防火墙终端节点子网路由到 64:ff9b::/96 指向 NAT 网关,这是 NAT64 工作所必需的。

AWS 网络防火墙配置

以下是一个示例 Suricata 规则,用于阻止对 IPv6 CIDR 的入口流量:

drop ip any any -> [2600:1f14:f25:df00::/56] any (flow:established,to_server; msg:"拒绝 IPv6 流量"; sid: 1000006; rev:1;)

请注意,您可以组合这两种模型:集中的 IPv4 出口和分布式的 IPv6 出口。

IPv6 集中式互联网出口流量检测

为了实现集中式的 IPv6 互联网出口模式,您必须使用支持 NAT66 或 IPv6 到 IPv6网络前缀转换(NPTv6)的防火墙或代理,以及以两臂模式部署的网关负载均衡器。网关负载均衡器的双臂部署模型在博客文章

中进行了说明。我们建议在可能的情况下实现前面讨论的分布式出口模式,以提高可扩展性和优化数据处理成本。

VPC 到 VPC 流量检测部署模式

接下来,我们将探索如何使用 AWS 网络防火墙检查不同环境或安全区域之间的 IPv6 流量。AWS网络防火墙可以在集中式或分布式模型中使用这种模式。您可以检查 VPC 内的 IPv6 流量,例如,从私有子网到公共子网,或在 VPC 间进行流量检查。

使用 Transit Gateway 和 AWS Cloud WAN 的集中式 VPC 到 VPC 检查模式

您可以使用一个集中式 VPC 来部署 AWS 网络防火墙,并通过 AWS Transit Gateway 或 AWS Cloud WAN将流量路由到集中式防火墙部署。此模型在 的集中部署部分中进行了说明,适用于 Transit Gateway,以及 。要在双栈环境中使用此架构,您需要 Transit Gateway 或 AWS Cloud WAN 的双栈 VPC附加子网,并且必须更新路由表以包含适当的 IPv6 路由。下图(图 6)显示了 AWS Transit Gateway 部署的示例:

![图 6: 使用 Transit Gateway 的集中式 VPC 到 VPC删除)

下图(图 7)展示了在两个 AWS 区域中 AWS Cloud WAN 部署的示例。通过连接状态检查,我们配置路由以确保源和目标区域之间的流量都经过防火墙。

![图 7: 使用 AWS Cloud WAN 的集中式 VPC 到 VPC删除)

考虑事项

  • 启用双栈 AWS 网络防火墙终端节点没有额外费用。
  • 在 Amazon VPC 中使用 IPv6 也没有额外费用。
  • 有关双栈及仅 IPv6 设计模式的更多信息,请查看参考架构 。
  • 有关 IPv6 VPC 和子网的更多信息,请查看 。
  • 有关 AWS 网络防火墙最佳实践的一般信息,请查看 。
  • 有关 AWS上 IPv6 的更多信息,请查看 。

结论

每年 IPv6 的采纳率在增加,许多 AWS 客户在其环境中采用 IPv6 具有多种原因和需求。确保通过流量检查来网络安全仍然是 IPv4-only、双栈和仅 IPv6 环境的首要任务。AWS 网络防火墙提供了检查这两种协议栈的灵活性和能力,而没有额外的成本。如需了解其他 IPv6安全和监控注意事项,请阅读白皮书 中的 IPv6 部分。

于 2024 年 6 月 4 日更新:本文的早期版本省略了使用 DNS64 和 NAT64 的可能性。现已更新以描述在出口检查到 IPv4-only目标时使用 DNS64 和 NAT64 的用法。

作者简介

![Nick Kniv

Leave a Reply

Required fields are marked *