Forum Discussion
Create iRule condition with matching client IP from multiple IP subnet
I need to create an iRule to check if a DNS query domain name matches a preconfigured list of domain name, AND client IP matches one of following network:
172.18.9.0/24
172.25.10.0/24
The iRule that I thought to be usable is:
when DNS_REQUEST {
set filter_list {
"abctest.example.com"
}
if { [lsearch -exact $filter_list [DNS::question name]] ne -1 && {![IP::addr [IP::client_addr] equals 172.18.9.0/24] ||![IP::addr [IP::client_addr] equals 172.25.10.0/24]}} {
DNS::header rcode NXDOMAIN
DNS::return
}
}
However, this condition doesn't work. DNS query that is not in above network will still have timeout message, instead of directly receive NXDomain response. I would like to know what I done wrong in my iRule condition, and feasible solution to make this iRule work properly.
I would use data-groups for host and IP matching, it's more elegant. And try to add some logging to the irule to help you see what is going wrong.
1 Reply
- Abdessamad1
Cirrostratus
I would use data-groups for host and IP matching, it's more elegant. And try to add some logging to the irule to help you see what is going wrong.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* 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
