Subnetting¶
IP subnetting made easy by George Ou has a good overview, here is a summary.
The IP address is a 32 bit number which provides 0 to 4,294,967,295 unique addresses on a network. This is chopped up into 4 8-bit octets separated by a period.
0.0.0.0 to 0.0.0.255 is one octet which provide 256 addresses.
Subnetwork¶
Chopping a large network up into smaller pieces is subnetworking.
- beginning is always even, network id
- ending is always odd, broadcast id
- you can not use the network or broadcast id address, since they have special meaning
- 0.0.0.0/8 (0.0.0.0 to 0.255.255.255) not used
- 127.0.0.0/8 (127.0.0.0 to 127.255.255.255) used for loop back addresses
- Number of hosts: 2^bits - 2 where bits is the number of bits for the subnet and the -2 accounts for both the network and broadcast id’s
You need to chop along clean binary division as shown below:
Network Classes¶
Class | IP Range | Subnet Bits | Mask Bits | Notes |
---|---|---|---|---|
A | 0.0.0.0 to 127.255.255.255 | 24 | 8 | the first half of the address space |
B | 128.0.0.0 to 191.255.255.255 | 16 | 16 | half the remaining address space |
C | 192.0.0.0 to 223.255.255.255 | 8 | 24 | half the remaining address space |
D | 224.0.0.0 to 239.255.255.255 | undefined | undefined | half the remaining address space for multicast |
E | 240.0.0.0 to 255.255.255.255 | undefined | undefined | everything remaining |
Private Subnetworks¶
Class | Subnet Bits | Mask Bits | IP | IP Range | Number of Hosts |
---|---|---|---|---|---|
A | 24 | 8 | 10.0.0.0/8 | 10.0.0.0 to 10.255.255.255 | 16,777,216 |
B | 20 | 12 | 172.16.0.0/12 | 172.16.0.0 to 172.31.255.255 | 1,048,576 |
C | 16 | 16 | 192.168.0.0/16 | 192.168.0.0 to 192.168.255.255 | 65,536 |
C | 16 | 16 | 169.254.0.0/16 | 169.254.0.0 to 169.254.255.255 | 65,536 |
The 169.254.0.0 addresses are only used when DHCP server is not available.
Address Bits¶
- 8 bits = 256 addresses (254 hosts, minus the network and broadcast id’s)
- 9 bits = 512 addresses
- 10 bits = 1024 addresses
- 11 bits = 2048 addresses
Masks¶
Typical home networks use 192.168.0.0/16 where the 16 indicates a 16-bit mask giving addresses from 192.168.0.0 to 192.168.255.255. Since a complete mask is 32-bits and each octet is 8-bits each, 16-bits uses the bottom 2 octets or 192.168.x.x. An 8-bit mask would use the lower 3 octets or 192.x.x.x. A 24-bit mask would only use the bottom octet of the address range, or 192.168.1.x.
- 8-bit mask: 255.0.0.0
- 16-bit mask: 255.255.0.0
- 24-bit mask: 255.255.255.0
Calculator¶
IP address calculator Another one
192.168.0.1/16:
Address: 192.168.0.1 11000000.10101000 .00000000.00000001
Netmask: 255.255.0.0 = 16 11111111.11111111 .00000000.00000000
Wildcard: 0.0.255.255 00000000.00000000 .11111111.11111111
=>
Network: 192.168.0.0/16 11000000.10101000 .00000000.00000000 (Class C)
Broadcast: 192.168.255.255 11000000.10101000 .11111111.11111111
HostMin: 192.168.0.1 11000000.10101000 .00000000.00000001
HostMax: 192.168.255.254 11000000.10101000 .11111111.11111110
Hosts/Net: 65534 (Private Internet)
192.168.1.1/24:
Address: 192.168.1.1 11000000.10101000.00000001 .00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111 .00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000 .11111111
=>
Network: 192.168.1.0/24 11000000.10101000.00000001 .00000000 (Class C)
Broadcast: 192.168.1.255 11000000.10101000.00000001 .11111111
HostMin: 192.168.1.1 11000000.10101000.00000001 .00000001
HostMax: 192.168.1.254 11000000.10101000.00000001 .11111110
Hosts/Net: 254 (Private Internet)