Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
What's the history behind 192.168.1.1? (quora.com)
58 points by vinnyglennon on July 5, 2018 | hide | past | favorite | 48 comments


This explains the reason private ranges were designated but not why 192.168.0.0 in particular within the Class C range was designated to be private. Does anyone know why that number in particular was chosen?


Found this link in one of the responses on that page:

https://superuser.com/questions/784978/why-did-the-ietf-spec...

    Similarly, I expect Postel picked 192.168 because, at the time he made the
    choice, it was the next available, or nearly the next available, network to be
    assigned from the former Class C space. This probably can't be proved one way
    or the other, but the pace of address assignments shown in the RFCs strongly
    suggests that they would have been in this general vicinity around 1993-1994
    when the assignments were made. (Addresses in 192.159 were being assigned in
    1992. No dates are available for assignments in 192.160-192.167 as these were
    at some point reallocated to RIPE.)


Text formatted as code on HN is very difficult to read when on mobile. Using italics or > to quote things is better.

Similarly, I expect Postel picked 192.168 because, at the time he made the choice, it was the next available, or nearly the next available, network to be assigned from the former Class C space. This probably can't be proved one way or the other, but the pace of address assignments shown in the RFCs strongly suggests that they would have been in this general vicinity around 1993-1994 when the assignments were made. (Addresses in 192.159 were being assigned in 1992. No dates are available for assignments in 192.160-192.167 as these were at some point reallocated to RIPE.)


To be clear, the 192 part is the lowest "Class C" network prefix. The 168 part was the arbitrary time-dependent part from the allocation database.


Correct, thanks for making that explicit.


It may be lost to history - it's defined in https://tools.ietf.org/html/rfc1918#section-3. I wonder if the people involved in the document are still around to ask.


Yes, many of them are still alive and even still working in the field. Some have blogs.


192.168 = 11000000 10101000

Other than the class portion of the addressing, this is no more significant than when engineers use A5 and 5A for markers (1010 0101 0101 1010).

Or, so it would seem. :)


What the given article does not address is when to choose 10.x.x.x, 172.x.x.x and 192.168.x.x and why it's important to choose the right one.

Here is the prescribed solution:

- Use 10.x.x.x for office/enterprise LANs

- Use 192.168.x.x for home LANs

- Use 172.x.x.x for supplementary services like guest networks, DMZ etc

Why so? The reason is VPN.

When you connect to office VPN from home, you connect from 192.168.x.x to 10.x.x.x. This makes it very easy for routers to avoid address range clashes.

If you break that rule then you may end up with a weird situation when you connect from a home network 10.0.1.1/24 to an office network 10.0.1.1/24. Good luck trying to connect to that specific 10.0.1.12 machine: there is no easy way to determine where the packet should be routed.


Hmmm ... it's easy to avoid clashes by choosing somewhat unique addressing schemes in those ranges.

For example, the 10. private network allows 255 different addressing schemes if you use a 16 bit subnet mask (10.0/16, 10.1/16, 10.2/16 .. 10.254/16), and ~64,000 schemes with an 24 bit subnet mask (10.0.0/24, 10.0.1/24, 10.0.2/24 .. 10.254.254/24). Just don't choose the common ones: 10.0/16, 10.0.0/24, 192.168/16, 192.168.0/24, etc.


what if I have two homes?


Or if you are visiting someone else, you're in a cafe, a hotel ...


Or your home is in a hotel but you walk down to the cafe ... should you renumber ?


Something I never understood is why people choose 192.168.1.1 for private networks.

Being all the other factors equal, isn't 10.1.1.1 easier to type and more "aesthetically pleasant"?


> Something I never understood is why people choose 192.168.1.1 for private networks

While interviewing someone for an entry-level job, I told the interviewee that there was a network using 10.0/16 (a 16-bit subnet mask, or more popularly 10.0.x.x). He corrected me and said that 10.0.0.0 networks should have an 8 bit subnet mask (10.x.x.x). On one hand, I definitely liked that he was willing to challenge me, even during an interview, and that he knew the spec (RFC 1918 does assign an 8-bit mask to the 10. private network). On the other hand, I wasn't sure he was technically correct that a 16-bit mask was wrong, even if 8-bits was 'correct', and I couldn't see what negative consequence the 16-bit subnet had - his thinking seemed a bit rigid. Anyway, maybe there are other purists who believe smaller networks should use 192.168/16, or maybe they instinctively use it because the RFC gives it the smaller network allocation. Or maybe they know something that I don't.

> isn't 10.1.1.1 easier to type and more "aesthetically pleasant"?

And it's much easier for non-technical people to understand and to remember without error. In fact, I recommend something even easier, such as 10.9.8.x. For people supporting the non-technical, those little details can save hours, even a day. I've seen cases where after hours of frustration, the support tech discovers that the user typed in something like 129.168, or 192.16.8. Great support reps are great humanitarians, able to handle those situations with grace, without humiliating the poor user, and without heavy drinking.

EDIT: clarifying edit


He was wrong. Subnets exits for two things. Physical segmentation of networks and consequently limiting the scope of broadcasts.

With a /8 (especially with desktop machines) the broadcast would definitely be a major bottleneck in the network.


10.0.0.0/8 is correct, you can only use the last 24 bits. But nothing prevents you from breaking this class A in smaller networks!

That means that you can not use 10.0.0.0/7 (which would include 11.0.0.0) but you can use 10.0.0.32/30, that includes from 10.0.0.32 until 10.0.0.35.


For some reason courses that cover some networking used to make a huge point about the network classes for many years after CIDR made them completely irrelevant.


10/8 is a class A range (high order bit = 0), but CIDR says that you can separately describe which bits are for the network. Unless this interview was conducted more than 20 years ago I'd say your interviewer was mistaken.


> I'd say your interviewer was mistaken

Is that what you meant to say? The interviewer (me) thought that 10.0/16 was fine, which I think agrees with your analysis. The interviewee said only 10/8 was correct.

(Re-reading my GP comment I realize that my role might have been ambiguous, so I've clarified it.)


If you said 10/24, I'd immediately think 10.0.0.0/24. 10/8 would certainly be valid. 10.0/16 is too.

I remember when CIDR came around back in the 90's. Man people were pissed off when you would call out a 'Class A/B/C/D/E' block. I prefer to always be specific when writing my CIDR. I understand when people don't do it.

Be liberal in what you accept and conservative in what you send.


Yes, Postel's advice applies to many things.

I think there is some misunderstanding. The question wasn't the notation but the subnetting. See the story in the GGP.


Sorry yes, you were right in saying 10.0/16.


It depends. Some use 10.0.0.x, some use 192.168.1.x and some use 192.168.178.x

There's also 172.16.0.x, which I have never seen used by default on any networking devices.. which makes it perfect if you have a piece of network that you visibly want to separate from the rest of the LAN.


I use 172.16.0.0/12 for that reason, to differentiate it from other subnets when using VPNs.


I almost always put my VPN connections in this range for that reason. Nobody ever uses it. Makes it obvious when you see that address in a webserver log or a route table.


Plenty of companies, universities and even small ISPs use 10.0.0.0


Not 100% sure, but it may be because so much SOHO equipment uses 192.168/16 by default.


IIRC, I used to have one of the old Apple Airport travel routers back in the day and it used 10.0.0.1 by default. I've tended to prefer that block for my home network ever since.


But why? Someone had to choose that default.


One possible reason is that a lot of corporate networks use 10.x.x.x. If you’re using a similar subnet at home, using a VPN can get awkward.


Yep. We use both 10.x.x.x and 192.168.x.x at my workplace (who knows why). I had to request a special change to our VPN settings so I could still access my home network while connected to it.


Wouldn't it have been easier to change your home network?


Easier to change address allocations and DNS entries of a dozen devices in my network to fix the problem for just me, than to make a request to corporate IT to fix the problem for everyone? No.


It's the smallest of the private IPv4 ranges. Corporate and academic networks tend to use the larger ones, so it's the least likely to cause a numbering conflict.


At my company we use 10.0.x.x for that reason, easy to type.


Up until 4 years ago, I used to always allocate addresses specifically on bit boundaries. I did this mainly for one reason - aligning the bytes and trying not to waste CPU cycles.

For example, in a /24 network: 0-15 - network equipment 16-31 - some special gear 32-63 - mail servers or something like that 64-127 - split it up and align more things 128-191... you get the point.

... The ultimate goal was to hit everything on a bit boundary so the CPU wouldn't work so hard

These days, CPU power is so prominent, it doesn't matter. DHCP is probably the way to go.

IPv6 is here. We have the opportunity to really make CPU's fast again with IPv6!


What's a "bit boundary" in this context? And how does you subclassing scheme prevent wasted CPU cycles. at all?


I wish there was a netblock reserved for packets that never leave a physical (or virtual) host, that could be used for the default internal network for things like Docker. In my case, Docker defaulted to 172.17.0.0/16, which happened to conflict with one of the IP ranges for my wing of the building at work.

I've resorted to using RFC 5737 (test-net-1 through 3) IP ranges for this purpose, even though that isn't what they are designed for.


127/8 exists for this purpose. IPv6 funny enough went conservative here and only has a single address, ::1/128.


Uuh, 127.0.0.1 never leaves the physical machine. It's also a full subnet, so 127.0.0.254 would work as well.

Dockers main usecase just isn't purely internal, do using that ip range wouldn't make any sense


Too late to edit my message, so I'll use a response instead. Docker rebinds the 127 network to each container, so you cant - by default - communicate through these IP Addresses.

An easy fix could be to just let the container use the hosts network stack (so, not network type: bridge). After that, you can bind the daemons to specific IP Addresses in the subnet - i.e. 127.0.0.2:3306 DB1 127.0.0.3:3306 DB2 and they'll be able to communicate directly.

But as mentioned before: this is not the primary usecase for docker, so its cumbersome to use.


I still learned about net classes, subnetting and supernetting in 2003, to me it was how networks worked till a few yeara ago :D


What changed a few years ago? IPv6?


I read about classless internet domain routing.


I gotta try out the 127.0.0.x thing at the end of the article. I never knew the range was so large!


It's actually 127.x.x.x, a whole class A.


Ugh, not another site that blocks pinch to zoom gestures on mobile. It doesn’t make sense to me why so many (quite popular) sites care so little about enabling their users to comfortably read their content. The solution, for now, is to use Safari since it started ignoring that setting, but unfortunately Chrome still allows it for some reason.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: