Chapter
3
Subnetting, Variable
Length Subnet
Masks (VLSMs), and
Troubleshooting

THE CCNA EXAM TOPICS COVERED IN THIS
CHAPTER INCLUDE THE FOLLOWING:

Describe how a network works

Interpret network

Implement an IP addressing scheme and IP Services to meet
network requirements in a medium-size Enterprise branch
office network

Describe the operation and benefits of using private and
public IP addressing

Implement static and dynamic addressing services for
hosts in a LAN environment

Calculate and apply an addressing scheme including
VLSM IP addressing design to a network

Determine the appropriate classless addressing scheme
using VLSM and summarization to satisfy addressing
requirements in a LAN/WAN environment

Identify and correct common problems associated with
IP addressing and host configurations
This chapter will pick up right where we left off in the last chapter.
We will continue our discussion of IP addressing.
We’ll start with subnetting an IP network. You’re going to
have to really apply yourself, because subnetting takes time and practice in order to nail it. So
be patient. Do whatever it takes to get this stuff dialed in. This chapter truly is important—
possibly the most important chapter in this book for you to understand.
I’ll thoroughly cover IP subnetting from the very beginning. I know this might sound weird
to you, but I think you’ll be much better off if you can try to forget everything you’ve learned
about subnetting before reading this chapter—especially if you’ve been to a Microsoft class!
After our discussion of IP subnetting, I’m going to tell you all about Variable Length
Subnet Masks (VLSMs), as well as show you how to design and implement a network
using VLSM networks.
Once you have mastered VLSM design and implementation, I’ll show you how to
summarize classful boundaries. We’ll go into this further in Chapter 7, “Enhanced IGRP
(EIGRP) and Open Shortest Path First (OSPF),” where I’ll demonstrate summarizing using
EIGRP and OSPF routing protocols.
I’ll wrap up the chapter by going over IP address troubleshooting and take you through the
steps Cisco recommends when troubleshooting an IP network.
So get psyched—you’re about to go for quite a ride! This chapter will truly help you understand
IP addressing and networking, so don’t get discouraged or give up. If you stick with it,
I promise that one day you’ll look back on this and you’ll be really glad you decided to hang
on. It’s one of those things that after you understand it, you’ll wonder why you once thought
it was so hard. Ready? Let’s go!
For up-to-the-minute updates for this chapter, please see
www.lammle.com
and/or
www.sybex.com
.
Subnetting Basics
In Chapter 2, you learned how to define and find the valid host ranges used in a Class A, Class B,
and Class C network address by turning the host bits all off and then all on. This is very good,
but here’s the catch: You were defining only one network. What happens if you wanted to take
one network address and create six networks from it? You would have to do something called
subnetting
, because that’s what allows you to take one larger network and break it into a bunch of
smaller networks.
Subnetting Basics
113
There are loads of reasons in favor of subnetting, including the following benefits:
Reduced network traffic
We all appreciate less traffic of any kind. Networks are no different.
Without trusty routers, packet traffic could grind the entire network down to a near
standstill. With routers, most traffic will stay on the local network; only packets destined for
other networks will pass through the router. Routers create broadcast domains. The more
broadcast domains you create, the smaller the broadcast domains and the less network traffic
on each network segment.
Optimized network performance
This is a result of reduced network traffic.
Simplified management
It’s easier to identify and isolate network problems in a group of
smaller connected networks than within one gigantic network.
Facilitated spanning of large geographical distances
Because WAN links are considerably
slower and more expensive than LAN links, a single large network that spans long distances
can create problems in every area previously listed. Connecting multiple smaller networks
makes the system more efficient.
In the following sections, I am going to move to subnetting a network address. This is the
good part—ready?
IP Subnet-Zero
IP subnet-zero
is not a new command, but in the past, Cisco courseware, and Cisco exam objectives,
didn’t cover it—but it certainly does now! This command allows you to use the first and last
subnet in your network design. For example, the Class C mask of 192 provides subnets 64 and 128
(discussed thoroughly later in this chapter), but with the
ip subnet-zero
command, you now get
to use subnets 0, 64, 128, and 192. That is two more subnets for every subnet mask we use.
Even though we don’t discuss the command line interface (CLI) until the next chapter,
“Cisco’s Internetworking Operating System (IOS) and Security Device Manager (SDM),” it’s
important for you to be familiar with this command:
P1R1#
sh running-config
Building configuration...
Current configuration : 827 bytes
!
hostname Pod1R1
!
ip subnet-zero
!
This router output shows that the command
ip subnet-zero
is enabled on the router.
Cisco has turned this command on by default starting with Cisco IOS version 12.
x
.
When studying for your Cisco exams, make sure you read very carefully and
understand if Cisco is asking you
not
to use
ip subnet-zero
. There are
instances where this may happen.
114
Chapter 3 
Subnetting, VLSMs, and Troubleshooting TCP/IP
How to Create Subnets
To create subnetworks, you take bits from the host portion of the IP address and reserve them
to define the subnet address. This means fewer bits for hosts, so the more subnets, the fewer
bits available for defining hosts.
Later in this chapter, you’ll learn how to create subnets, starting with Class C addresses.
But before you actually implement subnetting, you need to determine your current requirements
as well as plan for future conditions.
Before we move on to designing and creating a subnet mask, you need to
understand that in this first section, we will be discussing classful routing,
which means that all hosts (all nodes) in the network use the exact same subnet
mask. When we move on to Variable Length Subnet Masks (VLSMs), I’ll
discuss classless routing, which means that each network segment
can
use a
different subnet mask.
To create a subnet follow these steps:
1.
Determine the number of required network IDs:

One for each subnet

One for each wide area network connection
2.
Determine the number of required host IDs per subnet:

One for each TCP/IP host

One for each router interface
3.
Based on the above requirements, create the following:

One subnet mask for your entire network

A unique subnet ID for each physical segment

A range of host IDs for each subnet
Understanding the Powers of 2
Powers of 2 are important to understand and memorize for use with IP subnetting. To review
powers of 2, remember that when you see a number with another number to its upper right
(called an exponent), this means you should multiply the number by itself as many times as
the upper number specifies. For example, 2
3
is 2
×
2
×
2, which equals 8. Here’s a list of powers
of 2 that you should commit to memory:
2
1
= 2
2
2
= 4
2
3
= 8
Subnetting Basics
115
Subnet Masks
For the subnet address scheme to work, every machine on the network must know which part
of the host address will be used as the subnet address. This is accomplished by assigning a
subnet
mask
to each machine. A subnet mask is a 32-bit value that allows the recipient of IP packets to
distinguish the network ID portion of the IP address from the host ID portion of the IP address.
The network administrator creates a 32-bit subnet mask composed of 1s and 0s. The 1s in
the subnet mask represent the positions that refer to the network or subnet addresses.
Not all networks need subnets, meaning they use the default subnet mask. This is basically
the same as saying that a network doesn’t have a subnet address. Table 3.1 shows the default
subnet masks for Classes A, B, and C. These default masks cannot change. In other words, you
can’t make a Class B subnet mask read 255.0.0.0. If you try, the host will read that address
as invalid and usually won’t even let you type it in. For a Class A network, you can’t change
the first byte in a subnet mask; it must read 255.0.0.0 at a minimum. Similarly, you cannot
assign 255.255.255.255, as this is all 1s—a broadcast address. A Class B address must start
with 255.255.0.0, and a Class C has to start with 255.255.255.0.
2
4
= 16
2
5
= 32
2
6
= 64
2
7
= 128
2
8
= 256
2
9
= 512
2
10
= 1,024
2
11
= 2,048
2
12
= 4,096
2
13
= 8,192
2
14
= 16,384
Before you get stressed out about knowing all these exponents, remember that it’s helpful
to know them, but it’s not absolutely necessary. Here’s a little trick since you’re working
with 2s: Each successive power of 2 is double the previous one.
For example, all you have to do to remember the value of 2
9
is to first know that 2
8
= 256. Why?
Because when you double 2 to the eighth power (256), you get 2
9
(or 512). To determine the
value of 2
10
, simply start at 2
8
= 256, and then double it twice.
You can go the other way as well. If you needed to know what 2
6
is, for example, you just cut
256 in half two times: once to reach 2
7
and then one more time to reach 2
6
.
116
Chapter 3 
Subnetting, VLSMs, and Troubleshooting TCP/IP
Classless Inter-Domain Routing (CIDR)
Another term you need to familiarize yourself with is
Classless Inter-Domain Routing (CIDR)
.
It’s basically the method that ISPs (Internet service providers) use to allocate a number of
addresses to a company, a home—a customer. They provide addresses in a certain block size,
something I’ll be going into in greater detail later in this chapter.
When you receive a block of addresses from an ISP, what you get will look something like
this: 192.168.10.32/28. This is telling you what your subnet mask is. The slash notation (/)
means how many bits are turned on (1s). Obviously, the maximum could only be /32 because
a byte is 8 bits and there are 4 bytes in an IP address: (4
×
8 = 32). But keep in mind that the
largest subnet mask available (regardless of the class of address) can only be a /30 because
you’ve got to keep at least 2 bits for host bits.
Take, for example, a Class A default subnet mask, which is 255.0.0.0. This means that the
first byte of the subnet mask is all ones (1s), or 11111111. When referring to a slash notation,
you need to count all the 1s bits to figure out your mask. The 255.0.0.0 is considered a /8
because it has 8 bits that are 1s—that is, 8 bits that are turned on.
A Class B default mask would be 255.255.0.0, which is a /16 because 16 bits are ones (1s):
11111111.11111111.00000000.00000000.
Table 3.2 has a listing of every available subnet mask and its equivalent CIDR slash notation.
TABLE 3 . 1
Default Subnet Mask
Class Format Default Subnet Mask
A
network.node.node.node
255.0.0.0
B
network.network.node.node
255.255.0.0
C
network.network.network.node
255.255.255.0
TABLE 3 . 2
CIDR Values
Subnet Mask CIDR Value
255.0.0.0 /8
255.128.0.0 /9
255.192.0.0 /10
255.224.0.0 /11
255.240.0.0 /12
Subnetting Basics
117
The /8 through /15 can only be used with Class A network addresses. /16 through /23 can
be used by Class A and B network addresses. /24 through /30 can be used by Class A, B, and
C network addresses. This is a big reason why most companies use Class A network addresses.
Since they can use all subnet masks, they get the maximum flexibility in network design.
255.248.0.0 /13
255.252.0.0 /14
255.254.0.0 /15
255.255.0.0 /16
255.255.128.0 /17
255.255.192.0 /18
255.255.224.0 /19
255.255.240.0 /20
255.255.248.0 /21
255.255.252.0 /22
255.255.254.0 /23
255.255.255.0 /24
255.255.255.128 /25
255.255.255.192 /26
255.255.255.224 /27
255.255.255.240 /28
255.255.255.248 /29
255.255.255.252 /30
TABLE 3 . 2
CIDR Values
(continued)
Subnet Mask CIDR Value
118
Chapter 3 
Subnetting, VLSMs, and Troubleshooting TCP/IP
No, you cannot configure a Cisco router using this slash format. But wouldn’t
that be nice? Nevertheless, it’s
really
important for you to know subnet masks
in the slash notation (CIDR).
Subnetting Class C Addresses
There are many different ways to subnet a network. The right way is the way that works best
for you. In a Class C address, only 8 bits are available for defining the hosts. Remember that
subnet bits start at the left and go to the right, without skipping bits. This means that the only
Class C subnet masks can be the following:
Binary Decimal CIDR
---------------------------------------------------------
00000000 = 0 /24
10000000 = 128 /25
11000000 = 192 /26
11100000 = 224 /27
11110000 = 240 /28
11111000 = 248 /29
11111100 = 252 /30
We can’t use a /31 or /32 because we have to have at least 2 host bits for assigning IP addresses
to hosts. In the past, I never discussed the /25 in a Class C network. Cisco always had been concerned
with having at least 2 subnet bits, but now, because of Cisco recognizing the
ip subnetzero
command in its curriculum and exam objectives, we can use just 1 subnet bit.
In the following sections, I’m going to teach you an alternate method of subnetting that makes
it easier to subnet larger numbers in no time. Trust me, you need to be able to subnet fast!
Subnetting a Class C Address: The Fast Way!
When you’ve chosen a possible subnet mask for your network and need to determine the number
of subnets, valid hosts, and broadcast addresses of a subnet that the mask provides, all you
need to do is answer five simple questions:
 How many subnets does the chosen subnet mask produce?
 How many valid hosts per subnet are available?
 What are the valid subnets?
 What’s the broadcast address of each subnet?
 What are the valid hosts in each subnet?
Subnetting Basics 119
At this point, it’s important that you both understand and have memorized your powers of 2.
Please refer to the sidebar “Understanding the Powers of 2” earlier in this chapter if you need some
help. Here’s how you get the answers to those five big questions:
 How many subnets? 2x = number of subnets. x is the number of masked bits, or the 1s.
For example, in 11000000, the number of 1s gives us 22 subnets. In this example, there
are 4 subnets.
 How many hosts per subnet? 2y – 2 = number of hosts per subnet. y is the number of
unmasked bits, or the 0s. For example, in 11000000, the number of 0s gives us 26 – 2
hosts. In this example, there are 62 hosts per subnet. You need to subtract 2 for the subnet
address and the broadcast address, which are not valid hosts.
 What are the valid subnets? 256 – subnet mask = block size, or increment number. An
example would be 256 – 192 = 64. The block size of a 192 mask is always 64. Start counting
at zero in blocks of 64 until you reach the subnet mask value and these are your subnets.
0, 64, 128, 192. Easy, huh?
 What’s the broadcast address for each subnet? Now here’s the really easy part. Since we
counted our subnets in the last section as 0, 64, 128, and 192, the broadcast address is
always the number right before the next subnet. For example, the 0 subnet has a broadcast
address of 63 because the next subnet is 64. The 64 subnet has a broadcast address of 127
because the next subnet is 128. And so on. And remember, the broadcast address of the
last subnet is always 255.
 What are the valid hosts? Valid hosts are the numbers between the subnets, omitting the
all 0s and all 1s. For example, if 64 is the subnet number and 127 is the broadcast address,
then 65–126 is the valid host range—it’s always the numbers between the subnet address
and the broadcast address.
I know this can truly seem confusing. But it really isn’t as hard as it seems to be at first—
just hang in there! Why not try a few and see for yourself?
Subnetting Practice Examples: Class C Addresses
Here’s your opportunity to practice subnetting Class C addresses using the method I just
described. Exciting, isn’t it! We’re going to start with the first Class C subnet mask and work
through every subnet that we can using a Class C address. When we’re done, I’ll show you how
easy this is with Class A and B networks too!
Practice Example #1C: 255.255.255.128 (/25)
Since 128 is 10000000 in binary, there is only 1 bit for subnetting and 7 bits for hosts. We’re
going to subnet the Class C network address 192.168.10.0.
192.168.10.0 = Network address
255.255.255.128 = Subnet mask
Now, let’s answer the big five:
 How many subnets? Since 128 is 1 bit on (10000000), the answer would be 21 = 2.
 How many hosts per subnet? We have 7 host bits off (10000000), so the equation would
be 27 – 2 = 126 hosts.
120 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
 What are the valid subnets? 256 – 128 = 128. Remember, we’ll start at zero and count in
our block size, so our subnets are 0, 128.
 What’s the broadcast address for each subnet? The number right before the value of the
next subnet is all host bits turned on and equals the broadcast address. For the zero subnet,
the next subnet is 128, so the broadcast of the 0 subnet is 127.
 What are the valid hosts? These are the numbers between the subnet and broadcast
address. The easiest way to find the hosts is to write out the subnet address and the broadcast
address. This way, the valid hosts are obvious. The following table shows the 0 and
128 subnets, the valid host ranges of each, and the broadcast address of both subnets:
Before moving on to the next example, take a look at Figure 3.1. Okay, looking at a
Class C /25, it’s pretty clear there are two subnets. But so what—why is this significant?
Well actually, it’s not, but that’s not the right question. What you really want to know is
what you would do with this information!
FIGURE 3 . 1 Implementing a Class C /25 logical network
I know this isn’t exactly everyone’s favorite pastime, but it’s really important, so just hang in
there; we’re going to talk about subnetting—period. You need to know that the key to understanding
subnetting is to understand the very reason you need to do it. And I’m going to demonstrate
this by going through the process of building a physical network—and let’s add a router. (We now
have an internetwork, as I truly hope you already know!) All right, because we added that router,
in order for the hosts on our internetwork to communicate, they must now have a logical network
addressing scheme. We could use IPX or IPv6, but IPv4 is still the most popular, and it also just
happens to be what we’re studying at the moment, so that’s what we’re going with. Okay—now
take a look back to Figure 3.1. There are two physical networks, so we’re going to implement a logical
addressing scheme that allows for two logical networks. As always, it’s a really good idea to
Subnet 0 128
First host 1 129
Last host 126 254
Broadcast 127 255
.2 .3 .4 .130 .131 .132
Router#show ip route
[output cut]
C 192.168.10.0 is directly connected to Ethernet 0.
C 192.168.10.128 is directly connected to Ethernet 1.
192.168.10.0 .1 .129 192.168.10.128
Subnetting Basics 121
look ahead and consider likely growth scenarios—both short and long term, but for this example,
a /25 will do the trick.
Practice Example #2C: 255.255.255.192 (/26)
In this second example, we’re going to subnet the network address 192.168.10.0 using the
subnet mask 255.255.255.192.
192.168.10.0 = Network address
255.255.255.192 = Subnet mask
Now, let’s answer the big five:
 How many subnets? Since 192 is 2 bits on (11000000), the answer would be 22 = 4 subnets.
 How many hosts per subnet? We have 6 host bits off (11000000), so the equation would
be 26 – 2 = 62 hosts.
 What are the valid subnets? 256 – 192 = 64. Remember, we start at zero and count in our
block size, so our subnets are 0, 64, 128, and 192.
 What’s the broadcast address for each subnet? The number right before the value of the next
subnet is all host bits turned on and equals the broadcast address. For the zero subnet, the
next subnet is 64, so the broadcast address for the zero subnet is 63.
 What are the valid hosts? These are the numbers between the subnet and broadcast address.
The easiest way to find the hosts is to write out the subnet address and the broadcast address.
This way, the valid hosts are obvious. The following table shows the 0, 64, 128, and 192 subnets,
the valid host ranges of each, and the broadcast address of each subnet:
Okay, again, before getting into the next example, you can see that we can now subnet a /26.
And what are you going to do with this fascinating information? Implement it! We’ll use Figure 3.2
to practice a /26 network implementation.
The /26 mask provides four subnetworks, and we need a subnet for each router interface.
With this mask, in this example, we actually have room to add another router interface.
Practice Example #3C: 255.255.255.224 (/27)
This time, we’ll subnet the network address 192.168.10.0 and subnet mask 255.255.255.224.
192.168.10.0 = Network address
255.255.255.224 = Subnet mask
 How many subnets? 224 is 11100000, so our equation would be 23 = 8.
 How many hosts? 25 – 2 = 30.
 What are the valid subnets? 256 – 224 = 32. We just start at zero and count to the subnet
mask value in blocks (increments) of 32: 0, 32, 64, 96, 128, 160, 192, and 224.
The subnets (do this first) 0 64 128 192
Our first host (perform host addressing last) 1 65 129 193
Our last host 62 126 190 254
The broadcast address (do this second) 63 127 191 255
122 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
 What’s the broadcast address for each subnet (always the number right before the
next subnet)?
 What are the valid hosts (the numbers between the subnet number and the broadcast
address)?
FIGURE 3 . 2 Implementing a Class C /26 logical network
To answer the last two questions, first just write out the subnets, then write out the broadcast
addresses—the number right before the next subnet. Last, fill in the host addresses. The
following table gives you all the subnets for the 255.255.255.224 Class C subnet mask:
Practice Example #4C: 255.255.255.240 (/28)
Let’s practice on another one:
192.168.10.0 = Network address
255.255.255.240 = Subnet mask
 Subnets? 240 is 11110000 in binary. 24 = 16.
 Hosts? 4 host bits, or 24 – 2 = 14.
 Valid subnets? 256 – 240 = 16. Start at 0: 0 + 16 = 16. 16 + 16 = 32. 32 + 16 = 48. 48 + 16 =
64. 64 + 16 = 80. 80 + 16 = 96. 96 + 16 = 112. 112 + 16 = 128. 128 + 16 = 144. 144 +
16 = 160. 160 + 16 = 176. 176 + 16 = 192. 192 + 16 = 208. 208 + 16 = 224. 224 + 16 = 240.
The subnet address 0 32 64 96 128 160 192 224
The first valid host 1 33 65 97 129 161 193 225
The last valid host 30 62 94 126 158 190 222 254
The broadcast address 31 63 95 127 159 191 223 255
.66 .67 .68 .130 .131 .132
Router#show ip route
[output cut]
C 192.168.10.0 is directly connected to Ethernet 0
C 192.168.10.64 is directly connected to Ethernet 1
C 192.168.10.128 is directly connected to Ethernet 2
192.168.10.64
.2 .3 .4 .5
192.168.10.0
.65 .129 192.168.10.128
.1
Subnetting Basics 123
 Broadcast address for each subnet?
 Valid hosts?
To answer the last two questions, check out the following table. It gives you the subnets,
valid hosts, and broadcast addresses for each subnet. First, find the address of each subnet
using the block size (increment). Second, find the broadcast address of each subnet increment
(it’s always the number right before the next valid subnet), then just fill in the host addresses.
The following table shows the available subnets, hosts, and broadcast addresses provided
from a Class C 255.255.255.240 mask:
Cisco has figured out that most people cannot count in 16s and therefore have
a hard time finding valid subnets, hosts, and broadcast addresses with the
Class C 255.255.255.240 mask. You’d be wise to study this mask.
Practice Example #5C: 255.255.255.248 (/29)
Let’s keep practicing:
192.168.10.0 = Network address
255.255.255.248 = Subnet mask
 Subnets? 248 in binary = 11111000. 25 = 32.
 Hosts? 23 – 2 = 6.
 Valid subnets? 256 – 248 = 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120,
128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, and 248.
 Broadcast address for each subnet?
 Valid hosts?
Take a look at the following table. It shows some of the subnets (first four and last four
only), valid hosts, and broadcast addresses for the Class C 255.255.255.248 mask:
Subnet 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240
First host 1 17 33 49 65 81 97 113 129 145 161 177 193 209 225 241
Last host 14 30 46 62 78 94 110 126 142 158 174 190 206 222 238 254
Broadcast 15 31 47 63 79 95 111 127 143 159 175 191 207 223 239 255
Subnet 0 8 16 24 … 224 232 240 248
First host 1 9 17 25 … 225 233 241 249
Last host 6 14 22 30 … 230 238 246 254
Broadcast 7 15 23 31 … 231 239 247 255
124 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
Practice Example #6C: 255.255.255.252 (/30)
Just one more:
192.168.10.0 = Network address
255.255.255.252 = Subnet mask
 Subnets? 64.
 Hosts? 2.
 Valid subnets? 0, 4, 8, 12, etc., all the way to 252.
 Broadcast address for each subnet (always the number right before the next subnet)?
 Valid hosts (the numbers between the subnet number and the broadcast address)?
The following table shows you the subnet, valid host, and broadcast address of the first
four and last four subnets in the 255.255.255.252 Class C subnet:
Subnetting in Your Head: Class C Addresses
It really is possible to subnet in your head. Even if you don’t believe me, I’ll show you how.
And it’s not all that hard either—take the following example:
192.168.10.33 = Node address
255.255.255.224 = Subnet mask
Subnet 0 4 8 12 … 240 244 248 252
First host 1 5 9 13 … 241 245 249 253
Last host 2 6 10 14 … 242 246 250 254
Broadcast 3 7 11 15 … 243 247 251 255
Should We Really Use This Mask That Provides Only Two Hosts?
You are the network administrator for Acme Corporation in San Francisco, with dozens of
WAN links connecting to your corporate office. Right now your network is a classful network,
which means that the same subnet mask is on each host and router interface. You’ve read
about classless routing where you can have different size masks but don’t know what to use
on your point-to-point WAN links. Is the 255.255.255.252 (/30) a helpful mask in this situation?
Yes, this is a very helpful mask in wide area networks.
If you use the 255.255.255.0 mask, then each network would have 254 hosts, but you only use 2
addresses with a WAN link! That is a waste of 252 hosts per subnet. If you use the 255.255.255.252
mask, then each subnet has only 2 hosts and you don’t waste precious addresses. This is a really
important subject, one that we’ll address in a lot more detail in the section on VLSM network
design later in this chapter.
Subnetting Basics 125
First, determine the subnet and broadcast address of the above IP address. You can do this
by answering question 3 of the big five questions: 256 – 224 = 32. 0, 32, 64. The address of
33 falls between the two subnets of 32 and 64 and must be part of the 192.168.10.32 subnet.
The next subnet is 64, so the broadcast address of the 32 subnet is 63. (Remember that the
broadcast address of a subnet is always the number right before the next subnet.) The valid
host range is 33–62 (the numbers between the subnet and broadcast address). This is too easy!
Okay, let’s try another one. We’ll subnet another Class C address:
192.168.10.33 = Node address
255.255.255.240 = Subnet mask
What subnet and broadcast address is the above IP address a member of? 256 – 240 = 16.
0, 16, 32, 48. Bingo—the host address is between the 32 and 48 subnets. The subnet is
192.168.10.32, and the broadcast address is 47 (the next subnet is 48). The valid host range
is 33–46 (the numbers between the subnet number and the broadcast address).
Okay, we need to do more, just to make sure you have this down.
You have a node address of 192.168.10.174 with a mask of 255.255.255.240. What is the
valid host range?
The mask is 240, so we’d do a 256 – 240 = 16. This is our block size. Just keep adding 16
until we pass the host address of 174, starting at zero, of course: 0, 16, 32, 48, 64, 80, 96, 112,
128, 144, 160, 176. The host address of 174 is between 160 and 176, so the subnet is 160. The
broadcast address is 175; the valid host range is 161–174. That was a tough one.
One more—just for fun. This is the easiest one of all Class C subnetting:
192.168.10.17 = Node address
255.255.255.252 = Subnet mask
What subnet and broadcast address is the above IP address a member of? 256 – 252 = 0
(always start at zero unless told otherwise), 4, 8, 12, 16, 20, etc. You’ve got it! The host address
is between the 16 and 20 subnets. The subnet is 192.168.10.16, and the broadcast address is 19.
The valid host range is 17–18.
Now that you’re all over Class C subnetting, let’s move on to Class B subnetting. But before
we do, let’s have a quick review.
What Do We Know?
Okay—here’s where you can really apply what you’ve learned so far, and begin committing
it all to memory. This is a very cool section that I’ve been using in my classes for years. It will
really help you nail down subnetting!
When you see a subnet mask or slash notation (CIDR), you should know the following:
/25 What do we know about a /25?
 128 mask
 1 bits on and 7 bits off (10000000)
 Block size of 128
 2 subnets, each with 126 hosts
126 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
/26 What do we know about a /26?
 192 mask
 2 bits on and 6 bits off (11000000)
 Block size of 64
 4 subnets, each with 62 hosts
/27 What do we know about a /27?
 224 mask
 3 bits on and 5 bits off (11100000)
 Block size of 32
 8 subnets, each with 30 hosts
/28 What do we know about a /28?
 240 mask
 4 bits on and 4 bits off
 Block size of 16
 16 subnets, each with 14 hosts
/29 What do we know about a /29?
 248 mask
 5 bits on and 3 bits off
 Block size of 8
 32 subnets, each with 6 hosts
/30 What do we know about a /30?
 252 mask
 6 bits on and 2 bits off
 Block size of 4
 64 subnets, each with 2 hosts
Regardless of whether you have a Class A, Class B, or Class C address, the /30 mask will
provide you with only two hosts, ever. This mask is suited almost exclusively—as well as suggested
by Cisco—for use on point-to-point links.
If you can memorize this “What Do We Know?” section, you’ll be much better off in your
day-to-day job and in your studies. Try saying it out loud, which helps you memorize things—
yes, your significant other and/or coworkers will think you’ve lost it, but they probably
already do if you are in the networking field. And if you’re not yet in the networking field but
are studying all this to break into it, you might as well have people start thinking you’re an odd
bird now since they will eventually anyway.
Subnetting Basics 127
It’s also helpful to write these on some type of flashcards and have people test your skill.
You’d be amazed at how fast you can get subnetting down if you memorize block sizes as well
as this “What Do We Know?” section.
Subnetting Class B Addresses
Before we dive into this, let’s look at all the possible Class B subnet masks first. Notice that
we have a lot more possible subnet masks than we do with a Class C network address:
255.255.0.0 (/16)
255.255.128.0 (/17) 255.255.255.0 (/24)
255.255.192.0 (/18) 255.255.255.128 (/25)
255.255.224.0 (/19) 255.255.255.192 (/26)
255.255.240.0 (/20) 255.255.255.224 (/27)
255.255.248.0 (/21) 255.255.255.240 (/28)
255.255.252.0 (/22) 255.255.255.248 (/29)
255.255.254.0 (/23) 255.255.255.252 (/30)
We know the Class B network address has 16 bits available for host addressing. This means we
can use up to 14 bits for subnetting (because we have to leave at least 2 bits for host addressing).
Using a /16 means you are not subnetting with class B, but it is a mask you can use.
By the way, do you notice anything interesting about that list of subnet values—
a pattern, maybe? Ah ha! That’s exactly why I had you memorize the
binary-to-decimal numbers at the beginning of this section. Since subnet
mask bits start on the left and move to the right and bits can’t be skipped, the
numbers are always the same regardless of the class of address. Memorize
this pattern.
The process of subnetting a Class B network is pretty much the same as it is for a Class C,
except that you just have more host bits and you start in the third octet.
Use the same subnet numbers for the third octet with Class B that you used for the fourth
octet with Class C, but add a zero to the network portion and a 255 to the broadcast section
in the fourth octet. The following table shows you an example host range of two subnets used
in a Class B 240 (/20) subnet mask:
Just add the valid hosts between the numbers, and you’re set!
The preceding example is true only until you get up to /24. After that, it’s
numerically exactly like Class C.
First subnet 16.0 32.0
Second subnet 31.255 47.255
128 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
Subnetting Practice Examples: Class B Addresses
This section will give you an opportunity to practice subnetting Class B addresses. Again, I
have to mention that this is the same as subnetting with Class C, except we start in the third
octet—with the exact same numbers!
Practice Example #1B: 255.255.128.0 (/17)
172.16.0.0 = Network address
255.255.128.0 = Subnet mask
 Subnets? 21 = 2 (same as Class C).
 Hosts? 215 – 2 = 32,766 (7 bits in the third octet, and 8 in the fourth).
 Valid subnets? 256 – 128 = 128. 0, 128. Remember that subnetting is performed in the
third octet, so the subnet numbers are really 0.0 and 128.0, as shown in the next table.
These are the exact numbers we used with Class C; we use them in the third octet and add
a 0 in the fourth octet for the network address.
 Broadcast address for each subnet?
 Valid hosts?
The following table shows the two subnets available, the valid host range, and the broadcast
address of each:
Okay, notice that we just added the fourth octet’s lowest and highest values and came up
with the answers. And again, it’s done exactly the same way as for a Class C subnet. We just
use the same numbers in the third octet and added 0 and 255 in the fourth octet—pretty simple
huh! I really can’t say this enough: It’s just not hard; the numbers never change; we just use
them in different octets!
Practice Example #2B: 255.255.192.0 (/18)
172.16.0.0 = Network address
255.255.192.0 = Subnet mask
 Subnets? 22 = 4.
 Hosts? 214 – 2 = 16,382 (6 bits in the third octet, and 8 in the fourth).
 Valid subnets? 256 – 192 = 64. 0, 64, 128, 192. Remember that the subnetting is performed
in the third octet, so the subnet numbers are really 0.0, 64.0, 128.0, and 192.0,
as shown in the next table.
 Broadcast address for each subnet?
 Valid hosts?
Subnet 0.0 128.0
First host 0.1 128.1
Last host 127.254 255.254
Broadcast 127.255 255.255
Subnetting Basics 129
The following table shows the four subnets available, the valid host range, and the broadcast
address of each:
Again, it’s pretty much the same as it is for a Class C subnet—we just added 0 and 255 in
the fourth octet for each subnet in the third octet.
Practice Example #3B: 255.255.240.0 (/20)
172.16.0.0 = Network address
255.255.240.0 = Subnet mask
 Subnets? 24 = 16.
 Hosts? 212 – 2 = 4094.
 Valid subnets? 256 – 240 = 0, 16, 32, 48, etc., up to 240. Notice that these are the same
numbers as a Class C 240 mask – we just put them in the third octet and add a 0 and 255
in the fourth octet.
 Broadcast address for each subnet?
 Valid hosts?
The following table shows the first four subnets, valid hosts, and broadcast addresses in a
Class B 255.255.240.0 mask:
Practice Example #4B: 255.255.254.0 (/23)
172.16.0.0 = Network address
255.255.254.0 = Subnet mask
 Subnets? 27 = 128.
 Hosts? 29 – 2 = 510.
 Valid subnets? 256 – 254 = 0, 2, 4, 6, 8, etc., up to 254.
 Broadcast address for each subnet?
 Valid hosts?
Subnet 0.0 64.0 128.0 192.0
First host 0.1 64.1 128.1 192.1
Last host 63.254 127.254 191.254 255.254
Broadcast 63.255 127.255 191.255 255.255
Subnet 0.0 16.0 32.0 48.0
First host 0.1 16.1 32.1 48.1
Last host 15.254 31.254 47.254 63.254
Broadcast 15.255 31.255 47.255 63.255
130 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
The following table shows the first five subnets, valid hosts, and broadcast addresses in a
Class B 255.255.254.0 mask:
Practice Example #5B: 255.255.255.0 (/24)
Contrary to popular belief, 255.255.255.0 used with a Class B network address is not called a
Class B network with a Class C subnet mask. It’s amazing how many people see this mask used
in a Class B network and think it’s a Class C subnet mask. This is a Class B subnet mask with
8 bits of subnetting—it’s considerably different from a Class C mask. Subnetting this address is
fairly simple:
172.16.0.0 = Network address
255.255.255.0 = Subnet mask
 Subnets? 28 = 256.
 Hosts? 28 – 2 = 254.
 Valid subnets? 256 – 255 = 1. 0, 1, 2, 3, etc., all the way to 255.
 Broadcast address for each subnet?
 Valid hosts?
The following table shows the first four and last two subnets, the valid hosts, and the
broadcast addresses in a Class B 255.255.255.0 mask:
Practice Example #6B: 255.255.255.128 (/25)
This is one of the hardest subnet masks you can play with. And worse, it actually is a really
good subnet to use in production because it creates over 500 subnets with 126 hosts for each
subnet—a nice mixture. So, don’t skip over it!
172.16.0.0 = Network address
255.255.255.128 = Subnet mask
Subnet 0.0 2.0 4.0 6.0 8.0
First host 0.1 2.1 4.1 6.1 8.1
Last host 1.254 3.254 5.254 7.254 9.254
Broadcast 1.255 3.255 5.255 7.255 9.255
Subnet 0.0 1.0 2.0 3.0 ... 254.0 255.0
First host 0.1 1.1 2.1 3.1 ... 254.1 255.1
Last host 0.254 1.254 2.254 3.254 ... 254.254 255.254
Broadcast 0.255 1.255 2.255 3.255 ... 254.255 255.255
Subnetting Basics 131
 Subnets? 29 = 512.
 Hosts? 27 – 2 = 126.
 Valid subnets? Okay, now for the tricky part. 256 – 255 = 1. 0, 1, 2, 3, etc. for the third
octet. But you can’t forget the one subnet bit used in the fourth octet. Remember when I
showed you how to figure one subnet bit with a Class C mask? You figure this the same
way. (Now you know why I showed you the 1-bit subnet mask in the Class C section—
to make this part easier.) You actually get two subnets for each third octet value, hence
the 512 subnets. For example, if the third octet is showing subnet 3, the two subnets
would actually be 3.0 and 3.128.
 Broadcast address for each subnet?
 Valid hosts?
The following table shows how you can create subnets, valid hosts, and broadcast
addresses using the Class B 255.255.255.128 subnet mask (the first eight subnets are shown,
and then the last two subnets):
Practice Example #7B: 255.255.255.192 (/26)
Now, this is where Class B subnetting gets easy. Since the third octet has a 255 in the mask
section, whatever number is listed in the third octet is a subnet number. However, now that
we have a subnet number in the fourth octet, we can subnet this octet just as we did with
Class C subnetting. Let’s try it out:
172.16.0.0 = Network address
255.255.255.192 = Subnet mask
 Subnets? 210 = 1024.
 Hosts? 26 – 2 = 62.
 Valid subnets? 256 – 192 = 64. The subnets are shown in the following table. Do these
numbers look familiar?
 Broadcast address for each subnet?
 Valid hosts?
Subnet 0.0 0.128 1.0 1.128 2.0 2.128 3.0 3.128 ... 255.0 255.128
First
host
0.1 0.129 1.1 1.129 2.1 2.129 3.1 3.129 ... 255.1 255.129
Last
host
0.126 0.254 1.126 1.254 2.126 2.254 3.126 3.254 ... 255.126 255.254
Broadcast
0.127 0.255 1.127 1.255 2.127 2.255 3.127 3.255 ... 255.127 255.255
132 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
The following table shows the first eight subnet ranges, valid hosts, and broadcast
addresses:
Notice that for each subnet value in the third octet, you get subnets 0, 64, 128, and 192 in
the fourth octet.
Practice Example #8B: 255.255.255.224 (/27)
This is done the same way as the preceding subnet mask, except that we just have more subnets
and fewer hosts per subnet available.
172.16.0.0 = Network address
255.255.255.224 = Subnet mask
 Subnets? 211 = 2048.
 Hosts? 25 – 2 = 30.
 Valid subnets? 256 – 224 = 32. 0, 32, 64, 96, 128, 160, 192, 224.
 Broadcast address for each subnet?
 Valid hosts?
The following table shows the first eight subnets:
This next table shows the last eight subnets:
Subnet 0.0 0.64 0.128 0.192 1.0 1.64 1.128 1.192
First host 0.1 0.65 0.129 0.193 1.1 1.65 1.129 1.193
Last host 0.62 0.126 0.190 0.254 1.62 1.126 1.190 1.254
Broadcast 0.63 0.127 0.191 0.255 1.63 1.127 1.191 1.255
Subnet 0.0 0.32 0.64 0.96 0.128 0.160 0.192 0.224
First host 0.1 0.33 0.65 0.97 0.129 0.161 0.193 0.225
Last host 0.30 0.62 0.94 0.126 0.158 0.190 0.222 0.254
Broadcast 0.31 0.63 0.95 0.127 0.159 0.191 0.223 0.255
Subnet 255.0 255.32 255.64 255.96 255.128 255.160 255.192 255.224
First host 255.1 255.33 255.65 255.97 255.129 255.161 255.193 255.225
Last host 255.30 255.62 255.94 255.126 255.158 255.190 255.222 255.254
Broadcast 255.31 255.63 255.95 255.127 255.159 255.191 255.223 255.255
Subnetting Basics 133
Subnetting in Your Head: Class B Addresses
Are you nuts? Subnet Class B addresses in our heads? It’s actually easier than writing it out—
I’m not kidding! Let me show you how:
Question: What subnet and broadcast address is the IP address 172.16.10.33
255.255.255.224 (/27) a member of?
Answer: The interesting octet is the fourth octet. 256 – 224 = 32. 32 + 32 = 64. Bingo: 33
is between 32 and 64. However, remember that the third octet is considered part of the
subnet, so the answer would be the 10.32 subnet. The broadcast is 10.63, since 10.64 is
the next subnet. That was a pretty easy one.
Question: What subnet and broadcast address is the IP address 172.16.66.10
255.255.192.0 (/18) a member of?
Answer: The interesting octet is the third octet instead of the fourth octet. 256 – 192 = 64.
0, 64, 128. The subnet is 172.16.64.0. The broadcast must be 172.16.127.255 since
128.0 is the next subnet.
Question: What subnet and broadcast address is the IP address 172.16.50.10
255.255.224.0 (/19) a member of?
Answer: 256 – 224 = 0, 32, 64 (remember, we always start counting at zero (0)). The subnet
is 172.16.32.0, and the broadcast must be 172.16.63.25 since 64.0 is the next subnet.
Question: What subnet and broadcast address is the IP address 172.16.46.255
255.255.240.0 (/20) a member of?
Answer: 256 – 240 = 16. The third octet is interesting to us. 0, 16, 32, 48. This subnet
address must be in the 172.16.32.0 subnet, and the broadcast must be 172.16.47.255
since 48.0 is the next subnet. So, yes, 172.16.46.255 is a valid host.
Question: What subnet and broadcast address is the IP address 172.16.45.14
255.255.255.252 (/30) a member of?
Answer: Where is the interesting octet? 256 – 252 = 0, 4, 8, 12, 16 (in the fourth octet).
The subnet is 172.16.45.12, with a broadcast of 172.16.45.15 because the next subnet is
172.16.45.16.
Question: What is the subnet and broadcast address of the host 172.16.88.255/20?
Answer: What is a /20? If you can’t answer this, you can’t answer this question, can you?
A /20 is 255.255.240.0, which gives us a block size of 16 in the third octet, and since no
subnet bits are on in the fourth octet, the answer is always 0 and 255 in the fourth octet.
0, 16, 32, 48, 64, 80, 96…bingo. 88 is between 80 and 96, so the subnet is 80.0 and the
broadcast address is 95.255.
Question: A router receives a packet on an interface with a destination address of
172.16.46.191/26. What will the router do with this packet?
Answer: Discard it. Do you know why? 172.16.46.191/26 is a 255.255.255.192 mask,
which gives us a block size of 64. Our subnets are then 0, 64, 128, 192. 191 is the broadcast
address of the 128 subnet, so a router, by default, will discard any broadcast packets.
134 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
Subnetting Class A Addresses
Class A subnetting is not performed any differently than Classes B and C, but there are 24 bits
to play with instead of the 16 in a Class B address and the 8 in a Class C address.
Let’s start by listing all the Class A masks:
255.0.0.0 (/8)
255.128.0.0 (/9) 255.255.240.0 (/20)
255.192.0.0 (/10) 255.255.248.0 (/21)
255.224.0.0 (/11) 255.255.252.0 (/22)
255.240.0.0 (/12) 255.255.254.0 (/23)
255.248.0.0 (/13) 255.255.255.0 (/24)
255.252.0.0 (/14) 255.255.255.128 (/25)
255.254.0.0 (/15) 255.255.255.192 (/26)
255.255.0.0 (/16) 255.255.255.224 (/27)
255.255.128.0 (/17) 255.255.255.240 (/28)
255.255.192.0 (/18) 255.255.255.248 (/29)
255.255.224.0 (/19) 255.255.255.252 (/30)
That’s it. You must leave at least 2 bits for defining hosts. And I hope you can see the pattern
by now. Remember, we’re going to do this the same way as a Class B or C subnet. It’s just
that, again, we simply have more host bits and we just use the same subnet numbers we used
with Class B and C, but we start using these numbers in the second octet.
Subnetting Practice Examples: Class A Addresses
When you look at an IP address and a subnet mask, you must be able to distinguish the bits
used for subnets from the bits used for determining hosts. This is imperative. If you’re still
struggling with this concept, please reread the section “IP Addressing” in Chapter 2. It shows
you how to determine the difference between the subnet and host bits and should help clear
things up.
Practice Example #1A: 255.255.0.0 (/16)
Class A addresses use a default mask of 255.0.0.0, which leaves 22 bits for subnetting since
you must leave 2 bits for host addressing. The 255.255.0.0 mask with a Class A address is
using 8 subnet bits.
 Subnets? 28 = 256.
 Hosts? 216 – 2 = 65,534.
 Valid subnets? What is the interesting octet? 256 – 255 = 1. 0, 1, 2, 3, etc. (all in the
second octet). The subnets would be 10.0.0.0, 10.1.0.0, 10.2.0.0, 10.3.0.0, etc., up to
10.255.0.0.
Subnetting Basics 135
 Broadcast address for each subnet?
 Valid hosts?
The following table shows the first two and last two subnets, valid host range, and broadcast
addresses for the private Class A 10.0.0.0 network:
Practice Example #2A: 255.255.240.0 (/20)
255.255.240.0 gives us 12 bits of subnetting and leaves us 12 bits for host addressing.
 Subnets? 212 = 4096.
 Hosts? 212 – 2 = 4094.
 Valid subnets? What is your interesting octet? 256 – 240 = 16. The subnets in the second
octet are a block size of 1 and the subnets in the third octet are 0, 16, 32, etc.
 Broadcast address for each subnet?
 Valid hosts?
The following table shows some examples of the host ranges—the first three and the
last subnets:
Practice Example #3A: 255.255.255.192 (/26)
Let’s do one more example using the second, third, and fourth octets for subnetting.
 Subnets? 218 = 262,144.
 Hosts? 26 – 2 = 62.
 Valid subnets? In the second and third octet, the block size is 1, and in the fourth octet,
the block size is 64.
 Broadcast address for each subnet?
 Valid hosts?
Subnet 10.0.0.0 10.1.0.0 … 10.254.0.0 10.255.0.0
First host 10.0.0.1 10.1.0.1 … 10.254.0.1 10.255.0.1
Last host 10.0.255.254 10.1.255.254 … 10.254.255.254 10.255.255.254
Broadcast 10.0.255.255 10.1.255.255 … 10.254.255.255 10.255.255.255
Subnet 10.0.0.0 10.0.16.0 10.0.32.0 … 10.255.240.0
First host 10.0.0.1 10.0.16.1 10.0.32.1 … 10.255.240.1
Last host 10.0.15.254 10.0.31.254 10.0.47.254 … 10.255.255.254
Broadcast 10.0.15.255 10.0.31.255 10.0.47.255 … 10.255.255.255
136 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
The following table shows the first four subnets and their valid hosts and broadcast
addresses in the Class A 255.255.255.192 mask:
The following table shows the last four subnets and their valid hosts and broadcast
addresses:
Subnetting in Your Head: Class A Addresses
This sounds hard, but as with Class C and Class B, the numbers are the same; we just start in
the second octet. What makes this easy? You only need to worry about the octet that has the
largest block size (typically called the interesting octet; one that is something other than 0 or
255)—for example, 255.255.240.0 (/20) with a Class A network. The second octet has a block
size of 1, so any number listed in that octet is a subnet. The third octet is a 240 mask, which
means we have a block size of 16 in the third octet. If your host ID is 10.20.80.30, what is your
subnet, broadcast address, and valid host range?
The subnet in the second octet is 20 with a block size of 1, but the third octet is in block
sizes of 16, so we’ll just count them out: 0, 16, 32, 48, 64, 80, 96…voilà! (By the way, you
can count by 16s by now, right?) This makes our subnet 10.20.80.0, with a broadcast of
10.20.95.255 because the next subnet is 10.20.96.0. The valid host range is 10.20.80.1
through 10.20.95.254. And yes, no lie! You really can do this in your head if you just get
your block sizes nailed!
Okay, let’s practice on one more, just for fun!
Host IP: 10.1.3.65/23
First, you can’t answer this question if you don’t know what a /23, is. It’s 255.255.254.0.
The interesting octet here is the third one: 256 – 254 = 2. Our subnets in the third octet are 0,
2, 4, 6, etc. The host in this question is in subnet 2.0, and the next subnet is 4.0, so that makes
the broadcast address 3.255. And any address between 10.1.2.1 and 10.1.3.254 is considered
a valid host.
Subnet 10.0.0.0 10.0.0.64 10.0.0.128 10.0.0.192
First host 10.0.0.1 10.0.0.65 10.0.0.129 10.0.0.193
Last host 10.0.0.62 10.0.0.126 10.0.0.190 10.0.0.254
Broadcast 10.0.0.63 10.0.0.127 10.0.0.191 10.0.0.255
Subnet 10.255.255.0 10.255.255.64 10.255.255.128 10.255.255.192
First host 10.255.255.1 10.255.255.65 10.255.255.129 10.255.255.193
Last host 10.255.255.62 10.255.255.126 10.255.255.190 10.255.255.254
Broadcast 10.255.255.63 10.255.255.127 10.255.255.191 10.255.255.255
Variable Length Subnet Masks (VLSMs) 137
Variable Length Subnet Masks (VLSMs)
I could easily devote an entire chapter to Variable Length Subnet Masks (VLSMs), but instead
I’m going to show you a simple way to take one network and create many networks using subnet
masks of different lengths on different types of network designs. This is called VLSM networking,
and it does bring up another subject I mentioned at the beginning of this chapter:
classful and classless networking.
Neither RIPv1 nor IGRP routing protocols have a field for subnet information, so the subnet
information gets dropped. What this means is that if a router running RIP has a subnet
mask of a certain value, it assumes that all interfaces within the classful address space have the
same subnet mask. This is called classful routing, and RIP and IGRP are both considered classful
routing protocols. (I’ll be talking more about RIP and IGRP in Chapter 6, “IP Routing.”)
If you mix and match subnet mask lengths in a network running RIP or IGRP, that network
just won’t work!
Classless routing protocols, however, do support the advertisement of subnet information.
Therefore, you can use VLSM with routing protocols such as RIPv2, EIGRP, and OSPF. (EIGRP
and OSPF will be discussed in Chapter 7.) The benefit of this type of network is that you save
a bunch of IP address space with it.
As the name suggests, with VLSMs we can have different subnet masks for different router
interfaces. Look at Figure 3.3 to see an example of why classful network designs are inefficient.
Looking at this figure, you’ll notice that we have two routers, each with two LANs and connected
together with a WAN serial link. In a typical classful network design (RIP or IGRP
routing protocols), you could subnet a network like this:
192.168.10.0 = Network
255.255.255.240 (/28) = Mask
FIGURE 3 . 3 Typical classful network
.34 .35 .66 .67
192.168.10.32/28
.2 .3 .18 .19
.33 .49 .50 .65
192.168.10.64/28
192.168.10.0/28 192.168.10.16/28
.1 .17
(6 hosts) (10 hosts)
(2 hosts)
192.168.10.48/28
(25 hosts) (12 hosts)
138 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
Our subnets would be (you know this part, right?) 0, 16, 32, 48, 64, 80, etc. This allows us
to assign 16 subnets to our internetwork. But how many hosts would be available on each network?
Well, as you probably know by now, each subnet provides only 14 hosts. This means that
each LAN has 14 valid hosts available—one LAN doesn’t even have enough addresses needed
for all the hosts! But the point-to-point WAN link also has 14 valid hosts. It’s too bad we can’t
just nick some valid hosts from that WAN link and give them to our LANs!
All hosts and router interfaces have the same subnet mask—again, this is called classful
routing. And if we want this network to be more efficient, we definitely need to add different
masks to each router interface.
But there’s still another problem—the link between the two routers will never use more
than two valid hosts! This wastes valuable IP address space, and it’s the big reason I’m going
to talk to you about VLSM network design.
VLSM Design
Let’s take Figure 3.3 and use a classless design…which will become the new network shown in
Figure 3.4. In the previous example, we wasted address space—one LAN didn’t have enough
addresses because every router interface and host used the same subnet mask. Not so good.
What would be good is to provide only the needed number of hosts on each router interface. To
do this, we use what are referred to as Variable Length Subnet Masks (VLSMs).
Now remember that we can use different size masks on each router interface. And if we use
a /30 on our WAN links and a /27, /28, and /29 on our LANs, we’ll get 2 hosts per WAN interface,
and 30, 14, and 8 hosts per LAN interface—nice! This makes a huge difference—not only
can we get just the right amount of hosts on each LAN, we still have room to add more WANs
and LANs using this same network!
FIGURE 3 . 4 Classless network design
.66 .67 .50 .51
192.168.10.64/29
.2 .3 .45 .35
.65 .73 .74 .49
192.168.10.48/28
192.168.10.0/27 192.168.10.32/28
.1 .33
(6 hosts) (10 hosts)
(2 hosts)
192.168.10.72/30
(25 hosts) (12 hosts)
Variable Length Subnet Masks (VLSMs) 139
Remember, in order to implement a VLSM design on your network, you need
to have a routing protocol that sends subnet mask information with the route
updates. This would be RIPv2, EIGRP, and OSPF. RIPv1 and IGRP will not work
in classless networks and are considered classful routing protocols.
Implementing VLSM Networks
To create VLSMs quickly and efficiently, you need to understand how block sizes and charts
work together to create the VLSM masks. Table 3.3 shows you the block sizes used when
Why Bother with VLSM Design?
You have just been hired by a new company and need to add on to the existing network. There
is no problem with starting over with a new IP address scheme. Should you use a VLSM classless
network or a classful network?
Let’s just say you happen to have plenty of address space because you are using the Class A
10.0.0.0 private network address in your corporate environment and can’t even come close to
imagining that you’d ever run out of IP addresses. Why would you want to bother with the
VLSM design process?
Good question. There’s a good answer too!
Because by creating contiguous blocks of addresses to specific areas of your network, you
can then easily summarize your network and keep route updates with a routing protocol to a
minimum. Why would anyone want to advertise hundreds of networks between buildings
when you can just send one summary route between buildings and achieve the same result?
If you’re confused about what summary routes are, let me explain. Summarization, also
called supernetting, provides route updates in the most efficient way possible by advertising
many routes in one advertisement instead of individually. This saves a ton of bandwidth and
minimizes router processing. As always, you use blocks of addresses (remember that block
sizes are used in all sorts of networks) to configure your summary routes and watch your network’s
performance hum.
But know that summarization works only if you design your network carefully. If you carelessly
hand out IP subnets to any location on the network, you’ll notice straight away that you
no longer have any summary boundaries. And you won’t get very far with creating summary
routes without those, so watch your step!
140 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
creating VLSMs with Class C networks. For example, if you need 25 hosts, then you’ll need
a block size of 32. If you need 11 hosts, you’ll use a block size of 16. Need 40 hosts? Then
you’ll need a block of 64. You cannot just make up block sizes—they’ve got to be the block
sizes shown in Table 3.3. So memorize the block sizes in this table—it’s easy. They’re the
same numbers we used with subnetting!
The next step is to create a VLSM table. Figure 3.5 shows you the table used in creating a
VLSM network. The reason we use this table is so we don’t accidentally overlap networks.
You’ll find the sheet shown in Figure 3.5 very valuable because it lists every block size you
can use for a network address. Notice that the block sizes are listed starting from a block size
of 4 all the way to a block size of 128. If you have two networks with block sizes of 128, you’ll
quickly see that you can have only two networks. With a block size of 64, you can have only
four networks, and so on, all the way to having 64 networks if you use only block sizes of 4.
Remember that this takes into account that you are using the command ip subnet-zero in
your network design.
Now, just fill in the chart in the lower-left corner, and then add the subnets to the worksheet
and you’re good to go.
So let’s take what we’ve learned so far about our block sizes and VLSM table and create a
VLSM using a Class C network address 192.168.10.0 for the network in Figure 3.6. Then fill
out the VLSM table, as shown in Figure 3.7.
In Figure 3.6, we have four WAN links and four LANs connected together. We need to
create a VLSM network that will allow us to save address space. Looks like we have two
block sizes of 32, a block size of 16, and a block size of 8, and our WANs each have a block
size of 4. Take a look and see how I filled out our VLSM chart in Figure 3.7.
TABLE 3 . 3 Block Sizes
Prefix Mask Hosts Block Size
/25 128 126 128
/26 192 62 64
/27 224 30 32
/28 240 14 16
/29 248 6 8
/30 252 2 4
Variable Length Subnet Masks (VLSMs) 141
FIGURE 3 . 5 The VLSM table
Variable Length Subnet Masks Worksheet
Subnet Mask Subnets Hosts Block
/26
/27
/28
/29
/30
192
224
240
248
252
4
8
16
32
64
62
30
14
6
2
64
32
16
8
4
048
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
96
100
104
108
112
116
120
124
128
132
136
140
144
148
152
156
160
154
158
172
176
180
184
188
192
196
200
204
208
212
216
220
224
228
232
236
240
244
248
252
256
Class C Network 192.168.10.0
Network Hosts Block Subnet Mask
A
B
C
D
E
F
G
H
I
J
K
L
142 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
FIGURE 3 . 6 VLSM network example 1
We still have plenty of room for growth with this VLSM network design.
We never could accomplish that with one subnet mask using classful routing. Let’s do
another one. Figure 3.8 shows a network with 11 networks, two block sizes of 64, one of 32,
five of 16, and three of 4.
First, create your VLSM table and use your block size chart to fill in the table with the subnets
you need. Figure 3.9 shows a possible solution.
Notice that we filled in this entire chart and only have room for one more block size of 4!
Only with a VLSM network can you provide this type of address space savings.
Keep in mind that it doesn’t matter where you start your block sizes as long as you always
count from zero. For example, if you had a block size of 16, you must start at 0 and count from
there—0, 16, 32, 48, etc. You can’t start a block size of 16 from, say, 40 or anything other than
increments of 16.
Here’s another example. If you had block sizes of 32, you must start at zero like this: 0, 32,
64, 96, etc. Just remember that you don’t get to start wherever you want; you must always
start counting from zero. In the example in Figure 3.9, I started at 64 and 128, with my two
block sizes of 64. I didn’t have much choice, because my options are 0, 64, 128, and 192.
However, I added the block size of 32, 16, 8, and 4 wherever I wanted just as long as they were
in the correct increments of that block size.
Okay—you have three locations you need to address, and the IP network you have received
is 192.168.55.0 to use as the addressing for the entire network. You’ll use ip subnet-zero
and RIPv2 as the routing protocol. (RIPv2 supports VLSM networks, RIPv1 does not—both
of them will be discussed in Chapter 6.) Figure 3.10 shows the network diagram and the IP
address of the RouterA S0/0 interface.
192.168.10.112/30
2 hosts
Network H
Lab_D
Lab_A
F0/0
F0/0
192.168.10.8/29
Lab_E
Lab_B
F0/0
F0/0
192.168.10.32/27
192.168.10.104/30
2 hosts
Network F
192.168.10.16/28
192.168.10.64/27
30 hosts
Network B
20 hosts
Network C
6 hosts
Network D
14 hosts
Network A
192.168.10.100/30
2 hosts
Network E
2 hosts
Network G
192.168.10.108/30
Variable Length Subnet Masks (VLSMs) 143
FIGURE 3 . 7 A VLSM table, example one
Variable Length Subnet Masks Worksheet
Subnet Mask Subnets Hosts Block
/26
/27
/28
/29
/30
192
224
240
248
252
4
8
16
32
64
62
30
14
6
2
64
32
16
8
4
048
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
96
100
104
108
112
116
120
124
128
132
136
140
144
148
152
156
160
154
158
172
176
180
184
188
192
196
200
204
208
212
216
220
224
228
232
236
240
244
248
252
256
Class C Network 192.16.10.0
Network Hosts Block Subnet Mask
A
B
C
D
E
F
G
H
12
20
25
4
2
2
2
2
16
32
32
8
4
4
4
4
/28
/27
/27
/29
/30
/30
/30
/30
240
224
224
248
252
252
252
252
E - 192.16.10.96/30
F - 192.16.10.100/30
G - 192.16.10.104/30
H - 192.16.10.108/30
D - 192.16.10.8/29
A - 192.16.10.16/28
B - 192.16.10.32/27
C - 192.16.10.64/27
144 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
FIGURE 3 . 8 VLSM network example 2
From the list of IP addresses on the right of the figure, which IP address will be placed in
each router’s FastEthernet 0/0 interface and serial 0/1 of RouterB?
To answer this question, first look for clues in Figure 3.10. The first clue is that interface
S0/0 on RouterA has IP address 192.168.55.2/30 assigned, which makes for an easy answer.
A /30, as you know, is 255.255.255.252, which gives you a block size of 4. Your subnets are
0, 4, 8, etc. Since the known host has an IP address of 2, the only other valid host in the zero
subnet is 1, so the third answer down is what you want for the s0/1 interface of RouterB.
The next clues are the listed number of hosts for each of the LANs. RouterA needs 7 hosts,
a block size of 16 (/28); RouterB needs 90 hosts, a block size of 128 (/25); and RouterC needs
23 hosts, a block size of 32 (/27).
Figure 3.11 shows the answers to this question.
Once you figured out the block size needed for each LAN, this was actually a pretty simple
question—all you need to do is look for the right clues and, of course, know your block sizes.
One last example of VLSM design before we move on to summarization. Figure 3.12 shows
three routers, all running RIPv2. Which class C addressing scheme would you use to satisfy the
needs of this network yet save as much address space as possible?
This is a really sweet network, just waiting for you to fill out the chart. There are block sizes
of 64, 32, and 16 and two block sizes of 4. This should be a slam dunk for you. Take a look
at my answer in Figure 3.13.
This is what I did: Starting at subnet 0, I used the block size of 64. (I didn’t have to—I could
have started with a block size of 4, but I usually like to start with the largest block size and
move to the smallest.) Okay, then I added the block sizes of 32 and 16 and the two block sizes
of 4. There’s still a lot of room to add subnets to this network—very cool!
Corp
SF
Fa0/1
Fa0/0
Fa0/0 Fa0/1 Fa0/0 Fa0/1
Fa0/3 Fa0/0
Bldg1
NY
Fa0/2
Fa0/0
Net = B
10 hosts
Net = C
12 hosts
2 hosts
Net = D
12 hosts
Net = G
2 hosts
Net = E
2 hosts
Net = F
30 hosts
Net = A
60 hosts
Net = H
14 hosts
Net = I
60 hosts
Net = J
8 hosts
Net = K
A: /27
B: /28
C: /28
D: /30
E: /30
F: /30
G: /28
H: /26
I: /28
J: /26
K: /28
Variable Length Subnet Masks (VLSMs) 145
FIGURE 3 . 9 VLSM table example 2
Variable Length Subnet Masks Worksheet
Subnet Mask Subnets Hosts Block
/26
/27
/28
/29
/30
192
224
240
248
252
4
8
16
32
64
62
30
14
6
2
64
32
16
8
4
048
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
96
100
104
108
112
116
120
124
128
132
136
140
144
148
152
156
160
154
158
172
176
180
184
188
192
196
200
204
208
212
216
220
224
228
232
236
240
244
248
252
256
Class C Network 192.168.10.0
Network Hosts Block Subnet Mask
A
B
C
D
E
F
G
H
I
J
K
30
10
12
2
2
2
12
60
14
60
8
32
16
16
4
4
4
16
64
16
64
16
32
0
16
244
248
252
208
64
192
128
224
224
240
240
252
252
252
240
192
240
192
240
B - 192.16.10.0/28
C - 192.16.10.16/28
A - 192.16.10.32/27
H - 192.16.10.64/26
J - 192.16.10.128/26
I - 192.16.10.192/28
G - 192.16.10.208/28
K - 192.16.10.224/28
D - 192.16.10.244/30
E - 192.16.10.248/30
F - 192.16.10.252/30
146 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
FIGURE 3 . 1 0 VLSM design example 1
FIGURE 3 . 1 1 Solution to VLSM design example 1
FIGURE 3 . 1 2 VLSM design example 2
RouterA
7 hosts
RouterB
90 hosts
192.168.55.57/27
192.168.55.29/28
192.168.55.1/30
192.168.55.132/25
192.168.55.0/30
192.168.55.127/26
S0/0
RouterC
23 hosts
F0/0:
S0/1:
F0/0: F0/0:
192.168.55.2/30
RouterA
7 hosts
RouterB
90 hosts
S0/0
RouterC
23 hosts
F0/0:
192.168.55.29/28
F0/0:
192.168.55.132/25
F0/0:
192.168.55.57/27
S0/1: 192.168.55.1/30
192.168.55.2/30
4: Serial 1 5: Serial 2
60 hosts
Net 1
30 hosts
Net 2
12 hosts
Net 3
Summarization 147
FIGURE 3 . 1 3 Solution to VLSM design example 2
Summarization
Summarization, also called route aggregation, allows routing protocols to advertise many networks
as one address. The purpose of this is to reduce the size of routing tables on routers to
save memory, which also shortens the amount of time for IP to parse the routing table and find
the path to a remote network.
Figure 3.14 shows how a summary address would be used in an internetwork.
FIGURE 3 . 1 4 Summary address used in an internetwork
Summarization is actually somewhat simple because all you really need to have down are
the block sizes that we just used in learning subnetting and VLSM design. For example, if you
wanted to summarize the following networks into one network advertisement, you just have
to find the block size first; then you can easily find your answer:
192.168.16.0 through network 192.168.31.0
1: 192.168.10.0/26
2: 192.168.10.64/27
3: 192.168.10.96/28
4: 192.168.10.112/30
5: 192.168.10.116/30
-chart cut in interest of brevity-
048
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
96
100
104
108
112
116
120
124
128
10.0.0.0/16
10.1.0.0/16
10.2.0.0/16…
10.255.0.0/16
10.0.0.0/8
148 Chapter 3  Subnetting, VLSMs, and Troubleshooting TCP/IP
What’s the block size? There are exactly 16 Class C networks, so this neatly fits into a block
size of 16.
Okay, now that you know the block size, you can find the network address and mask used
to summarize these networks into one advertisement. The network address used to advertise
the summary address is always the first network address in the block—in this example,
192.168.16.0. To figure out a summary mask, in this same example, what mask is used to get
a block size of 16? Yes, 240 is correct. This 240 would be placed in the third octet—the octet
where we are summarizing. So, the mask would be 255.255.240.0.
You’ll learn how to apply these summary addresses to a router in Chapter 7.
Here’s another example:
Networks 172.16.32.0 through 172.16.50.0
This is not as clean as the previous example because there are two possible answers, and
here’s why: Since you’re starting at network 32, your options for block sizes are 4, 8, 16, 32,
64, etc., and block sizes of 16 and 32 could work as this summary address.
 Answer #1: If you used a block size of 16, then the network address is 172.16.32.0 with
a mask of 255.255.240.0 (240 provides a block of 16). However, this only summarizes
from 32 to 47, which means that networks 48 through 50 would be advertised as single
networks. This is probably the best answer, but that depends on your network design.
Let’s look at the next answer.
 Answer #2: If you used a block size of 32, then your summary address would still be
172.16.32.0, but the mask would be 255.255.224.0 (224 provides a block of 32). The
possible problem with this answer is that it will summarize networks 32 to 63 and we only
have networks 32 to 50. No worries if you’re planning on adding networks 51 to 63 later
into the same network, but you could have serious problems in your internetwork if somehow