# How to Subnet IPv4 Addresses? Beginner's Guide

This post provides information concerning the following topics:

In the previous post, we looked at how IPv4 addressing works, and the idea that it is possible to break a single large networks into multiple smaller networks for more flexibility in your network design. This article shows you how to perform this task. This is known as subnetting.

Note

Some students (and working IT professionals) are intimidated by subnetting because it deals with math; more specifically, binary math. While some people pick this up quickly, some take more time than others. And this is OK. Just keep practicing. The ability to subnet IPv4 addresses is a key skill that is required to pass the CCNA 200-301 exam. This makes some people nervous during an exam. Just remember that this is math, and therefore there has to be an absolute correct answer. If you follow the steps, you will come up with the correct answer. I always tell my students that subnetting and working with binary should be the easiest questions you have on an exam, because you know that if you follow the steps you will arrive at the correct answer. Keep calm, remember the rules, and you will be fine. After all, it’s just math, and math is easy.

Note

Remember from the previous article that there are network bits (N bits) and host bits (H bits) in an IPv4 address and they follow a specific pattern:

All 0s in host portion = network or subnetwork address

Combination of 1s and 0s in host portion = valid host address

To subnet a network address space, we will use the following formulae:

You have an address of 192.168.100.0 /24. You need nine subnets. What is the IP plan of network numbers, broadcast numbers, and valid host numbers? What is the subnet mask needed for this plan?

You cannot use N bits, only H bits. Therefore, ignore 192.168.100. These numbers cannot change. You only work with host bits. You need to borrow some host bits and turn them into network bits (or in this case, subnetwork bits; I use the variable N to refer to both network and subnetwork bits).

Step 1. Determine how many H bits you need to borrow to create nine valid subnets.

2N ≥ 9

N = 4, so you need to borrow 4 H bits and turn them into N bits.

Step 2. Determine the first subnet in binary.

Step 3. Convert binary to decimal.

Step 4. Determine the second subnet in binary.

Step 5. Convert binary to decimal.

Step 6. Create an IP plan table.

Notice a pattern? Counting by 16.

Step 7. Verify the pattern in binary. (The third subnet in binary is used here.)

Step 8. Finish the IP plan table.

Use any nine subnets—the rest are for future growth.

Step 9. Calculate the subnet mask. The default subnet mask for a Class C network is as follows:

1 = Network or subnetwork bit

0 = Host bit

You borrowed 4 bits; therefore, the new subnet mask is the following:

Note

You subnet a Class B network or a Class A network using exactly the same steps as for a Class C network; the only difference is that you start with more H bits.

You have an address of 172.16.0.0 /16. You need nine subnets. What is the IP plan of network numbers, broadcast numbers, and valid host numbers? What is the subnet mask needed for this plan?

You cannot use N bits, only H bits. Therefore, ignore 172.16. These numbers cannot change.

Step 1. Determine how many H bits you need to borrow to create nine valid subnets.

2N ≥ 9

N = 4, so you need to borrow 4 H bits and turn them into N bits.

Step 2. Determine the first valid subnet in binary (without using decimal points).

Step 3. Convert binary to decimal (replacing the decimal point in the binary numbers).

Step 4. Determine the second subnet in binary (without using decimal points).

Step 5. Convert binary to decimal (returning the decimal point in the binary numbers).

Step 6. Create an IP plan table.

Notice a pattern? Counting by 16.

Step 7. Verify the pattern in binary. (The third subnet in binary is used here.)

Step 8. Finish the IP plan table.

Use any nine subnets—the rest are for future growth.

Step 9. Calculate the subnet mask. The default subnet mask for a Class B network is as follows:

1 = Network or subnetwork bit

0 = Host bit

You borrowed 4 bits; therefore, the new subnet mask is the following:

Binary ANDing is the process of performing multiplication to two binary numbers. In the decimal numbering system, ANDing is addition: 2 and 3 equals 5. In decimal, there are an infinite number of answers when ANDing two numbers together. However, in the binary numbering system, the AND function yields only two possible outcomes, based on four different combinations. These outcomes, or answers, can be displayed in what is known as a truth table:

0 and 0 = 0

1 and 0 = 0

0 and 1 = 0

1 and 1 = 1

You use ANDing most often when comparing an IP address to its subnet mask. The end result of ANDing these two numbers together is to yield the network number of that address.

Question 1

What is the network number of the IP address 192.168.100.115 if it has a subnet mask of 255.255.255.240?

Step 1. Convert both the IP address and the subnet mask to binary:

```192.168.100.115 = 11000000.10101000.01100100.01110011
255.255.255.240 = 11111111.11111111.11111111.11110000```

Step 2. Perform the AND operation to each pair of bits—1 bit from the address ANDed to the corresponding bit in the subnet mask. Refer to the truth table for the possible outcomes.

```192.168.100.115 = 11000000.10101000.01100100.01110011
255.255.255.240 = 11111111.11111111.11111111.11110000
ANDed result    = 11000000.10101000.01100100.01110000```

Step 3. Convert the answer back into decimal:

```11000000.10101000.01100100.01110000 = 192.168.100.112
The IP address 192.168.100.115 belongs to the 192.168.100.112
network when a mask of 255.255.255.240 is used.```

Question 2

What is the network number of the IP address 192.168.100.115 if it has a subnet mask of 255.255.255.192?

(Notice that the IP address is the same as in Question 1, but the subnet mask is different. What answer do you think you will get? The same one? Let’s find out!)

Step 1. Convert both the IP address and the subnet mask to binary:

```192.168.100.115 = 11000000.10101000.01100100.01110011
255.255.255.192 = 11111111.11111111.11111111.11000000```

Step 2. Perform the AND operation to each pair of bits—1 bit from the address ANDed to the corresponding bit in the subnet mask. Refer to the truth table for the possible outcomes.

```192.168.100.115 = 11000000.10101000.01100100.01110011
255.255.255.192 = 11111111.11111111.11111111.11000000
ANDed result   = 11000000.10101000.01100100.01000000```

Step 3. Convert the answer back into decimal:

```11000000.10101000.01100100.01110000 = 192.168.100.64
The IP address 192.168.100.115 belongs to the 192.168.100.64
network when a mask of 255.255.255.192 is used.```

Good question. The best answer is to save you time when working with IP addressing and subnetting. If you are given an IP address and its subnet, you can quickly find out what subnetwork the address belongs to. From here, you can determine what other addresses belong to the same subnet. Remember that if two addresses are in the same network or subnetwork, they are considered to be local to each other and can therefore communicate directly with each other. Addresses that are not in the same network or subnetwork are considered to be remote to each other and must therefore have a Layer 3 device (like a router or Layer 3 switch) between them to communicate.

Question 3

Step 1. Convert both the IP address and the subnet mask to binary:

```192.168.100.164 = 11000000.10101000.01100100.10100100
255.255.255.248 = 11111111.11111111.11111111.11111000```

Step 2. Perform the AND operation to each pair of bits—1 bit from the address ANDed to the corresponding bit in the subnet mask. Refer to the truth table for the possible outcomes:

```192.168.100.164 = 11000000.10101000.01100100.10100100
255.255.255.248 = 11111111.11111111.11111111.11111000
ANDed result    = 11000000.10101000.01100100.10100000
= 192.168.100.160 (Subnetwork #)```

Step 3. Separate the network bits from the host bits:

```255.255.255.248 = /29. The first 29 bits are network/
subnetwork bits; therefore,
11000000.10101000.01100100.10100000. The last 3 bits are
host bits.```

Step 4. Change all host bits to 1. Remember that all 1s in the host portion are the broadcast number for that subnetwork.

`11000000.10101000.01100100.10100111`

```11000000.10101000.01100100.10100111 = 192.168.100.167
when the subnet mask is 255.255.255.248.```

Remember that I said ANDing is supposed to save you time when working with IP addressing and subnetting? Well, there are shortcuts when you AND two numbers together:

• An octet of all 1s in the subnet mask results in the answer being the same octet as in the IP address.

• An octet of all 0s in the subnet mask results in the answer being all 0s in that octet.

Question 4

To what network does 172.16.100.45 belong, if its subnet mask is 255.255.255.0?

172.16.100.0

Proof

Step 1. Convert both the IP address and the subnet mask to binary:

```172.16.100.45 = 10101100.00010000.01100100.00101101
255.255.255.0 = 11111111.11111111.11111111.00000000```

Step 2. Perform the AND operation to each pair of bits—1 bit from the address ANDed to the corresponding bit in the subnet mask. Refer to the truth table for the possible outcomes.

```172.16.100.45 = 10101100.00010000.01100100.00101101
255.255.255.0 = 11111111.11111111.11111111.00000000
10101100.00010000.01100100.00000000
= 172.16.100.0```

Notice that the first three octets have the same pattern both before and after they were ANDed. Therefore, any octet ANDed to a subnet mask pattern of 255 is itself! Notice that the last octet is all 0s after ANDing. But according to the truth table, anything ANDed to a 0 is a 0. Therefore, any octet ANDed to a subnet mask pattern of 0 is 0! You should only have to convert those parts of an IP address and subnet mask to binary if the mask is not 255 or 0.

Question 5

To what network does 68.43.100.18 belong if its subnet mask is 255.255.255.0?

68.43.100.0 (There is no need to convert here. The mask is either 255s or 0s.)

Question 6

To what network does 131.186.227.43 belong if its subnet mask is 255.255.240.0?

Based on the two shortcut rules, the answer should be

131.186.???.0

So now you only need to convert one octet to binary for the ANDing process:

227          = 11100011

240          = 11110000

11100000 = 224