Forum Discussion
Pool round Robin not working with standard virtual server
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:
The reason you're having this issue is most likely because of the following entry in your iRule.
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.
redadmin1972 Would you be able to provide the CLI output for the virtual server and any associated configuration such as pools, profiles, and irules?
- redadmin1972Altocumulus
Here is CLI output for the virtual server
From NonProd LTM:
ltm virtual website_https_vs {
creation-time 2021-02-19:02:17:10
destination 10.0.0.10:https
ip-protocol tcp
last-modified-time 2021-10-05:14:48:44
mask 255.255.255.255
pool website_https_pool
profiles {
website_SSL {
context clientside
}
http { }
serverssl {
context serverside
}
tcp { }
}
rules {
DEFAULT-IR
}
serverssl-use-sni disabled
source 0.0.0.0/0
source-address-translation {
type automap
}
translate-address enabled
translate-port enabled
vs-index 64
}Here is the iRule DEFAULT-IR
when HTTP_REQUEST {
if {not([HTTP::header exists "X-Forwarded-For"])} {
HTTP::header insert X-Forwarded-For [IP::remote_addr]
}
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
The reason you're having this issue is most likely because of the following entry in your iRule.
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.
Do you have oneconnect acticated on virtual server?
- redadmin1972Altocumulus
Hello, I checked and OneConnect is not activated
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com