Networking Tips

  


IP Addressing Scheme

by Jeff Hunter, Sr. Database Administrator

Contents

Introduction

The number of machines in your network and need to support, will affect several decisions you will need to make. Some organizations require only a small network of serveral dozen standalone machines located on one floor of a single building. In other organizations, you may need to set up a network with more than 1000 hosts spanning several buildings. In cases where you will need to support a large number of hosts, it may require you to further divide your network into subdivisions called subnets. The size of your prospective network will affect the:

Parts of an IP Address

Any TCP/IP network will require a unique network number and every host on a TCP/IP network will require a unique IP address. Before registering your networking and obtaining a network number, it is critical that you understand how IP address are constructured.

An IP address is a 32-bit number that uniquely identifies a network interface on a machine. IP addresses are typically written in decimal digits, formatted as four 8-bit fields separated by periods. Each 8-bit field represents a byte of the IP address. This form of representing the bytes of an IP address is often referred to as the dotted-decimal format.

The bytes of an IP address can be further classified into two parts: the network part and the host part. The example below shows the components of the Class B network 192.168.1.100.

192.168.1.100
------- -----
  |       |___ (host part)
  |
  |____ (network part)

Network Part

This part specifies the unique number assigned to your particualr network. It is also the part that identifies the class of network assigned. In the above example, the network part takes up two bytes of the IP address, namely 192.168.

Host Part

This is the part of the IP address that you assign to each host, and uniquely identifies each host on your network. Note that for each host on your network, the network part of the address will be the same, but the host part must be different.

Subnet Number (optional)

Many local area networks (LANs) with a large number of hosts will be divided into subnets. If you choose to divide your network into subnets, you need to assign a subnet number for the subnet. You can maximize the efficiency of IP address space by using some of the bits from the host number part of the IP address as a network identifier. When used as a network identifier, the specified part of the address becomes the subnet number. You create a subnet number using a subnet mask, which is a bit mask that selects the network and subnet parts of an IP address.

Network Classes

The first step in planning for IP addressing on your network is to determine which network class is appropriate for your network. After you have done this, you can trake the critical second step - obtaining the network number from the interNIC addressing authority.

Currently, there are three classes of TCP/IP networks. Each class uses the 32-bit IP address space differently, providing more or fewer bits for the network part of the address. These classes are Class A, B and Class C.

Class A Network Numbers

A Class A network number uses the first 8 bits of the IP address as its "network part". The remaining 24 bits comprise the host part of the IP address. (See below)

bits  0           7-8         15-16        23-24         31
      +------------+------------+------------+------------+
      |  Network   |                Host                  |
      |   Part     |                Part                  |
      +------------+------------+------------+------------+

The values are assigned to the first byte of Class A network numbers fall within the range 0-127. Consider for example the IP address 68.8.1.100. The value 68 in the first byte indicates that the host is on a Class A network. The InterNIC assigns only the first byte of a Class A number. Use of the remaining three bytes is left to the discretion of the owner of network number. Only 127 Class A networks can exist. Each one of these numbers can accomodate up to 16,777,214 hosts.

Class B Network Numbers

A Class B network number consists of the first 16 bits for the network number and 16 bits for host numbers. The first byte of a Class B network number is in the range 128-191. Take for example the IP address 132.168.1.100, the first two bytes, 132.168, are assigned by the InterNIC, and comprise the network address. The last two bytes, 1.100, make up the host part of the address, and is assigned at the discretion of the owner of the network number. (See below)

bits  0           7-8         15-16        23-24         31
      +------------+------------+------------+------------+
      |         Network         |           Host          |
      |          Part           |           Part          |
      +------------+------------+------------+------------+

Class B is typically assigned to organizations with many hosts on their network.

Class C Network Numbers

A Class C network uses 24 bits for the network part and 8 bits for the host part. Class C network numbers are appropriate for networks with few hosts - the maximum being 254. A Class C network number occupies the first three bytes of an IP address. Only the fourth byte is assigned at the discretion of the network number owner. (See below)

bits  0           7-8         15-16        23-24         31
      +------------+------------+------------+------------+
      |                Network               |     Host   |
      |                 Part                 |     Part   |
      +------------+------------+------------+------------+

The first bytes of a class C network number covers the range 192-223. The second and third each cover the range 1-255. A typical Class C address might be 192.98.1.100. The first three bytes, 192.98.1, form the network number. The final byte in this example, 100, is the host number.

Administering Network Numbers

If you organization has been assigned more than on network number, or uses, subnets, appoint a centralized authority within your organization to assign network numbers. That authority should maintain control of a pool of assigned network numbers, assigning network, subnet, and host numbers as required. To prevent problems, make sure that duplicates or random network numbers do not exist in your organization.

Designing You IP Addressing Scheme

After receiving your network number, you can then start planning how you will assign the host parts of the IP address.

The table below (Division of IP Address Space) shows the division of the IP address space into network and host address spaces. For each Class, "range" specifies the range of decimal values for the first byte of the network number. "Network Address" indicates the number of bytes of the IP address that are dedicated to the network part of the address, with each byte represented by xxx. "Host Address" indicates the number of bytes dedicated to the host part of the address. For example, in a Class A network address, the first byte is dedicated to the network, and the last three are dedicated to the host. The opposite is true for a Class C network.

Division of IP Address Space
+--------------------------------------------------------+
| Class    Range      Network Address   Host Address     |
|--------------------------------------------------------|
|   A      0-127      xxx               xxx.xxx.xxx      |
|   B      128-191    xxx.xxx           xxx.xxx          |
|   C      192-223    xxx.xxx.xxx       xxx              |
+--------------------------------------------------------+

The numbers in the first byte of the IP address define whether the network is Class A, B, or C and are always assigned by the InterNIC. The remaining three byes have a range from 0-255. The numbers 0 and 255 are reserved; you can assign the numbers 1-254 to each byte depending on the network number assigned to you.

The following table shows which bytes of the IP address are assigned to you and the range of numbers within each byte that are available for you to assign to your hosts.

Range of Available Numbers
+-----------------------------------------------------------------------+
| Class    Byte 1 Range    Byte 2 Range    Byte 3 Range   Byte 4 Range  |
|-----------------------------------------------------------------------|
|   A      0-127           1-254           1-254          1-254         |
|                                                                       |
|   B      128-191         Pre-assigned    1-254          1-254         |
|                          by Internet                                  |
|                                                                       |
|   C      192-223         Pre-assigned    Pre-assigned   1-254         |
|                          by Internet     by Internet                  |
+-----------------------------------------------------------------------+

How IP Addresses Apply to Network Interfaces

Before connecting a host to the network, a computer must have at least one network interface. Each network interface must have its own IP address. The IP address that you give to a host is assigned to its network interface, sometimes referred to as the primary network interface. If you add a second network interface to the machine, it must have its own unique IP address. Adding a second network interface changes the function of a machine from a host to a router. If you add a second network interface to a host and disable routing, the host is then considered a multihomed host.

Each network interface has a device name, device driver, and associated device file in the /devices directory. The network interface might have a device name such as le0 or smc0, device names for two commonly used Ethernet interfaces.

About the Author

Jeffrey Hunter is an Oracle Certified Professional, Java Development Certified Professional, Author, and an Oracle ACE. Jeff currently works as a Senior Database Administrator for The DBA Zone, Inc. located in Pittsburgh, Pennsylvania. His work includes advanced performance tuning, Java and PL/SQL programming, developing high availability solutions, capacity planning, database security, and physical / logical database design in a UNIX / Linux server environment. Jeff's other interests include mathematical encryption theory, tutoring advanced mathematics, programming language processors (compilers and interpreters) in Java and C, LDAP, writing web-based database administration tools, and of course Linux. He has been a Sr. Database Administrator and Software Engineer for over 20 years and maintains his own website site at: http://www.iDevelopment.info. Jeff graduated from Stanislaus State University in Turlock, California, with a Bachelor's degree in Computer Science and Mathematics.



Copyright (c) 1998-2014 Jeffrey M. Hunter. All rights reserved.

All articles, scripts and material located at the Internet address of http://www.idevelopment.info is the copyright of Jeffrey M. Hunter and is protected under copyright laws of the United States. This document may not be hosted on any other site without my express, prior, written permission. Application to host any of the material elsewhere can be made by contacting me at jhunter@idevelopment.info.

I have made every effort and taken great care in making sure that the material included on my web site is technically accurate, but I disclaim any and all responsibility for any loss, damage or destruction of data or any other property which may arise from relying on it. I will in no case be liable for any monetary damages arising from such loss, damage or destruction.

Last modified on
Tuesday, 03-Jan-2012 13:29:04 EST
Page Count: 52144