Forum Discussion
keefyweefy
Mar 08, 2011Nimbostratus
Filter on source & destination
Hello all
I'm trying to write what I presumed would be a simple iRule to restrict access from a client. We have a forwarding (IP) VS for a subnet say 192.168.1.0/24
I'm applying the following rule to that VS however it isn't performing as expected:
when CLIENT_ACCEPTED {
if { [IP::addr [IP::client_addr]/32 equals 192.168.2.1]
and [IP::addr [IP::remote_addr]/32 equals 192.168.1.100] } {
drop}
elseif { [IP::addr [IP::client_addr]/32 equals 192.168.2.1]
and [IP::addr [IP::remote_addr]/32 equals 192.168.1.101] } {
drop
}
}
Connections don't get blocked from 192.168.2.1 to 192.168.1.100 or 101.
If I trim the iRule down to:
when CLIENT_ACCEPTED {
if { [IP::addr [IP::client_addr]/32 equals 192.168.2.1] } {
drop}
}
Then all connections do get dropped so the problem appears to be with the latter part of the arguement.
- Chris_MillerAltostratusEdit: I see what you're trying to do - will post something else soon.
- Chris_MillerAltostratusI believe client_addr and remote_addr will return the same value in this situation. I'm wondering if local_addr is the way to go.
Edit: Using this sample rule as an example, it definitely looks like you need to be checking local_addr instead of remote_addr. Give that a shot and see what happens.
http://devcentral.f5.com/wiki/defau...uting.html
- Chris_MillerAltostratusHow about this to make things prettier?
when CLIENT_ACCEPTED { if { [IP::client_addr] eq 192.168.2.1 } { switch [IP::local_addr] { 192.168.1.100 - 192.168.1.101 { drop } } } }
- keefyweefyNimbostratusYep that nailed it, thanks Chris.
- hooleylistCirrostratusI'd suggest using IP::addr and/or address type datagroups which will do bit comparisons instead of string comparisons of the IP addresses:
when CLIENT_ACCEPTED { if { [IP::addr [IP::client_addr] eq 192.168.2.1] } { if { [IP::addr [IP::local_addr] eq 192.168.1.100] || [IP::addr [IP::local_addr] eq 192.168.1.101] drop } } }
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects