Forum Discussion
Chris_Miller
Altostratus
Aug 11, 2010Selective Persistence with Priority Grouping
1. All users are in DC1.
2. F5 exists in DC1.
3. The Pool contains 2 Servers in DC1 and 2 Servers in DC2. Using Priority Group Activation, the Servers in DC1 will receive all traffic as long as at least 1 of them is up.
4. Server persistence is not required, DC persistence is.
5. Traffic is SNATd to 1 of 4 possible addresses before hitting this F5.
6. If DC1 goes down, users will lose session when failing over to DC2. when DC1 comes back up, I'd like users to remain in DC2 so they don't lose session again.
I'm not entirely sure of the best way to handle this situation. I only need persistence if the 2 DC1 servers have failed and that persistence simply needs to keep users in DC2. I can't use cookie persistence and source_address persistence seems like it would keep me from distributing load to each of the 2 servers in DC1 while they were up. Thoughts?
- Chris_Miller
Altostratus
My thought so far:when LB_SELECTED { if { [ LB::server priority ] eq 5 } { pool DC2 } }
- naladar_65658
Altostratus
I think this may be a good case for universal persistence. I have not used that before, but basically you create an iRule that looks at the traffic and persists based on things that may be unique. What kind of traffic are you sending, is there anything like a session ID that would be unique to each connection that you could use? - naladar_65658
Altostratus
Here is a post that seems like a good example running off the jsessionid for persistence: - Chris_Miller
Altostratus
Posted By naladar on 08/11/2010 07:47 AM - Chris_Miller
Altostratus
Thinking of my example more...I need to add a persistence method to it...otherwise when DC1 comes back up, users will get sent over there. - naladar_65658
Altostratus
Have you look at destination address affinity persistence? - Chris_Miller
Altostratus
Posted By naladar on 08/11/2010 08:24 AM - naladar_65658
Altostratus
I haven't used it before, but here is what the manual says about it. "DAAP- Also known as sticky persistence, daap supports TCP and UDP protocols, and directs session requests to the same server based solely on the destination IP address of a packet." - Chris_Miller
Altostratus
Am gonna give this a shot...see any issues?when LB_SELECTED { if { [LB::server priority] eq 10 } { persist none } else { persist source_addr 255.255.255.255 3600 } }
- hoolio
Cirrostratus
I'm pretty sure destination address persistence would use the pre-translation destination IP (the IP the client makes the request to, not the selected pool member).
Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects