Security · 4 min read

Turning messy IP ranges into clean firewall object groups

Firewall administrators often inherit messy IP ranges from business requirements, legacy systems, or acquisition integrations. Instead of wrestling with irregular ranges like 10.50.12.0 to 10.50.15.255 across multiple object groups, you can convert them into clean CIDR notation that reduces configuration overhead, improves readability, and minimizes rule bloat. This guide shows you why and how to do it.

Why IP ranges become a firewall headache

Firewall object groups are meant to simplify policy management. Instead of writing 50 individual ACL rules, you create one object group containing multiple subnets and reference it once. But when your source data is an arbitrary IP range--say, 192.168.100.50 to 192.168.101.200--you face a problem: most firewalls (Palo Alto, Cisco ASA, Fortinet, Juniper) expect CIDR notation or discrete subnets, not start-and-end addresses. You end up either:

Converting ranges to CIDR: the method

The goal is to express an arbitrary range as the smallest set of non-overlapping CIDR blocks. For example, the range 10.50.12.0 to 10.50.15.255 can be represented as four /24 subnets: 10.50.12.0/24, 10.50.13.0/24, 10.50.14.0/24, and 10.50.15.0/24. This is far cleaner than a single /22 supernet that might include unintended space.

The algorithm works by finding the largest power-of-two aligned block that fits within your range, recording it, then recursively processing the remainder. Manual calculation is tedious and error-prone; a tool automates it in seconds.

Practical firewall object group example

Suppose your business partner gives you a range 172.16.4.1 to 172.16.7.254 for a new vendor integration. You need to add this to your Palo Alto Networks security policy. Instead of guessing, convert it:

Input range: 172.16.4.1 to 172.16.7.254

Converted CIDR blocks:
172.16.4.0/24
172.16.5.0/24
172.16.6.0/24
172.16.7.0/25
172.16.7.128/25

Now you create a single object group in your firewall:

set address 'vendor-network-1' value 172.16.4.0/24
set address 'vendor-network-2' value 172.16.5.0/24
set address 'vendor-network-3' value 172.16.6.0/24
set address 'vendor-network-4' value 172.16.7.0/25
set address 'vendor-network-5' value 172.16.7.128/25

set address-group 'vendor-integration' members [
  vendor-network-1
  vendor-network-2
  vendor-network-3
  vendor-network-4
  vendor-network-5
]

One policy rule now references 'vendor-integration' instead of five separate entries or an oversized supernet.

Benefits for your firewall strategy

IP Range to CIDR
Instantly convert any IP range to optimized CIDR blocks for firewall policies
Open →
Practise this on today’s Daily Ops Drill — a free network task every day.
Open the app →
Free tools for this
More from the blog
Subnetting on the Fortinet NSE4 exam: what to expectRead →Auditing an ACL for the permit any that should not be thereRead →