Andy_Herrman_22
Jun 29, 2006Nimbostratus
Share persistence values for multiple protocols
I'm running into a problem with the iRules and persistence that I can't quite figure out, and I'm not sure if there even is a solution.
The application we're trying to load balance is fairly complex and allows multiple types of connections (using different protocols). We have an HTTP (and HTTPS) protocol and a raw TCP protocol. There is a unique identifier we use to determine which application instance a connection is for, and I have iRules for both HTTP and TCP to extract this, which work correctly. It's possible (and very likely) that different connection methods could be used for the same application instance.
Here's the problem: the pools seem to be specific to the connection type (port in this case) and each pool has a seperate persistence table. So even though I get the same unique ID the connections may go to different servers. What I really want to do is have a pool that's just the servers themselves (independent of the protocol) and when it routes to a server it just uses the same protocol that it received.
Here's an example persistence table I get when trying to connect. You can see that for one of the values (117586) both connection types happened to go to the same server, but for one of the other ones (117587) they went to different ones. Is there any way to set up a pool and iRules such that the persistence table is independent of the protocol being used?
PERSISTENT CONNECTIONS --
Mode: universal Value: 117587
Virtual: 10.10.70.171:9080 Node: 10.10.70.39:9080 Age: 98sec
Mode: universal Value: 117587
Virtual: 10.10.70.171:http Node: 10.10.70.32:http Age: 25sec
Mode: universal Value: 117586
Virtual: 10.10.70.171:http Node: 10.10.70.32:http Age: 118sec
Mode: universal Value: 117586
Virtual: 10.10.70.171:9080 Node: 10.10.70.32:9080 Age: 102sec