Hi,
I don't have much experience parsing TCP for persistence and load balancing, but let's give it a go. Do you have a CLIENT_ACCEPTED event where you're calling TCP::collect? This is required in order to tell TMM to buffer the TCP payload.
http://devcentral.f5.com/wiki/default.aspx/iRules/tcp__collect
when CLIENT_ACCEPTED {
TCP::collect 250
}
when CLIENT_DATA {
log local0. "in CLIENT_DATA"
set clientData [TCP::payload 250]
log local0. "Client Data raw: $clientData"
switch -glob $clientData {
"@int3*" {
node 10.35.22.33 9820
log local0. "Entity @int3* being Loadbalanced"
}
"@int4*" {
node 10.35.22.32 9820
log local0. "Entity @int4* being Loadbalanced"
}
}
TCP::release
}
What are you trying to persist on? The current iRule is manually selecting a node based on the @int value. Do you want the client IP to be sent to the corresponding node for multiple TCP packets even if they don't have the same @int value on each connection?
Aaron