Forum Discussion
7 Replies
Sort By
- DEJNimbostratus
Hello,
Edit - just realized I had [TCP::client_addr] instead of [IP:client_addr]
I'm relatively new as well, but you may want to try the below. If the traffic is going to port 25 and the client IP is not included in your allow list, it is set to drop the traffic. All others will go to the default pool, if one is set.when CLIENT_ACCEPTED { Check if destination port is SMTP and the client IP is not in the allow list if {[[TCP::local_port] equals 25] and [class match [IP::client_addr] ne DATAGROUPNAME]}{ Drop the traffic drop } }
- DEJNimbostratusI don't know where you are applying this iRule which is why I went ahead and specified the destination port.
- DEJ_159363Cirrus
Hello,
Edit - just realized I had [TCP::client_addr] instead of [IP:client_addr]
I'm relatively new as well, but you may want to try the below. If the traffic is going to port 25 and the client IP is not included in your allow list, it is set to drop the traffic. All others will go to the default pool, if one is set.when CLIENT_ACCEPTED { Check if destination port is SMTP and the client IP is not in the allow list if {[[TCP::local_port] equals 25] and [class match [IP::client_addr] ne DATAGROUPNAME]}{ Drop the traffic drop } }
- DEJ_159363CirrusI don't know where you are applying this iRule which is why I went ahead and specified the destination port.
- cammy_178041Nimbostratus
Thanks, the rule is being applied to the smtp virtual server which is only port 25. I wrote it like so: when CLIENT_ACCEPTED {
if { [matchclass [IP::client_addr] equals trusted_networks] } {
pool smtp_pool
} else {
reject
} }
Where trusted_networks is the data group and smtp_pool is the pool associated with the virtual server. I applied this irule to the VS.
- DEJNimbostratusLooks good. I do have a suggestion. I'm guessing you're on 10.x code , if you're using 9.x ignore the rest of this. Switch to using 'class match' instead of 'matchclass', from posts I've seen it can cause issues when you migrate to 11.x code. There are also tests posted online indicating class match has better performance. Links used for research below: https://devcentral.f5.com/articles/comparing-irule-control-statements https://devcentral.f5.com/wiki/irules.matchclass.ashx
- cammy_178041Nimbostratus
Thanks Dareuja, i realized that and switched to class match. Appreciate your help!