Share our tools:

If you finished step 1 and 2, you now know that every IP address consists of 4 octets, 8 bits each and that every IP address, depending on the Class, is separated into a network part and a hosts part.

When working with big network environments like the internet or major WAN's (Wide Area Networks), the standard type of addressing can deplete the number of available IP addresses quickly. This is caused by i.e. the limitation of topologies, which is the number of host per segment. The standard addressing of a Class A network, would allow for 126 networks of 16,777,214 hosts. This makes a total of 2,113,928,964 (2 billion) hosts. For a network like the internet, neither the number of hosts or the number of networks is enough.

For this problem, subnetting can be a solution. Subnetting uses the available host bits and divides this part into a subnet part and a hosts part. So, the IP address is split up in a network, subnet and host part. This is used for administrative ease, i.e. by giving every department or geographical location it's own subnet. It also allows for mixing of different technologies such as Token Ring and EtherNet. Another advantage is the reduction of network traffic by segmenting the network.

The bits / octet for determining the subnet are located at the following positions (Bold marks the spot):

Class      Location of subnets octet
A               W.X.Y.Z
B               W.X.Y.Z
C               W.X.Y.Z

Subnetting, or splitting the hosts part, is possible by defining a subnet mask. To start your way in determining the subnet mask that is most suitable for you, determine the number of required subnets. Possible number of subnets are none, 2, 6, 14, 30, 62, 126 or 254. Convert the number of required subnets to binary. For example:

30 subnets = 00011110

Now, count from right to left the numbers until you reach the last bit set to one. In this case that is five bits. To form a subnet from this number, apply the number of bits on the subnet mask, from left to right. So, that would look like this:

5 bits from left to right = 11111000 binary = 248 in decimal.

By coverting the outcome to decimal value, you have determined the subnet mask bits. for a Class B IP address, to obtain 30 subnets, the subnet mask would be 255.255.248.0

A much faster way is to consult a list that shows you the right mask for the possible subnets, shown per Class, like the following list:

Class A Table

0        10000000     255.128.0.0     Invalid subnet
2        11000000     255.192.0.0     4,194,302
6        11100000     255.224.0.0     2,097,150
14       11110000     255.240.0.0     1,048,574
30       11111000     255.248.0.0     524,286
62       11111100     255.252.0.0     262,142
126      11111110     255.254.0.0     131,070
254      11111111     255.255.0.0     65,534

Class B Table

0        10000000     255..255.128.0    Invalid subnet
2        11000000     255.255.192.0     16,382
6        11100000     255.255.224.0     8,190
14       11110000     255.255.240.0     4,094
30       11111000     255.255.248.0     2,046
62       11111100     255.255.252.0     1,022
126      11111110     255.255.254.0     510
254      11111111     255.255.255.0     254

Class C Table

0        10000000     255.255.255.128     Invalid subnet
2        11000000     255.255.255.192     62
6        11100000     255.255.255.224     30
14       11110000     255.255.255.240     14
30       11111000     255.255.255.248     6
62       11111100     255.255.255.252     2
126      11111110     255.255.255.254     Invalid subnet
254      11111111     255.255.255.255     Invalid subnet

The different Classes all contain one or more invalid subnet remarks. These options are invalid because when used they would give all one's or all zero's. All one's or all zero's is not possible, because when ANDed, they would leave no subnet, or no hosts. Try to AND one of the Invalid subnet options and see what happens.

It is a general rule that the network and the hosts ID can not be all zero, which would indicate the 'Local network', or cannot all be one, which would indicate the broadcast address.