If you've ever set up a server, requested IP space from a provider, or peeked at a BGP routing table, you've probably run into terms like "/24," "/48," or "address block" without a clear explanation of what they actually mean. IP block sizes govern how addresses are grouped, allocated, and announced across the internet, and understanding them is genuinely useful whether you're a sysadmin, a self-hoster, or just someone who wants to understand how networking works under the hood.
This article covers how block sizes work in both IPv4 and IPv6, what CIDR notation means, and how the two protocols compare when it comes to address space and allocation.
A quick refresher on IP addresses
Before getting into blocks, it helps to quickly recap what an IP address actually is.
An IPv4 address is a 32-bit number, typically written in dotted decimal notation like 192.168.1.1. That 32-bit structure gives IPv4 a theoretical maximum of about 4.3 billion addresses, which sounds like a lot until you consider that essentially every device on earth needs one.
An IPv6 address is a 128-bit number, written in hexadecimal groups like 2001:db8::1. The address space is so large it's almost hard to conceptualize, roughly 340 undecillion addresses (that's 3.4 × 10³⁸). For practical purposes, it's inexhaustible.
What is CIDR notation?
Both IPv4 and IPv6 use CIDR (Classless Inter-Domain Routing) notation to describe blocks of addresses. You'll see it written as an IP address followed by a slash and a number, like 10.0.0.0/8 or 2001:db8::/32.
The number after the slash is called the prefix length. It tells you how many bits are fixed (the network portion), with the remaining bits available for hosts or sub-allocation.
So in 192.168.1.0/24:
- 24 bits are the network prefix
- 8 bits are available for hosts
- That gives you 2⁸ = 256 addresses (technically 254 usable in IPv4, since the first and last are reserved)
Smaller prefix numbers mean larger blocks. A /8 is vastly larger than a /24. This trips people up at first because it feels backward, but think of it this way: the prefix length is the number of bits that are locked in, so fewer locked bits means more room for addresses.
IPv4 block sizes
IPv4's 32-bit address space means blocks range from a single /32 (one address) all the way up to /0 (the entire internet). Here's a practical reference for common block sizes:
| CIDR | Total addresses | Common use |
|---|
| /32 | 1 | Single host, loopback |
| /31 | 2 | Point-to-point links |
| /30 | 4 | Small point-to-point (2 usable) |
| /29 | 8 | Small subnet (6 usable) |
| /28 | 16 | Small LAN (14 usable) |
| /27 | 32 | 30 usable hosts |
| /26 | 64 | 62 usable hosts |
| /25 | 128 | Half a /24 |
| /24 | 256 | Standard "class C" equivalent |
| /23 | 512 | Two /24s combined |
| /22 | 1,024 | Common ISP allocation |
| /21 | 2,048 | Larger ISP block |
| /20 | 4,096 | Regional allocation minimum |
| /19 | 8,192 | — |
| /18 | 16,384 | — |
| /17 | 32,768 | Half a /16 |
| /16 | 65,536 | "Class B" equivalent |
| /8 | 16,777,216 | "Class A" equivalent |
The /24 is by far the most common unit you'll encounter in practice. It's the smallest block that most internet exchange points and transit providers will accept as a BGP announcement, which is why it's become the de facto standard building block of IPv4 routing.
Why the /24 matters for routing
When an organization announces IP space to the internet via BGP, they're telling every router in the world "I have these addresses, route traffic here." The global BGP routing table currently has hundreds of thousands of prefixes, and to keep it manageable, most networks filter announcements more specific than a /24. If you announce a /25 or smaller, there's a good chance many networks won't accept it and your addresses will be unreachable from parts of the internet.
This is why even small hosting providers that only need a few dozen IPs will typically receive or purchase at least a /24.
IPv4 scarcity and address transfers
The IANA exhausted its free IPv4 pool back in 2011, and regional registries like ARIN, RIPE NCC, and APNIC have since run out of most of their general-pool allocations as well. Today, organizations that need IPv4 space typically get it one of two ways: leasing it from a provider, or purchasing it on the transfer market, where a /24 (256 addresses) can go for several thousand dollars depending on the registry region and market conditions.
IPv6 block sizes
IPv6 uses the same CIDR notation, but the numbers have a very different feel because the address space is so much larger. The smallest allocation a typical end-user organization would receive is a /48, which contains 2⁸⁰ addresses. That's more addresses than exist in the entire IPv4 internet, given to a single organization.
Here's how the hierarchy typically works in IPv6:
| CIDR | Size description | Typical use |
|---|
| /128 | Single address | One interface/host |
| /127 | 2 addresses | Point-to-point links |
| /64 | 18.4 quintillion addresses | Standard subnet (one LAN) |
| /56 | 256 × /64 subnets | Some ISPs give to home users |
| /48 | 65,536 × /64 subnets | Standard end-site allocation |
| /32 | 65,536 × /48 blocks | Minimum ISP allocation |
| /29 | 8 × /32 blocks | Larger ISP/LIR allocation |
| /23 and larger | Regional allocations | RIR assignments to ISPs |
The /64 is the fundamental building block
In IPv6, the /64 plays a similar role to the /24 in IPv4, but at the subnet level rather than the routing level. The IETF strongly recommends using /64 for all point-to-multipoint links (which covers virtually every normal LAN). This is because some IPv6 features, particularly SLAAC (Stateless Address Autoconfiguration), only work correctly on /64 subnets. With SLAAC, devices can automatically configure their own IPv6 address from the prefix without needing a DHCP server.
This might seem wasteful since a /64 contains 18.4 quintillion addresses, but given the overall size of IPv6, it's not a concern.
How IPv6 allocations work in practice
If you're running servers or infrastructure, here's roughly what you'd expect to receive:
From a VPS or cloud provider: Usually a single /128 per server, sometimes a /64 if you ask or pay for it.
From a colocation or dedicated server provider: Typically a /64 or /48 per customer, depending on their policies and your stated needs.
From an ISP or transit provider (for your own AS): At minimum a /48, and in many regions you can justify a /32 or larger by documenting your planned usage.
For home internet: Most ISPs that support IPv6 assign either a /64 or a /56 to the customer's router. A /56 allows you to create 256 separate /64 subnets at home, which is useful if you want separate network segments for different VLANs or IoT devices.
IPv4 vs. IPv6 block size comparison
It helps to put the two protocols side by side when thinking about relative sizes:
| IPv4 | IPv6 equivalent (approx.) | Notes |
|---|
| /32 (single host) | /128 | Both are single addresses |
| /24 (256 addrs) | /120 | Rarely used in IPv6 |
| /24 | /48 (end-site) | Conceptually similar as "org allocation" |
| /20 | /32 (ISP minimum) | Conceptually similar as "provider block" |
| Entire IPv4 internet | /8 in IPv6 | IPv6 dwarfs all of IPv4 many times over |
One key takeaway: in IPv6, address space is not scarce, so the conventions around allocation are more generous and the hierarchy is more structured. Rather than squeezing subnets down to /30s and /29s to conserve space, the standard practice is to use /64 everywhere and hand out /48s freely to end sites.
How subnetting works across both protocols
Subnetting is the practice of dividing a larger block into smaller ones. The math works the same way in both IPv4 and IPv6.
Each bit you add to the prefix length cuts the block in half. So a /24 split into /25s gives you two equal halves. A /24 split into /26s gives you four quarters. And so on.
For example, the block 192.168.1.0/24 can be split like this:
192.168.1.0/25 (addresses .0 through .127)
192.168.1.128/25 (addresses .128 through .255)
Or into four /26s:
192.168.1.0/26
192.168.1.64/26
192.168.1.128/26
192.168.1.192/26
In IPv6, the same principle applies. A /48 allocated to your organization is typically divided into /64 subnets for individual network segments. Since a /48 contains 65,536 possible /64 subnets, you'll likely never run out.
Tools like IP Calculator / IP Subnetting are handy for working out subnet math quickly without doing it by hand.
Private and reserved address ranges
Not all IP blocks are routable on the public internet. Both protocols have reserved ranges for private use.
IPv4 private ranges (RFC 1918):
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
These are used heavily in home networks, corporate LANs, and data center environments. Traffic from these ranges doesn't route across the public internet; it stays within the local network or is translated via NAT.
IPv6 private equivalent (ULA, RFC 4193):
fc00::/7 (commonly fd00::/8 for locally assigned ULA space)
ULA (Unique Local Addresses) serve a similar purpose to RFC 1918 in IPv4. They're not routable on the public internet but are stable and unique enough for internal use without the risk of collisions that comes with using 10.x.x.x everywhere.
There's also fe80::/10, which is the link-local range in IPv6. Every IPv6-enabled interface automatically assigns itself a link-local address, used for neighbor discovery and other on-link communication. These addresses are never routed beyond the local link.
For a deeper look at how IPv4 and IPv6 differ beyond just addressing, the xTom guide on IPv4 vs. IPv6 covers the protocol differences in more detail.
BGP announcements and minimum prefix sizes
If you're planning to run your own Autonomous System (AS) and announce your own IP space, minimum prefix sizes matter a lot.
For IPv4, the general internet consensus is:
/24 is the smallest prefix most networks will accept
- Anything more specific (like
/25, /26, etc.) may be filtered by many providers
For IPv6, the commonly accepted minimum is a /48 for end-site announcements, though many networks also accept /32 and shorter prefixes from ISPs and transit providers.
If you need IP transit to carry your announcements, the prefix you announce needs to fall within these accepted norms or your traffic simply won't reach parts of the internet. This is worth verifying with your upstream provider before purchasing or leasing address space.
For more on how IP transit works, read our article What Is IP Transit and How Does It Work.
Conclusion
Understanding IP block sizes isn't just academic. It affects how you plan subnets, whether your BGP announcements will be accepted, how much address space you need to request, and how efficiently you can organize a network. IPv4's scarcity has made block sizing a careful exercise in conservation, while IPv6's abundance shifts the focus toward clean, hierarchical design.
Whether you're managing a single server or building out an infrastructure with dozens of nodes, knowing the difference between a /24 and a /48 will save you confusion down the road.
xTom offers dedicated servers, colocation, and IP transit for organizations that need reliable, well-connected infrastructure. V.PS provides NVMe-powered scalable KVM VPS hosting if you're looking for a flexible place to run your workloads. For smaller-scale needs, shared hosting is also available. You can browse all available services at here.
Ready to discuss your infrastructure needs? Contact our team to explore the right solution for your projects.
Frequently asked questions about IPv4 and IPv6 block sizes
What is the difference between a /24 and a /48?
A /24 is an IPv4 block containing 256 addresses, and it's the standard minimum allocation for routing on the public internet. A /48 is an IPv6 block containing 65,536 possible /64 subnets, and it's the standard minimum allocation for an end-site organization in IPv6. They serve conceptually similar roles in their respective protocols, but the scale is completely different.
What does the number after the slash mean in an IP address?
The number after the slash is the prefix length. It tells you how many bits of the address are fixed as the network identifier. The remaining bits are available for hosts or sub-allocation. A longer prefix (higher number) means a smaller block; a shorter prefix (lower number) means a larger block.
Why can't I announce a /25 on the internet?
Most networks filter BGP announcements more specific than a /24 to keep routing tables manageable. A /25 is "more specific" than a /24, meaning it's a smaller block carved out of a larger one. Many internet routers will simply drop the announcement, making your addresses unreachable from those networks. If you need to route a block publicly, make sure it's at least a /24.
How many usable hosts are in a /24?
A /24 contains 256 total addresses. In IPv4, two are reserved: the network address (the first) and the broadcast address (the last). That leaves 254 usable host addresses. In IPv6, the concept of broadcast doesn't exist, so technically all addresses in a /64 subnet are usable, though /128 is used for individual host assignments.
What is the smallest IPv6 block I can get?
For a single server or interface, you'd receive a /128. For a subnet, the standard is a /64. An end-site organization (like a business or a home customer) typically gets a /48 or /56 from their ISP, though this varies by provider. For your own BGP-routable block, you'd typically need at least a /48.
Why are IPv6 subnets always /64?
The /64 boundary in IPv6 is largely defined by SLAAC (Stateless Address Autoconfiguration), which allows devices to automatically generate their own addresses using the network's prefix plus a host identifier derived from the interface's MAC address. SLAAC requires exactly a /64 prefix to work correctly. Because SLAAC is a widely used and important feature, the IETF standardized /64 as the normal subnet size for IPv6, even though the address space would technically allow for much smaller subnets.
What is a /32 in IPv4 vs. IPv6?
In IPv4, a /32 is a single host address. In IPv6, a /32 is a massive block containing 65,536 /48 sub-allocations, and it's considered the minimum allocation for an ISP or large organization. The same notation means very different things depending on which protocol you're working with.