this is my testing.
accounting virtual server
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm virtual bar1813
ltm virtual bar1813 {
destination 172.28.24.10:1813
ip-protocol udp
mask 255.255.255.255
persist {
myuie {
default yes
}
}
pool foo
profiles {
udp { }
}
rules {
qux1813
}
source 0.0.0.0/0
source-address-translation {
type automap
}
translate-port disabled
vs-index 19
}
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm pool foo
ltm pool foo {
members {
200.200.200.101:0 {
address 200.200.200.101
}
200.200.200.111:0 {
address 200.200.200.111
}
}
}
timeout is set to indefinite to make testing easier
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm persistence universal myuie
ltm persistence universal myuie {
app-service none
match-across-services enabled
match-across-virtuals enabled
timeout indefinite
}
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm rule qux1813
ltm rule qux1813 {
when CLIENT_ACCEPTED {
persist uie [RADIUS::avp 8 ip4]
}
}
http virtual server
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm virtual bar80
ltm virtual bar80 {
destination 172.28.24.10:80
ip-protocol tcp
mask 255.255.255.255
persist {
myuie {
default yes
}
}
pool foo
profiles {
tcp { }
}
rules {
qux80
}
source 0.0.0.0/0
source-address-translation {
type automap
}
vs-index 20
}
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm rule qux80
ltm rule qux80 {
when CLIENT_ACCEPTED {
persist uie [IP::client_addr]
}
when SERVER_CONNECTED {
log local0. "client [IP::client_addr] server [IP::server_addr]"
}
}
testing
1. create persistence record by sending accounting message
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) show ltm persistence persist-records all-properties
Sys::Persistent Connections
universal - 172.28.24.10:1813 - 200.200.200.101:any
---------------------------------------------------
TMM 1
Mode universal
Value 172.28.24.15
Age (sec.) 3
Virtual Name /Common/bar1813
Virtual Addr 172.28.24.10:1813
Node Addr 200.200.200.101:any
Pool Name /Common/foo
Client Addr 172.28.24.1
Owner entry
Total records returned: 1
2. to prove whether persistence record is used, disable pool member 200.200.200.101:any (persistence is allowed on disabled state according to sol13310)
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) modify ltm pool foo members modify { 200.200.200.101:0 { session user-disabled }}
root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm pool foo
ltm pool foo {
members {
200.200.200.101:0 {
address 200.200.200.101
session user-disabled
}
200.200.200.111:0 {
address 200.200.200.111
}
}
}
3. send http request. pool member 200.200.200.101 is used
[root@ve11a:Active:In Sync] config tail -f /var/log/ltm
Apr 23 03:19:14 ve11a info tmm1[13593]: Rule /Common/qux80 : client 172.28.24.15 server 200.200.200.101