NSX Advanced Load Balancer 会持续评估每个虚拟服务的运行状况。此运行状况信息可在摘要和详细信息表单中查看。

每个虚拟服务都有一个运行状况分数,它采用颜色代码和一组数字分数的形式显示虚拟服务运行状况。最终运行状况分数由一个正性能分数和三个罚分组成。

安全罚分有助于深入了解当前的安全相关问题(例如当前的 DoS 攻击)或潜在风险(例如使站点容易受到 POODLE 攻击的 SSL 配置)。

理想情况下,安全罚分必须为零,这意味着不会影响虚拟服务的运行状况或造成风险。非零安全罚分可能是由于 SSL 问题或 DDoS 攻击事件所致。以下部分探讨了可能会生成安全罚分的要素。

查看安全详细信息

要查看虚拟服务的安全详细信息,请执行以下操作:

  1. 单击仪表板上显示的虚拟服务图标。

  2. 单击虚拟服务名称。

  3. 单击菜单栏上的“安全”。

虚拟服务的安全详细信息显示在两个窗格中:

  • SSL 信息(左侧窗格)

  • DDoS 信息(右侧窗格)

虚拟服务的安全详细信息主要分为以下类别:

  • SSL 分布:默认安全页面中的“SSL”部分显示与选定时间段内 SE 上终止的客户端连接有关的最相关 SSL 数据的详细信息。如果未在虚拟服务上执行 SSL 终止,此部分将没有任何数据。

  • SSL 分数:默认安全页面中的“SSL 分数”部分显示影响 SSL 分数的主要因素的详细信息。

  • DDoS:默认安全页面中的“DDoS”部分将虚拟服务的分布式拒绝服务数据拆分为最相关的 L4 和 L7 攻击数据。

有关 DDoS 攻击缓解措施、速率限制器和 Datascript 的更多信息,请参阅《VMware NSX Advanced Load Balancer 配置指南》中的“DDoS 攻击缓解措施”主题。

速率调整和限制选项

NSX Advanced Load Balancer 包括许多用于速率调整和流量限制的选项。这些选项可以在虚拟服务、池服务器或客户端级别应用。这些选项存在于整个 UI 中的许多位置,具体取决于它们所应用到的特定对象。此外,还可以使用 DataScript 创建自定义限制。

虚拟服务限制

虚拟服务 > 编辑 > 高级选项卡中,可以使用以下选项为特定虚拟服务指定连接和请求的限制。

要限制速率的新 TCP 连接数:设置可在配置的时间段内从所有客户端为此虚拟服务创建的新连接的最大阈值。尽管“报告”操作会为过多的连接生成日志,但这样可让它们正常进行。丢弃 SYN 会以静默方式放弃客户端 SYN,而 RST 会将连接重置发送回客户端。

要限制速率的新 HTTP 请求数:设置可在配置的时间段内从此虚拟服务的所有客户端发起的 HTTP 请求的最大阈值。尽管“报告”操作会为过多的请求生成日志,但这样可让它们正常进行。关闭 TCP 连接将向客户端发送连接 RST。发送本地响应允许 NSX Advanced Load Balancer 使用简单的网页和适当的状态代码进行响应。发送 HTTP 重定向将过多请求转发到其他 URI 或目标。

最大吞吐量:为每个 SE 指定虚拟服务的最大带宽量(以位/秒为单位)。例如,如果虚拟服务扩展到 3 个 SE,则每个 SE 会在 1 Gbps 之后实施限制,这实际上总共为 3 Gbps。因此,在将虚拟服务放置在更多数量的 SE 上时,吞吐量也会横向扩展。超出此限制的流量将被丢弃,可能需要客户端或服务器重新传输。设置此限制后,虚拟服务详细信息页面中的分析选项卡将在吞吐量衡量指标图表上显示一条水平虚线,表示当前吞吐量与允许的最大吞吐量。

最大并发连接数:指定并发打开连接的最大数目。超过此数字的连接尝试将被重置 (TCP) 或丢弃 (UDP),直到并发连接总数低于阈值为止。设置此限制后,虚拟服务详细信息页面的分析选项卡将在打开的连接数衡量指标图上显示一条水平虚线,表示当前打开的连接数与允许的最大连接数。

服务器池限制

> 编辑 > 高级选项卡中,可使用以下选项设置服务器并发连接限制。

每个服务器的最大连接数:指定服务器允许的最大并发连接数。如果池中的所有服务器都达到该最大限制,则虚拟服务将发送 TCP 连接重置或以静默方式丢弃新的 UDP 流,除非在服务器关闭设置中有明确指示,如上所述。在关闭到服务器的现有连接后,该服务器立即符合接收下一个客户端连接的条件。有效值为零(这将禁用连接限制)或从 50 到 10,000 的任意数字。

客户端限制

虚拟服务 > 编辑 > 规则 > 网络安全选项卡中,创建一个新策略,并将操作设置为速率限制

速率限制:限制客户端打开的连接数超过最大速率字段中指定的每秒连接数。超过此数值的客户端将以静默方式丢弃其过多的连接尝试。如果启用了突发大小,并且客户端最近未打开连接,则它们可能会突增到最大速率以上。此功能可应用于 TCP 或 UDP。与“匹配条件”匹配的所有客户端都将被视为一个存储桶。例如,如果未定义匹配,所有 IP 地址都会增加最大速率计数器。将对所有新连接的客户端进行限制。可以对不同的网络、地理位置或 IP 和端口条件应用单独的限制。

模板 > 应用程序配置文件 > 编辑 > DDoS 选项卡中,可以使用“速率限制 HTTP 和 TCP 设置”下拉菜单中的多个选项。

限制来自客户端的连接速率:限制从任何单个客户端 IP 地址到虚拟服务的所有连接的速率。

限制从客户端到所有 URL 的请求速率:限制从任何单个客户端 IP 地址到虚拟服务的全部 URL 的所有 HTTP 请求的速率。

限制从所有客户端到某个 URL 的请求速率:限制从所有客户端 IP 地址到任何单个 URL 的所有 HTTP 请求的速率。

限制从客户端到某个 URL 的请求速率:限制从任何单个客户端 IP 地址到任何单个 URL 的所有 HTTP 请求的速率。

限制从客户端到所有 URL 的失败请求速率:在指定的时间段内,来自客户端的失败请求数超过该时间段的阈值后,限制来自该客户端的所有请求的速率。将根据客户端的 IP 地址对客户端进行跟踪。根据客户端或服务器端错误状态代码将请求视为失败,这与 NSX Advanced Load Balancer 记录日志和衡量指标子系统标记失败请求的方式一致。

限制从所有客户端到某个 URL 的请求速率:在指定的时间段内,到 URI 的失败请求数超过该时间段的阈值后,限制到该 URI 的所有请求的速率。根据客户端或服务器端错误状态代码将请求视为失败,这与 NSX Advanced Load Balancer 记录日志和衡量指标子系统标记失败请求的方式一致。

限制从客户端到某个 URL 的失败请求速率:在指定的时间段内,从客户端发送到 URI 的失败请求数超过该时间段的阈值后,限制从该客户端发送到 URI 的所有请求的速率。根据客户端或服务器端错误状态代码将请求视为失败,这与 NSX Advanced Load Balancer 记录日志和衡量指标子系统标记失败请求的方式一致。

限制从客户端到所有 URL 的扫描速率:自动跟踪客户端,并将其划分为 3 个组:“良好”、“错误”和“未知”。将根据客户端的 IP 地址对客户端进行跟踪。在 NSX Advanced Load Balancer 扫描检测系统为来自客户端并成功完成的请求生成历史记录时,这些客户端将添加到“良好”组中。在客户端没有足够的历史记录时,这些客户端将添加到未知组中。具有失败请求历史记录的客户端将添加到“错误”组中,并使用比“未知”客户端组更严格的阈值限制其请求速率。NSX Advanced Load Balancer 扫描检测系统会自动调整自身,以便在通过 ADC 更改流量模式时动态更改“良好”、“错误”和“未知”客户端 IP 组成员。换句话说,如果对网站的更改导致大多数客户同时发生故障(例如 404 错误),NSX Advanced Load Balancer 将进行调整,而不是将所有客户端都标记为尝试扫描该网站。

限制从所有客户端到所有 URL 的扫描速率:与之前的限制类似,但将来自所有客户端的扫描作为单个实体进行限制,而不是单独进行限制。在所有客户端加在一起达到限制后,将重置发送下一个失败请求的任何客户端。

根据标头或 Cookie 限制客户端的速率NSX Advanced Load Balancer 可以根据标头或 Cookie 限制客户端的速率。NSX Advanced Load Balancer 跟踪已看到的标头或 Cookie 值的请求数。如果超出指定的阈值,将限制客户端的速率。