![]()
Finding your way through the new IP
IP version 6 solves lots of problems, but only if you understand how to use it.
|
By Mark A. Miller Network World, 12/16/96 It has vendors scrambling in their labs, madly revising code for routers and hosts. It has developers furiously churning out requests for comment, trying to keep up with all the changes. And soon, it will have you scouring the road maps others are now drawing that show how best to implement it in your organization. ''It'' is IP Version 6, the next-generation Internet Protocol. You've likely heard about the vastly expanded addressing field it brings, and that is certainly an important aspect, but there's lots more you need to understand about IPv6 before you begin to implement it. There are new and expanded formats and fields you'll need to explore, security and configuration features you'll want to understand, even additional traffic types supported, which could change how you think about carrying voice and video. Most products aren't due out the door until next year, but IPv6 differs so much from its predecessor that you'd be wise to begin boning up now. This feature, and one that will follow next month on migration strategies, will get you started. So why do we need a new IP anyway? Since its inception - the original IP specification, RFC 791, was published in 1981, but its roots date back to the early 1970s with the development of ARPAnet - IP has been implemented on every conceivable type of platform and operating system, all pretty successfully. In many ways, this success, and the explosive growth of the Internet, exposed several weaknesses in the original design. The 32-bit address field, which can identify more than 4 billion systems, would have been adequate were it not for the address field's class-based structure that reduced the efficiencies of that field. (For more on the existing IP address structure, see NW, Aug. 19, page 45.) Other key issues not anticipated by the original developers include the need for greater security and support for real-time traffic flows, such as voice over the Internet. Design criteriaRFC 1726, Technical Criteria for Choosing IP the Next Generation (IPng), describes a number of key functions for the new IP version. Many of these build upon functions, such as topological independence, that have made the Internet the success it is today. Others provide for future expansion and yet-to-be defined applications.Among these criteria are:
Meeting all of the above criteria was a tall order. The Internet Engineering Task Force's (IETF's) IPng Working Group researched the issues over a two-year period and evaluated a number of proposals. No single proposal met all the requirements. So, the IPng Working Group took elements from the three most significant proposals - the Common Architecture for Next Generation Internet Protocol (CATNIP), TCP and UDP with Bigger Addresses (TUBA) and the Simple Internet Protocol Plus (SIPP) - synthesized the best features of each and put them into the protocol that we now call IPv6. Comparing IPv4 and IPv6 PacketsRFC 1752, The Recommendation for IP Next Generation Protocol, discusses the merits of the various protocols proposed for IPng, strengths and weaknesses of each and the features of each that were blended into the resulting IPv6.The objectives of the IPv6 design are accomplished with a number of constructs. There's the revamped addressing scheme that uses 128 bits instead of the current 32, and a streamlined IPv6 packet format that allows options to be placed in extension headers. This provides for streamlined packet processing within routers, as each host or router just looks at headers relevant to its packet-forwarding functions. Other functions support the notion of plug and play, where new nodes on the network can obtain their addresses and parameters without requiring server involvement in every case. Support for real-time traffic flows, such as voice and video, is also available, so that the Internet or intranet of the future could also be your telephone or cable provider. The IPv6 header is 320 bits - or 40 octets - in length, and is broken into eight fields (An octet is an 8-bit quantity of information. The term is preferred over byte in international data communications standards because while in the U.S. a byte is 8 bits, that is not always the case in other countries). The Version field is 4 bits in length and identifies the version of the protocol (6 for IPv6). The Priority field is also 4 bits long and enables a source to assign a delivery priority to its packets. For example, network management or routing protocol updates might be assigned a higher priority than news or E-mail traffic and would be indicated as such. This way the most important traffic would have the best chance of getting through a congested network. The 24-bit Flow Label field is used to identify data transmissions that need special handling. This concept is currently in the experimental stages of development, but might be used to support real-time data transfers over the Internet. The Payload Length field is a 16-bit number, which measures the length, given in octets, of the payload, or the balance of the IPv6 packet. Payloads range from 576 to 65,535 bytes, or octets. If larger amounts of data must be sent, the Jumbo Payload Option may be implemented. This is an improvement over IPv4, which is limited by the 65,535 value. The Next Header field is 8 bits in length and identifies the header immediately following the IPv6 header, such as TCP or one of the IPv6 extension headers. Next comes the Hop Limit field, which is 8 bits in length. The Source and Destination Addresses are 128-bit fields that identify the originator and intended recipient of the packet, respectively. When you compare the IPv6 header with the existing IPv4 header, you'll find that the IPv6 Priority field functions similarly to the IPv4 Precedence field, the IPv6 Next Header field functions similarly to the IPv4 Protocol field, and the IPv6 Hop Limit field functions similarly to the IPv4 Time to Live field. Future-proofing: optional extension headersEven though the IPv6 address is four times as long as IPv4's, the base header is only twice as long: 40 octets vs. 20 for IPv4. Streamlining the packet header operation and moving some optional functions into extension headers accounts for this efficiency.For example, if a function such as fragmentation is required, its overhead is placed in a special extension header. In that way, you reduce overhead by using only the fields you need, depending on what you are trying to do. The originating host determines the optional extension headers required, and they are examined as necessary by the intervening routers. The IPv6 packet may thus consist of zero, one or more extension headers arranged in a daisy-chain format. The value of the Next Header field identifies the header that comes next. Six optional extension headers have been defined:
Structuring the IPv6 packet into a base header followed by optional extension headers will simplify adding features and functions to the protocol in the future. IPv6 address types IPv6 solves the IP address depletion problem in a dramatic way: increasing the address space from 32 to 128 bits. RFC 1884, IPv6 Addressing Architecture, defines three different types of IPv6 addresses:
The anycast address is a new type that lets you, for example, communicate with the closest router. That router would then propagate the information to the other group members. In this way, a host could send an update to one router, which would then take responsibility to re-transmit that information to all group members. In the case of multicast addresses, a field limits the packet's scope; that is, how far they can travel. For example, if you use a multicast address for a teleconference within your organization, you can ensure that the packets from your local network do not sneak past a router and get to the global Internet.
Each address consists of a defined prefix, plus an address. Currently, approximately one-eighth of this address space has been defined, leaving plenty of room for growth. The prefix, which is the first 3 to 11 bits of the 128-bit address, determines the format of the address. So, some prefixes identify unicast addresses, and others identify multicast addresses. Still other prefixes identify special cases, such as addresses used on a particular communication link, or those used within a particular site or organization. For example, there is a provider-based unicast address format, which would be assigned by an Internet Service Provider to an organization. Some fields, such as a subnet ID, within that address would then be assigned by the local network administrator. Address representationRemembering a 32-bit IPv4 address as designated in binary format would take a lot of memory work. To make this easier, a shorthand notation called dotted decimal was developed.With dotted decimal, the 32-bit address is divided into four sections that are each 8 bits long. Each 8-bit binary number is then represented in decimal format by a single number between 0 and 255. For example, the binary address: 11000000 00011000 00000000 00000000 would be represented as 192.24.0.0 in dotted decimal. Since IPv6 addresses are 128 bits long, either your memory must dramatically improve, or a different method of representation is required. RFC 1884 suggests the format x:x:x:x:x:x:x:x, where each x represents a group of 16 bits. Since the address is 128 bits long, the address will therefore be represented as eight groups of 16 bits each. In this case, however, each 16-bit section is represented by four hexadecimal numbers. (Hexadecimal, or base 16 arithmetic, uses numerals for numbers 0 through 9, then the letters A through F to represent numbers 10 through 15.) For example, an IPv6 address could be of the form: FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 Since much of the IPv6 address space is yet to be assigned, lots of zeros will appear in the addresses. Two shorthand notations help simplify matters. The first method eliminates leading zeros within one of the 16-bit fields. For example, instead of writing four zeros, you can just write a single zero. So: 1080:0000:0000:0000:0008:0800:200C:417A may be simplified to: 1080:0:0:0:8:800:200C:417A The second method allows the simplification of long strings of zeros that appear within an address. In this case, a double colon may be used to indicate that multiple groups of zeros have been omitted, which further simplifies the example shown above. In this case: 1080:0000:0000:0000:0008:0800:200C:417A was simplified to: 1080:0:0:0:8:800:200C:417A and may be further simplified to: 1080::8:800:200C:417A To avoid ambiguity, the double colon may appear only once in an address. To expand this simplified address, you would go to the double colon and start adding zeros until the address was again 128 bits long. A support system requiredNew protocol operations have been developed to support some of the other IPv6 functional requirements. The clearest examples are the Authentication and Encapsulating Security Payload headers, which provide for a secure IP layer - a necessary requirement to further Internet commercialization.Another is the Stateless Autoconfiguration Protocol, which enables many of the plug-and-play capabilities required of IPv6. For example, let's suppose you take your notebook computer on a trip and want to join a colleague's IPv6-based network. The Autoconfiguration Protocol provides a way for your notebook to assign itself an IPv6 address, which is based, in part, on its LAN adapter address. Since the LAN adapter address is unique, the self-assigned IPv6 address will be unique as well, thus preventing a duplicate address. If all works as planned, the manual intervention of the local network administrator is no longer required. Other changes are also required, such as updates to the Routing Information Protocol and Open Shortest Path First protocol to handle the larger addresses, and changes to Domain Naming System servers to handle larger address records. End-user applications and operating systems may likewise need revision, so they can access the features available in IPv6. One example is the extensions to the Berkeley Unix operating system currently under development. The Berkeley application program interface, generally known as the socket interface, is used by a number of TCP/IP-based applications. This API must be revised in order to support the new features that come with IPv6, such as the priority and flow label fields within the base header. In other words, for the new features to be useful, an upper layer protocol application must have a way to access the enhanced capabilities of a lower layer. Enhancements to other operating systems, such as Digital Equipment Corp.'s Unix, IBM's AIX, Novell, Inc.'s NetWare, and SunSoft, Inc.'s Solaris are also under way.
How do we sign up?More than a dozen vendors, including key host and router vendors such as Bay Networks, Inc., Cisco Systems, Inc., Digital, FTP Software, Inc., IBM, Novell and Sun Microsystems, Inc., have publicized their IPv6 plans via the IPv6 home page. A worldwide test network, called the 6bone, is currently running in North America, Europe and Japan, allowing both vendors and network administrators to build a test IPv6 network prior to rolling it into a production environment.Most vendors and industry analysts expect IPv6 upgrades to be widely available by mid-1997, allowing you to position your networks to take advantage of these enhancements later next year. But you must plan a clear path for the transition. Strategies to handle those issues will be the topic of the next installment in the IPv6 series, which will appear next month.
|
Home |
NetFlash |
This Week |
Industry/Stocks
Buyer's Guides/Tests |
Net Resources |
Forums |
Careers
Seminars & Events |
Product Demos/Info
Audio Primers | IntraNet