When to use routable vs non-routable IP addresses [closed]

Solution 1:

Those ranges you list are described in this RFC 1918 - Address Allocation for Private Internets

The title gives away their use case: "... for Private Intranets".

All IP Address ranges are technically routable including those listed in the RFC. But they are often referred to as non-routable. That's because they are not meant to be routable or reachable from the public internet. i.e. No routes exist on the internet for these ranges.

They are reserved for private networks. The way that a private network with an RFC 1918 IP range can reach the public internet without needing these private network routes to be published on the internet is through a router located between the private intranet and the internet that does network address translation or NAT. But that's another topic.

As for why you'd want non-routable addresses in the first place? This extraction from the RFC explains it.

One challenge is a concern within the community that globally unique
address space will be exhausted. 

A separate and far more pressing concern is that the amount of 
routing overhead will grow beyond the
capabilities of Internet Service Providers. 

Efforts are in progress
within the community to find long term solutions to both of these
problems. Meanwhile it is necessary to revisit address allocation
procedures, and their impact on the Internet routing system.

Solution 2:

I guess I'm going to be the contrarian on this one. IMO, too many people make too much of a fuss trying to correct people when they talk about class-full ip addressing. The RFC 1918 reserved addresses were carved out of what was at the time the class-full address space. In fact, every piece of documentation I've ever read about the RFC 1918 addresses refers to them in their class-full designations. I think it's perfectly acceptable to refer to RFC 1918 addresses as Class A, Class B, etc.

As for the routable/non-routable debate I'll post this (directly from RFC 1918):

   Because private addresses have no global meaning, routing information
   about private networks shall not be propagated on inter-enterprise
   links, and packets with private source or destination addresses
   should not be forwarded across such links. Routers in networks not
   using private address space, especially those of Internet service
   providers, are expected to be configured to reject (filter out)
   routing information about private networks. If such a router receives
   such information the rejection shall not be treated as a routing
   protocol error.

That description perfectly and succinctly describes the "non-routable" nature of RFC 1918 addresses and as such, makes it perfectly acceptable to refer to them as non-routable, IMO.

I think that too much time is spent debating this. If someone refers to an RFC 1918 address space as a Class A, Class B, etc. and refers to them as being non-routable then I'm perfectly OK with that. I know what they mean when they say that and so should everyone else. Even for the network "noob", understanding class-full addressing, the RFC 1918 address space, as well as CIDR is key to developing a strong understanding of networking.

In Addition:

RFC 1918 refers to these private address ranges using both CIDR and class-full terms, as in the following examples:

We will refer to the first block as "24-bit block", the second as
"20-bit block", and to the third as "16-bit" block. Note that (in
pre-CIDR notation) the first block is nothing but a single class A
network number, while the second block is a set of 16 contiguous
class B network numbers, and third block is a set of 256 contiguous
class C network numbers.

And

If a suitable subnetting scheme can be designed and is supported by
the equipment concerned, it is advisable to use the 24-bit block
(class A network) of private address space and make an addressing
plan with a good growth path. If subnetting is a problem, the 16-bit
block (class C networks), or the 20-bit block (class B networks) of
private address space can be used.

I can find no statement in RFC 1918 that prefers one term over the other and maybe it would have been better if RFC 1918 weren't so ambiguous with it's usage of both terms, but it is what it is. My only point here is that I think it's time we stop hitting people over the head when they use the terms "class" or "class-full" when referring to these ip address ranges. If a person understands ip addressing then they understand the usage of both terms when they encounter either one (or both) in discussion or in literature/documentation. For the person who is just learning ip addressing then it's my opinion that having a solid understanding of class-full addressing goes a long way to understanding ip addressing in general and sets the foundation for understanding classless addressing.

Solution 3:

Private IPv4 address spaces are routable and companies are using them for internal networks. You can use them with routing protocols like OSPF, BGP. Sometimes people are announcing them publicly (BGP), by mistake.

All modern equipment are using CIDR. Even MS-DOS supports CIDR. Network classes and terminology is obsolete. It should be studied just for archaeological reasons.

The only difference between private IPv4 address spaces and public ones is that the private ones are not unique on Internet and they are intended to be used internally. But this doesn't stop you to have an agreement with a neighbor AS and use them between you and your neighbor. In this case "internally" means between you two. Yes, it is bad practice, but it is possible.