10.0.0.0/16
Private (RFC 1918) RFC 1918The 10.0.0.0/16 block offers 65,536 IP addresses and is one of the most common starting points for AWS VPC, Azure VNet, and on-premises subnetting schemes. It can be split into 256 /24 subnets.
Network address — the base address of the block (10.0.0.0). All devices in this subnet share this prefix. Cannot be assigned to a host.
Broadcast address — packets sent to 10.0.255.255 are delivered to every device in the subnet. Also reserved — not assignable.
Usable hosts — the 65,534 addresses between those two that you can assign to servers, VMs, or interfaces.
Subnet mask — 255.255.0.0 is the dotted-decimal equivalent of /16. Older tools and Cisco configs use this format instead of CIDR slash notation.
Full Details
| CIDR Notation | 10.0.0.0/16 |
| Network Address | 10.0.0.0 |
| Broadcast Address | 10.0.255.255 |
| Subnet Mask | 255.255.0.0 |
| Wildcard Mask | 0.0.255.255 |
| Prefix Length | /16 |
| IP Address Class | Class A |
| Total IP Addresses | 65,536 |
| Usable Host Addresses | 65,534 |
| First Usable IP | 10.0.0.1 |
| Last Usable IP | 10.0.255.254 |
| Network (Hex) | 0x0A000000 |
| Broadcast (Hex) | 0x0A00FFFF |
| Governing RFC | RFC 1918 |
| Address Type | Private (RFC 1918) |
Binary Representation
The first 16 bits (1s in the mask) identify the network. The remaining 16 bits identify hosts within the network.
Split into Equal Subnets
Split 10.0.0.0/16 into 2 equal /17 subnets (32,766 usable hosts each).
| # | CIDR | Network | First Usable | Last Usable | Broadcast | Hosts |
|---|---|---|---|---|---|---|
| 1 | 10.0.0.0/17 | 10.0.0.0 | 10.0.0.1 | 10.0.127.254 | 10.0.127.255 | 32,766 |
| 2 | 10.0.128.0/17 | 10.0.128.0 | 10.0.128.1 | 10.0.255.254 | 10.0.255.255 | 32,766 |
Split 10.0.0.0/16 into 4 equal /18 subnets (16,382 usable hosts each).
| # | CIDR | Network | First Usable | Last Usable | Broadcast | Hosts |
|---|---|---|---|---|---|---|
| 1 | 10.0.0.0/18 | 10.0.0.0 | 10.0.0.1 | 10.0.63.254 | 10.0.63.255 | 16,382 |
| 2 | 10.0.64.0/18 | 10.0.64.0 | 10.0.64.1 | 10.0.127.254 | 10.0.127.255 | 16,382 |
| 3 | 10.0.128.0/18 | 10.0.128.0 | 10.0.128.1 | 10.0.191.254 | 10.0.191.255 | 16,382 |
| 4 | 10.0.192.0/18 | 10.0.192.0 | 10.0.192.1 | 10.0.255.254 | 10.0.255.255 | 16,382 |
Split 10.0.0.0/16 into 8 equal /19 subnets (8,190 usable hosts each).
| # | CIDR | Network | First Usable | Last Usable | Broadcast | Hosts |
|---|---|---|---|---|---|---|
| 1 | 10.0.0.0/19 | 10.0.0.0 | 10.0.0.1 | 10.0.31.254 | 10.0.31.255 | 8,190 |
| 2 | 10.0.32.0/19 | 10.0.32.0 | 10.0.32.1 | 10.0.63.254 | 10.0.63.255 | 8,190 |
| 3 | 10.0.64.0/19 | 10.0.64.0 | 10.0.64.1 | 10.0.95.254 | 10.0.95.255 | 8,190 |
| 4 | 10.0.96.0/19 | 10.0.96.0 | 10.0.96.1 | 10.0.127.254 | 10.0.127.255 | 8,190 |
| 5 | 10.0.128.0/19 | 10.0.128.0 | 10.0.128.1 | 10.0.159.254 | 10.0.159.255 | 8,190 |
| 6 | 10.0.160.0/19 | 10.0.160.0 | 10.0.160.1 | 10.0.191.254 | 10.0.191.255 | 8,190 |
| 7 | 10.0.192.0/19 | 10.0.192.0 | 10.0.192.1 | 10.0.223.254 | 10.0.223.255 | 8,190 |
| 8 | 10.0.224.0/19 | 10.0.224.0 | 10.0.224.1 | 10.0.255.254 | 10.0.255.255 | 8,190 |
Split 10.0.0.0/16 into 16 equal /20 subnets (4,094 usable hosts each).
| # | CIDR | Network | First Usable | Last Usable | Broadcast | Hosts |
|---|---|---|---|---|---|---|
| 1 | 10.0.0.0/20 | 10.0.0.0 | 10.0.0.1 | 10.0.15.254 | 10.0.15.255 | 4,094 |
| 2 | 10.0.16.0/20 | 10.0.16.0 | 10.0.16.1 | 10.0.31.254 | 10.0.31.255 | 4,094 |
| 3 | 10.0.32.0/20 | 10.0.32.0 | 10.0.32.1 | 10.0.47.254 | 10.0.47.255 | 4,094 |
| 4 | 10.0.48.0/20 | 10.0.48.0 | 10.0.48.1 | 10.0.63.254 | 10.0.63.255 | 4,094 |
| 5 | 10.0.64.0/20 | 10.0.64.0 | 10.0.64.1 | 10.0.79.254 | 10.0.79.255 | 4,094 |
| 6 | 10.0.80.0/20 | 10.0.80.0 | 10.0.80.1 | 10.0.95.254 | 10.0.95.255 | 4,094 |
| 7 | 10.0.96.0/20 | 10.0.96.0 | 10.0.96.1 | 10.0.111.254 | 10.0.111.255 | 4,094 |
| 8 | 10.0.112.0/20 | 10.0.112.0 | 10.0.112.1 | 10.0.127.254 | 10.0.127.255 | 4,094 |
| 9 | 10.0.128.0/20 | 10.0.128.0 | 10.0.128.1 | 10.0.143.254 | 10.0.143.255 | 4,094 |
| 10 | 10.0.144.0/20 | 10.0.144.0 | 10.0.144.1 | 10.0.159.254 | 10.0.159.255 | 4,094 |
| 11 | 10.0.160.0/20 | 10.0.160.0 | 10.0.160.1 | 10.0.175.254 | 10.0.175.255 | 4,094 |
| 12 | 10.0.176.0/20 | 10.0.176.0 | 10.0.176.1 | 10.0.191.254 | 10.0.191.255 | 4,094 |
| 13 | 10.0.192.0/20 | 10.0.192.0 | 10.0.192.1 | 10.0.207.254 | 10.0.207.255 | 4,094 |
| 14 | 10.0.208.0/20 | 10.0.208.0 | 10.0.208.1 | 10.0.223.254 | 10.0.223.255 | 4,094 |
| 15 | 10.0.224.0/20 | 10.0.224.0 | 10.0.224.1 | 10.0.239.254 | 10.0.239.255 | 4,094 |
| 16 | 10.0.240.0/20 | 10.0.240.0 | 10.0.240.1 | 10.0.255.254 | 10.0.255.255 | 4,094 |
Common Use Cases
- → AWS VPC CIDR (common starting point)
- → Single-region cloud network with multiple subnets
- → Medium enterprise campus networks
Code Examples
# Terraform — AWS VPC with public + private subnets
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = { Name = "main" }
}
resource "aws_subnet" "public" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.0.0/24"
availability_zone = "us-east-1a"
map_public_ip_on_launch = true
tags = { Name = "public-us-east-1a" }
}
resource "aws_subnet" "private" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1a"
tags = { Name = "private-us-east-1a" }
}
# AWS CLI — create VPC and subnets VPC_ID=$(aws ec2 create-vpc --cidr-block 10.0.0.0/16 \ --query Vpc.VpcId --output text) aws ec2 create-subnet \ --vpc-id $VPC_ID \ --cidr-block 10.0.0.0/24 \ --availability-zone us-east-1a aws ec2 create-subnet \ --vpc-id $VPC_ID \ --cidr-block 10.0.1.0/24 \ --availability-zone us-east-1b