Forum Discussion
Load Balancing based off TCP Payload entity
Okay, so once a load balancing decision has been made, and unless you attempt to alter it, packets will persist automatically to the same node within a single TCP session. It's what happens between TCP sessions that matters. You could add some additional logging to your iRule to show that:
when CLIENTSSL_HANDSHAKE {
log local0. "[IP::client_addr]:[TCP::client_port]: SSL handshake completed, collecting SSL payload"
SSL::collect
}
when CLIENTSSL_DATA {
set payload [SSL::payload]
set entityID [findstr $payload "@" 1 ","]
log local0. "entityID: $entityID"
pool xxx_yyyy_Pool
log local0. "using persistence for entityId ($entityID)?: [persist lookup uie $entityID]"
if { $entityID ne "" } {
persist uie $entityID 64000
}
SSL::release
SSL::collect
}
Not 100% certain about the last SSL::collect, so you may need to comment that out if it doesn't work. Watch the log and the wireshark capture closely within a single application session. The first request shouldn't have any persistence information in the lookup, but then subsequent requests, assuming the entityID is available, should.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)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
