Precedence: If you have a security policy at the top of the policy list (i.e. highest precedence), then if there is a DFP or an active Endpoint in that site or a DoH client, they will get processed by that security policy rather than the security policy they are actually aligned to further down the list of policies. The security logs will still have the information generated by Endpoint/DFP (e.g. private IP, endpoint name, etc). If the client is DoH client then you just get the public IP the traffic is coming from. If you have an Endpoint and go to a site of another company who protect their site with “External Network”, you Endpoint traffic will hit your tenant and only be processed by your tenant. The Endpoint/External Network precedence topic only applies if you have both the Endpoint and the External Network in the same tenant.
REMEMBER: ALL RPZ get evaluated BEFORE query is made. IP rules are ignored. IP Rules get evaluated when response is received.
Infoblox Threat Defense will never block *.infoblox.com even if it is explicitly blocked by Security Policy. This is because the domain is trusted and run by Infoblox and is necessary for basic functioning of the service.
When creating a security policy using RPZ feeds, the following is best practice in general.
Do not add Web Categories “allow with log” or Application “allow with log” rules unless you really know what you are doing. The data gets logged anyway and populates the Web Category and Application Insight reports anyway without the need for a rule to explicitly log. Also, “Allow - With Log” as an action for web content can impact Threat Insight in the cloud.
Where you have a number of RPZ feeds that are going to perform the same action (block or allow), then put the IP address based feeds at the bottom and FQDN based feeds at the top. Infoblox does not mix FQDN data and IP data in any feed other than the “bundle” feeds for NIOS. The reason for this is two fold. Firstly is can improve performance to do it this way as the FQDN needs to be resolved to get the IP for checking. On a busy appliance, checking and blocking based of FQDN can slightly improve performance. Secondly, blocking based on IP address is 'normally' not a great idea. Since many web threats can be hosted on the same IP as legitimate services it is much more accurate to block on FQDN. By putting IP data below FQDN data, we know that any IP block is hit only because there was no FQDN hit.
For Infoblox, if the RPZ feed name does not have _IP in it, it is a FQDN only feed. Generally, alert on _IP rules rather than block. The Extreme/High/Medium/Low feeds are an exception. They can contain both FQDN and IP data.
If using the -block and -log combination feeds, always put -log underneath the -block feed and only pick a single severity.
Remember, RPZ feeds are for recursive DNS only. They can't be used on a DNS server that is authoritative only. ADP and RRL can be used to protect authoritative servers.
In the list below “Allow” means “permit but do not log”. “Alert” means “permit and log”.
If you enable rebind protection, make sure you add dns.msftncsi.com to a custom allow list (no log) so that you don't fill up the security events with Windows trying to test if it is online (A record is public IPv4 but AAAA record is private IPv6).
As of NIOS 9.0.1 in Dec 2023: (Documentation) As of NIOS 9.0.7 in Oct 2025 - new column added. Note, running Threat Feeds AND Threat Insight is not supported on TE-1415 and TE-1425.
| Model | RPZ Entry Count (NIOS >= 9.0.7) | RPZ Rule Count | Notes |
|---|---|---|---|
| TE-815 | 6M (TI not supported) | 1.5Ms | Base + Base IP only |
| TE-825 | 6M (TI not supported) | 2M | Base + Base IP only |
| TE-1415 | 12M (TI not supported) | 6M | Base + Base IP only + Informational |
| TE-1425 | 12M (TI not supported) | 8M | Base + Base IP only + Informational |
| TE-2215/TE-2225 (20M with TI) | 40M | 25M | Everything |
| TE-4015/TE-4025 (35M with TI) | 60M | 40M | Everything |
| TE-926 | 16M (TI not supported) | 6M | Base + Base IP only |
| TE-1516/TE-1526 (15M with TI) | 40M | 20M | Everything |
| TE-2326/TE-4126 (35M with TI) | 60M | 40M | Everything |
The following table shows an aggressive block policy in best practice order based on feed confidence followed by severity.
| Stage | Name | Action | License | Location |
|---|---|---|---|---|
| FQDN Allow | Default Allow | Allow No-Log | Any | Cloud only |
| FQDN Allow | custom-list-corporate-domains | Allow No-Log | Any | Cloud or NIOS |
| FQDN Allow | custom-list-global-allow | Allow No-Log | Any | Cloud or NIOS |
| FQDN Block | custom-block-list-network-team | Block With-Log | Any | Cloud or NIOS |
| FQDN Block | custom-block-list-soc-team | Block With-Log | Any | Cloud or NIOS |
| FQDN Block | custom-block-list-hr-team | Block With-Log | Any | Cloud or NIOS |
| FQDN Block | Default Block | Block With-Log | Any | Cloud only |
| FQDN Block | Infoblox Base | Block With-Log | Essentials | Cloud or NIOS |
| IP Block | Infoblox Base IP | Block With-Log | Business | Cloud or NIOS |
| FQDN Block | Infoblox High | Block With-Log | Advanced | Cloud or NIOS |
| FQDN Block | Threat Insight - Zero Day DNS | Block With-Log | Advanced | Cloud only |
| FQDN Block | Infoblox Medium | Block With-Log | Advanced | Cloud or NIOS |
| FQDN Block | Infoblox Low | Block With-Log | Advanced | Cloud or NIOS |
| FQDN Block | Infoblox Informational | Block With-Log | Business | Cloud or NIOS |
| FQDN Block | Public_DoH | Block With-Log | Essentials | Cloud or NIOS |
| IP Block | Public_DoH_IP | Block With-Log | Essentials | Cloud or NIOS |
| FQDN Block | Threat Insight - Data Exfiltration | Block With-Log | Business | Cloud only |
| FQDN Block | Threat Insight - DGA | Block With-Log | Business | Cloud only |
| FQDN Block | Threat Insight - DNS Messenger | Block With-Log | Business | Cloud only |
| FQDN Block | DHS_AIS | Block With-Log | Essentials | Cloud or NIOS |
| IP Block | DHS_AIS_IP | Block With-Log | Essentials | Cloud or NIOS |
| IP Block | Bogon | Block - With-Log | Essentials | Cloud or NIOS |
| FQDN Block | Cryptocurrency | Block With-Log | Business | Cloud or NIOS |
| IP Block | EECN_IP | According to Policy | Business | Cloud or NIOS |
| IP Block | US_OFAC_Sanctions_IP_Embargoed | According to Policy | Business | Cloud or NIOS |
| IP Block | US_OFAC_Sanctions_IP_High | According to Policy | Business | Cloud or NIOS |
| IP Block | US_OFAC_Sanctions_IP_Med | According to Policy | Business | Cloud or NIOS |
| IP Block | TOR_Exit_Node_IP | Block With-Log | Advanced | Cloud or NIOS |
| FQDN Block | custom-webcategory-list | Block With-Log | Business | Cloud only |
| FQDN Log | Threat Insight - Notional Data Exfiltration | Allow - With Log | Business | Cloud only |
Default Allow should be above “custom” allow lists in order to avoid the Infoblox Threat Defense putting a warning label on the security policy.
NOTE: For on-prem NIOS security policies, follow something similar to the above. Threat Insight on NIOS will need its own feed below the custom block list near the top.
NOTE: for US_OFAC_Sanctions_IP, “MED” covers everything in “High” and “Embargoed”. “High” covers everything in “Embargoed”. So pick only one for efficiency/avoid pointlessly duplicating data.
REMEMBER! When creating local RPZ feeds, example.local is NOT equal to *.example.local.
When setting a “policy override” at an RPZ level, we are telling NIOS to ignore the individual actions set within the RPZ and apply the same action for any match in the RPZ
Summary of how different Newly Observed Domain feeds work:
So, where possible, combine SURBL Fresh, Farsight NOD, Infoblox NOED and Infoblox Suspicious NOED.
Data configured under Policies > On-Prem DNS Firewall.
54.69.93.18552.2.30.79google.com is not the same as *.google.com.In theory an attacker might use a CDN (e.g. *.azureedge.net) for C2 and all Web Proxy categorizations will be “content server” (or something similar).
If you have internal NIOS appliances forwarding to a DMZ NIOS appliance caching server, and if the caching server is doing the RPZ feeds, you will find that it will not work by default. This is because, by default, the first NIOS box to receive the query till tell the box it forwards to to not do RPZ. When configuring an internal DNS forwarder to point at a DMZ Infoblox RPZ server, you must go (in the Grid manager) to Data Management > DNS > Member > Edit > General > Advanced and then untick “Apply RPZ rules only on this member if possible”
Officially: Select this check box if the forwarders must not apply RPZ rules to the responses that is returned to the other member, when this RPZ member queries other Grid member details”.
Custom list is good for shorter lists of data such as “always allow” (e.g. domains you own) and “always block” (e.g. domains you prohibit). You can add descriptions to each line (can't do that with RPZ) and you can also set the level (low-high) and confidence (low-high) (can't do that with custom RPZ). Also, the data will remain in the custom list forever.
Custom RPZ feeds are meant more for working with TIDE data, combining TIDE data with your own uploads. The data should always have expiry dates on it which is why custom lists can be better for stuff that never changes (e.g. domains you always allow). You can easily merge things like country IP data, etc.
Another nice thing about custom RPZ feeds is that you can pull the data easily to other tool. e.g. dig with correct commands to do a zone transfer. Put that through a small shell script to filter the data into host file format and you can put it on a PiHole.
You can block (or allow) traffic based on answer IP by using Custom list. This can be done for a single IP by adding x.x.x.x/32. If you don't add /32, it will be added automatically when you save the Custom list. You can also add subnets such as y.y.y.y/24.
| Distribution Server | IPv4 | IPv4 Notify | IPv6 |
|---|---|---|---|
| US West | 54.69.93.185 | 44.224.71.15 | 2600:1f13:f5a:8a01:872a:f3:cdda:ed18 |
| US East | 52.2.30.79 | 3.221.42.234 | 2600:1f18:1043:dc00:cd9a:e082:23de:790 |
| EU 1 | 52.57.3.126 | 52.58.79.200 | N/A |
| EU 2 | 18.159.153.132 | 52.58.79.200 | N/A |
Be aware that 52.119.40.100 is the CSP resolver address used for DNS Forward Proxy.
NIOS 8.6 connects to grpc.csp.infoblox.com without any config being applied.
May 2023 > Oct 2023
From here In previous NIOS releases, RPZ query name recursion was enabled by default. The DNS recursive name server performed RPZ recursive lookups for the fully qualified domain name that was part of an RPZ. Starting with NIOS 7.1.0, RPZ query name recursion is disabled by default. When RPZ query name recursion is disabled, the DNS recursive name server sends responses for the domains being queried, without forwarding queries to the authoritative name servers. This can speed up recursive RPZ lookups by eliminating unnecessary recursions for domains that are known to be malicious, possibly caused by internal DDoS attacks on the recursive server. You can enable RPZ query name recursion by selecting the Enable RPZ query name recursion (qname-wait-recurse) check box. When you select this check box, the appliance performs RPZ query name recursions. You can configure this at the Grid, member, and DNS view levels.
To get the size of RPZ feed from Infoblox (or any RPZ feed or zone transfer). Allow for a few extra lines when using this method as it doesn't strip lines from start and finish that are not data.
dig @52.2.30.79 axfr -y hmac-sha256:<keyname>:<tsigkey> infoblox-base.rpz.infoblox.local | wc -l
In August 2021, just under 2 million records in total. In January 2025, just under 38 million records in total.
| Subscription | Feed Name | Feed Type | Risk | Confidence | RPZ | Objects Jan 2025 | Objects Nov 2024 | Objects June 2024 |
|---|---|---|---|---|---|---|---|---|
| Essentials | Infoblox Base | FQDN | High | High | infoblox-base.rpz.infoblox.local | 2.8M | 2.5M | 1M |
| Business | Infoblox Base IP | IP | High | High | infoblox-base-ip.rpz.infoblox.local | 82 | 83 | 100 |
| Advanced | Infoblox High | FQDN | High | High | infoblox-high.rpz.infoblox.local | 11.5M | 11M | 6.5M |
| Advanced | Infoblox Medium | FQDN | Medium | High | infoblox-med-risk.rpz.infoblox.local | 11.5M | 8.8M | 10M |
| Advanced | Infoblox Low | FQDN | Low | High | infoblox-low.rpz.infoblox.local | 9.0M | 10.7M | 0.5M |
| Business | Infoblox Informational | FQDN | Low | High | infoblox-informational.rpz.infoblox.local | 3.1M | 2.8M | 1.5M |
| Essentials | Public_DoH | FQDN | Low | High | public-doh.rpz.infoblox.local | 656 | 622 | 117 |
| Essentials | Public_DoH_IP | IP | Low | High | public-doh-ip.rpz.infoblox.local | 60 | 60 | 208 |
| Essentials | DHS_AIS_Domain | FQDN | High | Medium | dhs-ais-domain.rpz.infoblox.local | 6 | 6 | 11 |
| Essentials | DHS_AIS_IP | IP | High | Low | dhs-ais-ip.rpz.infoblox.local | 0 | 0 | 94 |
| Custom | ETIQRisk | FQDN | High | Low | etiqrisk.rpz.infoblox.local | ? | ? | |
| Custom | ETIQRisk_IP | IP | High | Low | etiqrisk-ip.rpz.infoblox.local | ? | ? | |
| Custom | FarSightNOD | FQDN | High | Low | farsightnod.rpz.infoblox.local | 663k | ? | ? |
| Essentials | Bogon | IP | Low | Low | bogon.rpz.infoblox.local | 16 | 16 | 16 |
| Business | Cryptocurrency | FQDN | Low | Low | cryptocurrency.rpz.infoblox.local | 170 | 169 | 100 |
| Business | EECN_IP | IP | Low | Low | eecn-ip.rpz.infoblox.local | 33.9k | 32K | 32K |
| Business | US_OFAC_Sanctions_IP_Embargoed | IP | Low | Low | sanctions-ip.rpz.infoblox.local | 4.7k | 4.5k | 5k |
| Business | US_OFAC_Sanctions_IP_High | IP | Low | Low | sanctions-high.rpz.infoblox.local | 32.8k | 31.7k | 31k |
| Business | US_OFAC_Sanctions_IP_Med | IP | Low | Low | sanctions-med.rpz.infoblox.local | 33.8k | 32.7k | 32k |
| Business | TOR_Exit_Node_IP | IP | Low | Low | tor-exit-node-ip.rpz.infoblox.local | 4.5k | 4.4k | 4k |
Cloud Only Feeds for Threat Insight.
| Subscription | Feed Name | Feed Type | Risk | Confidence | RPZ |
|---|---|---|---|---|---|
| Business | BloxOne Threat Defense Cloud Hits | 208.rpz.infoblox.local | |||
| Business | Default Allow | FQDN | Medium | High | |
| Business | Default Allow | FQDN | Medium | High | |
| Business | Threat Insight - Zero Day DNS | FQDN | High | High | |
| Business | Threat Insight - DGA | FQDN | High | Medium | |
| Business | Threat Insight - DNS Messenger | FQDN | High | Medium | |
| Business | Threat Insight - Data Exfiltration | FQDN | High | Medium | |
| Business | Threat Insight - Notional Data Exfiltration | FQDN | Low | Low |
For the following reasons, the following feeds have been removed
While they are now deprecated as part of the general threat feed clean up ion 31st Dec 2024, there used to be “Combination Feeds”. An official guide is here.
These feeds are accessible for NIOS only (not for CSP Security Policy). The reason is because prior to NIOS 9.0, the version of BIND used on NIOS was limited to 32 RPZ feeds. This meant that users could not import all the available feeds and also use custom feeds. To get around this, a group of feeds were developed that would allow users to aggregate several feeds into one and uses can choose which feed based on their approach to risk. Version 9.0 of NIOS allows up to 64 RPZ feeds and the CSP never had this limitation.
Note that there is no overlap between what ends up in a level's “block” category and what ends up in the “log” category. Thus, the average business should pick a level (e.g. medium) and then block “Medium_Block” and allow but log “Medium_Log”.
Disable NSDNAME/NSIP processing to prevent major performance impacts (approx. 45%). This feature can also cause massive outage if a legitimate NS server gets onto your block list.
RPZ NSDNAME (Name Server Domain Name)
RPZ NSIP (Name Server IP Address)
In NIOS, you get the following syslog on the member doing the RPZ feed
Under Data Management > DNS > Response Policy Zones you can check “Last Updated” column to see if the RPZ has been downloaded.
You can filter with “Message contains X” where X is the name (or part of the name) of the RPZ feed.
To look for all successful transfers, filter on “Message contains Transfer completed”.
The following is an example syslog output when adding ib-extreme-block.rpz.infoblox.local
zone ib-extreme-block.rpz.infoblox.local/IN: Transfer started. transfer of 'ib-extreme-block.rpz.infoblox.local/IN' from 52.2.30.79#53: connected using 10.1.1.53#37963 TSIG portal.208.mydomain-infoblox-zrm6ts0f transfer of 'ib-extreme-block.rpz.infoblox.local/IN' from 52.2.30.79#53: failed while receiving responses: end of file transfer of 'ib-extreme-block.rpz.infoblox.local/IN' from 52.2.30.79#53: Transfer status: end of file transfer of 'ib-extreme-block.rpz.infoblox.local/IN' from 52.2.30.79#53: Transfer completed: 6056 messages, 1861125 records, 45218200 bytes, 32.973 secs (1371370 bytes/sec) rpz: ib-extreme-block.rpz.infoblox.local: reload start rpz: ib-extreme-block.rpz.infoblox.local: using hashtable size 19 zone ib-extreme-block.rpz.infoblox.local/IN: Transfer started. transfer of 'ib-extreme-block.rpz.infoblox.local/IN' from 52.2.30.79#53: connected using 10.1.1.53#36777 TSIG portal.208.mydomain-infoblox-zrm6ts0f zone ib-extreme-block.rpz.infoblox.local/IN: transferred serial 1671105914: TSIG 'portal.208.mydomain-infoblox-zrm6ts0f' transfer of 'ib-extreme-block.rpz.infoblox.local/IN' from 52.2.30.79#53: Transfer status: success transfer of 'ib-extreme-block.rpz.infoblox.local/IN' from 52.2.30.79#53: Transfer completed: 6057 messages, 1861306 records, 45223143 bytes, 17.607 secs (2568475 bytes/sec) (re)loaded policy zone 'ib-extreme-block.rpz.infoblox.local', now with 1855281 qname, 0 nsdname, 5744 IP, 0 NSIP, 0 CLIENTIP entries rpz: ib-extreme-block.rpz.infoblox.local: new zone version came too soon, deferring update for 60 seconds rpz: ib-extreme-block.rpz.infoblox.local: reload done rpz: ib-extreme-block.rpz.infoblox.local: reload start rpz: ib-extreme-block.rpz.infoblox.local: using hashtable size 19 (re)loaded policy zone 'ib-extreme-block.rpz.infoblox.local', now with 1855559 qname, 0 nsdname, 5744 IP, 0 NSIP, 0 CLIENTIP entries rpz: ib-extreme-block.rpz.infoblox.local: reload done
Log “Level” = INFO
Facility = “local4”
(this one is blocking based on an IP block list)
Redirecting *.slashdot.org to time1.google.com
The reporting sever generates additional log. In this example, the RPZ is called “forward-control” and www.slashdot.org is substituted for time1.google.com
A note on RPZ Severity
Official SYSLOG Severity levels
A note on Mitigation Action
When a new copy of the RPZ is downloaded (transferred)
You can force a new download with
set dns transfer <zone> [view]
set dns transfer public-doh.rpz.infoblox.local zulu