- August 28, 2025
When I initially began studying for the CCNA 200-301 exam, I was enrolled in an instructor-led program that follows the material of Cisco's NetAcad course. This is an official course provided by Cisco for aspiring networking professionals to learn the material of the CCNA exam. This course is very well-known and widely taught, and it's where many networking professionals begin their studies.
However, a criticism that the NetAcad curriculum often receives is for its emphasis on rote procedures over conceptual understanding. Many topics, including subnetting, are presented in a prescriptive, step-by-step format that prioritizes passing the exam rather than fostering a deeper comprehension of how networks operate in practice.
The traditional subnetting approach in NetAcad relies heavily on binary conversion and bitwise operations. While this is a technically correct way of understanding subnetting, it doesn't have any practical utility or value for a real network engineer. Most concepts that are taught in NetAcad are things I could find a way to do on the spot, in my head. Subnetting was the first and one of the only challenges that couldn't receive this same treatment.
This is the conventional method that many beginners are taught:
1 — Converting the IPv4 to binary
Given — 192.168.10.77 /27:
Combined: 11000000 . 10101000 . 00001010 . 01001101
2 — Apply the same to the subnet mask
Combined: 11111111.11111111.11111111.11100000
3 — Perform a bitwise "AND"
4 — Determine block size
While the traditional subnetting process isn’t wrong, it’s just unnecessarily complex for most real-world situations. Here’s why:
The main purpose of this post is to demonstrate how one can both effectively perform subnetting and tackle a wide range of networking questions/scenarios while maximizing the most practical and realistic value. The method I'll be showing leverages a simple, memorized set of block sizes that can be used to quickly identify subnet masks, usable ranges, and broadcast addresses.
I'll start this section by showcasing how you can perform this starting with /25 - /32, and later on, for other ranges going into the third and second octet.
Here's the step by step guide for understanding it:
First, we're gonna skip the binary conversion altogether.
There's a very simple formula you can follow for this, however, I recommend you memorize these block sizes so you can always jot it down on the spot.
This gives us: 128, 64, 32, 16, 8, 4, 2, 1
These will be the # of addresses in each subnet.
Next, we're going to subtract each of these values from the 256 we got earlier:
This gives us: 128, 192, 224, 240, 248, 252, 254
These values will represent the subnet mask for that octet.
Lastly, you will want to list the CIDR notation starting from /25, and go up until you hit /32.
This will let us list everything out like this:
| CIDR | Subnet Mask | Block Size |
|---|---|---|
| /25 | .128 | 128 |
| /26 | .192 | 64 |
| /27 | .224 | 32 |
| /28 | .240 | 16 |
| /29 | .248 | 8 |
| /30 | .252 | 4 |
| /31 | .254 | 2 |
| /32 | .255 | 1 |
I highly recommend that you first memorize how to write this down. As you become better at subnetting, the subnet masks with their associated CIDR notation & block size will start to come very natural. You will reach a point where you can solve a majority of these questions without needing to write much down at all.
Lastly, always remember that the total # of addresses is not the total # of usable hosts. You will want to subtract 2 from the block size to get that value. (1 for the Network ID, and 1 for the Broadcast address.)
That's it, this reveals all of the info needed to subnet in the /25 - /32 range. Later on, I'll explain how you can expand this to be used for any range.
For the CCNA Exam in particular, you will not need to know how to subnet in any range beyond this.
Firstly, when I say any subnetting problem, I truly mean any subnetting problem.
As it pertains to the CCNA, the majority of the questions you will need to answer are related to router next-hop decisions, and identifying the correct subnet mask.
In this section I'll be going over the different types of questions you can expect and covering how you can answer them conveniently using my method.
This is the simplest type of problem you'll have relating to subnetting. These can be solved by simply using our cheat sheet as a reference without much additional calculation.
These are also the simplest questions you can expect to get on a Cisco exam pertaining to subnetting. A chunk of quiz questions will be simple tests at your knowledge like these ones.
What is the subnet mask for a /25 prefix?
Using our cheat sheet, we can see that the /25 is associated with the .128 subnet mask. (256 - 128 = .128)
✓ Answer: 255.255.255.128
What is the subnet mask 255.255.255.192 in CIDR notation?
Referencing our cheat sheet, we're able to see that a .192 subnet mask corresponds to the /26 CIDR notation
✓ Answer: /26
How many usable hosts are in a /30?
Referencing our cheat sheet, we know that the /30 CIDR notation has a block size of 4 (the total # of addresses).
Since the question is asking for the # of usable hosts, we'll need to subtract 2 from 4 (1 for the Broadcast IP and 1 for the Network ID)
4 - 2 = 2
✓ Answer: there are 2 usable hosts.
A company asks you to assign a subnet mask that supports no more than 30 hosts. What subnet mask is needed for this?
Referencing our cheat sheet block sizes, /27 is the first subnet mask that allows for 30 hosts (The block size being 32).
Since there are 32 addresses total, we'll need to subtract 2 to determine the amount of usable hosts.
32 - 2 = 30 , the exact amount of hosts needed for the network.
✓ Answer: 255.255.255.224
These are the 2nd simplest types of problems and the most common you'll have relating to subnetting. These are questions that require you to determine what subnetwork certain addresses belong to.
These questions rely on your knowledge and understanding of CIDR logic and subnet ranges.
While configuring an interface, you receive this error:
Router(config-if)# ip address 192.168.1.63 255.255.255.192
% Invalid mask
Problem: Why is this IP rejected?
Using our cheat sheet, we can see that a .192 subnet mask corresponds to /26 CIDR notation.
Since a /26 can only have 64 addresses (our block size), let's list out the possible subnetworks:
The address trying to be assigned is 192.168.1.63, and since .64 is the start of a new subnetwork, (Subnetwork #2) .63 is the last possible address for the .0 - .64 range
The last address will always be the broadcast address, since the # of usable addresses is determined by subtracting two from the total address amount (leaving us with 62)
✓ Because it's the broadcast address of the 192.168.1.0/26 network, it cannot be assigned. The actual usable host range is .1 - .62
A company provides you with the subnet 192.168.10.32/28 and gives you these instructions:
What addresses do you assign?
Since we're working with a /28 subnet mask, our corresponding block size is 16. We can identify the subnet ranges as so:
We can see that the subnet we were given falls in the .32 - .48 network. Because 192.168.10.32 is the network ID, .33 will be the first host in this network.
Since our block size is 16, 32 + 16 gives us 48, which is the start of the next subnet, we'll need to subtract 2 to get the last usable host address.
48 - 2 = .46, our last usable address.
Referencing our cheat sheet, we know that a /28 is a 255.255.255.240 subnet mask, so we would assign that to the interfaces as well.
Together, we now have:
.33 = First usable address, .46 Last usable address, and a .240 subnet mask.
Answer:
Which subnet does host 12.120.1.185/25 belong to?
Using our sheet, we know that /25 has a block size of 128.
Let's list out the possible subnets:
The host # is .185, which is right in between .128 and .256.
So we know that .185 is in the .128 subnet.
Answer: The host is in the 12.120.1.128 /25 subnet.
What is the broadcast address of the subnet 192.168.10.64/26?
Using our sheet, /26 = block size of 64.
Since we know our subnet range is .64 - .128 (The start of subnet #3), our last address will be .127.
Answer: The broadcast address is 192.168.10.127 /26
The following questions are likely going to be the hardest questions you'll get when first learning how to subnet.
You can also expect for these to be the highest ceiling questions on the CCNA 200-301 exam. (however, you can expect them to be rare.)
The purpose of these questions is to apply subnetting knowledge to practical network design problems from the ground-up.
You are given 192.168.1.0/24 by your company. You need subnets for:
All we'll do for VLSM is use different subnet masks to accommodate for different # of hosts under the same network.
For example, if I need 50 hosts, I will have to use a /26, since it has a block size of 64.
Since we can only subnet in powers of 2, we can't create a subnet with exactly 50 hosts, but /26 will give us what we need. Apply this to every network, and you're doing VLSM.
That's it. You've determined what subnet masks will be needed, all you need to do is allocate them.
NOTE: When allocating the subnets, you want to start with the lowest CIDR first, and work your way up, as seen here:
Answer:
You are given 172.16.0.0/24 by your company. You need subnets for:
We follow the same process: start with the largest block and work down, assigning subnet masks that meet or exceed the required host count.
For example, Research needs 60 hosts. The smallest block that can fit 60 is a /26 (64 total addresses, 62 usable).
Now allocate them sequentially from 172.16.0.0 onward:
Answer:
The reason I left out these further ranges for later is because you're less likely to come across them in beginner subnetting courses, and are not required for the CCNA exam. However the method that I introduced applies the exact same. The only caveat is shifting your focus to an earlier octet.
You'll typically see subnetting in the /17 - /24 range in larger enterprise networks, and are still a realistic range to know & learn.
/1 - /16 however, are much less common and usually reserved for route summarization or ISP allocations.
To expand our use, you'll simply want to list out the CIDR notations once again. As so:
| CIDR | CIDR | CIDR | Subnet Mask | Block Size |
|---|---|---|---|---|
| /9 | /17 | /25 | .128 | 128 |
| /10 | /18 | /26 | .192 | 64 |
| /11 | /19 | /27 | .224 | 32 |
| /12 | /20 | /28 | .240 | 16 |
| /13 | /21 | /29 | .248 | 8 |
| /14 | /22 | /30 | .252 | 4 |
| /15 | /23 | /31 | .254 | 2 |
| /16 | /24 | /32 | .255 | 1 |
After laying out the ranges in the table, notice that nothing about the math itself has changed. The only difference is where you start counting from.
Here are some important key notes & differences to keep in mind before I give examples:
Before, we were limited by the maximum # of addresses in a /24 (255), but now, we can go from 192.168.1.255, into 192.168.2.0, and it continues to be its own subnet.
The process for calculating hosts in these ranges is extremely intuitive and won't require much thought once you've understood it.
It's recommended that you have a calculator for this.
1 - Subtract the CIDR prefix of your subnet mask from 32.
For example, given /17 --> 32 - 17 = 15
2 - Then, raise 2 to the power of that result. -> 2^15 = 32,768 total addresses.
If you're wanting to calculate for usable hosts, simply subtract 2 like before.
Here are some example questions for subnetting in these ranges. The structure and nature of the questions all remain the same.
You are configuring a network with 10.0.0.0/18.
What is the subnet mask in dotted decimal notation for this network?
Referencing our sheet with the added CIDR notation, we can see that /18 is associated with the .192 subnet mask.
Since /18 indicates that we're working with the third octet, the subnet mask will be 255.255.192.0
Answer: 255.255.192.0
You are asked: "How many total addresses and usable hosts are available in a 172.16.0.0/19 network?"
Our process remains the same:
Step 1:
Subtract the CIDR notation itself from 32 (you will always need to do this).
32 - 19 = 13
Step 2:
Raise 2 to the power of the answer.
Total addresses = 2^13 = 8,192.
Subtract 2 for the # of usable hosts.
8,192 - 2 = 8,190
Answer: There are 8,190 usable hosts for 172.16.0.0/19.
Given the network 192.168.0.0/22, determine:
Step 1 — Identify associated subnet mask:
Step 2 — Identify the block size:
Step 3 — Find the network address:
Let's list out our possible subnetworks:
Remember that this is in the 3rd octet.
192.168.X.0
^
Now we know that 192.168.4.0 is the start of the next network.
Step 4 — Find the broadcast address:
Step 5 — Determine usable host range:
Answer:
Network = 192.168.0.0
Broadcast = 192.168.3.255
Usable range = 192.168.0.1 – 192.168.3.254
You are assigned 10.0.0.0/16 and need to create:
Assign the appropriate subnets.
Network A:
Our usual /24 can only cover 254 hosts, so we'll need to expand into the third octet.
If we go down to a /23 (with the block size of 2), this doubles our addresses, into 10.0.0.0 - 10.0.1.255
We can infer from doubling the amount, 255 x 2 = 510, that /23 will be enough to accommodate for the # of needed hosts.
Network B:
Since we need 200 hosts, we know we won't need to go into the third octet to accommodate for the amount needed. A single octet of 255 will work.
Since a /24 covers 255 without using anymore address space, we will have to use it for Network B.
Network C:
Using our sheet, we know the block size that will let us accommodate for at least 50 hosts is /26, so we will use it for Network C
Starting with the largest subnet first:
1. Network A: 10.0.0.0/23 --> covers 10.0.0.0 – 10.0.1.255
2. Network B: 10.0.2.0/24 --> covers 10.0.2.0 – 10.0.2.255
3. Network C: 10.0.3.0/26 --> covers 10.0.3.0 – 10.0.3.63
I wanted to make this post both to serve as a reference page for people learning to subnet and to highlight some of the difficulties and problems I had with learning how to subnet using NetAcad.
Subnetting is often seen as a very intimidating part of networking for many who are first learning, especially when it's primarily taught through rigid, step-by-step procedures that emphasize dogmatic steps over practical intuition and reasoning. Through my own experience preparing for the exam, I came to discover that this simpler method continued to prove itself reasonable and consistent across the board in subnetting exercises. To the point of never even thinking about binary, bits, or needing to write anything down.
Subnetting doesn’t have to be a barrier—with a different approach, it becomes a tool and process that can blend seamlessly into your workflow as an engineer or admin.
I recommend for those who're still learning, to use as many resources and practice questions as you can—and try to see if you can solve them using solely this method. I'm sure that as you get better, you'll find that you can extract all of the info you need just from practicing this approach. With enough practice, it becomes muscle memory.
Thank you to those who took the time to read, I hope it helps!
If you have any questions or suggestions regarding this post, you can contact me here.
Roman Todd — 08-28-25