引入可配置的 TCP 空闲超时设置用于网

可配置的 TCP 空闲超时功能为网关负载均衡器推出

关键要点

  • AWS 网关负载均衡器 (GWLB) 现在支持可配置的 TCP 空闲超时功能。
  • 用户可以将空闲超时的时间范围从 60 秒调整至 6000 秒。
  • 该功能旨在减少与第三方防火墙或长连接应用程序之间的超时不匹配,从而避免流量中断。
  • 通过 AWS 管理控制台或 API,用户可以轻松设置和监控这一新功能。

文章将讨论如何使用该功能并分享最佳实践,帮助您进行有效的配置。


Amazon Web Services () 网关负载均衡器(GWLB)是一个托管服务,允许您将第三方防火墙设备插入数据路径。GWLB帮助您部署、扩展和管理第三方设备,并作为透明的流量传输设备,将流量顺利转发到目标。客户通常将第三方防火墙设备部署为 GWLB的目标,用于流量检查等用例。更多详情请参考 。

今天,我们推出了新的可配置 TCP 空闲超时功能,允许用户将 GWLB 的传输控制协议(TCP)空闲超时配置从 60 秒到 6000 秒。

在本文中,我们将介绍此功能的基本概念和最佳实践,以及如何通过 和 API 进行设置。

前提条件

在接下来的部分中,我们假设您对于 AWS 网络服务的基本知识是熟悉的,例如虚拟专用云(VPC)、子网和 VPC路由表。我们还假设您了解如何将第三方防火墙设置为 GWLB 的目标。您可以在 中找到更多信息。

什么是 GWLB TCP 空闲超时?

GWLB 首先会在流量表中创建一个流条目。当流中的第一个数据包到达时,GWLB 使用 2-元组、3-元组或 5-元组散列来定义流,并将流中的所有数据包路由到其某个后端目标。GWLB通过将每个流条目与一个后端目标设备配对,维持流量对称性。这种流量对称性对流量检查或防火墙用例是必要的。

GWLB 认为,流在数据包通过 GWLB 的时候就是活跃的。当该流的所有数据包停止到达时,流被视为空闲,并开始计时。GWLB会在空闲时间过后,从流量表中移除这个流条目。

为什么 GWLB 需要可配置的 TCP 超时?

直到现在,GWLB 支持的固定 TCP 空闲计时器是 350 秒。到达 GWLB 的数据包,如果在空闲超时过后到达,则被视为新流,并可能转发到不同的目标。

然而,许多防火墙和应用程序(如传统数据库)具有更长的默认 TCP 空闲超时。这种 GWLB与应用程序之间超时值的不匹配,可能会导致流量流转的中断,因为这些应用程序的较长期待会在超时后被转发到不同的目标。

GWLB 的可配置 TCP 空闲超时功能允许您将防火墙和应用程序的 TCP 空闲超时值与 GWLB对齐,从而确保了流量流转的连续性,并减少流量中断的可能性。

一些第三方防火墙(如 、、 和 )等,支持超过 350 秒的 TCP空闲超时,通常提供 3600 秒的默认 TCP 空闲超时。GWLB 与目标设备之间的 TCP 空闲超时值不匹配,可能导致流量中断。我们在图示 1a、1b 和 1c 中展示了导致流量中断的步骤。

如何使用新的可配置 TCP 空闲超时功能?

您可以为GWLB IP 监听配置 TCP 空闲超时。此配置适用于 IPv4 和 IPv6 流量。

第一步:编辑 GWLB 监听器详细信息

在 GWLB 详细信息页面,选择 操作 ,然后选择 查看监听器详情

![GWLB删除)

第二步:编辑 TCP 空闲超时值

在 GWLB 属性下,编辑 TCP 空闲超时细节。

![编辑 TCP删除)

输入所需的 TCP 空闲超时,然后保存更改。

![输入 TCP删除)

您还可以使用新增的 modify-listener-attributes API 调用来编辑 TCP 空闲超时值:

bash aws elbv2 modify-listener-attributes \ --listener-arnarn:aws:elasticloadbalancing:<Region>:<AWS Account ID>:listener/gwy/<GWLBname>/<GWLB ID>/<Listener ID> \ --attributes \ Key=tcp.idle_timeout.seconds,Value=3700

您需要在使用 modify-listener-attributes API 调用时,将 TCP 空闲超时值作为键值对提供,如下图所示。请参考 以了解完整的支持命令列表。

第三步:验证新配置

![验证 GWLB IP 监听的新 TCP删除)

第四步:使用 Amazon CloudWatch 指标进行监控

GWLB 现在支持新的 指标,可以让您监控超时流的总数。您可以使用 RejectedFlowCountRejectedFlowCount_TCP 指标,分别监控被拒绝的流和被拒绝的 TCP 流。这些指标仅在 GWLB 因流量表满而拒绝流时递增。我们建议您逐步增加 GWLB 的 TCP 空闲超时。

![CloudWatch 警报与 RejectedFlowCount删除)

配置 GWLB TCP 空闲超时值的建议

将 GWLB TCP 空闲超时设置为很高的值意味着 GWLB 会在流量表中将流条目保持活跃更长时间,从而增加 GWLB 流量表的大小。这增加了耗尽 GWLB流量表大小的风险。为减轻此风险,我们建议监控 ActiveFlowCount CloudWatch 指标,该指标指示 GWLB 流量表中可用的流数量。

针对长期流的建议

在本节中,我们讨论三条建议,使用 GWLB 可配置 TCP 空闲超时功能,避免在内联流量检查用例中出现流量中断。

  • 建议一 :将 GWLB 的 TCP 空闲超时配置为略高于防火墙设备的 TCP 空闲超时值。同时推荐配置防火墙设备在其 TCP 会话超时后发送 TCP RST(请咨询您的防火墙供应商以确认此支持)。对于长时间空闲的 TCP 流,此配置确保防火墙是链中第一台超时的设备。后端防火墙目标发送的 TCP RST 确保客户端的 TCP 会话优雅关闭。此配置允许您在不改变所有客户端设备或应用程序代码的情况下部署您的检查架构。对于需要长时间流的传统应用程序,且不能在应用程序代码中实现 TCP keepalives 的应用程序,该选项是一种务实的方法,尤其是当您有大量传统应用程序且升级所有应用程序/客户端/服务器需要较长的维护窗口时。
  • 建议二 :设置客户端/服务器的 TCP 空闲超时值,使其低于 GWLB 或防火墙设备。这确保客户端或服务器在流量在 GWLB 或防火墙设备上超时之前优雅地刷新连接。此方案需要您更新所有客户端及服务器。有关详细信息,请参见 。尽管此方案优雅,但您需要更新所有客户端/服务器/应用程序。
  • 建议三 :在您的应用程序中实现 TCP keepalives。这将确保客户端/服务器通过发送 TCP keepalives 来保持其 TCP 会话的活动。此选项也需要您对应用程序进行更改。

表-1总结了这些建议:

配置更改需求工作量级别
建议一配置 GWLB 超时 > 防火墙的超时
建议二配置客户端/服务器的超时 < GWLB/防火墙的超时
建议三在您的应用程序中配置 TCP keepalives

针对短期流的建议

活动流的总数是影响 GWLB 使用成本的重要因素。对于期望 TCP 会话较短的应用程序,您可以通过降低 GWLB TCP空闲超时值来优化您的使用。在这些用例中,我们建议您将 GWLB TCP 空闲超时值设置为略高于预期会话生命周期。

我们常看到,该需求来自于诸如警车、救护车和作战车辆等连接设备,这些设备使用多个蜂窝网络或移动网络运营商(MNO)将数据流式传输到 AWS。在不同的 MNO之间切换时,连接设备会造成会话中断,应用程序代码会在检测到中断时创建新的 TCP 会话。

需知事项

  • 在更改 TCP 空闲超时值时,GWLB 的任何现有流均不受影响。这些流的流量将继续不受影响地进行处理。新的 TCP 空闲超时只适用于 GWLB 的新流条目。
  • 任何 TCP keepalives 都会刷新 GWLB 的 TCP 空闲超时值。
  • 空闲超时值适用于 IPv4 和 IPv6。
  • RejectedFlowCount_TCP 指标仅在其值非零时在 CloudWatch 提供。换句话说,您只能在 GWLB 流量表已满且 GWLB 开始拒绝 TCP 流后开始使用此指标。

结论

本文介绍了允许您将 GWLB 的 TCP 空闲超时配置在 60 秒至 6000 秒之间的新功能。我们解释了如何通过控制台和 API使用此功能。此外,我们讨论了如何使用此功能的最佳实践,针对长时间运行和短期 TCP 流提出建议,并说明如何监控特定的 CloudWatch指标,以为您的部署设置合适的值。

要了解更多关于此功能的信息,请访问 。

关于作者

![Milind Kulkarni删除)

Milind Kulkarni

Milind 是亚马逊网络服务(AWS)的首席产品经理。他在网络、数据中心架构、SDN/NFV 和云计算方面具有超过 20年的经验。他是九项美国专利的共同发明人,并共同撰写了三项 IETF 标准。

![Ankit Chadha照片](https://d2908q01vomqb2.cloudfront.net/5b384ce32d8cdef02bc3a139d4cac0a22bb029e8/2024/01/26/aichadha- 删除)

Ankit Chadha

Ankit 是支持 AWS 行业客户的网络专员解决方案架构师。他喜欢为客户构建安全和可扩展的网络架构。在空闲时间,Ankit喜欢打板球、赢取他猫的信任以及阅读传记。

标签:

Leave a Reply

Required fields are marked *