Вы находитесь на странице: 1из 11

Subnetting Guide - CramNotes

Subnetting Guide - CramNotes

1. What is an IP Address?
An IP address is made of 4 Octets, or 32 bits. It is usually represented in dotted decimal format
like this: 131.107.2.205. Each number represents an octet. An octet is a group of 8 bits. Since
we have 4 octets in an IP Address, there are 8*4=32 bits in an IP Address.

Computers do not understand dotted decimal notation, as they only function in binary. All
computers understand is 1 and 0. Therefore, we must find a way to transfer an IP Address from
dotted decimal format to binary. We do this octet by octet.

Each bit in an octet has an associated decimal value:

Bit 1 2 3 4 5 6 7 8
Bit value 128 64 32 16 8 4 2 1

Let’s take an example. I have an IP address of 131.107.2.4. What is that in Binary?

Let’s do this octet by octet:

131:
Bit Value 128 64 32 16 8 4 2 1
Binary 1 0 0 0 0 0 1 1

Column with a “1” in binary mean that we count the corresponding bit value. If you add up all
the bit values marked with a one, you get 128+2+1=131.

107:
Bit Value 128 64 32 16 8 4 2 1
Binary 0 1 1 0 1 0 1 1

Column with a “1” in binary mean that we count the corresponding bit value. If you add up all
the bit values marked with a one, you get 64+32+8+2+1=107

2:
Bit Value 128 64 32 16 8 4 2 1
Binary 0 0 0 0 0 0 1 0

Column with a “1” in binary mean that we count the corresponding bit value. If you add up all
the bit values marked with a one, you get 2

4:
Bit Value 128 64 32 16 8 4 2 1

file:///D|/Work/pdf/subnetting_guide.htm (1 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

Binary 0 0 0 0 0 1 0 0

Column with a “1” in binary mean that we count the corresponding bit value. If you add up all
the bit values marked with a one, you get 4

Now we know that another way of writing our example IP address of 131.107.2.4 is:

10000011.01101011.00000010.00000100

IP Addresses are made of two distinct parts: the Network ID and the Host ID. When you try
to ping an IP address, IP at Layer 3 needs to determine whether the target IP address is local or
remote to your subnet. To explain this, I like to ask my students the following question:

“Let’s say I live on Maple Tree Lane. You say that you also live on Maple Tree Lane. Are we
neighbors? Well, we may be, or we may not be. We do not have enough information to answer
that question. Specifically, we do not know if we live in the same town. If we do live in the
same town, and our street addresses are similar, then we are neighbors. If we do not live in the
same town, it does not matter whether our street addresses are similar or not: we are not
neighbors.”

The same applies to IP addressing. Before I can find out what your Host ID is – i.e. your street
address – I have to worry about what your Network ID is – i.e. your town.

So how does IP know what the Host ID and Network IDs are? That is the role of the Subnet
Mask.

Please note that neither the network ID, the host ID nor the subnet bit can be all 0s or all ones.
More to come about this later…

2. What is a Subnet Mask?


A Subnet Mask is used to enable IP at Layer 3 to find out whether the target IP address you are
trying to contact is local or remote to your network. That is all it does. It helps you determine
which part of an IP Address is the Network ID, and which is the Host ID. So how does it do
that?

We have all seen a Subnet Mask before. It usually looks something like this:

255.255.255.0

This subnet mask is obviously displayed in dotted decimal format. As we already know,
however, computers do not understand this format. They only understand binary. So let’s
apply what we know about binary to our subnet mask:

file:///D|/Work/pdf/subnetting_guide.htm (2 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

255
Bit Value 128 64 32 16 8 4 2 1
Binary 1 1 1 1 1 1 1 1

Column with a “1” in binary mean that we count the corresponding bit value. If you add up all
the bit values marked with a one, you get 128+64+32+16+8+4+2+1=255

So, 255 is “all ones”, as you may have heard before.

0:
Bit Value 128 64 32 16 8 4 2 1
Binary 0 0 0 0 0 0 0 0

Column with a “1” in binary mean that we count the corresponding bit value. If you add up all
the bit values marked with a one, you get 0. So, 0 is “all zeros”, as you may have heard before.

In other words, our 255.255.255.0 subnet masks in binary looks like this:

11111111.11111111.11111111.00000000

Note that a subnet mask is also a 32 bit, 4 octet entity that matches the structure of our IP
addresses…

If I were to superimpose the IP address and subnet mask we have translated so far, I would get
this:

131.107.2.4 10000011. 01101011. 00000010. 00000100


255.255.255.0 11111111. 11111111. 11111111. 00000000

I highlighted the Network bits in Red, and the Host bits in Blue. Notice anything? All the
network bits are the bits that had a value of “1” in the subnet mask, and all the host bits are the
bits that had a value of “0” in the subnet mask. Easy, isn’t it? In our example, the Network ID
is 131.107.2, and the host ID is 4. If I change the subnet mask to 255.255.0.0, what happens?
Well, let’s apply the same logic:

131.107.2.4 10000011. 01101011. 00000100 00000100


255.255.0.0 11111111. 11111111. 00000000 00000000

What happens now? My network ID is now 131.107 and my host ID is 2.4! That is why an IP
address on its own cannot exist! That is why a host on a network needs at least an IP address
AND a subnet mask!

Let’s say that I tell you that I have 2 IP addresses:

file:///D|/Work/pdf/subnetting_guide.htm (3 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

131.107.2.4 and 131.107.5.6

Are they local to each other, or remote?

You cannot answer that question, because it is incomplete! I need to give you the subnet mask
as well! Let’s see why…

Let’s say that the subnet mask is 255.255.255.0. Then we have:

131.107.2.4 10000011. 01101011. 00000010. 00000100


131.107.5.6 10000011. 01101011. 00000101. 00000110
255.255.255.0 11111111. 11111111. 11111111. 00000000

Do the Network IDs match? No! Look at the third octect:


0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 1

If the network IDs do not match, then the two IP addresses are remote from each
other. They are on different subnets, and you will need a router to go from one to the other.

Let’s take the same example with a different subnet mask of 255.255.0.0:
131.107.2.4 10000011. 01101011. 00000010. 00000100
131.107.5.6 10000011. 01101011. 00000101. 00000110
255.255.2.0 11111111. 11111111. 00000000. 00000000

Do the Network IDs match now? Yes!

If the network IDs match, then the two IP addresses will be on the same network. You
do not need a router to go from one to the other in this scenario.

Let’s sum this up: we have seen how only having an IP address is not sufficient, and how the
same two IP addresses can be either remote or local to each other depending on which subnet
mask you are using. This is at the basis of IP troubleshooting.

3. What are IP classes?


You may have heard of the different classes for IP addresses, namely, class A, B and C. How
does that work? Let’s look at the following table:

Class A 1-127* 0xxxxxxx.


Class B 128-191 10xxxxxx.
Class C 191-223 110xxxxx.

file:///D|/Work/pdf/subnetting_guide.htm (4 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

*127 is part of the class A range, but you cannot assign any 127.x.x.x IP addresses to hosts as
the entire range is reserved by InterNIC for the loop back address…

What does this mean? When talking about a Class of IP addresses, you only look at the first
octet to determine what class this IP address belongs to.

For class A, InterNIC decided that the 1st octet would start with a bit value of 0. Therefore, the
lowest binary of the 1st octet is 0000001, and the highest is 01111111 (in decimal, that would
be from 1 to 127)

For class B, InterNIC decided that the 1st octet would start with a bit value of 10.

Therefore, the lowest binary of the 1st octet is 1000000, and the highest is 10111111 (in
decimal, that would be from 128 to 191)

For class C, InterNIC decided that the 1st octet would start with a bit value of 110.

Therefore, the lowest binary of the 1st octet is 1100000, and the highest is 11011111 (in
decimal, that would be from 192 to 223)

There are other classes, D and E, but they are not used right now and are illegal on the
Internet.

Also, note that you can use any subnet mask classes with any IP address classes. Subnet mask
classes are as follows:

Class A 255.0.0.0
Class B 255.255.0.0
Class C 255.255.255.0

In other words, it is totally possible to have a Class B IP address and a class C subnet mask…
hang on… isn’t that what we have been taking as an example all along? Remember our
131.107.2.4 w/ a subnet mask of 255.255.255.0?

4. What is subnetting?
Subnetting is the action of taking an IP range where all IP addresses are local to each other and
dividing it into different ranges – or subnets – where IP addresses from one range will be
remote from any other IP addresses from any other range.

If you want to find out how many hosts you have in an IP range, first you need to determine
how many host bits there are. Let’s take our previous example of 131.107.2.4 and
255.255.255.0. We already established previously that the Network ID was 131.107.2 and the
Host ID was 4. In other words, we have 3 octets for the Network ID and one octet – or 8 bits –
for the Host ID. Now that you have determined the amount of host bits you had, apply that
number to the following formula:

(2^N)-2)=number of hosts, where N is your number of host bits

file:///D|/Work/pdf/subnetting_guide.htm (5 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

That gives us: ((2^8)-2)=254 hosts.

That means that in our example, we have the 131.107.2.x network, which contains 254 possible
IP addresses, all local to each other.

What if I chose a class A subnet mask? I would then have:

(2^24)-2)=16,777,214 valid IP addresses in that range!

What if I do not need that many – heck, who does J -- and decided to divide that range in to
several other, more manageable ranges? Well, I need to subnet.

Note: we have to subtract 2 because we lose the all ones and all zeroes values.

If I only had 2 bits to play with, in binary, I would have 2^2=4 possibilities:

00

01

10

11

However, all zeros in IP means the whole network, and all ones is the broadcast ID, neither one
being valid IP addresses that can be assigned to a host. That is why we always lose 2 and have
to subtract two from (2^N)…

Let’s look at the following table:

Bit Value 128 64 32 16 8 4 2 1


Subnet Mask 192 224 240 248 252 254 255
Number of Subnets 2 6 14 30 62 126 254

This table is the only table you need to learn to understand IP subnetting and IP addressing!
Three little lines!
Let’s look at it line by line. The first line we are already acquainted with, so I will not spend
more time on it.

The second line tells you what your subnet mask will be. How do we get those results? If you
look at the bit value line, and add up the bit values, you will see that:

file:///D|/Work/pdf/subnetting_guide.htm (6 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

128+64=192

192+32=224

224+16=240

240+8=248

248+4=252

252+2=254

254+1=255

Easy? J

Now to the third line. This one tells you how many subnets will get if you use the corresponding
subnet mask. In other words: if you use the 192 in your subnet mask, you will get 2 subnets.
If you use 224, you will get 6 subnets, etc… So how did I get those numbers? Well, let’s take
192 as an example. How many bits did I use to get 192? Well, I added 128 and 64, so that
would be two bits, right? Let’s look at our well-known formula:

((2^2)-2)= 2

That is where the values in the third line come from. Want to check another one? Let’s look at
248. How many bits did I use to get to 248? 128+64+32+16+8=248, or a total of 5 bits.
((2^5)-2)=30

So now, we know how to build that table, and we understand how it is built. We are almost
done with subnetting!

Let’s say my boss shows up one morning and says:

“Dave, I have an IP range of 131.107.0.0 and a subnet mask of 255.255.0.0. I want 6 subnets
out of this.” What do I do now?

I look at my chart, and I see that to get 6 subnets, I need a subnet mask of 224. I already have
an existing subnet of 255.255.0.0, which in binary looks like this:

11111111.11111111.00000000.00000000

I cannot “borrow” any more bits from the first 2 octets, as they are already network bits –
represented by a binary value of 1. So the only I can add this “224” to my subnet mask is to
borrow from the host ID. I take the next available octec – the third in our example – and end
up with a subnet mask of 255.255.224.0, which looks like this in binary:

file:///D|/Work/pdf/subnetting_guide.htm (7 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

11111111.11111111.11100000.00000000

Note that we “borrowed” 3 host bits – binary value of 0 -- in the third octet and made them
network bits – binary value of 1. Note as well that 3 bits is what I need to make 224:
128+64+32=224.

Now that I have a subnet mask, I can tell that I have 13 host bits, meaning that I will have
((2^13)-2)=8190 valid IP addresses per range J

So I can go back to my boss and say “Boss, your new subnet mask for the 131.107.x.x network
will be 255.255.224.0, and you will have 6 subnets with 8190 IP addresses in each range.”
What’s my boss’ next question?

“Dave, what are those ranges?” Oh yeah… maybe I forgot that part J

5. Calculating IP ranges in subnetted environments

Bit Value 128 64 32 16 8 4 2 1


Subnet Mask 192 224 240 248 252 254 255
Number of Subnets 2 6 14 30 62 126 254

Here is our little subnetting chart again. In this section, we will learn how to derive the actual IP
ranges from the network address and subnet mask.

In our example, we had:

Original IP range: 131.107.x.x

Original Subnet Mask: 255.255.0.0

Subnetted subnet mask: 255.255.224.0

Amount of subnets: 6

The first valid range will be 131.107.32.1 to 131.107.63.254. How did I get there? I used the
above chart.

Once I determined that 224 was my subnet bit, I asked myself: what is the lowest bit value
needed to make 224?” The answer is: 32 (128+64+32=224, and 32 is the lowest of all 3 bit
values.) If you look at the chart, you can see this:

Bit value 32
Subnet Mask 224

file:///D|/Work/pdf/subnetting_guide.htm (8 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

Number of subnets 6

Visually, it is easy to see that to have 6 subnets, I will use 224 as a subnet bit and will start my
first range at 32. I will then increment each range by that same value of 32. I love this chart!

My 6 ranges will be:

131.107.32.1 to 131.107.63.254

131.107.64.1 to 131.107.95.254

131.107.96.1 to 131.107.127.254

131.107.128.1 to 131.107.159.254

131.107.160.1 to 131.107.191.254

131.107.192.1 to 131.107.223.254

As you can see, to get the next range, I simply incremented my original value by the same
value (look at the numbers in RED) I started at 32, then incremented 5 times by that same
value of 32.

If you look at the values in BLUE you will see that they always are the next red value minus 1.
For example, if I look at the first range x.x.32.1 to x.x.63.254, I looked at the next line’s red
value, here 64, and subtracted 1 to get to 63. That is all there is to it!

By the way, note that my last octet on the start of range is always 1 – it cannot be 0, or else my
host ID would be all 0s – and that the last octet is always 254 in the last IP of each range – it
cannot be 255, or else it would be all 1s, which we know is the broadcast address, and is
therefore not available for hosts to have.

In this example, we subnetted a Class B network into 6 subnets. Note that it is somewhat
different if you subnet a Class A and a Class C. Let’s do a Class A example.

Original IP range: 10.x.x.x

Original Subnet mask: 255.0.0.0

Amount of subnets needed: 14

To get 14 subnets I need a subnet bit of 240, therefore my new subnet mask becomes
255.240.0.0. Note that my subnet bit is now the second octet, not the third as in the previous
example. This will have its importance when we create our ranges.

What is the smallest bit value needed to make 240? 16. Therefore I will start my ranges at 16
and will increment by that same value of 16.

My ranges are:

file:///D|/Work/pdf/subnetting_guide.htm (9 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

10.16.0.1 to 10.128.0.1 to
10.31.255.254 10.143.255.254
10.32.0.1 to 10.144.0.1 to
10.47.255.254 10.159.255.254
10.48.0.1 to 10.160.0.1 to
10.63.255.254 10.175.255.254
10.64.0.1 to 10.176.0.1 to
10.79.255.254 10.191.255.254
10.80.0.1 to 10.192.0.1 to
10.95.255.254 10.207.255.254
10.96.0.1 to 10.208.0.1 to
10.111.255.254 10.223.255.254
10.112.0.1 to 10.224.0.1 to
10.127.255.254 10.239.255.254

Now let's do this with a class C. Remember, class C is the hardest, so follow this carefully!

Original IP range: 192.168.2.x

Original Subnet mask: 255.255.255.0

Amount of subnets needed: 6

To get 6 subnets I need a subnet bit of 224, therefore my new subnet mask becomes
255.255.255.224. Note that my subnet bit is now the 4th octet, not the third or second as in
the previous examples. This will have its importance when we create our ranges.

What is the smallest bit value needed to make 224? 32. Therefore I will start my ranges at 32
and will increment by that same value of 32. (Are you getting the hang of it by now?)

My ranges are:
192.168.2.33 to 192.168.2.129 to
192.168.2.62 192.168.2.158
192.168.2.65 to 192.168.2.161 to
192.168.2.94 192.168.2.190
192.168.2.97 to 192.168.2.193 to
192.168.2.126 192.168.2.222

But, you say, I thought I was starting at 32?!? My first range is starting at 33! Well, remember
the other examples? We always started at .1, didn't we? Except that here, because we are
already subnetting at the fourth octet, we don't have room for a fifth to add the .1, so we have
to incorporate it in the last octet. So why can we not use 192.168.2.32 w/ a subnet mask of
255.255.255.224? Let's see why:
192.168.2.32 11000000. 10101000. 00000010. 00100000
255.255.255.224 11111111. 11111111. 11111111. 11100000

Looking at it in binary, it is obvious that the Host ID is all zeroes, which we know is not
possible...

That is it. If you know and understand this, you can subnet! Enjoy practicing...

file:///D|/Work/pdf/subnetting_guide.htm (10 of 11) [12/18/2000 6:37:56 PM]


Subnetting Guide - CramNotes

This CramNotes is written by Dave Jacquet. He can be contacted by email at: dave@mcsefreak.com.
Exclusive reprint permission is given to CertifyExpress.com by http://www.mcsefreak.com

file:///D|/Work/pdf/subnetting_guide.htm (11 of 11) [12/18/2000 6:37:56 PM]

Вам также может понравиться