What's the history behind 192.168.1.1?
quora.com
quora.com
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.)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.)
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. :)
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.
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.
Being all the other factors equal, isn't 10.1.1.1 easier to type and more "aesthetically pleasant"?
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
With a /8 (especially with desktop machines) the broadcast would definitely be a major bottleneck in the network.
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.
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.)
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.
I think there is some misunderstanding. The question wasn't the notation but the subnetting. See the story in the GGP.
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.
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!
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.
Dockers main usecase just isn't purely internal, do using that ip range wouldn't make any sense
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.