Applies To:

Show Versions Show Versions

Manual Chapter: Enabling Session Persistence
Manual Chapter
Table of Contents   |   << Previous Chapter   |   Next Chapter >>

Using the BIG-IP® local traffic management system, you can configure session persistence. When you configure session persistence, the BIG-IP system tracks and stores session data, such as the specific pool member that serviced a client request. The primary reason for tracking and storing session data is to ensure that client requests are directed to the same pool member throughout the life of a session or during subsequent sessions.
In addition, session persistence can track and store other types of information, such as user preferences or a user name and password.
The BIG-IP system offers several types of session persistence, each one designed to accommodate a specific type of storage requirement for session data. The type of persistence that you implement depends on where and how you want to store client-specific information, such as items in a shopping cart or airline ticket reservations.
For example, you might store airline ticket reservation information in a back-end database that all servers can access, or on the specific server to which the client originally connected, or in a cookie on the clients machine. When you enable persistence, returning clients can bypass load balancing and instead connect to the server to which they last connected in order to access their saved information.
The primary tool for configuring session persistence is to configure a persistence profile and assign it to a virtual server. If you want to enable persistence for specific types of traffic only, as opposed to all traffic passing through the virtual server, you can write an iRule.
A persistence profile is a pre-configured object that automatically enables persistence when you assign the profile to a virtual server. By using a persistence profile, you avoid having to write a program to implement a type of persistence.
Each type of persistence that the BIG-IP system offers includes a corresponding default persistence profile. These persistence profiles each contain settings and setting values that define the behavior of the BIG-IP system for that type of persistence. You can either use the default profile or create a custom profile based on the default.
Instead of configuring a persistence profile, which enables a persistence type for all sessions passing through the virtual server, you can write an iRule, which enables a persistence type for particular requests (for example, for HTTP traffic that includes a certain cookie version only).
You can also use an iRule to enable persistence for SSL-terminated requests, that is, requests that the BIG-IP system terminates by performing decryption and re-encryption and by handling SSL certificate authentication. In this type of iRule, you can use an HTTP header insertion iRule command to insert an SSL session ID as a header into an HTTP request.
The remainder of this chapter focuses on enabling persistence using persistence profiles. For information on enabling persistence by writing an iRule, see the F5 Networks DevCentral web site http://devcentral.f5.com, and Chapter 17, Writing iRules.
When you configure session persistence, the BIG-IP system tracks and stores session data, such as the pool member that serviced a client request. Configuring a persistence profile for a virtual server ensures that client requests are directed to the same pool member throughout the life of a session or during subsequent sessions.
The Request-URI header in an HTTP request stores certain session data. Occasionally, however, for Cookie and Universal persistence types specifically, the BIG-IP system ignores the session data in this header, and sends requests to an unexpected node. For example, this issue can occur when clients send requests to a virtual server through an internet proxy device. You can prevent this problem by creating a OneConnect profile, and assigning both the OneConnect profile and the persistence profile to the virtual server.
If the virtual server does not reference a OneConnect profile, the BIG-IP system performs load balancing for each TCP connection. Once the TCP connection is load balanced, the system sends all requests that are part of the connection to the same pool member.
For example, if the virtual server does not reference a OneConnect profile, and the BIG-IP system initially sends a client request to node A in pool A, the system inserts a cookie for node A. Then, within the same TCP connection, if the BIG-IP system receives a subsequent request that contains a cookie for node B in pool B, the system ignores the cookie information and incorrectly sends the request to node A instead.
Using a OneConnect type of profile solves the problem. If the virtual server references a OneConnect profile, the BIG-IP system can perform load balancing for each request within the TCP connection. That is, when an HTTP client sends multiple requests within a single connection, the BIG-IP system is able to process each HTTP request individually. The BIG-IP system sends the HTTP requests to different destination servers if necessary.
For example, if the virtual server references a OneConnect profile and the client request is initially sent to node A in pool A, the BIG-IP system inserts a cookie for node A. Then, within the same TCP connection, if the BIG-IP system receives a subsequent request that contains a cookie for node B in pool B, the system uses that cookie information and correctly sends the request to node B.
To mitigate issues when the BIG-IP system ignores persistence information in the Request-URI header and therefore sends requests to an incorrect node, you can take these actions:
Verify that the OneConnect Transformations setting in the HTTP profile is enabled.
For information on configuring a OneConnect profile and an HTTP profile, see the Configuration Guide for BIG-IP® Local Traffic Management.
You can configure persistence profile settings to set up session persistence on the BIG-IP system. You can configure these settings when you create a profile or after profile creation by modifying the profiles settings. For specific procedures on configuring a profile, see Chapter 5, Understanding Profiles.
Cookie persistence
Cookie persistence uses an HTTP cookie stored on a clients computer to allow the client to reconnect to the same server previously visited at a web site.
Destination address affinity persistence
Also known as sticky persistence, destination address affinity persistence supports TCP and UDP protocols, and directs session requests to the same server based solely on the destination IP address of a packet.
Hash persistence
Hash persistence allows you to create a persistence hash based on an existing iRule.
Microsoft® Remote Desktop Protocol persistence
Microsoft® Remote Desktop Protocol (MSRDP) persistence tracks sessions between clients and servers running the Microsoft® Remote Desktop Protocol (RDP) service.
SIP persistence
SIP persistence is a type of persistence used for servers that receive Session Initiation Protocol (SIP) messages sent through UDP, SCTP, or TCP.
Source address affinity persistence
Also known as simple persistence, source address affinity persistence supports TCP and UDP protocols, and directs session requests to the same server based solely on the source IP address of a packet.
SSL persistence
SSL persistence is a type of persistence that tracks non-terminated SSL sessions, using the SSL session ID. To enable persistence for terminated SSL sessions, see Chapter 9, Managing SSL Traffic, Chapter 17, Writing iRules, and the F5 Networks DevCentral web site, http://devcentral.f5.com.
Universal persistence
Universal persistence allows you to write an expression that defines what to persist on in a packet. The expression, written using the same expression syntax that you use in iRulesTM, defines some sequence of bytes to use as a session identifier.
Regardless of the type of persistence you are implementing, you can specify the criteria that the BIG-IP system uses to send all requests from a given client to the same pool member. These criteria are based on the virtual server or servers that are hosting the client connection. To specify these criteria, you use the Match Across Services, Match Across Virtual Servers, and Match Across Pools profile settings. Before configuring a persistence profile, it is helpful to understand these settings.
When you enable the Match Across Services profile setting, the BIG-IP system attempts to send all persistent connection requests received from the same client, within the persistence time limit, to the same node only when the virtual server hosting the connection has the same virtual address as the virtual server hosting the initial persistent connection. Connection requests from the client that go to other virtual servers with different virtual addresses, or those connection requests that do not use persistence, are load balanced according to the load balancing method defined for the pool.
For example, suppose you configure virtual server mappings where the virtual server v1:http has persistence enabled and references the http_pool (containing the nodes n1:http and n2:http), and the virtual server v1:ssl has persistence enabled and references the pool ssl_pool (containing the nodes n1:ssl and n2:ssl).
Suppose the client makes an initial connection to v1:http, and the load balancing algorithm assigned to the pool http_pool chooses n1:http as the node. If the client subsequently connects to v1:ssl, the BIG-IP system uses the persistence session established with the first connection to determine the pool member that should receive the connection request, rather than the load balancing method. The BIG-IP system should then send the third connection request to n1:ssl, which uses the same node as the n1:http node that currently hosts the client's first connection with which it shares a persistent session.
If the same client then connects to a virtual server with a different virtual address (for example, v2:ssl), the BIG-IP system starts tracking a new persistence session, using the load balancing method to determine which node should receive the connection request. The system starts a new persistence session because the requested virtual server uses a different virtual address (v2) than the virtual server hosting the first persistent connection request (v1).
Important: In order for the Match Across Services setting to be effective, virtual servers that use the same virtual address, as well as those that use SSL persistence, should include the same node addresses in the virtual server mappings.
You can set the BIG-IP system to maintain persistence for all sessions requested by the same client, regardless of which virtual server hosts each individual connection initiated by the client. When you enable the Match Across Virtual Servers setting, the BIG-IP system attempts to send all persistent connection requests received from the same client, within the persistence time limit, to the same node. Connection requests from the client that do not use persistence are load balanced according to the currently selected load balancing method.
Warning: In order for this setting to be effective, virtual servers that use pools with TCP or SSL persistence should include the same member addresses in the virtual server mappings.
When you enable the Match Across Pools setting, the BIG-IP system can use any pool that contains a given persistence record. The default is disabled (cleared).
Warning: Enabling this setting can cause the BIG-IP system to direct client traffic to a pool other than that specified by the virtual server.
You can set up the BIG-IP system to use HTTP cookie persistence. Cookie persistence uses an HTTP cookie stored on a clients computer to allow the client to reconnect to the same pool member previously visited at a web site.
The method you choose to use affects how the cookie is handled by the BIG-IP system when it is returned to the client.
Note: F5 recommends that you configure a OneConnect profile in addition to the Cookie profile, to ensure that the BIG-IP system load balances HTTP requests correctly. For more information, see Using the OneConnect profile with session persistence.
Understanding Cookie profile settings
To implement cookie persistence, you can either use the default cookie profile, or create a custom profile. Table 7.1 shows the settings and values that make up a Cookie profile.
This value is autogenerated based on the pool name.
Sets the expiration time of the cookie. Applies to the HTTP Cookie Insert and HTTP Cookie Rewrite methods only. When using the default (checked), the system uses the expiration time specified in the session cookie.
This setting applies to the Cookie Hash method only. The setting specifies the duration, in seconds, of a persistence entry. For background information on setting timeout values, see Chapter 1, Introducing Local Traffic Management.
Specifies, when enabled (checked), that if the active unit goes into the standby mode, the system mirrors any persistence records to its peer. With respect to Cookie profiles, this setting applies to the Cookie Hash method only.
Specifies that all persistent connections from a client IP address that go to the same virtual IP address also go to the same node. With respect to Cookie profiles, this setting applies to the Cookie Hash method only. For more information, see Specifying the Match Across Services setting.
Specifies that all persistent connections from the same client IP address go to the same node. With respect to Cookie profiles, this setting applies to the Cookie Hash method only. For more information, see Specifying the Match Across Virtual Servers setting.
Specifies that the BIG-IP system can use any pool that contains this persistence entry. With respect to Cookie profiles, this setting applies to the Cookie Hash method only. For more information, see Specifying the Match Across Pools setting.
Specifies, when checked (enabled), that the system allows you to specify that pool member connection limits are overridden for persisted clients. Per-virtual connection limits remain hard limits and are not overridden.
You can configure the Cookie Method setting in a cookie profile to one of four values.
If you specify HTTP Cookie Insert method within the profile, the information about the server to which the client connects is inserted in the header of the HTTP response from the server as a cookie. The cookie is named BIGipServer<pool_name>, and it includes the address and port of the server handling the connection. The expiration date for the cookie is set based on the timeout configured on the BIG-IP system. HTTP Cookie Insert is the default value for the Cookie Method setting.
Note that the profile settings Mirror Persistence, Match Across Services, Match Across Virtual Servers, and Match Across Pools do not apply to the HTTP Cookie Insert method. These settings apply to the Cookie Hash method only.
If you specify HTTP Cookie Rewrite method, the BIG-IP system intercepts a Set-Cookie header, named BIGipCookie, sent from the server to the client, and overwrites the name and value of the cookie. The new cookie is named BIGipServer<pool_name> and it includes the address and port of the server handling the connection.
Important: We recommend that you use this method instead of the HTTP Cookie Passive method whenever possible.
The HTTP Cookie Rewrite method requires you to set up the cookie created by the server. For the HTTP Cookie Rewrite method to succeed, there needs to be a blank cookie coming from the web server for the BIG-IP system to rewrite. With Apache variants, the cookie can be added to every web page header by adding the following entry to the httpd.conf file:
Note: For backward compatibility, the blank cookie can contain only 75 zeros. However, cookies of this size do not allow you to use iRulesTM and persistence together.
Note that the profile settings Mirror Persistence, Match Across Services, Match Across Virtual Servers, and Match Across Pools do not apply to the HTTP Cookie Rewrite method. These settings apply to the Cookie Hash method only.
If you specify the HTTP Cookie Passive method, the BIG-IP system does not insert or search for blank Set-Cookie headers in the response from the server. This method does not try to set up the cookie. With this method, the server provides the cookie, formatted with the correct server information and timeout.
Important: We recommend that you use the HTTP Cookie Rewrite method instead of the HTTP Cookie Passive method whenever possible.
For the HTTP Cookie Passive method to succeed, there needs to be a cookie coming from the web server with the appropriate server information in the cookie. Using the Configuration utility, you generate a template for the cookie string, with encoding automatically added, and then edit the template to create the actual cookie.
For example, the following string is a generated cookie template with the encoding automatically added, where [pool name] is the name of the pool that contains the server, 336260299 is the encoded server address, and 20480 is the encoded port:
The way to encode the port is to take the two bytes that store the port and reverse them. Thus, port 80 becomes 80 * 256 + 0 = 20480. Port 1433 (instead of 5 * 256 + 153) becomes 153 * 256 + 5 = 39173.
With Apache variants, the cookie can be added to every web page header by adding the following entry to the httpd.conf file:
Note that the profile settings Mirror Persistence, Match Across Services, Match Across Virtual Servers, and Match Across Pools do not apply to the HTTP Cookie Passive method. These settings apply to the Cookie Hash method only.
If you specify the Cookie Hash method, the hash method consistently maps a cookie value to a specific node. When the client returns to the site, the BIG-IP system uses the cookie information to return the client to a given node. With this method, the web server must generate the cookie; the BIG-IP system does not create the cookie automatically as it does when you use the HTTP Cookie Insert method.
You can optimize your server array with destination address affinity persistence. Destination address affinity persistence, also known as sticky persistence, directs requests for a certain destination IP address to the same server, regardless of which client made the request.
This type of persistence provides the most benefits when load balancing caching servers. A caching server intercepts web requests and returns a cached web page if it is available. In order to improve the efficiency of the cache on these servers, it is necessary to send similar requests to the same server repeatedly. You can use the destination address affinity persistence type to cache a given web page on one server instead of on every server in an array. This saves the other servers from having to duplicate the web page in their cache, wasting memory.
To implement destination address affinity persistence, you either use the default dest_addr profile or create a custom profile. Table 7.2 shows the settings and their values that make up a Destination Address Affinity profile.
Specifies, when enabled (checked), that if the active unit goes into the standby mode, the system mirrors any persistence records to its peer.
Specifies that all persistent connections from a client IP address that go to the same virtual IP address also go to the same node.
Specifies that all persistent connections from the same client IP address go to the same node.
Specifies the mask that the BIG-IP system should use before matching with an existing persistence entry.
Specifies the duration, in seconds, of a persistence entry. For background information on setting timeout values, see Chapter 1, Introducing Local Traffic Management.
Specify: Specifies the number of seconds before the persistence entry expires
Indefinite: Specifies that the persistence entry does not expire.
Specifies, when checked (enabled), that the system allows you to specify that pool member connection limits are overridden for persisted clients. Per-virtual connection limits remain hard limits and are not overridden.
Hash persistence allows you to create a persistence hash based on an existing iRule that uses the persist uie iRule command.Using hash persistence is the same as using universal persistence, except that with hash persistence, the resulting persistence key is a hash of the data, rather than the data itself.
Figure 7.1 shows an example of a iRule that implements hash persistence.
After implementing an iRule for hash persistence, you can type the command bigpipe persist show all, which shows that the system uses the hash of the data, rather than the data itself.
For example, if you have an iRule that specifies data strings data1 and data2, the bigpipe persist show all command shows the hash values of these strings (2356372769 and 1996459178, respectively) as the persistence values. Figure 7.2 shows this output.
Note that if you use hash persistence and the BIG-IP system cannot find an entry in the persistence table for a connection, and the system has not yet chosen a pool member due to fallback persistence, then the system uses the hash value, rather than the specified load balancing method, to select the pool member.
To illustrate using the previous example, if the persistence table contains no entry for the hash value 2356372769, and the number of active nodes in the pool remains the same, then a session with that hash value for persistence is always persisted to node 10.10.10.190 (assuming that the node is active).
To implement hash persistence, you either use the default hash profile or create a custom profile. Table 7.3 shows the settings and their values that make up a Hash profile.
Specifies that all persistent connections from a client IP address that go to the same virtual IP address also go to the same node.
Specifies that all persistent connections from the same client IP address go to the same node.
Specifies the algorithm the system uses for hash persistence load balancing. The hash result is the input for the algorithm. Possible settings are:
Default: Specifies that the system uses the index of pool members to obtain the hash result for the input to the algorithm.
CARP: Specifies that the system uses the Cache Array Routing Protocol (CARP) to obtain the hash result for the input to the algorithm.
Specifies the start offset within the packet from which the system begins the hash when performing hash persistence load balancing. The default value of 0 (zero) indicates no offset.
Specifies the length of data within the packet, in bytes, that the system uses to calculate the hash value when performing hash persistence load balancing.
Specifies the string expression (Tcl regex) that describes the starting location of the hash pattern that the system uses to perform hash persistence load balancing.
Specifies the string expression (Tcl regex) that describes the ending location of the hash pattern that the system uses to perform hash persistence load balancing.
Specifies the maximum amount of data within which the system searches to locate the hashing pattern.
Specifies that the system performs another hash operation after the current hash operation completes.
The setting specifies the duration, in seconds, of a persistence entry. For background information on setting timeout values, see Chapter 1, Introducing Local Traffic Management.
Specify: Specifies the number of seconds before the persistence entry expires.
Indefinite: Specifies that the persistence entry does not expire.
Specifies, when checked (enabled), that the system allows you to specify that pool member connection limits are overridden for persisted clients. Per-virtual connection limits remain hard limits and are not overridden.
MSRDP persistence provides an efficient way of load balancing traffic and maintaining persistent sessions between Windows® clients and servers that are running the Microsoft® Remote Desktop Protocol (RDP) service. The recommended scenario for enabling MSRDP persistence feature is to create a load balancing pool that consists of members running Windows Server 2003 or Windows Server 2008, where all members belong to a Windows cluster and participate in a Windows session directory.
Normally, Windows servers running Microsoft Terminal Services can use a session broker (known as Terminal Services Session Directory in Windows Server 2003 and TS Session Broker in Windows Server 2008) to ensure that user sessions are assigned to specific servers. If a client initiates a connection request to the wrong terminal server, that server redirects the client to the appropriate server.
When you have a BIG-IP system, however, the incorrect server needs to redirect the client to the BIG-IP system virtual server, rather than to an individual server in the load balancing pool. To ensure that this happens, you can configure an MSRDP profile. With an MSRDP profile, the BIG-IP system uses a token that the session broker provides to maintain persistence records. If a user initiates a session for which no session broker token exists, the BIG-IP system makes load balancing decisions according to whichever load balancing method is configured for the pool.
In summary, using the BIG-IP system with an MSRDP persistence profile, in conjunction with a session broker, allows for higher scalability and a greater range and flexibility of load balancing options than when using a session broker alone.
By default, the BIG-IP system with MSRDP persistence enabled load balances connections according to the way that the user has configured the BIG-IP system for load balancing, as long as the session broker is configured on each server in the pool. Terminal Services Session Directory and TS Session Broker are features that are only available on Windows Server 2003 or Windows Server 2008 respectively. Therefore, each server in the pool must be a Windows Server 2003 or Windows Server 2008 server, if you want to use MSRDP persistence in default mode. Also, each client system must be running the remote desktop client software that is included with any Windows Server 2003 or Windows Server 2008 system.
If, however, you want to enable MSRDP persistence but your server platforms are running older versions of Windows (on which Session Directory or TS Session Broker is not available), you can enable MSRDP persistence in non-default mode. This causes the BIG-IP system to connect a client to the same Windows server by way of the user name that the client provides. Note that enabling MSRDP persistence in non-default mode (that is, with no session broker available on the servers) is less preferable than the default mode, because it provides limited load-balancing and redirection capabilities.
To enable MSRDP persistence in the default mode, you must configure a session broker on each Windows server in your load balancing pool. In addition to configuring a session broker, you must perform other Windows configuration tasks on those servers. However, before you configure your Windows servers, you must configure the BIG-IP system, by performing tasks such as creating a load-balancing pool and designating your Windows servers as members of that pool.
The following two sections describe BIG-IP system configuration tasks that are required to enable MSRDP persistence in default mode for a Windows client-sever configuration using RDP.
When a server has no session broker, the server cannot share sessions with other servers, and therefore cannot perform any redirections when a connection to a server becomes disconnected. In lieu of session sharing, Windows clients provide data, in the form of a user name, to the BIG-IP system to allow the BIG-IP system to consistently connect that client to the same server. Enabling MSRDP persistence to behave in this way is the non-default mode.
To implement MSRDP persistence, you either use the default msrdp profile or create a custom profile. Table 7.4 shows the settings and their values that make up an MSRDP type of profile.
Specifies, when enabled (checked), that if the active unit goes into the standby mode, the system mirrors any persistence records to its peer.
Specifies that all persistent connections from a client IP address that go to the same virtual IP address also go to the same node.
Specifies that all persistent connections from the same client IP address go to the same node.
Specifies the duration, in seconds, of a persistence entry. For background information on setting timeout values, see Chapter 1, Introducing Local Traffic Management.
Specify: Specifies the number of seconds before the persistence entry expires.
Indefinite: Specifies that the persistence entry does not expires.
Enabled (Checked)
Specifies, when checked (enabled), that the system allows you to specify that pool member connection limits are overridden for persisted clients. Per-virtual connection limits remain hard limits and are not overridden.
Session Initiation Protocol is an application-layer protocol that manages sessions consisting of multiple participants, thus enabling real-time messaging, voice, data, and video. A session can be a simple two-way telephone call or Instant Message dialogue, or a complex, collaborative, multi-media conference call that includes voice, data, and video. With SIP, applications can communicate with one another by exchanging messages through the SCTP, TCP or UDP protocols.
SIP persistence is a type of persistence available for server pools. You can configure SIP persistence for proxy servers that receive SIP messages sent through the UDP profile. The BIG-IP system currently supports persistence for SIP messages sent through the UDP, TCP, or SCTP protocols.
To implement SIP persistence, you either use the default Persistence Type, SIP, or create a custom profile. Table 7.5 shows the settings and values that make up a SIP persistence profile.
Table 7.5 Settings of a SIP persistence profile
Specifies that all persistent connections from a client IP address that go to the same virtual IP address also go to the same node.
Specifies that all persistent connections from the same client IP address go to the same node.
Persistence across all virtual servers causes the traffic management system to maintain persistence for all connections requested by the same client, regardless of which virtual server hosts each individual connection initiated by the client.
Persistence across all pools causes the traffic management system to maintain persistence for all connections requested by the same client, regardless of which pool hosts each individual connection initiated by the client.
Specifies the SIP header field on which you want SIP sessions to persist. Your options include the following header fields:
Call-ID: Specifies that the session persists on the Call-ID.
SIP-ETag: Specifies that the session persists on the SIP-ETag.
To: Specifies that the session persists on the destination of the SIP session.
From: Specifies that the session persists on the origin of the SIP session.
Subject: Specifies that the session persists on the subject of the SIP session.
Specify: Specifies that the session persists on a user-identified string in the SIP header.
Specifies the duration, in seconds, of a persistence entry. For background information on setting timeout values, see Chapter 1, Introducing Local Traffic Management.
Specify: Specifies the number of seconds before the persistence entry expires.
Indefinite: Specifies that the persistence entry does not expires.
Specifies, when checked (enabled), that the system allows you to specify that pool member connection limits are overridden for persisted clients. Per-virtual connection limits remain hard limits and are not overridden.
The timeout value that you specify allows the BIG-IP system to free up resources associated with old SIP persistence entries, without having to test each inbound packet for one of the different types of SIP final messages. The default timeout value is 180 seconds. If you change the timeout value, we recommend that the value be no lower than the default.
Important: For virtual servers processing UDP traffic, always check that the value of the SIP profile Timeout setting is at least as long (in seconds) as the value of the Idle Timeout setting of the UDP profile. Doing so ensures that SIP traffic is persisted properly.
Source address affinity persistence, also known as simple persistence, tracks sessions based only on the source IP address. When a client requests a connection to a virtual server that supports source address affinity persistence, the BIG-IP system checks to see if that client previously connected, and if so, returns the client to the same pool member.
You might want to use source address affinity persistence and SSL persistence together. In situations where an SSL session ID times out, or where a returning client does not provide a session ID, you may want the BIG-IP system to direct the client to the original pool member based on the clients IP address. As long as the clients source address affinity persistence record has not timed out, the BIG-IP system can successfully return the client to the appropriate pool member.
Persistence settings apply to all protocols. When the persistence timer is set to a value greater than 0, persistence is on. When the persistence timer is set to 0, persistence is off.
The persistence mask feature works only for virtual servers that implement source address affinity persistence. By adding a persistence mask, you identify a range of source IP addresses to manage together as a single source address affinity persistent connection when connecting to the pool.
Understanding Source Address Affinity persistence profile settings
To implement source address affinity persistence, you can either use the default source_addr profile or create a custom profile. Table 7.6 shows the settings and values that make up a Source Address Affinity profile.
Specifies that all persistent connections from a client IP address that go to the same virtual IP address also go to the same node.
Specifies that all persistent connections from the same client IP address go to the same node.
Specifies the duration, in seconds, of a persistence entry. For background information on setting timeout values, see Chapter 1, Introducing Local Traffic Management.
Specify: Specifies the number of seconds before the persistence entry expires.
Indefinite: Specifies that the persistence entry does not expire.
Specifies the mask that the BIG-IP system should use before matching with an existing persistence entry.
Enabled (Checked)
Specifies, when checked (enabled), that the system allows you to specify that pool member connection limits are overridden for persisted clients. Per-virtual connection limits remain hard limits and are not overridden.
SSL persistence is a type of persistence that tracks SSL sessions using the SSL session ID, and it is a property of each individual pool. Using SSL persistence can be particularly important if your clients typically have translated IP addresses or dynamic IP addresses, such as those that Internet service providers typically assign. Even when the clients IP address changes, the BIG-IP system still recognizes the session as being persistent based on the session ID.
You might want to use SSL persistence and source address affinity persistence together. In situations where an SSL session ID times out, or where a returning client does not provide a session ID, you might want the BIG-IP system to direct the client to the original node based on the clients IP address. As long as the clients simple persistence record has not timed out, the BIG-IP system can successfully return the client to the appropriate node.
Note: The SSL persistence type is only valid for systems that are not performing SSL certificate-based authentication of client requests or server responses. If you are using Client SSL or Server SSL profiles to configure certificate-based authentication, do not configure an SSL persistence profile. Instead, create an iRule to perform SSL session persistence.
To implement SSL persistence, you either use the default ssl profile or create a custom profile. Table 7.7 shows the settings and their values that make up an SSL persistence profile.
Specifies that all persistent connections from a client IP address that go to the same virtual IP address also go to the same node.
Specifies that all persistent connections from the same client IP address go to the same node.
Specifies the number of seconds before a persistence entry times out. That is, this setting sets the SSL session ID timeout value, which determines how long the BIG-IP system stores a given SSL session ID before removing the ID from the system. For background information on setting timeout values, see Chapter 1, Introducing Local Traffic Management.
Specifies, when checked (enabled), that the system allows you to specify that pool member connection limits are overridden for persisted clients. Per-virtual connection limits remain hard limits and are not overridden.
Included in the BIG-IP systems Universal Inspection Engine (UIE) is a set of functions that you can specify within BIG-IP system iRules to direct traffic in more granular ways. Using these iRule functions, you can write expressions that direct traffic based on content data, or direct traffic to a specific member of a pool.
Universal persistence takes this iRules feature one step further, by allowing you to use the iRule persist uie command to implement persistence for sessions based on content data, or based on connections to a specific member of a pool. Universal persistence does this by defining some sequence of bytes to use as a session identifier.
To use iRule expressions for persistence, a universal persistence profile includes a setting that specifies the name of the iRule containing the expression.
Figure 7.3 shows an example of a iRule that implements universal persistence.
Unlike hash persistence, which uses a hash of the data as the persistence key, universal persistence uses the data itself as the persistence key.
Once you have created an iRule and specified the iRule name within a universal profile, you must assign both the iRule and the profile to the appropriate virtual server as resources.
Note: F5 recommends that you configure a OneConnect profile in addition to the Universal profile, to ensure that the BIG-IP system load balances HTTP requests correctly. For more information, see Using the OneConnect profile with session persistence.
To implement universal persistence, you can either use the default universal profile or create a custom profile. Table 7.8 shows the settings and values that make up a universal persistence profile.
Specifies that all persistent connections from a client IP address that go to the same virtual IP address also go to the same node.
Specifies that all persistent connections from the same client IP address go to the same node.
Specifies the name of an existing iRule that the BIG-IP system should run to determine a persistence entry.
Specifies the duration, in seconds, of a persistence entry. For background information on setting timeout values, see Chapter 1, Introducing Local Traffic Management.
Specify: Specifies the number of seconds before the persistence entry expires.
Indefinite: Specifies that the persistence entry does not expires.
Specifies, when checked (enabled), that the system allows you to specify that pool member connection limits are overridden for persisted clients. Per-virtual connection limits remain hard limits and are not overridden.
Table of Contents   |   << Previous Chapter   |   Next Chapter >>

Was this resource helpful in solving your issue?




NOTE: Please do not provide personal information.



Incorrect answer. Please try again: Please enter the words to the right: Please enter the numbers you hear:

Additional Comments (optional)