Thursday, 16 November 2017


Subnetting is the process of creating new networks (or subnets) by stealing
bits from the host portion of a subnet mask. There is one caveat: stealing bits
from hosts creates more networks but fewer hosts per network.
Consider the following Class C network:

The default subnet mask for this network is This single network can be segmented, or subnetted, into multiple networks. For example, assume a minimum of 10 new networks are required. Resolving this is possible using the following magical formula:
The exponent ‘n’ identifies the number of bits to steal from the host portion
of the subnet mask. The default Class C mask ( looks as
follows in binary:


There are a total of 24 bits set to 1, which are used to identify the network.
There are a total of 8 bits set to 0, which are used to identify the host, and
these host bits can be stolen.

Stealing bits essentially involves changing host bits (set to 0 or off) in the
subnet mask to network bits (set to 1 or on). Remember, network bits in a
subnet mask must always be contiguous - skipping bits is not allowed.
Consider the result if three bits are stolen. Using the above formula:

= 23
= 8 = 8 new networks created

However, a total of 8 new networks does not meet the original requirement
of at least 10 networks. Consider the result if four bits are stolen:
= 24
= 16 = 16 new networks created

A total of 16 new networks does meet the original requirement. Stealing four
host bits results in the following new subnet mask:
11111111.11111111.11111111.11110000 =
the previous example, a Class C network was subnetted to create 16 new
networks, using a subnet mask of (or /28 in CIDR). Four
bits were stolen in the subnet mask, leaving only four bits for hosts.
To determine the number of hosts this results in, for each of the new 16
networks, a slightly modified formula is required:

2n – 2
Consider the result if four bits are available for hosts:
2n – 2 = 24 – 2 = 16 – 2 = 14 usable hosts per network
Thus, subnetting a Class C network with a /28 mask creates 16 new
networks, with 14 usable hosts per network.
Why is the formula for calculating usable hosts 2n – 2? Because it is never
possible to assign a host an address with all 0 or all 1 bits in the host portion
of the address. These are reserved for the subnet and broadcast addresses,
respectively. Thus, every time a network is subnetted, useable host addresses
are lost.

The 2n-2 Rule and Subnetted Networks

To avoid confusion, it was historically unacceptable to use the first and last
new networks created when subnetting, as it is possible for a classful
network to have the same subnet and broadcast address as its subnetted
networks. This required the 2n – 2 formula to also be used when calculating
the number of new networks created while subnetting.
However, this is no longer a restriction for modern equipment and routing
protocols. Specifically, on Cisco IOS devices, the following command is
now enabled by default:
Router(config)# ip subnet-zero
The ip subnet-zero commands allows for the use of networks with all 0 or all
1 bits in the stolen network portion of the address. Thus, the formula for
calculating the number of new networks created is simply 2n.
Remember though, the formula for calculating usable hosts is always 2n – 2.

Determining the Range of Subnetted Networks:--

Determining the range of the newly created networks can be accomplished
using several methods. The long method involves some binary magic.
Consider the example network again, which was subnetted
using a mask: 11000000.10101000.11111110.00000000 11111111.11111111.11111111.11110000
Subnetting stole four bits in the fourth octet, creating a total of 16 new
networks. Looking at only the fourth octet, the first newly created network is
0000. The second new network is 0001. Calculating all possible
permutations of the four stolen bits:

Note that this equates to exactly 16 new networks. The decimal value
represents the first (or the subnet) address of each newly created network. To
determine the range for the hosts of the first new network:

The binary value has been split to emphasize the separation of the stolen
network bits from the host bits. The first address has all 0 bits in the host
portion (0000), and is the subnet address for this network. The last address
has all 1 bits in the host portion, and thus is the broadcast address for this
network. Note that there are exactly 14 usable addresses to assign to hosts.
Calculating the ranges of subnetted networks can quickly become tedious
when using the long binary method. The shortcut method involves taking the
subnet mask ( from the previous example), and subtracting
the subnetted octet (240) from 256.
256 – 240 = 16
Assuming ip subnet-zero is enabled, the first network will begin at 0. Then,
simply continue adding 16 to identify the first address of each new network:

Knowing the first address of each new network makes it simple to determine
the last address of each network:

Only the first 10 networks were calculated, for brevity. The first address of
each network becomes the subnet address for that network. The last address
of each network becomes the broadcast address for that network.
Once the first and last address of each network is known, determining the

usable range for hosts is straightforward:

Hosts on the same network (such as and can communicate freely.
Hosts on different networks (such as and
require a router to communicate.
Class A Subnetting Example
Consider the following subnetted Class A network:
Now consider the following questions:
• How many new networks were created?
• How many usable hosts are there per network?
• What is the full range of the first three networks?
By default, the network has a subnet mask of To
determine the number of bits stolen: 11111111.00000000.00000000.00000000 11111111.11111111.11111000.00000000
Clearly, 13 bits have been stolen to create the new subnet mask. To calculate
the total number of new networks:
= 213
= 8192 new networks created
There are clearly 11 bits remaining in the host portion of the mask:
2n – 2 = 211 – 2 = 2048 – 2 = 2046 usable hosts per network
Calculating the ranges is a bit tricky. Using the shortcut method, subtract the
third octet (248) of the subnet mask ( from 256.
256 – 248 = 8
The first network will begin at 0, again. However, the ranges are spread
across multiple octets. The ranges of the first three networks look as follows: