## Analyzing Classful Networks and My Dear Aunt Sally

No, I don’t really have an Aunt Sally. Some of you may have recognized the mnemonic device for multiplication and division (My Dear), and for addition and subtraction (Aunt Sally), as taught to so many school kids in the USA.  Today’s post is about the subnetting equivalent to Aunt Sally: the basic building blocks of how to analyze an IP address to discover the classful IP network in which it resides, as well as other key facts about that network. Easy? Sure, once you know how, but you have to know the rules.

This post summarizes the rules, as a reference for some future drills to let you get some more practice. And for those of you with my ICND1 book, Chapter 13 spells out the details as well.

## Easy, but Way Important

The concepts mentioned in this post require you to memorize some numbers, and apply some basic rules. The rules are as basic as addition and subtraction with non-negative integers. But if you don’t master these simple tasks, subnetting becomes much more difficult. In that case, it would be like trying to do algebra problems when you’re unsure of your multiplication tables – it just takes you longer, and you’ll make more mistakes.

So, what is it that this post covers? Starting with one Dotted Decimal Notation (DDN) number that looks like an IPv4 address, determine the following:

1. Is the address a class A, B, C, D, or E address, or none of these?
2. If A, B, or C, determine the classful IP network number.
3. If A, B, or C, determine the classful IP network broadcast address.
4. List the range of IP addresses that can be assigned for use by hosts in this classful network.

If you can do the above already, move on. If not, then it’s worth the time to memorize the number ranges, get the process down, and practice until it is automatic. And it really should be automatic before you head off to take the ICND1 or CCNA exams – all the analysis mentioned here should pretty much pop into your head the second you see an IP address.

The rest of the post focuses on the details of how to determine the items in the earlier list.

## Item 1: From IP Address to Class (A, B, C, D, or E)

To start with a DDN number, and identify the class, all you need to do is memorize the information in Table 1, and compare the first octet of the DDN number to the first column. The second column lists the class. If the first octet of the DDN number is not in any of the (inclusive) ranges shown in the table, then the DDN number is not in any of the five classes.

#### Table 1: Key Facts about Classful IPv4 Networks

 First Octet Range (Inclusive) Class Number of Network Octets Number of Host Octets 1 – 126 A 1 3 128 – 191 B 2 2 192 – 223 C 3 1 224 – 239 D N/A N/A 240 – 255 E N/A N/A

(Note: You might get some argument that addresses that begin with 0 in the first octet are also class A, but are reserved and not assigned. Feel free to go with that stance as well.)

## Item 2: Finding the Classful IP Network ID

For class A, B, and C addresses, the address exists or resides inside a class A, B, or C network. That network, also called a classful IP network (to emphasize that we’re talking about the entire network, and not a subnet inside that classful IP network), has an identifying number. That number goes by the name network number, network address, and network identifier (network ID).

Finding the network ID uses this process:

• Copy the first 1, 2, or 3 octets, the network octets, of the original DDN number
• Write 0’s for the remaining octets

For instance, with DDN number 1.2.3.4, the first octet is 1, so it exists as a class A address. To find the network ID, copy the first octet, because per Table 1, class A networks have 1 network octet. To complete the number, write down 0’s, for a network ID of 1.0.0.0.

To find the broadcast address for the network, use the same process as for finding the classful network ID. However, when writing those final 0’s, write 255’s instead. Here’s the formal process to be complete:

• Copy the first 1, 2, or 3 octets, the network octets, of the original DDN number
• Write 255’s for the remaining octets

For instance, with DDN number 1.2.3.4, the first octet is 1, so it exists as a class A address. To find the network broadcast address, copy the first octet, because per Table 1, class A networks have 1 network octet. To complete the number, write down 255’s, for a network broadcast address of 1.255.255.255.

## Item 4: Finding the Range of Host Addresses

Each classful IP network, when used as one entity instead of being divided through subnetting, can use all the DDN numbers between the network ID and the network broadcast address as host IP addresses. To find the range of these numbers, all you have to do is call on dear old Aunt Sally, as follows:

• To find the numerically lowest IP address in the range, add 1 to the 4th octet of the network ID.
• To find the numerically highest IP address in the range, subtract 1 from the 4th octet of the network broadcast address.

For instance, again with DDN number 1.2.3.4, the network ID is 1.0.0.0, and the network broadcast address is 1.255.255.255. So, the low end of the range of IP addresses usable by hosts is 1.0.0.0, +1, for 1.0.0.1. The high end is 1.255.255.255, -1, for 1.255.255.254.

## Conclusion

That’s it. I’ll get some exercises posted. If you have my ICND1 book, you already have some in Chapter 13.

Subscribe
Notify of

Inline Feedbacks

it says class B has 192. Is that a mistake? Or is it something I never knew before?

It was my mistake – thanks for the heads up. I edited the post so others would more easily avoid misinformation. Thanks Anik!
Wendell

At the end of the explanation on Item 3 it says: ‘…, for a network ID of 1.255.255.255.’ and I think it should be: …, for a network broadcast address of 1.255.255.255.

Howdy,
Yep, you are right. I edited the text to fix it, rather than make people notice these comments. Thanks for the edit!
Wendell

I hate to bother you with this, feel free to ignore or delete.
I say that an address of 192.168.0.1/16 is not a Class C address. I also say that 192.168.1.1/25 is not a class C address but a subnet of the Class C network 192.168.1.0. I say these things with a willingness to except I might be wrong, but here is my thinking.

Classes would not exist if we were not routing before the advent of subnet masks, so therefore, if you are discussing a class, you are discussing the number of network bits the class defined? What do you say, do the first 4 bits really define the class if you’re applying a subnet mask to it that isn’t consistent with the class definition?

Hi Morgan,
Great attitude. Even after working in networking over 40 years, I still learn things most weeks.

If discussing a class, the class defines a number of network bits: 8, 16, or 24, based on the class.
Those classes use default masks of /8, /16, /24, respectively. The default mask mathematically represents the separation of network bits with mask bits of binary 1 versus host bits with mask bits of binary 0. EG, class C default mask of /24 has 24 1’s aka 24 network bits.
On a point of terminology, when you end with “that isn’t consistent with the class definition”, I’d call that a subnet mask. So in any network, if you use a mask other than the default mask, it’s a subnet mask.

So, take the number 192.168.1.1/25. You say it is not a class C address. So, what could “192.168.1.1/25” represent?
The 192.168.1.1 could represent an address, or a reserved number like a subnet ID or subnet broadcast address. The /25 is the subnet mask in prefix format.
Then you have to do the math to know. In this case, the literal “192.168.1.1/25”, if you take that and apply some subnetting math, you find the following facts about the numbers in the subnet it’s a part of:
subnet ID: 192.168.1.0

Finally, on your first 4 bits comment, the first 4 bits are unique for addresses in the class A, B, C, D, E ranges, but that’s a coincidence of the address range choices. Those bits/values have nothing to do with the structure of IP addresses (number of network, subnet, host bits), if subnetting is used, etc.

I think I hit your points. Hope this helps!
Wendell

I guess my real question is, is it accurate to say that 192.168.0.1/16 is an address from the class C range. I would have said no, its a Classless Inter-Domain Routing address, or an address that uses CIDR architecture, and I would have a hard time calling it a classless address, (or an address that uses a classless architecture), from the class C range, but I may have to get use to it when others do that.

You’re quiet welcome, Morgan.
So, numbers that begin with an octet between 192-223 are in the class C range. Whether the number is an address or not depends on the mask. In the example you give, without more context, it looks like an address. So it is an address in the class C range.

However, the number 192.168.0.1/16 implies another topic about routing called route summarization, or supernetting, as described in the CIDR RFC. Let’s say we were discussing the route in an Internet router for 192.168.0.0/16. That route matches all addresses that begin 192.168.0.0, including packets sent to address 192.168.0.1. Whether you call 192.168.0.1 an address in the class C range, or an address that matches the route to 192.168.0.0/16, packets destined to that address still match that route. But 192.168.0.1 is for sure an address. But it’s a class C address by definition, and its an address that parts of a supernet route/summary route/aggregate route in an Internet router’s routing table. Depends on what conversation you’re having.