Hi Nicolas,
as Vernon already said the code as is looks fine and some debug line would definately help to troubleshoot the problem.
Also keep in mind that possible route domain sufixes may break the functionality of [IP::addr]. You may have to strip these %id suffixes before comparing the client ip.
when CLIENT_ACCEPTED {
set cli_ip [substr [IP::client_addr] 0 "%"]
if { ( [IP::addr $cli_ip equals X.X.X.X/26] ) or
( [IP::addr $cli_ip equals Y.Y.Y.Y/26] ) } then {
snat Z.Z.Z.Z pool default_gw_pool
} else {
snatpool snat_pool-CLD_ALL
pool default_gw_pool
}
}
Cheers, Kai