You can define the two different groups of destination hosts in two separate pools:
special_pool
1.1.1.1:80
1.1.1.2:80
1.1.1.3:80
1.1.1.4:80
main_pool
1.1.1.1:8080
1.1.1.2:8080
1.1.1.3:8080
1.1.1.4:8080
And then define the set of client IP addresses you want sent to special_pool in a datagroup of type 'address'. You can create a datagroup under Local Traffic >> iRules >> Datagroups.
You can then use an iRule which checks the client IP address against a datagroup:
when CLIENT_ACCEPTED {
Check if client is in special_clients datagroup
if {[matchclass [IP::client_addr] equals $::special_clients]}{
Use the special pool
pool special_pool
} else {
pool main_pool
}
}
Aaron