Network engineers are constantly looking for ways to improve the security and efficiency of their IT networks. High latency can affect the user experience and security measures can have costly impacts on the organization.
And splitting the organization’s assets into different networks instead of one single large network achieves this. It reduces network collisions and computing demands from the devices and improves efficiency and improves the user experience. Keeping the devices separate also reduces the IT security risks for your organization.
VLANs and VXLANs are one way of doing this.
Another way of creating smaller networks is subnetting. But keeping the subnet IDs, subnet masks, and addresses all in your head can be a bit tricky. Here’s a refresher course/cheat sheet to help you out.
What is subnetting?
Subnetting is essentially creating smaller networks or subnetworks from a single large IP network.
As you may be aware, an IPV4 address is composed of 32 bits, divided into a network part and a host ID. (Each bit can either be a 1 or a 0). Depending on the class of IP address, the host ID may be 8 bits (class C) to 24 bits (class A). There are Class D and Class E as well, but they’re not commonly used.
For example, an IP address may look like
11000001.10101000.00000001.10011000
Each octet represents a number in binary, so this translates to
193.168.1.152
This is a class C IP address and 193.168.1.0 is the network portion and 0.0.0.152 is the host ID.
In this case, only 8 bits are available for the host ID, and 8 of these can only be either 1 or 0, which means we have 2^8 IP addresses available. The first and last addresses are reserved for the network address and broadcast address, so we can use only 254 addresses.
In subnetting, we borrow bits from the host ID to create smaller networks. These bits are then used to create subnet IDs.
For example, consider
193.168.1.0
11000001.10101000.00000001.00000000
From this by borrowing the first digit of the host ID we can create two new subnetworks (since the bits can only be 1 or 0) leaving 7 digits for the host ID.
Taking the above example, we can create two subnetworks
11000001.10101000.00000001.00000000
translating to
193.168.1.0
and
11000001.10101000.00000001.10000000
translating to
193.168.1.128
By borrowing the first two digits, we can create 4 subnetworks
11000001.10101000.00000001.00000000
translating to
193.168.1.0
11000001.10101000.00000001.01000000
translating to
193.168.1.64
11000001.10101000.00000001.10000000
translating to
193.168.1.128
11000001.10101000.00000001.11000000
translating to
193.168.1.192
In this case, we’ll have 6 bits for the host ID, and therefore we’ll get 2^6 - 2 or 62 host IDs per subnet (subtracting 2 for the network address and broadcast address).
Subnetting in IPV6
Here the IP address is 8 blocks of 16 bits each, for example,
0010000000000001:0000110110111000:1000010110100011:0000000000000000:0000000000000000:1000101000101110:0000001101110000:0111001100110100
This is usually expressed in hexadecimal format, with each block separated by a colon.
And the above example becomes
2001:0db8:85a3:0000:0000:8a2e:0370:7334
In IPV6, there are no address classes; the last 64 bits are always used for hosts. And the 16 bits before that are used for the subnets. You’ll always have 2^16 or 65536 subnets with IPV6.
What is subnet masking?
Now take a look at the above IP addresses. If you were presented with these IP addresses, will you be able to figure out if these were subnets or IP addresses? And if these were indeed subnets, can you figure out the host IDs and the network portions?
In the above situation where we take bits from the host ID to create subnet IDs, there’s no way for us (or the devices) to tell where the host ID begins and the subnet ID ends. This is where we use subnet masking.
A subnet mask is used to separate the part of IP address that shows the network and the part that shows the host ID.
So for
11000001.10101000.00000001.00000000
or
193.168.1.0
where the first bit of host ID is used to form the subnet ID
the subnet mask will be
11111111.11111111.11111111.10000000
or
255.255.255.128
And for
11000001.10101000.00000001.11000000
or
193.168.1.192
where the first two bits of host ID is used to form the subnet ID,
the subnet mask will be
11111111.11111111.11111111.11000000
or
255.255.255.192
So the first subnet will be represented as
193.168.1.0 255.255.255.128
and the second example will be represented as
193.168.1.192 255.255.255.192
You can also represent them as the subnet ID, followed by ‘/’ followed by the number of 1s in the subnet mask (or the number of bits in the network portion, including the subnet ID).
So 193.168.1.0 255.255.255.128
will be
193.168.1.0/25
And 193.168.1.192 255.255.255.192
will be
193.168.1.192/26
What is the minimum subnet size for a particular number of hosts?
As we discussed in the above example, the more bits we have for the subnet ID, the more hosts we get. And there’s a simple formula to find the number of usable hosts based on the host bits used.
Usable hosts = (2^n) - 2
n = number of host bits available.
We subtract 2 since we’ll need one each for the network address and the broadcast address.
To find the subnet mask for the same, we need to find the number of network bits available. For this, we subtract the number of host bits from 32. (Yes we’re really breaking this down)
Or simply
32 - n
For example, let’s say that we need 30 hosts.
2^3 = 8; won’t work
2^4 = 16; won’t work
2^5= 32; may work
32- 2 = we get 30 hosts
To find the subnet mask, we subtract
32 - 5 = 27
And the subnet mask is /27
Using an online subnetting calculator
Remembering how to calculate the subnet mask or subnet ID, finding out if two subnets are on the same network, etc are useful skills and worth practicing. But sometimes when you’re in a hurry or when you have other things in your mind, you don’t want to calculate these in your head.
An online subnetting calculator can help you out here. There are plenty of online subnetting calculators and tables. There are also plenty of apps that can help you with the same, in case you don’t want to switch tabs every now and then on your PC.
Frequently asked questions
What is subnetting?
Subnetting is simply dividing a large network into smaller sub networks for better network performance and security. For forming subnetworks In an IPV4 network, bits from host ID are used to form subnet IDs. In an IPV6 network, the 16 bits after the first 48 bits are used to form the subnet ID.
What is subnet masking or subnet masks?
Subnet masking or subnet masks are used to identify the network portion and the host ID of an IP network after subnetting. Subnet mask has the same number of bits as the IP address. And the bits corresponding to the network portion are all 1s and the bits corresponding to the host are all 0s. The subnet mask can also be represented by the number of bits in the network portion; for example if the network portion has 27 bits, the subnet mask is represented as /27.