Network Systems DesignLine | Transition IPv6 seamlessly in embedded systems




March 20, 2007

Transition IPv6 seamlessly in embedded systems

Here's an overview of IPv6 and an introduction to possible transition methods, complete with the implications of transition on an embedded system.

IPv6 Overview
IPv6 was designed to be an evolutionary step from IPv4. It was not a design goal to take a radical step away from IPv4. Functions that work in IPv4 were maintained in IPv6, and those that didn't work were removed. The changes from IPv4 to IPv6 fall primarily into the following categories:

  • Expanded Routing and Addressing Capabilities--IPv6 increases the IP address size from 32 bits to 128 bits, to support more levels of addressing hierarchy and a much greater number of addressable nodes, and simpler auto-configuration of addresses.
  • The scalability of multicast routing is improved by adding a "scope" field to multicast addresses.
  • Header Format Simplification--Some IPv4 header fields have been dropped or made optional, to reduce the common-case processing cost of packet handling and to keep the bandwidth cost of the IPv6 header as low as possible despite the increased size of the addresses. Even though the IPv6 addresses are four times longer than the IPv4 addresses, the IPv6 header is only twice the size of the IPv4 header.
  • Improved Support for Options--Changes in the way IP header options are encoded allows for more efficient forwarding, less stringent limits on the length of options, and greater flexibility for introducing new options in the future.
  • Quality-of-Service Capabilities--A new capability is added to enable the labeling of packets belonging to particular traffic "flows" for which the sender requests special handling, such as non-default quality of service or "real-time" service.
  • Authentication and Privacy Capabilities--IPv6 includes the definition of extensions, which provide support for authentication, data integrity, and confidentiality. This is included as a basic element of IPv6 and will be included in all implementations.

The IPv6 protocol consists of two parts, the basic IPv6 header and IPv6 extension headers.

IPv6--Unique aspects
IPv6 solves Internet scaling challenges, provides a flexible transition mechanism for the current Internet, and meets the needs of such new markets as mobile personal computing devices, networked entertainment, and device control. This article summarizes a variety of IPv6 key issues while focusing on the use of the dual stack in embedded systems where resources are often limited. IPv6 is designed with a rich set of seamless transitions methods. Specific mechanisms (embedded IPv4 addresses, pseudo-checksum rules etc.) are built into IPv6 to support transition and compatibility with IPv4. It was designed to permit a gradual deployment.

IPv6 supports large hierarchical addresses, which allow the Internet to continue to grow and provide new routing capabilities not built into IPv4. It features anycast addresses, which can be used for policy route selection and has scoped multicast addresses, which provide improved scalability over IPv4 multicast. It also features local use address mechanisms, which provide the ability for "plug and play" installation. IPv6 provides a platform for new Internet functionality. This includes support for real-time flows, provider selection, host mobility, end-to-end security, auto-configuration, and auto-reconfiguration.

IPv6 can be installed as a normal software upgrade in Internet devices. It is interoperable with the current IPv4. Its deployment strategy was designed to not have any D-day. IPv6 is designed to run well on high performance networks (e.g., ATM, MPLS) and at the same time is still efficient for low bandwidth networks (e.g., wireless). In addition, it provides a platform for new internet functionality that will be required in the near future.

Key issues
There are several key issues that should be considered when reviewing the design of the next generation Internet protocol. Some are very straightforward while others are less obvious. For example, the protocol must be able to support large global networks and there must be a clear way to transition the current large installed base of IPv4 systems. It doesn't matter how good a new protocol is if there isn't a practical way to transition the current operational systems running IPv4 to the new protocol.

Growth
Growth is the basic issue for a next generation IP. Initially, IPv4 was designed to serve the computer market, the driver of the growth of the Internet. Its focus is to connect computers together in the large business, government, and university education markets. The computer market, however, will not drive the next phase of growth. Running all services (real-time and non real-time) on one network, mobile devices, Internet games and multimedia is the driving force behind IPv6.

At some point in the next few years the Internet will require new version of the Internet protocol. Two factors are driving this: routing and addressing. Global Internet routing based on the 32-bit addresses of IPv4 is becoming increasingly strained. IPv4 addresses do not provide enough flexibility to construct efficient hierarchies that can be aggregated. The deployment of Classless Inter-Domain Routing is extending the life of IPv4 routing by a number of years, and the effort required to manage the routing will continue to increase. Even if IPv4 routing can be scaled to support a full IPv4 Internet, the Internet will eventually run out of network numbers. There is no question that an IPv6 is needed--only a question of when.

As soon as the financial incentive is significant enough, IPv6 networks will start to be implemented, just as today, we are seeing the implementation of VoIP systems. It is predicted that the transition from our all IPv4 Internet to an all IPv6 Internet will last for approximately 35 years.

Transition
The challenge for an IPv6 is for its transition to be complete before IPv4 routing and addressing break. The transition will be much easier if IPv4 addresses are still globally unique. There will be IPv6-only hosts, just as there will be IPv4-only hosts. The capability must exist for IPv6-only hosts to communicate with IPv4-only hosts globally while IPv4 addresses are globally unique. New features alone are not adequate to motivate users to deploy new protocols. IPv6 also has to propose a great transition strategy in addition to new features.

IPv6 transition mechanisms
The key transition objective is to allow IPv6 and IPv4 hosts to interoperate. A second objective is to allow IPv6 hosts and routers to be deployed in the Internet in a highly diffuse and incremental fashion, with few interdependencies. A third objective is that the transition should be as easy as possible for end-users, system administrators, and network operators to understand and carry out.

IPv6 transition mechanisms are a set of protocol mechanisms implemented in hosts and routers, along with some operational guidelines for addressing and deployment, designed to make transition the Internet to IPv6 work with as little disruption as possible. The IPv6 transition mechanisms ensures that IPv6 hosts can interoperate with IPv4 hosts anywhere in the Internet up until the time when IPv4 addresses run out, and allows IPv6 and IPv4 hosts within a limited scope to interoperate indefinitely after that. This feature protects the huge investment users have made in IPv4 and ensures that IPv6 does not render IPv4 obsolete. Hosts that need only a limited connectivity range (e.g., printers) need never be upgraded to IPv6.

The incremental upgrade features of the IPv6 transition mechanisms allow the host and router vendors to integrate IPv6 into their product lines at their own pace, and end users and network operators to deploy IPv6 on their own schedules.

In summary the IP version 4 to IP version 6 migration scenarios are:

  • The dual stack
  • Tunnelling IPv6 on IPv4
  • Tunnelling IPv4 on IPv6
  • IPv6 Translation or Transport level translation (Layer 4)
  • Application-layer Gateways

The dual stack migration scenario is particularly dedicated to hosts. It is important as it may take some time before all the applications we want to use on our systems are converted to IP version 6. We may want to still use our IP version 4 applications but to communicate with hosts or servers over IP version 6.

For the embedded designers, the software architecture of the target system is very similar to a host software architecture.


Figure 1. The host Dual Stack approach

In the Dual Stack approach the Link layer must demultiplex the incoming frame based on the Protocol Ids:


You can also find in the current literature a transition method called Dual Stack Transition Method (DSTM). This is different than the pure Dual Stack running on a single host.


Figure 3. Dual Stack Transition Mechanism

DSTM particulars:

  • IPv4 packet to be sent, ask DSTM server for address (Port address translation can be used to optimize IPv4 address pool utilization)
  • Ask DSTM Gateway to add Tunnel End Point (TEP)
  • Reply to host with: Allocated IPv4 address, Allocation period, IPv4 and IPv6 addresses of the TEP
  • Use the tunnel to access any external host

For an embedded engineer, the main driver is the re-use of our IP Version 4 applications. Such hybrid configurations as the Bump in the Stack (BIS) and the Bump in the API (BAS) also exist.




About the Author
Christian E. Legare is Vice-President of Micrium Technologies Corporation. Legare has a Master's degree in Electrical Engineering from the University of Sherbrooke, Quebec, Canada. Christian can be reached at: Christian.legare@micrium.com.