dennypayne
Oct 13, 2006Employee
Match across services persistence w/rule
I have read in several threads that you cannot directly call "match across services" from a persist command in an iRule.
I have converted a v4 configuration that had several rules that ended up like this:
when CLIENT_ACCEPTED {
if { [server_port] == 6366 } {
use pool sftp-ics11.6366
}
elseif { [server_port] >= 6367 and [server_port] <= 6415 } {
use pool sftp-ics11.0
}
else {
discard
}
}
The previous config had globally enabled match across services so that any connections to those multiple ports would be sent to the same node.
On the virtual that uses this rule, if I enable a default persistence profile inheriting from source_addr, with Match Across Services checked, will that still take care of traffic that is processed through this rule? If not I need to take care of this within the rule somehow.
I tried this:
when CLIENT_ACCEPTED {
if { [server_port] == 6366 } {
use pool sftp-ics11.6366
}
elseif { [server_port] >= 6367 and [server_port] <= 6415 } {
persist SFTP1800
use pool sftp-ics11.0
}
else {
discard
}
}
where SFTP1800 is the same profile I selected as default, and I get an error saying the persist command must be one of cookie, source_addr, etc. So if I can't call a profile and I can't do match across within the rule, how can I solve this if the default profile won't handle it?
Thanks,
Denny