Sometimes the most elementary of questions yield teachable moments; read on as we delve into how a single digit change between 127.0.0.0 to 127.0.0.1 offers a chance to look at network topology.
Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.
SuperUser reader Disa is curious about loopback IPs:
I know that both are loopback IPs, but they have another ip mask.
What’s the difference between them? Can they be used interchangeably?
=========================================================================== IPv4 routes =========================================================================== Active routes: Destination Mask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.6 26 [...] 127.0.0.0 255.0.0.0 On-link 127.0.0.1 306 127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
What kind of information can we tease out from this table?
Two SuperUser contributors jumped in to help solve the mystery. First, Mmmc offers this succinct overview:
No. You cannot use them both. And they are not both loopback adresses.
127.0.0.1is a loopback address
127.0.0.2is a loopback address
127.0.0.3is a loopback address and so on
127.0.0.0is a network address. Together with mask 255.0.0.0 it gives you a hint that whole class A of addresses starting with
127.*.*.*will contain loopback addresses.
Then, YLearn offers a broader overview of naming conventions in general and how to think about them:
What is shown in the screenshot is a routing table from a computer. The routing table is just a “roadmap” that tells a computer/router where to go to get to other devices on the network.
In some ways this is similar to how we navigate in real life.
The first column provides the list of known destinations (where can I go) and the second column indicates how specific the destination (I can go to Canada or I can go to Uncle John’s house in Canada). Without getting into great detail, the “higher” the mask value, the more specific the destination. So a value of 0.0.0.0 covers going to any device and a value of 255.255.255.255 specifies an individual device.
The third column specifies where traffic should go next to get to the destination (if you are going to Canada, you need to start by getting on Main Street) and the fourth column indicates which path out of the device should be used to get to the destination (from home you may only have your driveway but from the Walmart parking lot you may have several “exits” to choose from).
Finally, the metric gives the computer a way to choose the best path if there are multiple routes to the destination (you can go out either the north or east exit from the parking lot to get to Canada, but the east one is a faster).
So to answer the original question, no you can’t use 127.0.0.0 and 127.0.0.1 interchangeably. The difference shown here is that there exists two routes – a general route to any device using 127.x.y.z and a very specific route to host 127.0.0.1 (which is in 127.0.0.0), both of which use the 127.0.0.1 interface
Have something to add to the explanation? Sound off in the the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.