Citrix ADC

在虚拟服务器之间共享持久会话

在某些客户环境(电信和 ISP)中,单个服务器可以同时处理控制和数据流量。对于给定的客户端 IP 地址,控制和数据流量必须定向到同一个后端服务器。为此,需要一个虚拟服务器来处理客户端身份验证流量,通常会在其上配置基于规则的持久性。例如,Radius.req.avp(8).value.typecast_text_t’. 用于处理数据流量的第二个虚拟服务器。通常,在其上配置源代码持久性。

以前,持久性条目是虚拟服务器的本地。如果您必须跨多个虚拟服务器应用持久性,则必须将虚拟服务器添加到负载平衡组,然后将常见的持久性类型应用到该组。无法满足上述要求,因为绑定到负载平衡组的所有虚拟服务器都继承了在组上配置的持久性。

通过虚拟服务器之间的持久性共享功能,您可以为负载平衡组设置新的 Use虚拟服务器Converency 参数,以允许组中的虚拟服务器使用其自己的持久性参数,而不是从组设置继承它们。您可以在每个虚拟服务器上配置单独的基于规则的持久性。

或者,您也可以将组中的一个虚拟服务器指定为主虚拟服务器。当虚拟服务器被指定为主虚拟服务器时,只有该虚拟服务器创建持久性条目,该组中的所有虚拟服务器都使用这些条目。如果主虚拟服务器关闭,Citrix ADC 设备不会创建任何新的持久性条目。

注意:只有基于规则的持久性方法才支持跨虚拟服务器之间的持久性共享。必须在成员虚拟服务器上配置兼容的基于规则的持久性参数。

示例:

假设 v1 和 v2 绑定到负载平衡组,v1 是 RADIUS 类型的虚拟服务器,v2 是 HTTP 类型的虚拟服务器。“Radius.req.avp(8).value.typecast_text_t”持久性在 v1 上配置,“client.ip.src”在 v2 上配置。

当流量流经 RADIUS 虚拟服务器 v1 时,它会根据评估的规则字符串创建持久条目。之后,当流量到达 HTTP 类型虚拟服务器v2 时,v2 会检查负载平衡组中的持久性条目,并使用相同的持久性会话将流量引导到同一后端服务器。

配置持久会话的共享

要在负载平衡组中的虚拟服务器之间共享持久性参数,必须首先启用 Use虚拟服务器Converency 参数,然后将组中的一个虚拟服务器指定为主服务器。

使用命令行界面启用 Use虚拟服务器 持久性参数

在命令提示窗口中,键入:

set lb group <name> -useVserverPersistency ( ENABLED)

示例:

set lb group lb_grp1 -useVserverPersistency ENABLED

使用 GUI 启用使用服务器持久性参数

  1. 导航到 配置 > 流量管理 > 负载平衡 > 持久性组
  2. 单击添加以添加新组,或选择现有组,然后单击编辑
  3. 选择使用虚拟服务器持久性

使用命令行界面将虚拟服务器指定为主虚拟服务器

在命令提示窗口中,键入:

set lb group <name> -useVserverPersistency ( ENABLED ) -masterVserver <string>

示例:

set lb group lb_grp1 -useVserverPersistency ENABLED –masterVserver vs1

使用 GUI 将虚拟服务器指定为主服务器

  1. 导航到 配置 > 流量管理 > 负载平衡 > 持久性组
  2. 单击添加以添加新组,或选择现有组,然后单击编辑
  3. 选择使用虚拟服务器持久性
  4. 虚拟服务器名称框中,单击+将虚拟服务器添加到组中。您可以选择可用的虚拟服务器或创建新的虚拟服务器。
  5. 如果要添加新组,请单击创建,如果要修改现有组,则单击关闭
  6. 选择已为其启用 Use虚拟服务器ency 参数的组,然后单击编辑将虚拟服务器设置为主服务器以创建持久性条目。
  7. 主虚拟服务器 列表中,选择必须指定为主虚拟服务器的虚拟服务器。

参数

使用服务器持久性

允许组中的虚拟服务器使用其自己的持久性参数创建持久性会话,而不是继承组设置中的持久性设置。启用此参数后,无法在负载平衡组上设置持久性。

禁用此参数后,组的虚拟服务器将继承组设置中的持久性参数。

在负载平衡组上切换此参数时,Citrix ADC 设备将刷新该组和成员虚拟服务器的所有相应持久性条目。

可能的值:ENABLED、DISABLED

默认值:DISABLED

示例:

set lb group lb_grp1 -useVserverPersistency ENABLED

主服务器

将虚拟服务器指定为其负载平衡组中的主虚拟服务器。指定后,只有主虚拟服务器可以创建组使用的持久条目。

注意:只有在启用了 Use虚拟服务器 持久性参数时,才能设置此参数。

示例:

set lb group lb_grp1 –masterVserver vs1

使用命令行界面共享持久性会话的示例配置

创建虚拟服务器

add lb vs vs1 http 10.1.10.11 80 –persistence rule –rule ‘client.ip.src’

add lb vs vs2 radius 10.2.2.2 1812 –persistenceType rule –rule ‘Radius.req.avp(8).value.typecast_text_t’

这些组已创建。

add lb group lb_grp1 –persistenceType NONE –useVserverPersistency ENABLED

组中的虚拟服务器被指定为主虚拟服务器。

set lb group lb_grp1 –masterVserver vs1

虚拟服务器绑定到该组。

bind lb group lb_grp1 vs1
bind lb group lb_grp1 vs2

有关更多详细信息,请参阅设置基本负载平衡配置持久性组