Forum Discussion
smp_86112
Nov 04, 2011Cirrostratus
OneConnect and Persistence for HTTP App
We've got an HTTP web service which is getting really uneven load distribution, to the point of causing outage on some of the pool members. The clients of the web service do not support Cookies (they do not honor the Set-Cookie header), so we have been resigned to using Source Address. The problem is that much of the load is coming from multiple applications on a single source address, and I need to come up with a way to more evenly distribute the load with the LTM. So my thought is to use OneConnect. Since the documentation seems to be written for a different use case, I can't quite get a handle on how it works exactly so I'm not sure if it would resolve the issue or not.
When I apply a OneConnect profile to an HTTP VS, *my understanding* of the doc is that the LTM makes load-balancing decisions on a "per-request" basis. If that's true, what I can't figure out is how the LTM keep track of which pool member any particular request was sent to - what in the request does the LTM keep track of, and where is it stored?
- nitass_89166Noctilucenti don't think oneconnect will make even load distribution.
- sachin_80710NimbostratusHi Nitass, Pls can you explain how to map client-side and server-side flow in wireshark, i'm using f5ethtrailer.dll f5 plugin, also i can see addition f5 details in wireshark. But very hard to map client side request to server side request.
- nitass_89166Noctilucentclientside's flow id will be serverside's peer id. you may try "f5ethtrailer.anyflowid == " as a filter. sol13637: Capturing internal TMM information with tcpdump https://support.f5.com/kb/en-us/solutions/public/13000/600/sol13637
- sachin_80710NimbostratusThank you Nitass, I will try this.
- nitassEmployeei don't think oneconnect will make even load distribution.
- sachin_80710NimbostratusHi Nitass, Pls can you explain how to map client-side and server-side flow in wireshark, i'm using f5ethtrailer.dll f5 plugin, also i can see addition f5 details in wireshark. But very hard to map client side request to server side request.
- nitassEmployeeclientside's flow id will be serverside's peer id. you may try "f5ethtrailer.anyflowid == " as a filter. sol13637: Capturing internal TMM information with tcpdump https://support.f5.com/kb/en-us/solutions/public/13000/600/sol13637
- sachin_80710NimbostratusThank you Nitass, I will try this.
- HamishCirrocumulusWhat about persisting on something else in the XML? Such as userid? What sort of auth is the app using? If browser basic you could just use the HTTP authentication header...
- HamishCirrocumulusHmm... if the app doesn't support cookies (STrange), then there's no session information (No JSESSIONID etc). So no state. WHich means that it probably wouldn't care if you round-robined and didn't care about the persistence... Does it absolutely need it?
- smp_86112CirrostratusThat is my understanding, yes, though there are details I have yet to understand about this app. But my uncertainty is really more related to the details of how OneConnect works. It seems to have a mechanism to differentiate between requests from different clients that are sent a single, shared TCP connection, or at least from a shared IP address. That's the detail I'd like to understand better.
- Chris_MillerAltostratusOneConnect won't help you with load distribution if you're using source address persistence. As soon as a user makes a connection to LTM, we're going to make a load balancing decision and create a persistence entry for that user -> server mapping. When the user makes another request, we'll notice they have a persistence entry for that server and we'll choose an idle TCP connection over which to send their request.
- smp_86112CirrostratusThanks for responding. I was already committed to getting rid of Source Address persistence anyway, so I wasn't planning to use both.
- smp_86112CirrostratusI don't know...this article seems to describe the behavior I'm looking to understand. But while the clients may have the same source address, I think the connections are coming on different TCP connections. So I'm thinking this won't help either:
- Chris_MillerAltostratusWith OneConnect, we're seeing the persistence cookie in the HTTP request and are simply persisting the user to the right pool. Without OneConnect, we're technically only looking at the first L7 request for cookie persistence so could conceivably ignore subsequent ones as we're only looking at L4.
- smp_86112CirrostratusSo without OneConnect, the LTM sets the cookie on the first L7 response, only looks at the cookie value in the next L7 request, and then ignores the persistence cookie for subsequent L7 requests? And with OneConnect, the persistence cookie value is evaluated in each L7 request?
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