In the last two articles, we talked about IPv4 basics (Part IV) (Part V). We introduced the concept of folding a sheet of paper to understand subnetting. Each fold of the paper is a bit borrowed from the host address field. We illustrated net IP, valid IP addresses and Local Broadcast Address (LBA). The net IP and the Local Broadcast Address cannot be assigned to nodes. These are like cookies, and the valid IP addresses are like the filling.

I do not know why, but in business settings, some folks frown on assigning Class C address space. Just mentioning it in case you encounter it. I’m sure the bits don’t care.

Let’s assume you have been asked to create 500 subnets in a Class B network space. You go to your notes and look up the Class B addresses available for private use. You write down that you can use the range from 172.16.0.0 to 172.31.255.255 (Table 7). You also write down that the default subnet mask is 255.255.0.0. And just to jog your memory, you write down that the network you are using is then 172.16.0.0/16, because /16 is the CIDR notation for the default Class B subnet mask.

Next, you start mentally folding the paper that is the 172.16.0.0/16 network. You need 500 subnets. To get there, you fold once, making two subnets. Fold again to get 4. Fold a third time and you have 8. Fold a fourth time to get 16. A fifth fold gets you 32, and a sixth gets you 64. A seventh fold means you have 128 subnets. An eighth fold gives you 256. And finally, a ninth fold gets you to 512, enough to cover the 500 subnets your boss asked for.

We folded the paper nine times. Therefore, we need to borrow nine bits from the host address space to create the 500 subnets. In binary, the subnet mask you started with was 11111111.11111111.00000000.00000000.

We need to borrow nine bits in the host space. This means changing nine zeros in the subnet mask to ones, giving us 11111111.11111111.**11111111.1**0000000.

This makes the fourth octet the critical octet, because it is where the transition between network and host address space occurs.

Of course, we want to write this in decimal, since we are human and frankly, it is simpler to remember. The new subnet mask is 255.255.255.128, because the first bit in the fourth octet has a decimal weight of 128.

Next, we need to know the increment for our subnetting exercise. We look again at Table 11 and discover that for a subnet mask value of **128**, the decimal weight is **128**, so the increment is **128**.

The first address in the network is 172.16.0.0. We write that down as the first net IP. We then write down 172.16.0.128 as the second net IP, because 128 is the increment. The Local Broadcast Address for the first subnet is then one less than the second net IP, or 172.16.0.127. We write that down in the first space for the LBA. The valid IP addresses for this first subnet start at one greater than the net IP and end at one less than the LBA for the subnet. We write down the range of valid IP addresses, the filling for the cookies, as 172.16.0.1–126.

The next step is to write down the net IPs for the remaining subnets, then the Local Broadcast Addresses for each subnet. Of course, there is a pattern to this because of the increment. After the net IP of 172.16.0.128, we add 128 to the address. To wit, 128 plus 128 is 256. Since 172.16.0.256 is not a valid address, we change the 256 to 0 and increment the octet to its left. This gives us 172.16.1.0 for the next net IP. We can fill in the rest of the net IPs by following the same pattern with alternating 0 and 128 in the fourth octet, and incrementing the third octet.

The LBA for the second subnet must be one less than the third net IP. Subtracting 1 from 172.16.1.0 leaves 172.16.0.255. With the pattern established, the rest can be filled in easily.

In the interest of space, I will not show all 500 subnets, since you can see the pattern.

In the next article, we’ll take up subnetting for hosts per subnet.

*Tom Norman, CPBE is project engineer for Diversified.*