A New Look at Subnetting an IP Address

Introduction

The process of subnetting is both a mathematical process and a network design process. Mathematics drives how subnets are calculated, identified, and assigned. The network design and requirements of the organization drive how many subnets are needed and how many hosts an individual subnet needs to support.

This paper focuses on the process rules and helpful hints for learning to subnet an IPv4 address. It covers the following topics:

  1. Need for subnets
  2. Process for subnetting
  3. Formulas for subnet calculation
  4. Examples for putting everything together
  5. Variable Length Subnet Mask (VLSM)
  6. Determine the subnet, usable range of host addresses, and broadcast address for a given host
  7. Helpful tables

NOTE: Throughout this document, the term IP address refers to an IPv4 address. This document does not include IPv6.

IP Address Construct and Representation

An IP address is a thirty-two-bit binary number. The thirty-two bits are separated into four groups of eight bits called octets. However, an IP address is represented as a dotted decimal number (for example: 205.57.32.9).

The Need for Subnets

What exactly is subnetting? Subnetting is taking an IP network and subdividing it into smaller IP networks called subnetworks, or subnets. Every IP network, or subnet, is a broadcast domain. A broadcast domain is a collection of devices that can receive broadcast traffic from each other. Broadcast traffic is traffic that is delivered to every device on the network.

Having a single broadcast domain, or a "flat network," presents two main problems.

  1. In a single large broadcast domain, there is a large amount of broadcast traffic. Broadcast traffic is very inefficient and consumes large amounts of resources, such as bandwidth, processor cycles, and memory. In fact, enough broadcast traffic on a network can cause other applications, such as email, word processors, and spreadsheets, to be negatively impacted.
  2. When all devices are part of the same broadcast domain, there are no protocol boundaries between devices, so implementing security policies is difficult. In other words, there is no easy way to protect one device from another device without using host-based mechanisms, such as host-based firewalls, permissions, rights, and anti-virus. These methods serve a valuable purpose, but they are not very efficient, and they can degrade performance of the host.

The solution to these problems is to break the single large broadcast domain into several smaller broadcast domains. By doing this, the number of devices connected to each broadcast domain is smaller. This reduces the amount of broadcast traffic, improving the performance of all devices on the network. Additionally, a boundary between devices is created, which greatly improves and simplifies the implementation of security policies.

As an analogy, imagine a single room, and in this room are five different groups of people; one group in each corner and one group in the center. Each group of people has a microphone and is discussing a different topic. If you were a member of one of the groups, picture how difficult it would be to hear people in your group, concentrate on your topic, and share confidential information.

Now imagine the single room being separated into five smaller rooms. Each group now has its own room with a door and can communicate without competing with the other groups. Each person can hear and concentrate better and more easily keep confidential information within the group.

The concept of dividing a large room into smaller rooms is the same as the concept of dividing a large broadcast domain (IP network) into smaller broadcast domains (subnets).

The Subnetting Process

In order to create IP subnets, host bits are changed to network bits. This is often called borrowing bits. It is also often referred to as taking host bits and giving them to the network. By borrowing host bits, more IP subnets are created, but each subnet can support fewer hosts.

To change a host bit to a network bit, the subnet mask must be changed. Remember, a binary 0 in the subnet mask means that the corresponding bit in the IP address is part of the host ID. A binary 1 in the subnet mask means that the corresponding bit in the IP address is part of the network ID. So, to change a bit from a host bit to a network bit, the binary value of the bit must be changed from 0 to 1 in the subnet mask.

When calculating subnets, the following process should be used. Each step of the process will described in detail later in this paper.

  1. Determine the assigned IP address space.
  2. Determine the number of subnets required based on the design of the existing network, along with the structure of the organization. It is common to assign a subnet to each department within the organization.
  3. Based on the default mask of the IP address space and the number of required subnets, determine how many host bits need to be borrowed. Also determine how many hosts each subnet can support.
  4. Calculate the decimal value and prefix value of the new subnet mask.
  5. Apply the new subnet mask to the assigned IP address space to calculate the network address of the new possible subnets, the broadcast address for each possible subnet, and the range of usable IP addresses in each possible subnet.
  6. Assign IP addresses to all devices, including router interfaces that are connected to that subnet.

Formulas for Subnet Calculation

There are several formulas and rules used to calculate subnets. The formulas and rules are discussed below.

Possible Number of Subnets

To calculate the number of possible subnets, use the formula 2n, where n equals the number of host bits borrowed. For example, if three host bits are borrowed, then n=3. 23 = 8, so eight subnets are possible if three host bits are borrowed. The table below lists the powers of 2.

To complete the third step of the subnetting process, determine how many host bits need to be borrowed and rewrite the formula as 2n > (number of required subnets). For example, if the number of required subnets is 18, then write the formula as 2n > 18. Solve for n by getting as close to the number of required subnets as possible without going under. In this example, n = 5 (25 = 32). This means that to create at least 18 subnets, 5 host bits must be borrowed.

Possible Number of Hosts Per Subnet

To calculate the number of possible hosts per subnet, use the formula 2h - 2, where h equals the number of host bits. The reason two addresses must be subtracted is because of the network address and the broadcast address.

There are two ways to determine the number of host bits.

  1. Determine the number of remaining host bits based on the default mask and the number of host bits borrowed.
    1. Determine the assigned IP address space.
    2. Determine number of host bits available.
    3. Determine number of host bits borrowed.
    4. Determine the number of remaining host bits by subtracting the number of host bits borrowed from the default number of host bits. The difference is h in the formula.
    5. Determine the number of possible hosts by using the formula 2h - 2. Use the table above to determine the number of hosts available after a specific number of bits have been borrowed from the host portion of the address.
    6. Calculate the new subnet mask and prefix. Examples for each default mask are shown in the table below.

  1. Determine how many host bits need to be saved based on the number of hosts the subnet needs to support. This scenario is coming from a design perspective and is very common.
    1. Determine the assigned IP space based on the default mask.
    2. Determine the number of host bits available.
    3. Determine how many hosts the subnet needs to support.
    4. Rewrite the formula as 2h - 2 > (number of required hosts), where h equals the number of host bits that must be saved.
    5. Solve for h, by finding the exponent of 2 whose value is as close to the number of required hosts as possible without going under. That exponent is the value of h.
    6. All other bits not saved for host bits become network bits. Use the following formula to determine how many host bits are given to the network portion: (Number of Host Bits Available) - h
    7. Calculate the new subnet mask and prefix.

Understanding the concept of saving host bits is critical. Remember, host bits are always the bits to the far right of the IP address. So when saving host bits, start with the far right bit (the last bit of the last octet) and count to the left. Remaining host bits are given to the network portion.

For example, suppose that six host bits need to be saved. This means the last six bits of the last octet are saved as host bits, while the first two bits of the last octet, along with any host bits from the second and third octet, are given to the network portion. The table below shows this concept.

Examples for each default mask are shown in the table below.

Calculate New Subnet Mask

To complete the fourth step of the subnetting process—calculating the decimal and prefix values of the new subnet mask—perform the following steps.

  1. Determine the default mask of IP network.
  2. Determine how many host bits were borrowed or given to the network.
  3. Calculate the new subnet mask and prefix. To calculate the new subnet mask start with the first binary 0 in the default subnet mask and change it to a binary 1. Continue doing this, moving left to right, for the number of bits borrowed.

For example, if the default subnet mask is 255.255.0.0, and if the number of bits borrowed is four, then the first four bits of the third octet must be changed from binary Os to binary Is. In this example, the new subnet mask is 255.255.240.0.

The table below provides an example of these steps.

Calculate the New Subnets

Calculating the new subnets is part of the fifth step of the subnetting process. In the subnet mask, the last bit borrowed is called the Least Significant Bit (LSB). The figure below shows an example.

In the subnet mask 255.255.240.0, the LSB is the fourth bit of the third octet. This bit has a value of 16. This is important to note, because the value of the LSB determines the multiples of the new IP subnets. In other words, the network numbers of the new possible subnets go in increments of 16 in the third octet. The table below shows the new possible subnets.

Use the value of the LSB to determine the new possible subnets works for every class of IP network with any subnet mask.

Calculate the Broadcast Address and Usable Range of the New Subnets

Once the network address of the new possible subnets is known, the broadcast address and the usable range for the new subnets can be quickly calculated.

To calculate the broadcast address and each of the subnets, identify the next subnet then go back one address. The table below shows the new subnets and their broadcast addresses.

Subnet Address

Broadcast Address

172.20.0.0

172.20.15.255

172.20.16.0

172.20.31.255

172.20.32.0

172.20.47.255

172.20.48.0

172.20.63.255

172.20.64.0

172.20.79.255

172.20.80.0

172.20.95.255

172.20.96.0

172.20.111.255

172.20.112.0

172.20.127.255

172.20.128.0

172.20.143.255

172.20.144.0

172.20.159.255

172.20.160.0

172.20.175.255

172.20.176.0

172.20.191.255

172.20.192.0

172.20.207.255

172.20.208.0

172.20.223.255

172.20.224.0

172.20.239.255

172.20.240.0

172.20.255.255

To calculate the usable range of IP addresses—meaning, the range of IP addresses that can be assigned to devices connected to the subnet—do the following:

  1. Add one address to the subnet address to find the first usable IP address.
  2. Subtract one address from the broadcast address to find the last usable IP address.

The following table shows all of the new possible subnets; the usable range of IP addresses for each subnet; and the broadcast address for each subnet.

Subnet Address

Usable Range of Host IP Addresses

Broadcast Address

172.20.0.0

172.20.0.1 through 172.20.15.254

172.20.15.255

172.20.16.0

172.20.16.1 through 172.20.32.254

172.20.31.255

172.20.32.0

172.20.32.1 through 172.20.47.254

172.20.47.255

172.20.48.0

172.20.48.1 through 172.20.63.254

172.20.63.255

172.20.64.0

172.20.64.1 through 172.20.79.254

172.20.79.255

172.20.80.0

172.20.80.1 through 172.20.95.254

172.20.95.255

172.20.96.0

172.20.96.1 through 172.20.111.254

172.20.111.255

172.20.112.0

172.20.112.1 through 172.20.127.254

172.20.127.255

172.20.128.0

172.20.128.1 through 172.20.143.254

172.20.143.255

172.20.144.0

172.20.144.1 through 172.20.159.254

172.20.159.255

172.20.160.0

172.20.160.1 through 172.20.175.254

172.20.175.255

172.20.176.0

172.20.176.1 through 172.20.190.254

172.20.191.255

172.20.192.0

172.20.192.1 through 172.20.207 254

172.20.207.255

172.20.208.0

172.20.208.1 through 172.20.223.254

172.20.223.255

172.20.224.0

172.20.224.1 through 172.20.239.254

172.20.239.255

172.20.240.0

172.20.240.1 through 172.20.255.254

172.20.255.255

Putting it All Together

Here is a /24 example demonstrating everything. The given IP address space is 192.168.33.0 /24. The required number of subnets is 6. The table below shows the six step subnetting process.

Step 1—Given IP Address Space

192.168.33.0

Default Subnet Mask = 255.255.255.0 Default Number of Host Bits = 8

Step 2-Number of Required Subnets

6

Step ЗА— Determine Number of Bits to Borrow

3

(2n > 6, where n = the number of host bits to borrow. n=3

(23 = 8))

Step 3B— Determine

30

(Number of host bits available) - n = h

Number of Hosts per Subnet

8-3 = 5 h = 5

2h - 2 = (Number of hosts per subnet) 25 = 32 - 2 = 30

Step 4-Calculate new subnet mask and prefix

Default Subnet Mask = 255.255.255.0 Default Prefix = /24 New Subnet Mask = 255.255.255.224 New Prefix = /27

Step 5—Apply

Subnet

Usable Range

Broadcast

the Subnet

192.168.33.0

192.168.33.1 - 30

192.168.33.31

Mask to the IP

192.168.33.32

192.168.33.33 - 62

192.168.33.63

Space

192.168.33.64

192.168.33.65 - 94

192.168.33.95

 

192.168.33.96

192.168.33.97 - 126

192.168.33.127

 

192.168.33.128

192.168.33.129 - 158

192.168.33.159

 

192.168.33.160

192.168.33.161 - 190

192.168.33.191

 

192.168.33.192

192.168.33.193 - 222

192.168.33.223

 

192.168.33.224

192.168.33.225 - 254

192.168.33.255

Step 6—Assign IP Addresses to Devices as Appropriate

The router interface usually receives the first IP address of the subnet, but this is not required.

 

172.17.1.128

172.17.1.129 - 172.17.1.254

172.17.1.255

 

172.17.2.0

172.17.2.1 - 172.17.2.126

172.17.2.127

 

172.17.2.128

172.17.2.129 - 172.17.2.254

172.17.2.255

 

172.17.3.0

172.17.3.1 - 172.17.3.126

172.17.3.127

 

172.17.3.128

172.17.3.129 - 172.17.3.254

172.17.3.255

 

172.17.4.0

172.17.4.1 - 172.17.4.126

172.17.4.127

 

172.17.4.128

172.17.4.129 - 172.17.4.254

172.17.4.255

Step 6—Assign IP Addresses to Devices as Appropriate

The router interface usually receives the first IP address of the subnet, but this is not required.

Variable Length Subnet Masking

When the subnet mask is fixed throughout the IP network, meaning the subnet mask is the same for every subnet, it is called Static Length Subnet Masking (SLSM). SLSM often leads to wasted IP addresses.

The IP network 172.16.0.0 /16 has been assigned to an organization. The organization has subnetted this IP network into multiple /24 (255.255.255.0) subnets. A /24 subnet means there are eight host bits, which means each subnet can support up to 254 hosts.

The figure above shows a region of the organization. For the LANs connected to the HQ router, 254 hosts per subnet is appropriate. However, for the LANs connected to the branch routers, where only 50 hosts reside, 254 possible hosts is too many. In fact, there are 204 wasted IP addresses per branch. For the WAN links between the routers, where only two hosts reside, 254 possible hosts is extreme overkill. In fact, there are 252 IP addresses wasted on each WAN link. That means there is a total of 1,824 wasted IP addresses in this design.

In order to make more efficient use of the assigned IP address space, a Variable Length Subnet Mask (VLSM) can be used. In VLSM, the number of network and host bits assigned to a subnet can vary based on the number of hosts the subnet is required to support.

Additionally, implementing VLSM provides more levels of hierarchy within the IP address space because a subnet can be further subnetted. More levels of hierarchy provide opportunities for route aggregation, also called route summarization. When routes are summarized, a single entry in the routing table of a router represents multiple smaller networks. Route summarization improves the efficiency of routing protocols and the overall routing process.

The figure above shows the IP addressing scheme for the same region utilizing VLSM The organization is still assigned the 172.16.0.0 /16 network, but now the region is assigned the 172.16.8.0 /21 subnet. This subnet has a total of eleven host bits available.

Within the region, the 172.16.8.0 /21 subnet is further subnetted as follows:

  1. The networks connected to the HQ router are assigned the 172.16.8.0 /24 and 172.16.9.0 /24 subnets. A 24-bit prefix is chosen based on the number of hosts the subnet needs to support. Each of these subnets needs to support 200 hosts. In order to support 200 hosts, eight host bits must be saved. If eight host bits are saved, 24 bits can be given to the network portion. (For example: 11 total host bits - 8 saved host bits = 3 additional bits given to the network. 21 existing network bits + 3 additional network bits = 24 total network bits.) While this creates 254 possible host IP addresses, this overage is acceptable for two reasons:
    1. 254 possible host IP addresses is as close to 200 without going under as possible. If only seven host bits were saved, there would only be 126 possible host IP addresses.
    2. 54 additional host IP addresses leaves room for growth within the subnet. As a general rule, add 20 percent to the actual number of hosts to allow for growth. For example, the networks attached to the HQ router need to support 200 hosts, so planning for 240 hosts allows a buffer for growth within the subnet.
  2. The next available subnet after the 172.16.9.0 /24 subnet is the 172.16.10.0 /24. This subnet is further subnetted into subnets using 26 network bits (a 26-bit prefix) for the LANs at the branch offices. Again, the prefix is chosen for these subnets based on the need for each of the branch subnets to support 50 hosts. In order to support 50 hosts, six host bits must be saved. If six host bits are saved, 26 bits can be given to the network portion. While this creates 62 possible hosts per subnet, this overage is acceptable.
  3. The next available subnet after the 172.16.10.192 /26 subnet is the 172.16.11.0 /26. This subnet is further subnetted into subnets using 30 network bits (a 30-bit prefix) for the WAN links between the routers. Again, the prefix is chosen based on the need for each of the WAN links to support two hosts. In order to support two hosts, two host bits must be saved. If two host bits are saved, 30 bits can be given to the network portion. In this instance, having exactly two host IP addresses is acceptable because these are serial WAN links. Serial WAN links are point-to-point, meaning they have only two devices. Since no more than two devices can connect to a point-to-point link, there is no need to account for possible growth on those networks.

The figure also demonstrates route aggregation or summarization. In other words, all ten of the subnets within the region can be represented by the subnet 172.16.8.0 /21. This means that routers for other regions within the organization have only one entry in their routing tables instead of 10. Having a smaller routing table enables a router to forward packets faster. Additionally, by having a summarized route, if there is a topology change within the region, the routers at other regions do not need to rerun the routing protocol. This makes forwarding of packets much faster.

Determine the Subnet, Usable Range of Addresses, and Broadcast Address for Given Host

Often it is necessary to determine the subnet, the usable range of host IP addresses, and the broadcast address for a given host. This process is described below.

  1. Identify the IP address and subnet mask of the host.
  2. Identify the LSB to determine the interval of the subnets.
  3. Identify the subnet to which the host belongs. To do this, find the subnet ID that is closest to the host IP address without going over. (Think of the TV game show The Price Is Right— get as close to the price without going over.)
  4. Identify the broadcast address for the subnet. To do this, find the next subnet ID and subtract one address.
  5. Identify the usable range of host IP addresses. To do this, add one address to the subnet ID, and subtract one address from the broadcast address.

The tables below show an example for each default mask.

Given Host IP Address & Prefix

192.168.22.34 /28

Identify the LSB

16

The 28th bit is the 4th bit of the 4th octet.

128

64

32

16

8

4

2

1

1

1

1

1

(LSB)

0

0

0

0

Identify the Subnet to Which the Host Belongs

192.168.22.32

Because the LSB is 16, the interval of the new subnets is 16. 32 is the multiple of 16 closest to 34 without going over.

Identify the Broadcast Address for the Subnet

192.168.22.47

The broadcast address is one less than the next subnet ID. The next subnet ID after 207.59.22.32 is 207.59.22.48.

Identify the Usable Range of Host IP Addresses

192.168.22.33 - 192.168.22.46

The first usable IP address is one more than the subnet ID. The last usable IP address is one less than the broadcast address.


Given Host IP Address & Prefix

172.30.54.188 /23

Identify the LSB

2

The 23rd bit is the 7th bit of the 3rd octet.

128

64

32

16

8

4

2

1

1

1

1

1

1

1

1

LSB

0

Identify the Subnet to Which the Host Belongs

172.30.54.0

Because the LSB is 2, the interval of the new subnets is 2. 54 is the multiple of 2 closest to 54 without going over.

Identify the Broadcast Address for the Subnet

172.30.55.255

The broadcast address is one less than the next subnet ID. The next subnet ID after 172.38.54.0 is 172.38.56.0.

Identify the Usable Range of Host IP Addresses

172.30.54.1 - 172.30.55.254

The first usable IP address is one more than the subnet ID. The last usable IP address is one less than the broadcast address.


Given Host IP Address & Prefix

10.165.33.250/11

Identify the LSB

32

The 23rd bit is the 7th bit of the 3rd octet.

128

64

32

16

8

4

2

1

1

1

1

LSB

0

0

0

0

0

Identify the Subnet to Which the Host Belongs

10.160.0.0

Because the LSB is 32, the interval of the new subnets is 32. 160 is the multiple of 32 closest to 165 without going over.

Identify the Broadcast Address for the Subnet

10.191.255.255

The broadcast address is one less than the next subnet ID. The next subnet ID after 98.160.0.0 is 98.192.0.0.

Identify the Usable Range of Host IP Addresses

10.160.0.1 - 10.191.255.254

The first usable IP address is one more than the subnet ID. The last usable IP address is one less than the broadcast address.

Helpful Tables

Below are some helpful tables.

Prefix Notation to Dotted Decimal Notation Conversion

The table below shows the prefix notation and its equivalent dotted decimal notation.

List of Multiples

The table below lists the multiples, or intervals, for the bit values. These are used to calculate the list of new subnets created based on the LSB.

Conclusion

The ability to interpret and understand IP addresses and subnet masks is critical for an IT professional. This skill is the foundation for troubleshooting numerous problems, from the assignment of an IP address to a host to routing problems to access-control list problems. It is also necessary for designing and configuring efficient IP networks.