My take is that NAT's respond to several flaws in the IPv4 architecture:
- 1) Not enough addresses - this being the one that brought them into
- 1a) Local allocation of addresses - a variant of the preceeding one, but
subtly different; NAT's do allow you to allocate more addresses
locally without going back to a central number allocation authority,
which is very convenient.
- 2) Easy renumbering when switching ISP's - a benefit that only was
realized later in time, but a significant one all the same -
especially for those people who reckon that switching addresses is a
really painful undertaking.
You might be surprised to find that I agree with the above. But I also think
it's useful to consider technical reasons for wanting NATs in IPv4 separately
from the things that motivate people to install NATs - and many of the latter
have no technical basis. e.g. people have been sold on NAT functionality by
being told that it's a firewall and that the NAT protects them from attacks.
I think that if you look at the points I listed above, the market has
clearly decided that IPv4+NAT (for all its problems, with which people are
I'm sure reasonably familiar, given the many years NAT has been in service
widely) is the most cost-effective solution to providing them.
Again, there are sound technical justifications and there are uninformed
motiviations, and both affect people's purchasing decisions. Whether NAT+IPv4
is cost-effective has a lot to do with what you want to do with your network;
the answer will be different for different user communities. I think it's
more realistic to say that IPv4+NAT was the easiest thing to try first to
alleviate the flaws you list above, since it claimed (unrealistically) to
solve those problems without upgrading hosts, applications, or the packet