Tools
Enter a block to see its range and how many addresses AWS leaves you. Add a second block to check for overlap, or split the block into subnets.
/16 and /28.
AWS reserves five addresses in every subnet: the first four and the last. In 10.0.1.0/24 that is
10.0.1.0 (network), 10.0.1.1 (VPC router), 10.0.1.2 (DNS),
10.0.1.3 (reserved for future use), and 10.0.1.255 (broadcast, which VPCs do not support).
A /24 has 256 addresses and 251 of them are yours.
The VPC block is one pool shared by all of its subnets, and each subnet loses its own five. Sixteen /24 subnets carved from a /20 give 16 × 251 = 4,016 usable addresses, not 4,096. An address belongs to a network interface, so an instance, a database, a load balancer node, or a Fargate task each uses at least one.
AWS recommends the three private ranges set aside by RFC 1918. Internet routers do not route them, which is why every network can reuse them. Public address space, by contrast, is assigned to one owner.
| Range | Addresses | Example |
|---|---|---|
| 10.0.0.0/8 | 16,777,216 | 10.0.0.0/16 |
| 172.16.0.0/12 | 1,048,576 | 172.20.0.0/16 |
| 192.168.0.0/16 | 65,536 | 192.168.0.0/20 |
10.0.0.0/16. What matters is that it does not overlap a network you connect to: VPC peering, a VPN to an office, or a Direct Connect gateway all need ranges that do not overlap. Two unconnected VPCs can use the same block.0.0.0.0/8, 127.0.0.0/8 (loopback), 169.254.0.0/16 (link-local), and 224.0.0.0/4 (multicast).172.31.0.0/16 is the default VPC in each region. 172.17.0.0/16 is Docker's default bridge network, and AWS documents Cloud9 and SageMaker AI using it too.100.64.0.0/10 shared address space. A /16 leaves room to grow, and a /20 is enough for many small subnets.
A CIDR block names a network, so the host bits must be zero. 11.1.5.100/24 is read as 11.1.5.0/24,
and the page tells you when it changed what you typed.