IPv6: Internet Protocol of the Future, Currently in V5R2
by Rian Lemmer and Kris Ryan
IPv6 is the newest version of Internet Protocol, created to overcome the limitations of IPv4 and replace it as the new standard. On its way to that lofty goal, it expands IP address space, automates tasks, and addresses issues related to security, mobility, and quality of service. V5R2 sets the table for the application of these enhancements on the iSeries. Be prepared for what's to come by reading on.
Because of the staggering numbers involved, the one enhancement of IPv6 that gets attention is the expansion of the IP address space from 32 bits to 128 bits, enabling virtually unlimited unique IP addresses. How many addresses is that? Exactly 340,282,366,920,938,
As the number of Internet devices (such as PCs, handhelds, and cell phones) rapidly increases worldwide, so does the need for many more IP addresses. While Network Address Translation (NAT) and private IP addresses provide a temporary fix to the address shortage, IPv6 eliminates the problem for the long term.
The capability to create more IP addresses than there are stars in the sky is not necessarily why you should have an interest in IPv6. In addition to the increased address space, IPv6 automates several tasks that previously required additional solutions, such as Dynamic Host Configuration Protocol (DHCP). The two key tasks that are automated in IPv6 are creating interfaces and creating routes.
Once IPv6 is configured on your system, it automatically creates interfaces and assigns IP addresses to clients using a process called stateless autoconfiguration. During this process, the node builds IPv6 addresses by combining an address prefix, such as fe80::/10, with either the media access control (MAC) address of the node or a user-specified interface identifier. The node then verifies the uniqueness of the new address by using duplicate address detection.
IPv6 uses neighbor discovery to create routes automatically for the new interfaces. During the neighbor-discovery process, IPv6 neighbors and IPv6 routers on the LAN exchange messages to determine where other IPv6 interfaces exist and where an appropriate route should be established. The messages, such as router solicitations and router advertisements, are based on Internet Control Message Protocol 6 (ICMPv6).
The result of this dynamic administration is that the network 'learns' about its environment and performs the necessary tasks with minimal direction from you.
Enhanced Security, Mobility, Quality of Service
IPv6 currently supports all of the IP security features of IPv4 when IPv6 over IPv4 tunneling is used. Changes to the header information in packets allow for simplified quality of service. For example, a new flow label field contains information that routers use to designate certain flow and priority to the packet. In addition, request for comment (RFC) drafts have been proposed that would support enhanced mobility for use in PDAs, cell phones, etc. As these features become standardized, IPv6 will become a more and more attractive addressing solution.
IPv6 on iSeries
Although IPv6 is still in its infancy, groundwork has been laid in V5R2 for developers to build and test applications on their iSeries in an IPv6 environment. In particular, the iSeries offers these key features for V5R2:
Assume you are a developer who simply wants to see if his new IPv6 application is functioning properly. You have no need for multiple interfaces and no need to send data to other nodes. You can test your application by configuring the loopback interface. Similar to IPv4 loopback, this is the simplest type of IPv6 setup. Loopback allows you to use your software without actually connecting to a physical network, and it requires no additional hardware. To configure loopback, simply choose Configure IPv6 with Loopback Only on the first selection screen in the wizard. The iSeries server does the rest. You have prepared the server for testing your application.
IPv6 on an Ethernet line
To demonstrate another type of IPv6 configuration, say that you've reached a point in developing your new IPv6 application where you need to test it on the network. You want your colleagues in the marketing and sales departments to send data back and forth to one another using the application. To do this, you need to utilize IPv6's ability to automatically create interfaces and routes so the data can travel between PCs.
You can use the iSeries Navigator IPv6 configuration wizard to configure an Ethernet line for IPv6. The iSeries currently runs IPv6 on Ethernet adapters only, either the 2838 or 2849 model. You must be using an Ethernet adapter and a completely separate line from IPv4. The wizard will help you identify whether you have the required hardware configured. The wizard guides you through the process of creating a line description on the Ethernet adapter and when completed, sets IPv6 into motion.
Autoconfiguration and neighbor discovery begin immediately, so your colleagues can start working with your new IPv6 application. The entire LAN is now concurrently and transparently running IPv6 and IPv4. PCs running IPv6-enabled operating systems connected to the LAN are automatically assigned IPv6 addresses and are able to communicate with one another. You can watch this take place by opening the interface monitor. Note that the IPv6 monitors are identical to the IPv4 monitors you have become accustomed to in iSeries Navigator. The same customizing features are available through the View menu. For example, you can select specific columns to display and sort them the way you want to.
Tunneling IPv6 on an Existing IPv4 Line
Another way to set up an IPv6 configuration is to use IPv6 tunnels over an existing IPv4 line. Since most of the world still uses IPv4, you may need to use tunnels if you need to communicate to a colleague across the country who works on an IPv6 network like you do. When tunneling IPv6 over IPv4, the full functions of IPv4 filtering and virtual private network (VPN) are available.
Configuring a tunnel line to send IPv6 traffic over an IPv4 network requires no special hardware. You are simply configuring a virtual line over an IPv4 line. Configuring a tunnel line is a two-step process. First, you create the tunnel line. The IPv6 configuration wizard requires the IPv4 address for the starting point of the tunnel (your local interface) and the IPv6 address that you will use to identify the tunnel.
Once the line has been defined, you will be prompted to create an IPv6 route to associate with the tunnel by using the new IPv6 route wizard. By creating a route, you are defining the remote tunnel endpoint as the route's IPv4 next hop and defining a path for the IPv6 packets to take through the tunnel.
With the tunneling setup, you can send IPv6 data across the Internet to your colleague as though you were communicating across an IPv6 network; however, the Internet treats the data as IPv4 data since it is encapsulated within the tunnel. While the networked world is transitioning from IPv4 to IPv6, tunnels allow you to work with IPv6 applications even though the basic infrastructure uses IPv4. Current enablement on the iSeries allows you to test your applications in this changing environment.
Troubleshooting and Test Tools
If you're used to troubleshooting your IPv4 network by using the PING and traceroute utilities, then you'll have no problem using these same tools for IPv6. To access PING and traceroute in iSeries Navigator, expand Network, right-click TCP/IP Configuration, and choose Utilities/PING, or choose Utilities/Traceroute.
The iSeries communications trace functions and facilities are also available for IPv6 traffic. The packets can be captured as usual and then formatted. The formatting fully supports IPv6 and all ICMPv6 headers and supports IPv6 packets when tunneled over IPv4.
PING and traceroute for V5R2 recognize AAAA (quad-A) resource records (IPv6) and are therefore capable of retrieving IPv6 address and host name information from the Domain Name System (DNS) server. You can PING IPv6 addresses and host names just like you do for IPv4. Similarly, with traceroute, you can enter the IPv6 address or host name of the destination to which you are tracing a route. Starting with V5R2, if you enter a host name for PING or traceroute, you are required to specify either IPv4 or IPv6 so the system knows whether to search for A records (IPv4) or AAAA records (IPv6) when locating the host name. With these familiar troubleshooting tools, you can quickly identify the source of your problem just as you always have.
What the Future Holds
IPv6 will eventually become the standard for the global Internet. At V5R2, the enhancements to the sockets APIs make it possible for you to update your applications to support both IPv4 and IPv6. The configuration options available for IPv6 allow you to test these applications for the environment of your choosing. There are still many hardware and logistical aspects of IPv6 that need to be decided and then adopted by the Internet, such as updates to DNS servers and routers that provide the connectivity that powers the global network. However, by incorporating the protocol into your applications now, you can ease into the IPv6 transition and get a head start on the IP of the future.
For additional information about IPv6 or the new sockets APIs, refer to the V5R2 Information Center. IPv6 information under Networking/TCP/IP/TCP/IP Setup/Internet Protocol Version 6. Find IPv6 socket API information under Programming/Programming Support/Socket Programming/Socket Scenario: Create an application to accept IPv4 and IPv6 clients.
Rian Lemmer and Kris Ryan write documentation for TCP/IP on the iSeries. Kris wrote the documentation for IPv6 for V5R2, and Rian wrote the IPv6 chapter for a Redbook on dynamic IP networks for V5 iSeries. Rian can be reached at email@example.com and Kris can be contacted at firstname.lastname@example.org.
Contact the Editors
Last Updated: 8/28/02
Copyright © 1996-2008 Guild Companies, Inc. All Rights Reserved.