Such service can be used to translate private IP addresses on private LANs to public IPs, by so having access to different resources on the Internet, depending on the case. Network Address Translation allows a host using a private IP address to “borrow” a public IP while accessing the needed resources on the Internet. There are however a few of downsides to this, like performance issues and restrictions but nothing that would not facilitate the use of Internet resources through this method.
A few more of those reserved and restricted from use IP addresses are:
- The default route: 0.0.0.0 which is a match to all routes when a more specific route is not found (we will soon learn about routes). By using this address we will disable the whole 0.0.0.0/8 block which is everything between 0.0.0.0 and 0.255.255.255.
Loopback address which is mostly known as an IP of 127.0.0.1 used for testing mostly. It is used by hosts for directing traffic to themselves. Services can use this IP instead of the one assigned for communicating with eachother and so they are bypassing the lower layers of the TCP/IP stack because there is no transmission over media. The loopback address is also used for testing the configuration of the TCP/IP stack on the local host. Again the whole range is reserved, which is 127.0.0.0 to 127.255.255.255. Any address on this range will bounce back the packets to original host.
Link-Local Addresses are the addresses in the range of 169.254.0.0 to 169.254.255.255 (169.254.0.0/16) that will be automatically assigned to local hosts by the operating system, when they would fail to get IPs from DHCP server and IP configuration is not available.
In the past the unicast IP addresses were classified into specific sizes called class A, B and C addresses. The multicast range contained class D addresses while the class E addresses were experimental. These agreements were also referred to as the Classful Notation or Addressing.
Class A was designed for extremely large networks with more than 16 million host addresses and used a network prefix of /8 so the first octet was used to indicate network address. All class A networks require that the most significant bit of the first octet to be a 0. The range of class A networks would be 0.0.0.0/8 to 127.0.0.0/8 without counting the reserved address blocks. To understand better, you can see this displayed in the table below.
Class B address space were used for moderate to large networks with more than 65000 hosts. Class B networks use a network prefix of /16. Class B networks also require that the first two bits of the first octet to be 10. The range would be from 18.104.22.168/16 to 22.214.171.124/16.
Class C address space was used for small networks of up to 254 hosts. Class C networks use a prefix of /24. The fixed value for the most significant bits in the first octet, which should be the same to match a class C network, should be 110. This means the address range was from 192.0.0.0/16 to 126.96.36.199/16.
Even if it is obsolete today, it is still used by some operating systems and applications to automatically assume the subnet mask of an IP, based on the classful notation and the Class it would match. With this system, in the past a lot of IP addresses were wasted because, for example, a company with 300 hosts would have to use a class B network instead of a class C, which would mean that the difference of more than 64000 IP addresses would be wasted. Class B allowed more than 65000, while class C 254 hosts. Some routing protocols still assume the subnet mask based on the classful addressing.
Currently the world is using a classless addressing which closely resembles the needs of companies and hosts in different environments, with a lot less IPs to waste.
All this explained in a simple table would look something like this: