An Overview of IP Version 6
IP version 6 (IPv6) is the next generation Internet Protocol that
has the potential to drastically change the way we use the Internet
as part of our everyday lives. The world has come to rely on the
Internet for news, email, shopping, banking, research and so much
more. For many, it would be hard to imagine life without this super
information highway. There is no doubt that the Internet has
changed the world, but it has a problem. The current Internet
transport protocol, IP version 4, is over 20 years old and is
beginning to show its age. Flaws have surfaced that are going to
critically affect the future of the Internet if they are not
addressed.
IPv6 is a complete redesign of IPv4 that not only addresses the
weaknesses of IPv4, but also improves the protocol in a number of
ways. This redesigned protocol has come about as a result of
unanticipated shortcomings with the original design of IPv4. To
understand IPv6 we first must take a look at the problems with IPv4.
The three main problems of IPv4 are problems with
- Addresses
- Routing
- End-to-Endness
|
IPv4 Addresses
IPv4 assigns a host a 32 bit address to uniquely identify that host
from every other entity connected to the Internet. A 32 bit address
gives us roughly 4 billion unique addresses, but due to reserved
addresses and inefficient allocation of these addresses, there are
significantly less values to hand out to every computer connected to
the Internet. Declining computer prices, widely available Internet
access, and the increase in Internet capable devices have spurred the
growth of the Internet. As a result, IPv4 addresses are in short supply
and are in danger of being exhausted in the near future. Many fixes and
workarounds have been implemented to account for the lack of addresses
and therefore prolong the usefulness of IPv4, but these fixes have come
at the cost of increased complexity and decreased usability. The only
way to increase the number of available addresses is to increase the
number of bits used to identify each system connected to the Internet.
IPv4 Routing
The second problem with IPv4 has to do with the core Internet routers that
receive and direct traffic from the source to the desired destination. In
order for each router to determine the correct link to send a packet of data
out on, it must consult a routing table filled with entries of networks and
the communication links associated with each network. The size of these
routing tables have grown to an incredible size and will continue to grow with
the Internet. At some point, the size of these routing tables will become so
large that routers will lack the necessary memory and processing power to route
traffic. IPv4 addressing lacks the architecture necessary to aggregate networks
and reduce the number of entries in the routing tables. In fact, some experts
suggest that the threat of router collapse due to routing table size will
ultimately push acceptance and deployment of IPv6.
IPv4 End-to-Endness
The final major problem with IPv4 relates to end-to-end support in the Internet.
One solution for the shortage of IP addresses is the deployment of network address
translation (NAT) where a single computer with a public Internet address acts as an
intermediate node for multiple computers connected to the node on a private network.
NATs break the very end-to-end nature of an interconnected network due to multiple
computers all sharing the same Internet address. The result is an additional level
of complexity that presents problems for configuration and network applications,
especially security.
Solution: IPv6
IP version 6 offers solutions to all the problems that have surfaced since the deployment
of IPv4. IPv6 offers a plentiful address space, better routing scalability, and easier
end-to-end support, but the improvements do not stop there. IPv6 has been designed to be
efficient, flexible, easier to configure, and secure. These improvements in IPv6 will make
it possible to do things with the Internet that could not be done easily or at all using IPv4.
IPv6 Addressing
Internet addresses have been increased from 32 bit values in IPv4 to 128 bit values in IPv6.
128 bits will be enough to provide addresses to every internet capable host for many, many
years to come. This 128 bit address space is also more structured than that of IPv4. The
lower 64 bits are designated as the interface ID and the upper 64 bits are composed of a
global routing prefix and subnet ID. The interface ID is a unique identifier for every
interface on a host while the global routing prefix and subnet ID are variable length fields
that are used by routers to direct packets to their destination. The global routing prefix
is inspected by Internet backbone routers while the subnet ID is inspected by internal routers.
The abundance of IP address will also allow for better address aggregation which will in turn
reduce the number of entries in the global default routing tables. Address aggregation occurs
when we have separate networks that share most of the upper bits in the global routing prefix of
their addresses. Any routers that are not immediately connected to these networks need only one
entry in their routing table in order to direct traffic to any of the aggregated networks. The
result is a hierarchically structured routing scheme where most routers need only know how to reach
the aggregate network and not each individual network within that aggregate.
Better end-to-end support is also a result of such an immense address space. Every computer, cell
phone, PDA, traffic light, toaster, and any other device that could be equipped with an Internet
connection will be able to have its very own unique address. Each device will be directly accessible
through the Internet and therefore, will be easier to configure and support.
IPv6 Improvements
The three primary problems of IPv4 are all solved by IPv6's increased and better structured address
space, but IPv6 goes further and improves IPv4 in a number of ways. IPv6 is secure, efficient,
flexible, and easy to configure.
IPv6 is secure because it requires the use of the IP Security Protocol (IPsec). IPsec is a security
architecture for the Internet Protocol that provides authentication, integrity, and confidentiality.
Authentication verifies that the data is from the indicated sender, integrity guarantees that the data
is not corrupt or has not been modified, and confidentiality ensures that only the intended recipient
can read the data. IPsec only provides security for data in transit through the Internet; it does not
guarantee that hosts are protected and cannot be compromised. Also, IPv6 cannot be said to be more
secure than IPv4 since IPsec can be used with IPv4. IPv6 simply mandates the use of IPsec for all
traffic.
Improved efficiency in IPv6 comes from a fixed header size and fewer fields to process. IPv4 has a
header size that can vary from 20 bytes to 40 bytes depending on what options are included. Routers
must process the entire header including options that do not require any action by the router. IPv4
routers also have to calculate a CRC for the header for every single packet it processes. This is
unnecessary since the integrity of the entire packet including the header is handled by IPsec or other
upper level layers. IPv6 fixes the header size to 40 bytes and removes several fields including the CRC.
The result is the elimination of wasted CPU cycles. The IPv6 header is more streamlined and simpler
compared to IPv4, but the additional functionality introduced by IPv6 may result in more complex and
demanding routing computations.
IPv6 becomes more functional and more flexible through the use of extension headers. Extension headers
are additional headers added after the primary IPv6 header. These headers can be used to fragment
packets, specify the route a packet should take, or include instructions for each router to process.
IPsec headers and destination options are also included as extension headers. The specification for
IPv6 allows for additional extension headers to be added as the need arises.
IPv6 introduces several mechanisms that makes configuration of nodes automatic. With IPv4, each node
must be manually configured or a server must be setup to hand out information such as an IP address,
domain name server, and default gateway. IPv6 nodes can automatically determine this information
through the use of Neighbor Discovery that lets an individual node solicit information about routers
and servers on the local link.
Neighbor Discovery also allows entire networks to be easily renumbered. When a network is relocated
or ISP's are changed, the entire network must be reconfigured to use the new network addresses. For
many networks this is very impractical due to the number of hosts and equipment that would have to be
reconfigured. Usually networks keep their original addresses and a new entry is added to the backbone
routing tables, further elevating the problem of growing routing tables. IPv6 allows entire networks
to be renumbered easily which will help maintain smaller and more efficient routing tables.
Transition Issues
IPv6 is an improvement to IPv4 in almost every way, but the switch cannot be made overnight. Many
businesses and corporations are reluctant to move to a new technology when the current technology
works just fine. As a result, IPv6 offers a product that is not in demand. It's going to take IPv6
devices and applications to justify this switch. Version 6 and version 4 will have to coexist for
quite some time. In fact, IPv4 may never fully be replaced. Computing systems with custom hardware
and/or software such as operating systems may never become IPv6 capable.