|
Introduction to IP Addressing
This document will give you basic information you'll need to configure your router for
routing IP, such as how addresses are broken down and how subnetting works. You'll learn
how to assign each interface on the router an IP address with a unique subnet. And don't
worry, we'll show you lots of examples to help tie everything together.
If definitions are helpful to you, here's some wirehead vocabulary to get you started.
- Address -- the unique number id assigned to one host or interface in a network
- Subnet -- a portion of a network sharing a particular subnet address
- Subnet mask -- a 32-bit combination used to describe which portion of an address refers
to the subnet and which part refers to the host
- Interface -- a network connection
If you have already received your legitimate address(es) from the InterNIC (Internet
Network Information Center), you are ready to begin. If you are not planning on connecting
to the Internet, we strongly suggest that you use reserved addresses from RFC 1597. You
can access RFCs via ftp nic.ddn.mil. Please see the introduction in any Cisco Hardware and
Installation Guide for instructions on obtaining RFCs.
Understanding IP Addresses
An IP address consists of four octets (1 octet = 8 bits), or 32 bits. The value in each
octet ranges from 0 to 255 decimal, or 00000000 - 11111111 binary. Here's how binary
octets convert to decimal:
1 1 1
1 1 1 1 1
128 64 32 16 8 4 2 1 (128+64+32+16+8+4+2+1=255)
Now here's a sample octet conversion:
0 1 0 0 0 0 0 1
0 64 0 0 0 0 0 1 (0+64+0+0+0+0+0+1=65)
And this is a sample address representation (4 octets):
10. 1.
23. 19 (decimal)
00001010.00000001.00010111.00010011 (binary)
These octets are broken down to provide an addressing scheme that can
accommodate large
and small networks. There are five different classes of networks, A to E. Here, we'll only
be addressing classes A to C, since classes D and E are reserved. To determine the class
of an address, look at the first octet of the dotted-decimal address.
Class A: 1 - 126 (eg. 10.1.23.19)
Class B: 128-191 (eg. 172.16.19.48)
Class C: 192-223 (eg. 193.18.9.10)
In a class A address, the first octet is the network portion, so the class A example
above has a major network address of 10. Octets 2, 3, and 4 (the next 24 bits) are for the
network manager to divide into subnets and hosts as she sees fit. Class A addresses are
used for networks that have more than 65,536 hosts (actually, up to 16,581,375 hosts!).
In a class B address, the first two octets are the network portion, so the class B
example above has a major network address of 172.16. Octets 3 and 4 (16 bits) are for
local subnets and hosts. Class B addresses are used for networks that have between 256 and
65,536 hosts.
In a class C address, the first three octets are the network portion. The class C
example above has a major network address of 193.18.9. Octet 4 (8 bits) is for local
subnets and hosts - perfect for networks with less than 256 hosts.
Understanding Subnetting
In order to use your addresses, you need to understand subnetting. Subnetting allows
you to create multiple logical networks that exist within a single Class A, B, or C
network. If you don't subnet, you will only be able to use one network from your Class A,
B, or C network. Unless you have been assigned many major networks, you really need to
subnet.
Each data link on a network must be a unique subnet, with every node on that link being
a member of the same subnet. For serial interfaces (standard HDLC), you will need one
subnet for the circuit, or "wire" (both ends of the serial connection will be in
the same subnet). If you are planning on implementing Frame Relay, SMDS, X.25 etc, read
the Router Products Configuration and Reference Guides for assistance in configuring.
A subnet mask is defined for each IP address. The subnet mask identifies which portion
of the 4 octets is used to identify the data link, with the remaining bits identifying the
node. If you want no subnetting, use these default masks (255 - strictly follow number, 0
- wildcard):
Class A: 255.0.0.0
Class B: 255.255.0.0
Class C: 255.255.255.0
Let's use these two addresses for some examples: 171.68.3.3 and 171.68.2.3. If the
subnet mask is 255.255.255.0, the first 24 bits are masked, so the router compares the
first 3 octets of the two addresses. Since the masked bits are not the same, the router
knows that these addresses belong to different subnets.
If the subnet mask is 255.255.0.0, the first 16 bits are masked, so the router compares
the first 2 octets of the two addresses. Since the masked bits are the same, the router
knows that these addresses belong to the same subnet.
Nodes and routers use the mask to identify the data link on which an address resides.
For instance, imagine that San Francisco proper is a class B network, and think of the
streets as subnets. Each street must have a unique name. How would the postal service
deliver a letter or find the correct destination if there were two Lombard Streets? Each
house number can be thought of as a unique identifier for that street. The house numbers
themselves can be duplicated on other streets: 33 Market Street is not the same as 33 Van
Ness Avenue.
San Francisco.Lombard.33
171.68. 3. 3
San Francisco.Market.33
171.68. 2. 3
Sometimes you need to perform a logical "AND" operation to find out what
subnet your node is in. Performing an "AND" operation means that anytime you
"AND" a 0 value to another 0 or a 1 value, the result is 0. Only a 1 ANDed with
another 1 value will result in a 1 value. Here's how it works:
0 AND 0 IS 0
0 AND 1 IS 0
1 AND 1 IS 1
Let's compare our sample addresses (171.68.3.3 and 171.68.2.3) against the subnet mask
255.255.240.0. We need to compare the binary representation of the third octet of the mask
with the binary representation of the third octets of the addresses. In order to do this,
we'll perform a logical "AND" operation on the corresponding bits in each octet.
The masked bits are those that are "turned on," or 1 in the mask. Since the
masked bits in both addresses are the same, the router knows that these addresses belong
to the same subnet.
Let's See Some Examples
Example 1: Class B
Let's use a class B address to illustrate how subnetting works. Let's say you were
assigned the class B address 172.16 from the NIC. First determine how many subnets you
need, and how many nodes per subnet you need to define. A typical (and easy to use) class
B subnet mask would be 8 bits. Since the 3rd octet is the first "free" octet for
Class B, you will start there. So, an 8 bit subnet mask would be 255.255.255.0. This means
you have 254* subnets available and 254 addresses for nodes per subnet.
*Why are there only 254 subnets available instead of 256 (0-255)? You should not use
subnet 0 or a subnet of all 1s. With an all 1s subnet mask, this is also your broadcast
address. You can configure this, but it is neither proper nor recommended to make your
subnet the same as your broadcast address. Subnet 0 is also not recommended. Cisco will
allow the use of subnet 0 with the IP subnet zero command.
Example 2: Class B
Now let's take this example: you have just assigned an interface the address
172.16.10.50 with a mask of 255.255.255.0. What subnet is it in? First represent the bits
in binary (for class B, you start with the 3rd octet since octets 1 and 2 are fixed).
SUBNET HOST
00001010 00110010 (address representation - 10.50)
11111111 00000000 (subnet mask representation - 255.0)
-----------------
00001010 00000000 (results of logical "AND" - subnet 10)
This address is in subnet 10 (172.16.10.0). Valid addresses for subnet 10 would be
172.16.10.1 through 172.16.10.254. Address 172.16.10.255 is the broadcast address for this
subnet. According to the standard, any host id consisting of all 1s is reserved for
broadcast.
Example 3: Class B
Let's say you have a need for more subnets than 254. (Remember this is the maximum
number of subnets in a single octet.) Sticking with our class B address, let's configure
an 11 bit subnet. This means we will use all 8 bits from our 3rd octet and the first three
bits from the 4th octet. The subnet mask is now 255.255.255.224 (128+64+32=224). Now you
need to find out what subnet the following address is in: 172.16.10.170 255.255.255.224.
First, denote the address in binary representation (just octets 3 and 4 for a class B
address) like this:
00001010 10101010 (address representation 10.170)
11111111 11100000 (subnet mask representation 255.224 through
the first 11 bit
subnet)
-----------------
00001010 10100000 (results of logical "AND") 10 160
So, the address here is in subnet 172.16.10.160. The valid addresses for this subnet
are 172.16.10.161 through 172.16.10.190 (.191 is the broadcast address). As soon as you
hit 10.192, the bits in the subnet change and you move into subnet 10.192.
Example 4: Class B
Let's take an example where the mask is shorter than one octet. Now we want only a few
subnets, but need many hosts per subnet. We'll use a 3 bit subnet mask. Now we have:
172.16.65.170 255.255.224.0 (the mask is now the first 3 bits of the 3rd octet). What
subnet is this address in?
01000001 10101010 (address representation 65.170)
11100000 00000000 (subnet mask representation 224.0)
-----------------
01000000 00000000 (results of logical "AND" - subnet 64)64
So the subnet here is 172.16.64.0. The range of addresses that would fall into subnet
64 would be 172.16.64.1 - 172.16.95.254 with 172.16.95.255 as the broadcast address. The
next subnet would be 172.16.96.0. Class A and class C map out exactly as class B. The only
differences are at which octet subnetting starts and how many octets you can use for
subnetting.
Example 5: Class C
Suppose the NIC assigned the address 192.1.10. You will need to use the 4th octet for
your subnetting needs. Let's use a 4 bit subnet mask and map out the following address:
192.1.10.200 255.255.255.240
11001000 (address representation for 200)
11110000 (subnet mask representation for 240)
--------
11000000 (results of logical "AND" - 128+64=192)
So, address 192.1.10.200 is in subnet 192. The valid range of addresses in this subnet
would be 192.1.10.192 through 192.1.10.206, with .207 as the broadcast address. The next
subnet would be .208.
Keeping the same subnet mask, you can choose different addresses to be in different
subnets. For instance, address 192.1.10.17 255.255.255.240 is in subnet 16 and therefore
has another unique subnet address, with valid addresses in the range of 192.1.10.17
through 192.1.10.30.
Appendix
Sample Config
(routers A and B are connected via serial interface)
Router A
hostname routera
!
ip routing
!
int e 0
ip address 172.16.50.1 255.255.255.0
!(subnet 50)
int e 1 ip address 172.16.55.1 255.255.255.0
!(subnet 55)
int t 0 ip address 172.16.60.1 255.255.255.0
!(subnet 60) int s 0
ip address 172.16.65.1 255.255.255.0 (subnet 65)
!S 0 connects to router B
router rip
network 172.16.0.0
Router B
hostname routerb
!
ip routing
!
int e 0
ip address 192.1.10.200 255.255.255.240
!(subnet 192)
int e 1
ip address 192.1.10.66 255.255.255.240
!(subnet 64)
int s 0
ip address 172.16.65.2 (same subnet as router A's s 0)
!Int s 0 connects to router A
router rip
network 192.1.10.0
network 172.16.0.0
Host/Subnet Quantities Table
Class
B
Effective Effective
# bits
Mask
Subnets Hosts
------- --------------- --------- ---------
2
255.255.192.0
2 16382
3
255.255.224.0
6 8190
4
255.255.240.0
14 4094
5
255.255.248.0
30 2046
6
255.255.252.0
62 1022
7
255.255.254.0
126 510
8
255.255.255.0
254 254
9
255.255.255.128
510 126
10 255.255.255.192
1022 62
11 255.255.255.224
2046 30
12 255.255.255.240
4094 14
13 255.255.255.248
8190 6
14 255.255.255.252
16382 2
Class
C
Effective Effective
# bits
Mask
Subnets Hosts
------- --------------- --------- ---------
2
255.255.255.192
2 62
3
255.255.255.224
6 30
4
255.255.255.240
14 14
5
255.255.255.248
30 6
6
255.255.255.252
62 2
*Subnet all zeroes and all ones excluded.
*Host all zeroes and all ones excluded.
Copyright 1996 ©Cisco Systems Inc.
|