> For the complete documentation index, see [llms.txt](https://docs.nokron.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nokron.net/waf-f5/big-ip-ltm-technology/virtual-servers-and-their-behavior-with-different-profiles-in-big-ip/persistence-profile-in-big-ip.md).

# Persistence Profile in BIG-IP

Persistence profiles in BIG-IP manage how the system maintains connections between clients and servers to ensure consistent behavior. Below is a detailed breakdown of persistence types, behaviors, and advanced options.

***

#### **General Features**

* **Connection Limit Overrides**:
  * Pool member connection limits can be overridden for persisted clients.
  * Virtual server connection limits remain strict and are **not overridden**.

***

#### **Persistence Types**

1. **Cookie Persistence**:
   * Designed for HTTP connections.
   * Tracks sessions by inserting or handling cookies between clients and servers.
   * **Options**:
     * **Insert** (Default):
       * BIG-IP inserts a custom cookie in server responses.
       * Encodes the server's IP and port in the cookie (`BIGipServer<pool_name>`).
       * Enabling **Always Send Cookie** ensures all F5 responses include the cookie (performance impact).
     * **Rewrite**:
       * Modifies cookies sent by the server (`BIGipCookie=<120-zeroes>` format) into F5's encoded cookie format.
     * **Passive**:
       * Forwards all cookies from the server without inserting or modifying them.
       * Server is responsible for persistence management.
     * **Hash**:
       * Server provides a cookie, and BIG-IP consistently maps it to a specific node.
       * Requires specifying the cookie name in the persistence profile.

***

2. **Source Address Persistence**:
   * Tracks clients based on their **IP address**.
   * Supports **TCP** and **UDP** for host or network-based virtual servers.
3. **SSL Persistence**:
   * Uses the **SSL Session-ID** to maintain persistence for non-terminated SSL connections.
4. **Destination Address Persistence**:
   * For TCP/UDP connections to network-based virtual servers (supports `/0` to `/31` subnet masks).
5. **Hash Persistence**:
   * Uses an **iRule** to create persistence records based on a hash value.
     * Example: `persist hash <session-key>`
6. **Universal Persistence**:
   * Flexible; persistence records are created based on specific header values.
     * Example: `persist uie <session-key>`
7. **Microsoft RDP Persistence**:
   * Tracks sessions using **RDP Session-ID**.
8. **SIP Persistence**:
   * Tracks sessions using **Caller-ID** for SIP over TCP, UDP, or SCTP.

***

#### **CARP (Cache Array Routing Protocol) Hash Algorithm**

* Stateless load balancing for HTTP or compatible protocols.
* **Key Features**:
  * No persistence table required.
  * Automatic load redistribution between members.
  * Suitable for **HTTP cache proxies**, HTTP traffic, and **OneConnect** configurations.
  * Commands like `tmsh show /ltm persistence persist-records` and `bigpipe persist show all` cannot be used.
  * Excellent for stateless persistence scenarios.

***

#### **Advanced Persistence Options**

**Criteria for Session Persistence**

* For cookie profiles, **"Cookie Hash"** settings apply when VS → Pool → Node mappings include the same member addresses.

**"Match Across Services"**

* Port-based matching.
* Used when multiple VSs share the same virtual IP but have different ports.
  * Example:
    * VS1: `192.168.0.2:80`
    * VS2: `192.168.0.2:443`

**"Match Across Virtual Servers"**

* Allows persistence across virtual servers with different virtual IPs and ports.
* Useful when multiple VSs point to the same backend pool or node.

**"Match Across Pools"**

* Enables persistence across multiple pools.
* The system uses any pool containing a persistence record for the client.
  * **Caution**: Can redirect traffic to a pool not explicitly configured for the virtual server.

***

#### **Summary of Use Cases**

| **Persistence Type**    | **Use Case**                                                    |
| ----------------------- | --------------------------------------------------------------- |
| **Cookie**              | HTTP traffic with client-side tracking via cookies.             |
| **Source Address**      | Sessions requiring IP-based tracking (e.g., stateless clients). |
| **SSL**                 | Non-terminated SSL traffic with session consistency.            |
| **Destination Address** | Network-based load balancing scenarios.                         |
| **Hash / Universal**    | Custom iRule-driven persistence logic.                          |
| **Microsoft RDP**       | Microsoft Remote Desktop Protocol sessions.                     |
| **SIP**                 | Caller-ID-based SIP traffic.                                    |
| **CARP Hash**           | Stateless, HTTP cache proxies, and OneConnect configurations.   |
