sun.com docs.sun.com My Sun Worldwide Sites

Previous Previous     Contents     Index     Next Next

IPv6 Packet Header Format

The IPv6 protocol defines a set of headers, including the basic IPv6 header and the IPv6 extension headers. The following figure shows the fields that appear in the IPv6 header and the order in which the fields appear.

Figure 11-3 IPv6 Basic Header Format

Diagram shows that the 128 bit IPv6 header consist of
eight fields, including the source and destination addresses.

The following list describes the function of each header field.

  • Version - 4-bit version number of Internet Protocol = 6.

  • Traffic class - 8-bit traffic class field.

  • Flow label - 20-bit field.

  • Payload length - 16-bit unsigned integer, which is the rest of the packet that follows the IPv6 header, in octets.

  • Next header - 8-bit selector. Identifies the type of header that immediately follows the IPv6 header. Uses the same values as the IPv4 protocol field.

  • Hop limit - 8-bit unsigned integer. Decremented by one by each node that forwards the packet. The packet is discarded if the hop limit is decremented to zero.

  • Source address - 128 bits. The address of the initial sender of the packet.

  • Destination address - 128 bits. The address of the intended recipient of the packet. The intended recipient is not necessarily the recipient if an optional routing header is present.

IPv6 Extension Headers

IPv6 options are placed in separate extension headers that are located between the IPv6 header and the transport-layer header in a packet. Most IPv6 extension headers are not examined or processed by any router along a packet's delivery path until the packet arrives at its final destination. This feature provides a major improvement in router performance for packets that contain options. In IPv4, the presence of any options requires the router to examine all options.

Unlike IPv4 options, IPv6 extension headers can be of arbitrary length. Also, the number of options that a packet carries is not limited to 40 bytes. This feature, in addition to the manner in which IPv6 options are processed, permits IPv6 options to be used for functions that are not practical in IPv4.

To improve performance when handling subsequent option headers, and the transport protocol that follows, IPv6 options are always an integer multiple of 8 octets long. The integer multiple of 8 octets retains the alignment of subsequent headers.

The following IPv6 extension headers are currently defined:

  • Routing - Extended routing, such as IPv4 loose source route

  • Fragmentation - Fragmentation and reassembly

  • Authentication - Integrity and authentication, and security

  • Encapsulating Security Payload - Confidentiality

  • Hop-by-Hop options - Special options that require hop-by-hop processing

  • Destination options - Optional information to be examined by the destination node

Dual-Stack Protocols

The term dual-stack normally refers to a complete duplication of all levels in the protocol stack from applications to the network layer. One example of complete duplication is a system that runs both the OSI and TCP/IP protocols.

The Solaris OS is dual-stack, meaning that the Solaris OS implements both IPv4 and IPv6 protocols. When you install the operating system, you can choose to enable the IPv6 protocols in the IP layer or use only the default IPv4 protocols. The remainder of the TCP/IP stack is identical. Consequently, the same transport protocols, TCP UDP and SCTP, can run over both IPv4 and IPv6. Also, the same applications can run over both IPv4 and IPv6. Figure 11-4 shows how the IPv4 and IPv6 protocols work as a dual-stack throughout the various layers of the Internet protocol suite.

Figure 11-4 Dual-Stack Protocol Architecture

Illustrates IPv4 and IPv6 protocols work as a dual-stack
through the various OSI layers.

In the dual-stack scenario, subsets of both hosts and routers are upgraded to support IPv6, in addition to IPv4. The dual-stack approach ensures that the upgraded nodes can always interoperate with IPv4-only nodes by using IPv4.

Solaris 10 IPv6 Implementation

This section describes the files, commands, and daemons that enable IPv6 in the Solaris OS.

IPv6 Configuration Files

This section describes the configuration files that are part of an IPv6 implementation:

ndpd.conf Configuration File

The /etc/inet/ndpd.conf file is used to configure options that are used by the in.ndpd Neighbor Discovery daemon. For a router, you primarily use ndpd.conf to configure the site prefix to be advertised to the link. For a host, you use ndpd.conf to turn off address autoconfiguration or to configure temporary addresses.

The next table shows the keywords that are used in the ndpd.conf file.

Table 11-2 /etc/inet/ndpd.conf Keywords

Variable

Description

ifdefault

Specifies the router behavior for all interfaces. Use the following syntax to set router parameters and corresponding values:

ifdefault [variable-value]

prefixdefault

Specifies the default behavior for prefix advertisements. Use the following syntax to set router parameters and corresponding values:

prefixdefault [variable-value]

if

Sets per-interface parameters. Use the following syntax:

if interface [variable-value]

prefix

Advertises per-interface prefix information. Use the following syntax:

prefix prefix/length interface [variable-value]

In the ndpd.conf file, you use the keywords in this table with a set of router configuration variables. These variables are defined in detail in RFC 2461, Neighbor Discovery for IP Version 6 (IPv6).

The next table shows the variables for configuring an interface, along with brief definitions.

Table 11-3 /etc/inet/ndpd.conf Interface Configuration Variables

Variable

Default

Definition

AdvRetransTimer

0

Specifies the value in the Retrans Timer field in the advertisement messages sent by the router.

AdvCurHopLimit

Current diameter of the Internet

Specifies the value to be placed in the current hop limit in the advertisement messages sent by the router.

AdvDefaultLifetime

3 + MaxRtrAdvInterval

Specifies the default lifetime of the router advertisements.

AdvLinkMTU

0

Specifies a maximum transmission unit (MTU) value to be sent by the router. The zero indicates that the router does not specify MTU options.

AdvManaged Flag

False

Indicates the value to be placed in the Manage Address Configuration flag in the router advertisement.

AdvOtherConfigFlag

False

Indicates the value to be placed in the Other Stateful Configuration flag in the router advertisement.

AdvReachableTime

0

Specifies the value in the Reachable Time field in the advertisement messages sent by the router.

AdvSendAdvertisements

False

Indicates whether the node should send out advertisements and respond to router solicitations. You need to explicitly set this variable to "TRUE" in the ndpd.conf file to turn on router advertisement functions. For more information, refer to How to Configure an IPv6-Enabled Router.

DupAddrDetect

Transmits

1

Defines the number of consecutive neighbor solicitation messages that the Neighbor Discovery protocol should send during duplicate address detection of the local node's address.

MaxRtrAdvInterval

600 seconds

Specifies the maximum time to wait between sending unsolicited multicast advertisements.

MinRtrAdvInterval

200 seconds

Specifies the minimum time to wait between sending unsolicited multicast advertisements.

StatelessAddrConf

True

Controls whether the node configures its IPv6 address through stateless address autoconfiguration. If False is declared in ndpd.conf, then the address must be manually configured. For more information, refer to How to Configure a User-Specified IPv6 Token.

TmpAddrsEnabled

False

Indicates whether a temporary address should be created for all interfaces or for a particular interface of a node. For more information, refer to How to Configure a Temporary Address.

TmpMaxDesyncFactor

600 seconds

Specifies a random value to be subtracted from the preferred lifetime variable TmpPreferredLifetime when in.ndpd starts. The purpose of the TmpMaxDesyncFactor variable is to prevent all the systems on your network from regenerating their temporary addresses at the same time. TmpMaxDesyncFactor allows you to change the upper bound on that random value.

TmpPreferredLifetime

False

Sets the preferred lifetime of a temporary address. For more information, refer to How to Configure a Temporary Address.

TmpRegenAdvance

False

Specifies the lead time in advance of address deprecation for a temporary address. For more information, refer to How to Configure a Temporary Address.

TmpValidLifetime

False

Sets the valid lifetime for a temporary address. For more information, refer to How to Configure a Temporary Address.

The next table shows the variables that are used for configuring IPv6 prefixes.

Table 11-4 /etc/inet/ndpd.conf Prefix Configuration Variables

Variable

Default

Definition

AdvAutonomousFlag

True

Specifies the value to be placed in the Autonomous Flag field in the Prefix Information option.

AdvOnLinkFlag

True

 

Specifies the value to be placed in the on-link flag ("L-bit") in the Prefix Information option.

AdvPreferredExpiration

Not set

Specifies the preferred expiration date of the prefix.

AdvPreferredLifetime

604800 seconds

Specifies the value to be placed in the preferred lifetime in the Prefix Information option.

AdvValidExpiration

Not set

Specifies the valid expiration date of the prefix.

AdvValidLifetime

2592000 seconds

Specifies the valid lifetime of the prefix that is being configured.

Previous Previous     Contents     Index     Next Next
Company Info Contact Terms of Use Privacy Copyright 1994-2007 Sun Microsystems, Inc.