Linking Universal persistence across different dataflows and virtual servers
Hi I've been trying to look at getting this working but sort of going round in circles at the logic.
Basically i essentially have three flows of traffic in this order.
1st Radius - containing user MAC attribute - on Virtual Server1
2nd Radius - containing user MAC + client framed-IP attributes - on Virtual Server 1
3rd Client Data - coming from client src IP = radius framed-IP above - on Virtual Server2
I can see how I could essentially use irule persist command to create UIE persistence for the radius traffic basing it on the MAC attribute. e.g using something onlong the lines of (untested code).
set IsPersisted [persist lookup uie [RADIUS::avp 31] pool pool_1]
if { $IsPersisted eq "" } {
persist add uie [RADIUS::avp 31] 1800
} else {
persist uie [RADIUS::avp 31]
}
But what i'm getting lost with is how I could create a persistence record for the client IP taken from the framed-IP field [RADIUS::avp 8] of the second radius flow but it needs to be sent to the same node used in the original persistence record.
e.g
radius flow1 gets loadbalanced across the pool as normal. UIE persistence record created based on [RADIUS::avp 31]. goes to node1
radius flow2 - [RADIUS::avp 31] matches persistence created record above hence traffic goes to node1. But also creates a persistence record for client IP read from the radius data [RADIUS::avp 8] but this also needs to go to the same node 1.
Data flow3 - persistence record exists for client source address from above so send it to node 1. if not LB as normal and create persistence based on client address.
As i said i can't quite work out the link between flow2 and flow3. i can create a new record using "persist add uie [RADIUS::avp 8] 1800" but this I assume would create a new record and could go to any member of the pool - but i need to ensure its stuck to the same node.
As ever, grateful for any help and suggestions - i'll be plugging away on this myself as well.
Adrian