The RFC 1918 on private IPv4 ranges might be interesting to read, https://tools.ietf.org/html/rfc1918
The 10.x.x.x/8 is intuitive, but I’m not sure why 192.168.x.x/16 and 172.16.x.x/12 were chosen
For that matter, I’m also curious why 169.x.x.x was chosen for IPv4 link local addresses
The RFC explains the reason why we chose three ranges from “Class A,B & C” respectively: CIDR had been specified but had not been widely implemented. There was a significant amount of equipment out there that still was “classful”.
As far as I recall the choice of the particular ranges went as follows:
10/8: the ARPANET had just been turned off. One of us suggested it and Jon considered this a good re-use of this “historical” address block. We also suspected that “net 10” might have been hard coded in some places, so re-using it for private address space rather than in inter-AS routing might have the slight advantage of keeping such silliness local.
172.16/12: the lowest unallocated /12 in class B space.
192.168/16: the lowest unallocated /16 in class C block 192/8.
In summary: IANA allocated this space just as it would have for any other purpose. As the IANA, Jon was very consistent unless there was a really good reason to be creative.
192 is a nice number like that because it’s at the bottom of the Class C space, and the classes were delimited in nice ways (they had prefixes 0, 10, 110, and 1110, leaving 1111 as “experimental” / future use).
The other ones are, judging from this comment, coincidental: the lowest class B network was 128.0.0.0/12, but evidently everything from 128 up to 172-and-change (705 networks or so) had already been given out, as had the first 165 class Cs (back then, no one had much reason to stick themselves with just a /24).
For the curious, 10/8 used to be public, but I wrote about how it became private.
I wondered about private network assignments after reading this recent curl post about IP address formats.
192.168.
corresponding to octal0300.0250.
sparked my interest!The RFC 1918 on private IPv4 ranges might be interesting to read, https://tools.ietf.org/html/rfc1918 The 10.x.x.x/8 is intuitive, but I’m not sure why 192.168.x.x/16 and 172.16.x.x/12 were chosen
For that matter, I’m also curious why 169.x.x.x was chosen for IPv4 link local addresses
The coauthor of 1918 replied in the linked thread:
I don’t know why, but it always amuses me that its a nice looking binary number.
11000000.10101000. (192.168.)
10101100.00010000 (172.16.)
You can find beauty in many binary numbers
192 is a nice number like that because it’s at the bottom of the Class C space, and the classes were delimited in nice ways (they had prefixes 0, 10, 110, and 1110, leaving 1111 as “experimental” / future use).
The other ones are, judging from this comment, coincidental: the lowest class B network was 128.0.0.0/12, but evidently everything from 128 up to 172-and-change (705 networks or so) had already been given out, as had the first 165 class Cs (back then, no one had much reason to stick themselves with just a /24).