通过使用自定义持久性,NSX Advanced Load Balancer 可以根据用户定义的条件在自定义的持续时间内将客户端固定到一个服务器。

以下用例是通过 DataScript 配置的,它提供了灵活的选项以查找要持久保存的自定义数据。

DataScript

DataScript 可用于关闭到客户端的连接。可以通过 TCP RST 或正常 TCP FIN 完成该操作,这是由 avi.http.close_conn 命令中的标记确定的。

示例 1

根据源 IP 和端口持久保存客户端。

-- HTTP Request Event --
pool = "my_pool"
client = avi.vs.client_ip() .. avi.vs.client_port()
server = avi.vs.table_lookup(client)
timeout = "300"

if server then
   avi.pool.select(pool, client)
end


-- HTTP Response Event --
if not server then
   avi.vs.table_insert(client, avi.pool.server_ip(), timeout)
end

示例 2

根据客户端请求中的来源地址标头持久保存客户端。

-- HTTP Request Event --
pool = "my_pool"
timeout = "300"
client = avi.http.get_header("referer")
server = avi.vs.table_lookup(client)


if server then
   avi.pool.select(pool, client)
end


-- HTTP Response Event --
if not server then
   if 
   avi.vs.table_insert(avi.vs.client_ip(), avi.pool.server_ip(), timeout)
end

策略

网络安全策略和 HTTP 安全策略可用于根据 IP 地址丢弃客户端。您可以创建一个配置的策略规则,该规则引用名为 Blocklist 的 IP 组。在触发该策略时,将生成一个重要日志,指出策略丢弃该客户端。如果频率足够高,这还可能会在运行状况分数的安全行中扣除罚分。

IP 组

IP 组是与引用它的 DataScript 或策略分开配置和维护的。该组可以包含地址或国家/地区代码列表。有关该功能的更多详细信息,请参见 IP 组