# Pool round Robin not working with standard virtual server

**URL:** <https://community.f5.com/t/pool-round-robin-not-working-with-standard-virtual-server/74321>\
**Category:** Technical Forums\
**Tags:** persistence, pool-member\
**Created:** [April 10, 2024, 7:06pm UTC](https://community.f5.com/t/pool-round-robin-not-working-with-standard-virtual-server/74321 "2024-04-10T19:06:38Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![redadmin1972](https://avatars.discourse-cdn.com/v4/letter/r/e36b37/32.png) [@redadmin1972](https://community.f5.com/u/redadmin1972)\
**Post date:** [April 10, 2024, 7:06pm UTC](https://community.f5.com/t/pool-round-robin-not-working-with-standard-virtual-server/74321/1 "2024-04-10T19:06:38Z")

</div>

I have a standard HTTPS virtual server configured with two nodes in the pool. There is no persistence setting enabled and the load balancing method is round robin.

For some reason, after I browse to the site and establish a connection with a backend server in the pool, all my future requests go to the same server and it behaves in a way that indicates some persistence is enabled. For example, when I refresh my browser, open the site in a new browser, and open the site in an incognito browser, all my requests keep going to the same node. You can see below that I tried this multiple times and kept getting connected to one server and the number of connections on that server was increasing.

According to my research, because there is no persistence profile setting, the load balancing method is round robin, and both servers are available and able to accept traffic, every time I refresh or open the site in a new tab or browser, I should be randomly assigned to a server for that connection via round robin load balancing. But this is not what I observe.

Is there a reason that my virtual servers are showing persistence by default? Any ideas?

Here are some images of my config:

![image_329032.png](https://d20hrnpixdzcsd.cloudfront.net/original/1X/f4732016bbb02a014e95532efc3c1c069559af4c.png)

 ![image_329032.png](https://d20hrnpixdzcsd.cloudfront.net/original/3X/4/1/41878c4bb5e67be3af1744b4c3925b55774e83f7.png)

 ![image_329032.png](https://d20hrnpixdzcsd.cloudfront.net/original/2X/b/b7df4a1c0083585a653bdf22bcbd5aac28f5f15d.png)

---

<div class="post-metadata">

**Author:** ![Paulius](https://d1p9zq3aats0t8.cloudfront.net/user_avatar/community.f5.com/paulius/32/21698_2.png) [@Paulius](https://community.f5.com/u/Paulius)\
**Post date:** [April 10, 2024, 7:45pm UTC](https://community.f5.com/t/pool-round-robin-not-working-with-standard-virtual-server/74321/2 "2024-04-10T19:45:22Z")

</div>

@redadmin1972 Would you be able to provide the CLI output for the virtual server and any associated configuration such as pools, profiles, and irules?

---

<div class="post-metadata">

**Author:** ![P\_Kueppers](https://d1p9zq3aats0t8.cloudfront.net/user_avatar/community.f5.com/p_kueppers/32/22789_2.png) [@P\_Kueppers](https://community.f5.com/u/P_Kueppers)\
**Post date:** [April 11, 2024, 10:28am UTC](https://community.f5.com/t/pool-round-robin-not-working-with-standard-virtual-server/74321/3 "2024-04-11T10:28:02Z")

</div>

Do you have oneconnect acticated on virtual server?

---

<div class="post-metadata">

**Author:** ![redadmin1972](https://avatars.discourse-cdn.com/v4/letter/r/e36b37/32.png) [@redadmin1972](https://community.f5.com/u/redadmin1972)\
**Post date:** [April 11, 2024, 2:54pm UTC](https://community.f5.com/t/pool-round-robin-not-working-with-standard-virtual-server/74321/4 "2024-04-11T14:54:17Z")

</div>

Hello, I checked and OneConnect is not activated

---

<div class="post-metadata">

**Author:** ![redadmin1972](https://avatars.discourse-cdn.com/v4/letter/r/e36b37/32.png) [@redadmin1972](https://community.f5.com/u/redadmin1972)\
**Post date:** [April 11, 2024, 2:59pm UTC](https://community.f5.com/t/pool-round-robin-not-working-with-standard-virtual-server/74321/5 "2024-04-11T14:59:04Z")

</div>

Here is CLI output for the virtual server

From NonProd LTM:  
&nbsp;  
ltm virtual website\_https\_vs {  
&nbsp; &nbsp; creation-time 2021-02-19:02:17:10  
&nbsp; &nbsp; destination 10.0.0.10:https  
&nbsp; &nbsp; ip-protocol tcp  
&nbsp; &nbsp; last-modified-time 2021-10-05:14:48:44  
&nbsp; &nbsp; mask 255.255.255.255  
&nbsp; &nbsp; pool website\_https\_pool  
&nbsp; &nbsp; profiles {  
&nbsp; &nbsp; &nbsp; &nbsp; website\_SSL {  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; context clientside  
&nbsp; &nbsp; &nbsp; &nbsp; }  
&nbsp; &nbsp; &nbsp; &nbsp; http { }  
&nbsp; &nbsp; &nbsp; &nbsp; serverssl {  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; context serverside  
&nbsp; &nbsp; &nbsp; &nbsp; }  
&nbsp; &nbsp; &nbsp; &nbsp; tcp { }  
&nbsp; &nbsp; }  
&nbsp; &nbsp; rules {  
&nbsp; &nbsp; &nbsp; &nbsp; DEFAULT-IR  
&nbsp; &nbsp; }  
&nbsp; &nbsp; serverssl-use-sni disabled  
&nbsp; &nbsp; source 0.0.0.0/0  
&nbsp; &nbsp; source-address-translation {  
&nbsp; &nbsp; &nbsp; &nbsp; type automap  
&nbsp; &nbsp; }  
&nbsp; &nbsp; translate-address enabled  
&nbsp; &nbsp; translate-port enabled  
&nbsp; &nbsp; vs-index 64  
}

Here is the iRule DEFAULT-IR

when HTTP\_REQUEST {  
&nbsp; &nbsp; if {not([HTTP::header exists “X-Forwarded-For”])} {  
&nbsp; &nbsp; &nbsp; &nbsp; HTTP::header insert X-Forwarded-For [IP::remote\_addr]  
&nbsp; &nbsp; }  
&nbsp; &nbsp; catch { persist uie [HTTP::header “X-Forwarded-For”] 1800 }  
}

No policies are applied

Standard HTTPS pool with two ephemeral nodes from FQDN lookup. Load balancing method is Round Robin and Priority Group Activation is Disabled

---

<div class="post-metadata">

**Author:** ![Paulius](https://d1p9zq3aats0t8.cloudfront.net/user_avatar/community.f5.com/paulius/32/21698_2.png) [@Paulius](https://community.f5.com/u/Paulius)\
**Post date:** [April 11, 2024, 4:56pm UTC](https://community.f5.com/t/pool-round-robin-not-working-with-standard-virtual-server/74321/6 "2024-04-11T16:56:03Z")

</div>

The reason you’re having this issue is most likely because of the following entry in your iRule.

```tcl
catch { persist uie [HTTP::header "X-Forwarded-For"] 1800 }

```

That entry will always apply UIE persistence based on the HTTP header “X-Forwarded-For” so you then get bound to the same pool member all the time.

---

<div class="post-metadata">

**Author:** ![redadmin1972](https://avatars.discourse-cdn.com/v4/letter/r/e36b37/32.png) [@redadmin1972](https://community.f5.com/u/redadmin1972)\
**Post date:** [April 11, 2024, 5:37pm UTC](https://community.f5.com/t/pool-round-robin-not-working-with-standard-virtual-server/74321/7 "2024-04-11T17:37:57Z")

</div>

I believe this iRule was identified from a previous community solution when we needed to have the X-Forwarded-For value in the packet header. I never realized the impact of this line in the iRule.

I removed the line and tested with this iRule:

when HTTP\_REQUEST {  
&nbsp; &nbsp; if {not([HTTP::header exists “X-Forwarded-For”])} {  
&nbsp; &nbsp; &nbsp; &nbsp; HTTP::header insert X-Forwarded-For [IP::remote\_addr]  
&nbsp; &nbsp; }  
}

Now my site is load balancing with round robin properly.

 ![image_329048.png](https://d20hrnpixdzcsd.cloudfront.net/original/1X/c1361c9813c228c2e661866ed5a1affd51d6674d.png)

Thank you very much!
