Subnetting can be the bane of the Cisco Student's life(no subnetting calculators allowed!) so here are some simple methods to make it go a lot smoother for you.
First off a little bit about subnetting. Subnetting is the process whereby you 'borrow' bits from the host portion of a network to reduce the number of possible hosts on each network while increasing the number of possible networks based on the original subnetwork. As an example if we have 192.168.1.0 and we needed 6 separate subnetworks with a maximum of 30 hosts per subnetwork we could borrow 3 bits from the host portion of the network address. Looking at it in bits it would appear like this
11000000.10100100.00000001.00000000 = 192.168.1.0(Original Network)
11000000.10100100.00000001.00000000(In CCNA curriculum this subnet is unused) 11000000.10100100.00000001.00100000 11000000.10100100.00000001.01000000 11000000.10100100.00000001.01100000 11000000.10100100.00000001.10000000 11000000.10100100.00000001.10100000 11000000.10100100.00000001.11000000 11000000.10100100.00000001.11100000(In CCNA curriculum this subnet is unused)
The red portion indicates the borrowed bits and what they would appear to be for each subnetwork. As you can see there are 8 in total but according to CCNA curriculum 2 are unusable, this isn't the time to debate what CCNA says since this is targeted towards CCNA students.
The CCNA Method that is taught is to look at this completely in a bit wise fashion and to use 2^bitsborrowed - 2 to determine the number of hosts and number of networks. For the example network above the two calculations would be 2^3-2=6 subnetworks and 2^3-2=30 hosts. By using a chart we can turn this into a simple lookup table that is easily recreated anytime you need it
As you have probably noticed there are a few subnetworks that are useless, 2 hosts and 1 host subnetworks are useless for anything. They are just included for completeness to show how the number progression continues. In addition to this you must remember to take 2 off the hosts column when you are using it to lookup. You can write it with the 2 already taken off but this way you are just halving the number each time which keeps a simple progression.
The table is created quite easily. The Hosts go down the left hand column and start at 256 and halve each time until they reach 1. The Subnet Mask is determined by simply adding on the previous Subnet Mask to the current number of hosts while the Subnetworks simply doubles each time until it reaches 256.
Now to use our table. If you take our previous example of 192.168.1.0 subnetted into 8 subnets each able to hold 30 hosts and look at our table we see in a row "32 224 4" This gives us all the information we need to actually complete our subnetting in one easy step. We have 30 hosts, a Subnet mask of 224(full subnet mask would be 255.255.255.224) and a total subnetworks of 4.
Now to find what each of those subnetwork addresses would be as well as the broadcast address for each subnetwork all we need to do is look at how many hosts we have. In this case we have 30 hosts per subnetwork. Effectively though there are 32 IP addresses on that range, but two are taken up already. One is the subnetwork address which is all 0's in the host portion and the other is the Broadcast address which is all 1's in the host portion. To work out each subnetwork all we need to know is that every 32 is a new subnetwork. So 192.168.1.0, 192.168.1.32, 192.168.1.64, 192.168.1.96, 192.168.1.128, 192.168.1.1.160, 192.168.1.192, 192.168.1.224.
Now we know the broadcast address is always the last IP address on a subnetwork so all we need to do is take away 1 from each subnetwork address to find out the previous subnetworks broadcast address. So 192.168.1.31, 192.168.1.63, 192.168.1.95, 192.168.1.127, 192.168.1.159, 192.168.1.191, 192.168.1.223, 192.168.1.255. This can also be achieved by taking away 1 from the total hosts and adding that onto the subnetwork address.
Once you have used this chart for awhile and drawn it up several times you will probably find that you have memorised it. Congratulations! At that point you can do all the subnetting in your head without external aids.
Some people may notice that this methodology isn't as useful when you go over 256 hosts by either starting with a Class C address or using Supernetting. The table can be extended fairly easily to include these scenarios. The Total number of Hosts just continues to double each time(256, 512, 1024, 2048 etc) while the subnet mask and the number of subnetworks just repeat again. So to give an example of an extended table that takes into account Class B addresses:
First off a little bit about subnetting. Subnetting is the process whereby you 'borrow' bits from the host portion of a network to reduce the number of possible hosts on each network while increasing the number of possible networks based on the original subnetwork. As an example if we have 192.168.1.0 and we needed 6 separate subnetworks with a maximum of 30 hosts per subnetwork we could borrow 3 bits from the host portion of the network address. Looking at it in bits it would appear like this
11000000.10100100.00000001.00000000 = 192.168.1.0(Original Network)
11000000.10100100.00000001.00000000(In CCNA curriculum this subnet is unused) 11000000.10100100.00000001.00100000 11000000.10100100.00000001.01000000 11000000.10100100.00000001.01100000 11000000.10100100.00000001.10000000 11000000.10100100.00000001.10100000 11000000.10100100.00000001.11000000 11000000.10100100.00000001.11100000(In CCNA curriculum this subnet is unused)
The red portion indicates the borrowed bits and what they would appear to be for each subnetwork. As you can see there are 8 in total but according to CCNA curriculum 2 are unusable, this isn't the time to debate what CCNA says since this is targeted towards CCNA students.
The CCNA Method that is taught is to look at this completely in a bit wise fashion and to use 2^bitsborrowed - 2 to determine the number of hosts and number of networks. For the example network above the two calculations would be 2^3-2=6 subnetworks and 2^3-2=30 hosts. By using a chart we can turn this into a simple lookup table that is easily recreated anytime you need it
Hosts | Subnet Mask/CIDR | SubNetworks |
256 | 0/24 | 1 |
128 | 128/25 | 2 |
64 | 192/26 | 4 |
32 | 224/27 | 8 |
16 | 240/28 | 16 |
8 | 248/29 | 32 |
4 | 252/30 | 64 |
2 | 254/31 | 128 |
1 | 255/32 | 256 |
The table is created quite easily. The Hosts go down the left hand column and start at 256 and halve each time until they reach 1. The Subnet Mask is determined by simply adding on the previous Subnet Mask to the current number of hosts while the Subnetworks simply doubles each time until it reaches 256.
Now to use our table. If you take our previous example of 192.168.1.0 subnetted into 8 subnets each able to hold 30 hosts and look at our table we see in a row "32 224 4" This gives us all the information we need to actually complete our subnetting in one easy step. We have 30 hosts, a Subnet mask of 224(full subnet mask would be 255.255.255.224) and a total subnetworks of 4.
Now to find what each of those subnetwork addresses would be as well as the broadcast address for each subnetwork all we need to do is look at how many hosts we have. In this case we have 30 hosts per subnetwork. Effectively though there are 32 IP addresses on that range, but two are taken up already. One is the subnetwork address which is all 0's in the host portion and the other is the Broadcast address which is all 1's in the host portion. To work out each subnetwork all we need to know is that every 32 is a new subnetwork. So 192.168.1.0, 192.168.1.32, 192.168.1.64, 192.168.1.96, 192.168.1.128, 192.168.1.1.160, 192.168.1.192, 192.168.1.224.
Now we know the broadcast address is always the last IP address on a subnetwork so all we need to do is take away 1 from each subnetwork address to find out the previous subnetworks broadcast address. So 192.168.1.31, 192.168.1.63, 192.168.1.95, 192.168.1.127, 192.168.1.159, 192.168.1.191, 192.168.1.223, 192.168.1.255. This can also be achieved by taking away 1 from the total hosts and adding that onto the subnetwork address.
Once you have used this chart for awhile and drawn it up several times you will probably find that you have memorised it. Congratulations! At that point you can do all the subnetting in your head without external aids.
Some people may notice that this methodology isn't as useful when you go over 256 hosts by either starting with a Class C address or using Supernetting. The table can be extended fairly easily to include these scenarios. The Total number of Hosts just continues to double each time(256, 512, 1024, 2048 etc) while the subnet mask and the number of subnetworks just repeat again. So to give an example of an extended table that takes into account Class B addresses:
Hosts | Subnet Mask/CIDR | Networks |
65536 | 0/16 | 1 |
32768 | 128/17 | 2 |
16384 | 192/18 | 4 |
8192 | 224/19 | 8 |
4096 | 240/20 | 16 |
2048 | 248/21 | 32 |
1024 | 252/22 | 64 |
512 | 254/23 | 128 |
256 | 0/24 | 256 |
128 | 128/25 | 2 |
64 | 192/26 | 4 |
32 | 224/27 | 8 |
16 | 240/28 | 16 |
8 | 248/29 | 32 |
4 | 252/30 | 64 |
2 | 254/31 | 128 |
1 | 255/32 | 256 |