My name is Naveed Babar, an Independent IT Expert and researcher. I received my Masters Degree an IT. I live in Peshawar, Khyber Pakhtunkhwa, Pakistan. Buzzwords in my world include: Info tech, Systems, Networks, public/private, identity, context, youth culture, social network sites, social media. I use this blog to express random thoughts about whatever I am thinking.

Tuesday, August 10, 2010

Solving the Mysteries of Subnetting

Introduction
Subnetting is a complicated topic that has confused students for a very long time.However,subnetting is an
important topic for many different certifications with various vendors,including Cisco.In the real world envi-
ronment,people are used to just punching in the numbers in many of the free subnet calculators that are
readily available on the internet.For exam purposes,you still have to do this in a very fast manner since many
exams are time-based and you don’t have the luxury of spending those precious minutes on any single ques-
tion. This whitepaper will solve some of those age-old and complicated subnetting puzzles.
Why Do We Subnet?
Why can’t you take the numbers provided by the providers? The answer is simple – because YOU know your
network, your provider doesn’t. Only you know the details such as how many users you would want in each
network.Only you know how many of these networks (sub-networks/broadcast domains) you need.Various
design classes will give you different specs on how big the broadcast domain should be (answer depending on
the application needs you have).We also do subnetting because you might want to create a manageable,
doable,and realistic set of numbers rather than the defaults,which might not work for your needs or could be
overkill.
Note: Each router interface is its own broadcast domain,since routers,by default,terminate broadcasts.Also,
VLAN = broadcast domain since you need a L3 device (router) to interconnect different broadcast
domains/Vlans/subnets.Yes subnets = broadcast domain = vlan.We use these terms interchangeably,but sub-
net is a L3 concept and vlan is a L2 concept.
There are three classes of addresses that we use for unicast (one-to-one communication) purposes in our IPv4
network (32 bit addresses):Class A,Class B,and Class C.There are some default assumptions for each class,
indicating which octets (8 bits) are network and which octets are host. The defaults are:


Class A Network Host Host Host
First 8 bits for net
work; last 24 bits for
host

Class B Network Network Host Host
First 16 bits for net
work;last 16 bits
work;last 16 bits

Class C Network Network Network Host
First 24 bits for net-
work; last 8 bits for host



Since we are working with binary here,we can easily calculate the number of hosts possible in each class of
addresses.
Class A has 24 bits of host possibilities,which comes to 224
-2 number of hosts.This comes to 16,777,214 hosts
in each class A network.
With the Class B address,we have 16 bits of host possibilities.216
-2 = 65,534 hosts in each class B network.
With the Class C address,we have 8 bits of host possibilities.28
-2 = 254 hosts in each class C network.
The reason we subtracted 2 from each of these ranges is that the first and the last number in the range has a
special meaning to the system.The very first number in the range (all bits in binary off) indicates the
network/subnetwork you are on.The last number in the range (all bits in binary ON) indicates the directed
broadcast on that network/subnetwork).
I don’t know of any network that has the capability to support in a flat segment 16,777,214 users with Class A
(or 65,534 hosts for Class B).Since these numbers are not realistic,you need to subnet them,based on your
needs.With class C,you get 254 hosts in each segment,which is possible but can still be subnetted to accom-
modate smaller networks (like point-to-point WAN networks with 2 hosts or other possibilities).
With all subnetting questions,first you have to ask yourself with what class of address you are working.This
always tells you which octets are network octets so you can take it from there and manipulate the host bits
based upon your needs.
Remember your ranges of addresses:
Class A address range is from 1 – 127
Class B address range is from 128 – 191
Class C address range is from 192 – 223
Lets dig in to an example.
Let’s use RFC 1918 Class B address 172.16.0.0.In this scenario we are going to work on this to get eight sub-
nets.(This is a random number I picked,based on eight different VLANs I might want to configure in my net-
work).
The default subnet mask for class B is 255.255.0.0
In binary,the subnet mask is 11111111.11111111.00000000.00000000
Note that there are 16 consecutive zeros, which indicate the number of hosts (as previously discussed).
Remember that we have 65,534 hosts possible,but in ONE big,flat network.We don’t want that for this sce-
nario;we need eight different subnets.So lets do it.
Ask yourself how many bits you need to get 8 subnets.The formula for this is
2n
= # of subnets where n is the number of bits to use for subnets



In this scenario
2n
=8 so using basic math n=3 (three occurrences of 2 to get 8 -> 2x2x2)
Since we said earlier that zeros identify the number of hosts you have (from right to left in the 32-bit subn
mask),the same works for subnets.Subnets are indicated by the number of contiguous ones we have (from
left to right in the 32 bit subnet mask).We just determined that we need 3 bits for this example where we
need six subnets.Remember now that subnets are indicated by contiguous ones from left to right
The subnet mask we had for class B is
11111111.11111111.00000000.00000000
Now that we need to borrow 3 additional bits,let’s write this down.
11111111.11111111.11100000.00000000 (now thirteen bits left for host,indicated by 13 zeroes,so 2
13
-2
would give us 8190 hosts in each subnet).
This gives us 255.255.224.0 for our subnet mask.

Once you determine the mask, you need to write that down in binary. In this case,the number is
255.255.224.0 (we borrowed three bits and determining the subnets you borrow the bits left to right. Subnet
bits are 1s (left to right) and Host bits are 0s (right to left).
255. 255. 224. 0
11111111. 11111111.11100000.00000000
Now,here is a tricky part.After the first subnet (subnet zero),the decimal value of the lowest active bit is your
second subnet (after subnet zero) and then you increment that number by itself until you reach the mask.This
will give you all the subnets.
Let’s see it step by step
Decimal value of the lowest active bit
Active means 1,not active means 0
Remember,the binary place holders for all eight bits in the octet In this example, only the first three bits are on. The decimal values of those bits are 128, 64, and 32; 32 is the
lowest active bit versus 64 or 128.
27
26
25
24
23
22
21
20
123 64 32 16 8 4 2 1

Let’s increment 32 by itself until we get the mask (224)
32-Second subnet
64-Third subnet
96-Fourth subnet
128-Fifth subnet
160-Sixth subnet
192-Seventh subnet
224- Eighth subnet
This just gave us all of our eight subnets (with subnet 0 being the first subnet).
Lets write these numbers down for clarity.
172.16.0.0 ->172.16.31.255 First subnet all possible numbers in the range
172.16.32.0->172.16.63.255Second subnet all possible numbers in the range
172/16.64.0->172.16.95.255Third subnet all possible numbers in the range
172.16.96.0 -> 172.16.127.255 Fourth subnet all possible numbers in the range
172.16.128.0->172.16.159.255Fifth subnet all possible numbers in the range
172.16.160.0->172.16.191.255Sixth subnet all possible numbers in the range
172.16.192.0 -> 172.16.223.255 Seventh subnet all possible numbers in the range
172.16.224.0->172.16.255.255Eighth subnet all possible numbers in the range
Do not forget that when we were calculating the number of hosts,we kept subtracting 2 from our host
range (the first and the last one).The first and the last one have special meanings.The first number in the
range is the subnet itself (the wire that the people are plugged into). The last number is the directed broadcast
for all the hosts on that subnet.
So,the valid list of hosts is every number in the range except for the first and the last number.
For the first subnet,it will be 172.16.0.1 to 172.16.31.254.
For the second subnet,it will be 172.16.32.1 to 172.16.63.254 and so on for all subnets.

Verify Your Work


This is how to verify your work in binary, if you didn’t like the easy “trick” method approach.
How do you verify that the three bits we got will give you eight subnets? If you write down all possibilities of
0s and 1s, you will see that there are only eight possibilities:
000 – First subnet100 – Fifth subnet
001 – Second subnet101 – Sixth subnet
010 – Third subnet 110 – Seventh subnet
011 – Fourth subnet111 – Eighth subnet



Don’t forget that these are all the possibilities with the first three bits we have borrowed.We still have 13 bits

left after using these first three bits (in the third octet so we have five bits in the third octet and 8 bits in the
fourth octet left,which is a total of 13 bits).
If you pick any of the above three bit combinations and write them down twice (lets say we pick 011 for our
example)
172.16.011 __ __ __ __ __.__ __ __ __ __ __ __ __
172.16.011 __ __ __ __ __.__ __ __ __ __ __ __ __
Now fill in the first one with all zeros in the 13 bits left blank and the next one with ones in the last 13 bits
(remember the first number in the range is all zeros and the last number in the range is all ones.
172.16.011 0 0 0 0 0.0 0 0 0 0 0 0 0 which in decimal is 172.16.96.0
172.16.011 1 1 1 1 1.1 1 1 1 1 1 1 1 which in decimal is 172.16.127.255

WOW! This gave us the same set of numbers that we got with our short,trick method.This second verification
method is not bad either,but we were lucky that we only had to write down all possibilities of 0s and 1s of
only three bits.If we had a big number,we will be spending some quality time writing down ones and zeroes,
which we might not appreciate.
This is end of subnetting,but ask yourself one question.Consider the possibility if one of these subnets was
meant for a point-to-point circuit.Remember from our previous discussion that there are only two points in a
point-to-point circuit,so why do we have 13 bits for hosts? With 13 bits left for host (all zeros) we get 8190
hosts per subnet.But this is a point-to-point subnet,and we will NEVER need 8190 addresses.This is a waste
of addresses and not what you would want to do in a properly designed network.This is especially true when
we are complaining that we are running out of IPv4 addresses and are coming up with alternate solutions like
IPv6 to fix the problem of not enough addresses. To solve this problem of point-to-point interface addressing,
we take the subnetting to the next step called VLSM (variable-length subnet masking).What we have done so
far is FLSM (Fixed-length subnetting masking).Since our host needs are not the same across the organization,
we will be doing VLSM all the time,which is not a stretch from the FLSM case study we have done here.

">

No comments:

Comments

Search This Blog

Followers