Product Documentation

Share persistent sessions between virtual servers

In some customer environments (telecom and ISP), a single server handles both control and data traffic. For a given client IP address, both control and data traffic have to be directed to the same back-end server. For this, one virtual server is required for handling client authentication traffic, and usually rule based persistency is configured on it. For example, Radius.req.avp(8).value.typecast_text_t’. The second virtual server for handling data traffic. Usually, SourceIP persistence is configured on it.

Previously, persistence entries were local to the vserver. If you had to apply persistence across multiple vservers, you had to add the vservers to a load balancing group and then apply a common persistence type to the group. The above requirement could not be achieved, because all the vservers bound to a load balancing group inherited the persistency configured on the group.

With the persistency sharing between vservers feature, you can set the new useVserverPersistency parameter for a load balancing group to allow the vservers in the group to use their own persistency parameters instead of inheriting them from the group settings. You can configure separate rule-based persistency on each vserver.

Optionally, you can also designate one of the vservers in the group as a master vserver. When a vserver is designated as a master vserver, only that vserver creates the persistence entries, which are used by all the vservers in the group. If the master vserver is down, the Citrix ADC appliance does not create any new persistence entries.

Note: Persistence sharing across vservers is supported only for rule based persistency methods. You must configure compatible rule based persistence parameters on the member virtual servers.

Example:

Assume v1 and v2 are bound to a load balancing group, v1 is a RADIUS type vserver and v2 is an HTTP type vserver. ‘Radius.req.avp(8).value.typecast_text_t’ persistency is configured on v1 and ‘client.ip.src’ is configured on v2.

When traffic flows through the RADIUS vserver v1, it creates a persistent entry based on the evaluated rule string. Later, when traffic reaches the HTTP type vserver v2, v2 checks for the persistence entries on the load balancing group and uses the same persistence session to direct traffic to the same back-end server.

Configuring Sharing of Persistent Sessions

To share persistency parameters across vservers in a load balancing group, you must first enable the useVserverPersistency parameter and then designate one of the vservers in the group as a master server.

To enable the useVserverPersistency parameter by using the command line interface

At the command prompt, type:

set lb group <name> -useVserverPersistency ( ENABLED)

Example:

set lb group lb_grp1 -useVserverPersistency ENABLED

To enable the useVserverPersistency parameter by using the GUI

  1. Navigate to Configuration > Traffic Management > Load Balancing > Persistency Groups.
  2. Click Add to add a new group or select an existing group and click Edit.
  3. Select Use Vserver Persistence.

To designate a vserver as a master vserver by using the command line interface

At the command prompt, type:

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

Example:

set lb group lb_grp1 -useVserverPersistency ENABLED –masterVserver vs1

To designate a vserver as a master vserver by using the GUI

  1. Navigate to Configuration > Traffic Management > Load Balancing > Persistency Groups.
  2. Click Add to add a new group or select an existing group and click Edit.
  3. Select Use Vserver Persistence.
  4. In the Virtual Server Name box, click + to add the vservers to the group. You can select the available vservers or create new vservers.
  5. Click Create if you are adding a new group or Close if you are modifying an existing group.
  6. Select the group for which you have enabled the useVserverPersistency parameter and click Edit to set a vserver as a master to create persistence entries.
  7. From the Master vServer list, select the vserver that has to be designated as a master vserver.

Arguments

useVserverPersistency

Allow the virtual servers in a group to use their own persistency parameters to create persistent sessions, instead of inheriting the persistency settings from the group settings. When this parameter is enabled, persistence cannot be set on the load balancing group.

When this parameter is disabled, the group’s virtual servers inherit the persistency parameters from the group settings.

When this parameter is toggled on the load balancing group, the Citrix ADC appliance flushes all the corresponding persistence entries of the group and the member virtual servers.

Possible values: ENABLED, DISABLED

Default: DISABLED

Example:

set lb group lb_grp1 -useVserverPersistency ENABLED

masterVserver

Designate a virtual server as a master virtual server in its load balancing group. Once designated, only the master virtual server can create the persistent entries used by the group.

Note: This parameter can be set only if the useVserverPersistency parameter is enabled.

Example:

set lb group lb_grp1 –masterVserver vs1

Example Configuration of Sharing Persistent Sessions by Using the Command Line Interface

The virtual servers are created

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’

The groups are created.

add lb group lb_grp1 –persistenceType NONE –useVserverPersistency ENABLED

A virtual server in a group is designated as master vserver.

set lb group lb_grp1 –masterVserver vs1

The virtual servers are bound to the group.

bind lb group lb_grp1 vs1
bind lb group lb_grp1 vs2

For more details, see Setting Up Basic Load Balancing and Configuring Persistence Groups.