A computer network is a collection of interconnected computing devices that can exchange data and share resources according to one or more communication protocols. The communication protocols define the format and manner in which the devices communicate the data. Example protocols include the Transmission Control Protocol (TCP) and the Internet Protocol (IP) that facilitate data communication by dividing the data into small blocks called packets.
The currently implemented IP Protocol Version 4 (IPv4) defines a global address space comprising 232 globally unique addresses. Because of the demand for global addresses, a relatively small number of the devices of a local area network (LAN) are assigned globally unique addresses. For example, devices such as firewalls and mail servers may be assigned globally unique addresses. The vast majority of the devices within the LAN are assigned local addresses that are unique to the local network, but not globally.
In order to communicate with devices outside of the local network, such as devices coupled to a global network like the Internet, the devices of the LAN make use of a pool of a limited number of globally unique addresses. The globally unique addresses may, for example, be assigned from an Internet Service Provider (ISP), typically in the form of one or more blocks of global addresses.
More specifically, the local network may contain a network address translation (NAT) device that maps the local addresses of the devices to the global addresses of the pool. The NAT device temporarily maps the local address of a device within the LAN, to one of the globally unique addresses of the pool. The NAT device then translates the addresses of all outbound and inbound packets between the local address of the device and the temporarily assigned global address selected from the pool. The few devices within the local network that have globally unique address, for instance a mail server, may bypass the NAT device and connect directly to the global network. In this fashion, NAT devices help relieve demand for globally unique addresses.
The proposed Internet Protocol Version 6 (IPv6) addresses the lack of available globally unique addresses by increasing the number of available globally unique addresses from 232 to 2128 by defining a 128-bit IP address to replace the current 32-bit address defined by IPv4. The vast availability of globally unique addresses with the implementation of IPv6 allows each device within a local network to be assigned a globally unique address. However, the general increase in use of global addresses that may result from the adoption of IPv6, may cause a significant increase in the load placed on routing devices within the global network. For example, the increased assignment and use of global addresses may significantly increase the size of the global routing tables maintained by the routing devices, which already tend to be significantly large. Maintenance of the global routing tables may require significant increases in computing resources. Consequently, the routing tables may take significant periods to converge to stable states after updates, such as when a network fault occurs. Also, in order to optimize routing in the global Internet, it has been proposed that global IPv6 addresses may be assigned based on the hierarchical topology of the Internet. When a company changes service providers it will be necessary for the global addresses used for that company to change. To change the addresses used by devices in the local network can be a difficult administrative task.