Company A


A Lighthearted Overview of a Collection of Technical Implementations Covering Networking, Security, Wireless, Virtualization and Storage.




Tagged: rfc1518.

You Stay Classy San Diego

Time for me to squash a pet peeve of mine:

The reference of any network segment imaginable that has a mask of 255.255.255.0 as
a “Class C”.

I was out at Company A this week and we were laying out the subnet design for the new network infrastructure. Company A uses the 10/8 Class A and RFC 1918 IP space throughout their internal network. We were planning on a /20 mask for each of the large IDFs which would allow for 16 /24 networks that we could use for various VLANs in the closet (data, voip, guest, security, management, etc). As we talked about this, there were several references to these
individual “Class C” networks.

I know what they meant. Many people use this crazy term to describe networks with masks of 255.255.255.0. The problem is that in this case, and many others, they aren’t Class C networks.

RFC 791 defines the method for determining network class as the following:

"There are three formats or classes of internet addresses: in class a, the high order bit is zero, the next 7 bits are the network, and the last 24 bits are the local address; in class b, the high order two bits are one-zero, the next 14 bits are the network and the last 16 bits are the local address; in class c, the high order three bits are one-one-zero, the next 21 bits are the network and the last 8 bits are the local address."

If we look at how a Class A network is defined, the high order bit must be a 0. The image below identifies the high order bit in the IP address 10.20.30.0.

Class A


This would indicate that if the first octet were in the range of 0 - 127 (if you go to 128 the first order bit will flip to a 1) we are dealing with a Class A network. Notice how the subnet mask is not part of the equation. Prior to RFC 1518 and RFC 1519 the high order bit and the next 7 bits defined the network, and the remaining bits defined the hosts (or local address). This is where the default mask of 255.0.0.0 for a Class A network is derived.

Class B networks are determined by the high order two bits being 0 and 1, in that order. This covers decimal 128 - 191 as being Class B networks as we can see below. The two high order bits and the next 14 bits define the network, therefore 255.255.0.0 is the default mask.

Class B


As you can guess, the Class C network is determined by interrogating the high order three bits and they need to be 1, 1, 0. The decimal range is 192 - 223. There are two more classes but for the purposes of my post I’m not getting into them. You can head here to learn more. Given the first three bits and the next 21 bits are used for the network, the default mask for a Class C network is 255.255.255.0.

Class C


My point here is that the subnet mask is not relevant when you are determining the class of an IP address or network. If you were going to use classfull subnet masks (who does this?) than you would apply the mask after you derived class. Only the first few bits of the first octet of the IP address are used to make that determination.

With that said, if you have the following network:

10.20.30.0 255.255.255.0

The correct way to describe it would be “a Class A network with a 24 bit subnet mask”.

It is not in any way, shape, or form a Class C network.

Carry on.

12:16 am, by companya  Comments