Internet Protocol Version 6 (IPv6) is both a completely new network layer protocol and a major revision of the Internet architecture. As such, it builds upon and incorporates experiences gained with IPv4. This chapter describes the following:
For troubleshooting information, see
Section 10.4.
3.1 Introduction to IPv6
In the early 1990s the members of the Internet community realized that the address space and certain aspects of the current TCP/IP architecture were not capable of sustaining the explosive growth of the Internet. The problems included the exhaustion of the Internet address space, the size of routing tables, and requirements for new technology features.
The Internet Engineering Task Force (IETF) made several efforts to study and improve the use of the 32-bit Internet Protocol (IPv4) addresses. They also tackled the longer-term goal of identifying and replacing protocols and services that would limit growth.
These efforts identified the 32-bit addressing architecture of IPv4 as the principal problem, in terms of router overhead and of network administration. In addition, IPv4 addresses were often unevenly allocated in blocks that were too large or too small, and therefore difficult to change within any existing network.
In July 1994, the Internet Protocol Next Generation (IPng) directorate
announced the Internet Protocol Version 6 (IPv6) as the replacement network
layer protocol, and IETF working groups began to build specifications.
See
RFC 1752,
"The Recommendation for the IP Next Generation Protocol,"
for additional information on the IPv6 protocol selection process.
3.2 Terms
The following terms are used in this chapter:
A node that forwards IPv6 packets addressed to other nodes. These systems typically have more than one network interface card (NIC) installed and configured.
Any node that is not a router.
A medium or facility over which nodes communicate with each other at the link layer. Examples include Ethernet, FDDI, PPP links, or internet layer tunnels.
A node's attachment to a link, which is usually assigned an
IPv6 address or addresses.
This can be a physical NIC (for example,
tu0
or
ee0) or virtual network interface (for
example,
ipt0, described in
Section 3.6.2.3).
A link over which a packet of one protocol is encapsulated inside the packet of another protocol. In this manner, one protocol's packets can be carried over another protocol's infrastructure. The process for doing this is called tunneling. See Section 3.4 for more information on the types of tunnels that are available for you to use.
This section is intended for administrators who need an introduction to IPv6 addressing. If you already know this information, skip to Section 3.5.
The most noticeable feature of IPv6 is the IPv6 address. The address size is increased from 32 bits to 128 bits. This section describes:
3.3.1 Address Text Representation
You can use the following syntax to represent IPv6 addresses as text strings:
x:x:x:x:x:x:x:x
The x is a hexadecimal value of a 16-bit piece of the address. For example, the following addresses are IPv6 addresses:
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 1070:0:0:0:0:800:200C:417B
IPv6 addresses can contain long strings of zero (0) bits.
To make it
easier to write these addresses, you can use two colon characters (::) one time in an address to represent 1 or more 16-bit groups
of zeros.
For example, you can compress the second IPv6 address example as
follows:
1070::800:200C:417B
Alternatively, you can use the following syntax to represent IPv6 addresses in an environment of IPv4 and IPv6 nodes:
x:x:x:x:x:x:d.d.d.d
In this case, x is a hexadecimal value of a 16-bit piece of the address (six high-order pieces) and d is a decimal value of an 8-bit piece of address (four low-order pieces) in standard, dotted-quad IPv4 form. For example, the following are IPv6 addresses:
0:0:0:0:0:0:13.1.68.3 0:0:0:0:0:FFFF:129.144.52.38
When compressed, these addresses are as follows:
::13.1.68.3 ::FFFF:129.144.52.38
Like IPv4 address prefixes, IPv6 address prefixes are represented using the Classless Inter-Domain Routing (CIDR) notation. This notation has the following format:
ipv6-address/prefix-length
For
example, you can represent the 60-bit hexadecimal prefix
12AB00000000CD3
in any of the following ways:
12AB:0000:0000:CD30:0000:0000:0000:0000/60 12AB::CD30:0:0:0:0/60 12AB:0:0:CD30::/60
There are three types of IPv6 addresses:
Unicast
Anycast
Multicast
Note
Unlike IPv4, IPv6 does not define a broadcast address. To get the function of a broadcast address, use a multicast address with link-local scope (see Section 3.3.2.3).
The following sections describe only the unicast and multicast address
types and provide examples.
3.3.2.1 Unicast Address
A unicast address is an identifier for a physical network interface. Packets sent to a unicast address are delivered to the node containing the interface identified by the address.
Unicast addresses typically have the following format:
This address typically consists of a 64-bit prefix followed by a 64-bit interface ID as follows:
An interface ID identifies an interface on a link. The interface ID must be unique on a link, but can also be unique over a broader scope. In many cases, an interface's ID is derived from its link-layer address. The same interface ID can be used on multiple interfaces on a single node.
According to
RFC 2373, most prefixes must have 64-bit interface identifiers.
For
48-bit MAC addresses, the interface identifier is created by inserting the
hexadecimal values of 0xFF and 0xFE in the middle of the address and inverting
the universal/local bit (bit 7) in the resulting 64-bit address.
Figure 3-1
shows how this process works.
Figure 3-1: Creating an Interface ID from a MAC Address
The following list describes commonly used unicast addresses and their values:
Indicates the absence
of an address, and is never assigned to an interface.
The unspecified address
has the value
0:0:0:0:0:0:0:0
in the normal form or
::
in the compressed form.
Used by a node to send IP datagrams to itself,
and is typically assigned to the loopback interface.
The IPv6 loopback address
has the value
0:0:0:0:0:0:0:1
in the normal form or
::1
in the compressed form.
Used in mixed IPv4 and IPv6 environments, and can be either of the following:
IPv4-compatible IPv6 address
Used by IPv6 nodes to tunnel IPv6 packets across an IPv4 routing infrastructure. The IPv4 address is carried in the low-order 32-bits. The format of this address is as follows:
Note
Do not use IPv4-compatible IPv6 addresses in the Domain Name System (DNS) or the local
/etc/ipnodesfile.
IPv4-mapped IPv6 address
Used to represent an IPv4 address and to identify nodes that do not support IPv6 (IPv4-only nodes). It is not used in an IPv6 packet. The format of this address is as follows:
Can be either of the following:
Link-local
Used for addressing on a single link when performing address autoconfiguration, neighbor discovery, or when no routers are present. This address is assumed to be unique only on the link to which the interface is connected. The format of this address is as follows:
Site-local
Used for sites or organizations that are not connected to the global Internet. This address is assumed to be unique only in the site to which the interface is connected. The format of this address is as follows:
If you plan to use site-local addresses, be aware of the following guidelines:
Do not connect a single node to multiple sites.
Do not use site-local addresses in the global DNS (the addresses cannot be visible outside the site).
Dynamic DNS updates for site-local addresses are not supported.
Do not advertise or propagate routes containing site-local prefixes outside the site.
Interfaces typically have multiple IPv6 addresses.
After IPv6 is configured
and the system boots, the LAN, PPP, and configured tunnel interfaces are automatically
assigned a link-local address.
If a router is on the link, the system also
autoconfigures a global unicast address on the interfaces.
3.3.2.2 Anycast Address
An anycast address is an identifier for a group of nodes, similar to an IPv4 anycast address. Packets sent to an anycast address are delivered to one node containing the interface identified by the address, usually the nearest one according to the routing protocols' measure of distance.
Anycast addresses are allocated from the unicast address space, and cannot be distinguished from unicast addresses. Only the Subnet-Router anycast address and addresses defined in RFC 2526 are easily identified. Packets sent to the subnet-router anycast address are delivered to the router closest to the originating host only. Anycast addresses have the following format:
In the preceding format, the subnet prefix is the prefix that identifies
a specific link.
An anycast address is identical to the unicast address for
an interface except that the interface identifier is set to zero.
3.3.2.3 Multicast Address
A multicast address is an identifier for a group of nodes, similar to an IPv4 multicast address. Multicast addresses have the following format:
In the preceding address format, the fields have the following definition:
11111111Identifies the address as multicast.
Can be either 0000, which indicates a permanently-assigned (well-known) multicast address; or 0001, which indicates a temporary (transient) multicast address.
Indicates the scope of the multicast group. The following table lists the scope values:
| Value (Hex) | Scope |
| 1 | Node-local |
| 2 | Link-local |
| 5 | Site-local |
| 8 | Organization-local |
| E | Global |
Identifies the multicast group within the specified scope.
Table 3-1
lists some well-known multicast addresses.
Table 3-1: Well-Known Multicast Addresses
| Multicast Address | Meaning |
| FF02::1 | All nodes (link-local) |
| FF02::2 | All routers (link-local) |
| FF02::9 | All RIPng routers (link-local) |
Each IPv6 address
has a unique pattern of leading bits that indicates its address type.
These
leading bits are named the format prefix (also referred to as a prefix).
Table 3-2
lists some of the IPv6 address types and their prefixes.
Table 3-2: IPv6 Address Types and Prefixes
| Address Type | Prefix |
| Aggregatable Global Unicast | 2000::/3 |
| Link-local | FE80::/10 |
| Site-local | FEC0::/10 |
| Multicast | FF00::/8 |
3.3.4 Address Autoconfiguration
The IPv6 address changes have lead to the following definitions for configuring addresses:
Stateless address autoconfiguration
Dynamic Host Configuration Protocol Version 6 (DHCPv6), which is stateful address autoconfiguration
In the stateless model, nodes learn address prefixes by listening for Router Advertisement packets. Addresses are formed by combining the prefix with a datalink-specific interface identifier, which is typically derived from the datalink address of the interface. This model is favored by administrators who do not need tight control over address configuration. See RFC 2462 for more information.
In DHCPv6, hosts can request addresses, configuration information, and services from dedicated configuration servers. This model is favored by administrators who want to delegate addresses based on a client/server model. The DHCPv6 Internet Drafts are currently undergoing revision. See the Dynamic Host Configuration charter web page at http://www.ietf.org/html.charter/dhc-charters.html for more information.
Note
This version of Tru64 UNIX does not support DHCPv6.
In both cases, the resulting addresses have associated lifetimes, and
systems must be able to acquire new addresses and release expired addresses.
Combined with the ability to register updated address information with Domain
Name System (DNS) servers, these mechanisms provide a path towards network
renumbering and provide network administrators with control over the use of
network addresses without manual intervention on each host on the network.
3.3.5 Address Resolution
The Domain Name System (DNS) provides support for mapping names to IP addresses and mapping IP addresses back to their corresponding names. Because of the increase in size of the IPv6 address, DNS has the following new features:
This holds IPv6 addresses, encoded in network byte order. The version of BIND shipped with operating system supports AAAA records. (BIND is the implementation of DNS that ships with Tru64 UNIX.)
AAAA query
A query for a specified domain name in the Internet class returns all associated AAAA resource records in the response.
IP6.INT domain for looking up a name for a specified address (address-to-name mapping)
An IPv6 address is represented in reverse order as a sequence of 4-bit
nibbles separated by dots with the suffix
.IP6.INT
appended.
For example, the IPv6 address
4321:0:1:2:3:4:567:89ab
has the following inverse lookup domain name:
b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.IP6.INT
See
Network Administration: Services
for guidelines on configuring BIND in
an IPv6 environment.
3.3.6 Address Assignment
IPv6 addresses are now being deployed by the regional registries. If you connect your system to a network that already runs IPv6, your system will automatically configure the IPv6 addresses it needs.
If you are a network administrator, contact your Internet Service Provider (ISP) for an IPv6 address range for your site. See the IANA web page at http://www.iana.org/ipaddress/ip-addresses.htm for more information about regional registries and address allocations.
Because of the need to test various implementations of the IPv6 RFCs, the IETF has defined a temporary IPv6 address allocation scheme. You can assign the addresses in this scheme to hosts and routers for testing IPv6 on the 6bone. See the 6bone home page at the following location for more information on 6bone address allocation and assignment:
At the present time, the 6bone test addresses are aggregatable global
unicast addresses.
Contact your 6bone service provider (for example,
gw-6bone@pa.dec.com) for a 6bone address delegation.
The following sections describe the aggregatable global unicast addresses
and the aggregatable testing addresses.
3.3.6.1 Aggregatable Global Unicast Address Format
The aggregatable global unicast address format for IPv6 is designed to support current provider-based aggregation and new exchange-based aggregation. Whether a site connects to a provider or to an exchange, the address format enables efficient route aggregation for either type. Aggregatable global unicast addresses have the following form. See RFC 2374 for additional information.
In the preceding address format, the fields have the following definition:
The Format Prefix.
For aggregatable
global unicast addresses, the value for this field is
001.
The Top-Level Aggregation Identifier.
Reserved for future use. At present, set to all zeros (0).
The Next-Level Aggregation Identifier. These are assigned by the TLA ID administrator to create an addressing hierarchy and to identify end user sites. Each organization assigned a TLA ID is also assigned 24-bits of NLA ID space whose layout and use is the responsibility of the organization.
The Site-Level Aggregation Identifier. These are used by an end user site to create its own local addressing hierarchy and to identify subnets.
The 64-bit interface identifier of the interface that is connected to the link.
3.3.6.2 Aggregatable Testing Address Format
Aggregatable global unicast addresses for IPv6 testing have the following form. See RFC 2471 for more information on the proposed testing address allocation plan.
In the preceding address format, the fields have the following definition:
001The Format Prefix for aggregatable global unicast addresses.
1111111111110The 6bone Top-Level Aggregation (TLA) Identifier, 0x1FFE, reserved by the Internet Assigned Numbers Naming Authority (IANA), and used temporarily for IPv6 testing.
The ID assigned by the TLA ID administrator to create an addressing hierarchy and to identify end user sites on the 6bone network.
The ID assigned by an end user site to create its own local addressing hierarchy and to identify subnets.
The 64-bit interface identifier of the interface that is connected to the link.
For the most recent information about TLA and NLA assignments, see the 6bone home page at the following location:
http://www.6bone.net
3.4 Deploying IPv6 Using Tunnels
Since the Internet and most likely your network are based on IPv4, you need to know how to use this routing infrastructure to carry your IPv6 traffic while you gradually build up your IPv6 routing infrastructure. The best mechanism to employ for routing IPv6 traffic across IPv4 routing infrastructures is tunneling. The following types of tunnels are supported:
Automatic
6to4
Configured
The following sections describe each tunnel and their advantages and disadvantages. The more powerful the tunnel, the more configuration and administration it requires. For additional tunnel information see the Deploying IPv6 in Your Network Best Practice at the following location:
http://www.tru64unix.compaq.com/docs/best_practices/BP_IPV6/TITLE.HTM
3.4.1 Automatic Tunnels
An IPv6 automatic tunnel is the simplest tunnel to configure and
deploy.
This mechanism enables hosts with a globally unique IPv4 address to
automatically create a tunnel over an IPv4 network.
The tunnel is created
as a virtual interface (tun0) and is configured with an
IPv4-compatible IPv6 address, which is derived from the IPv4 address.
The destination address of the packet determines the tunnel destination endpoint.
See
Section 3.3.2.1
for more information about IPv4-compatible
IPv6 addresses.
This mechanism is good for introducing hosts to IPv6 because it permits application porting, testing, and experimentation with the IPv6 protocol. However, an automatic tunnel has the following limitations:
Requires a globally unique (not private) IPv4 address.
Benefits hosts more than routers. You can neither run the RIPng protocol over the automatic tunnel nor can you forward packets over the tunnel.
Communicates only with other nodes that are configured with IPv4-compatible IPv6 addresses. You cannot communicate with nodes that are configured with native IPv6 addresses only.
Is quite possibly going to be deprecated by the IPv6 community. Therefore, do not deploy this in your production environment.
A
6to4 tunnel is a type of an automatic tunnel, but offers greater connectivity.
This mechanism enables a special IPv6 site, called 6to4 site, with a single,
globally unique IPv4 address to automatically create a tunnel over an IPv4
network to communicate with other 6to4 sites.
The tunnel is created as a virtual
interface (tun1) on a node at the IPv4 network attachment
point.
This node is either an individual host or a router called a Border
Router.
The tunnel is configured with a special 6to4 address, which is derived
from the IPv4 address.
The destination address of the packet determines the
tunnel destination endpoint.
Within the 6to4 site, the Border Router creates the 6to4 site prefix from its globally unique IPv4 address and advertises the prefix to all nodes in the 6to4 site. Each node automatically configures its 6to4 address based on the 6to4 prefix; no special configuration is necessary. Nodes within the 6to4 site communicate with each other using native IPv6. Any traffic that is addressed outside the site is forwarded to the Border Router.
This mechanism is easy to configure, and can be deployed in a production environment. However, a 6to4 tunnel has the following limitations:
Communicates only with other nodes that are configured with 6to4 addresses. However, if you use third-party 6to4 Relay Router services or 6to4 relay services on the Internet, you can communicate with nodes that are configured with native IPv6 addresses only.
Relies on the underlying IPv4 network routing infrastructure. Therefore, routing might not be as efficient as native IPv6 connectivity or configured tunnels.
A configured tunnel is the most complex tunnel to configure and deploy. There are two types of configured tunnels:
IPv4 configured tunnel Encapsulates IPv4 or IPv6 packets in an IPv4 packet and carries those packets through an IPv4 network infrastructure. An IPv6 over IPv4 configured tunnel enables IPv6 sites and hosts to communicate with other IPv6 nodes across an IPv4 network.
IPv6 configured tunnel Encapsulates IPv4 or IPv6 packets in an IPv6 packet and carries those packets through an IPv6 network infrastructure. An IPv6 over IPv6 configured tunnel is an enabling technology for Mobile IPv6, and can also be used for traffic engineering (for example, IPv6 multihoming support).
A configured tunnel is created as a virtual interface (iptx) and uses IPv4 addresses (IPv4 configured tunnel)
or IPv6 addresses (IPv6 configured tunnel) as the source and destination endpoints.
If you want to send IPv6 traffic through any configured tunnel, you configure
an IPv6 address on the tunnel interface.
If you want to send IPv4 traffic
through any configured tunnel, you configure an IPv4 address on the tunnel
interface.
This mechanism is the most powerful tunneling mechanism, but has the following limitations:
Requires a coordinated configuration of each tunnel endpoint.
Relies on the expertise of the administrator to obtain efficient routing of traffic. If the endpoint is misconfigured, you might have inefficient routes, routing loops, or both.
This section shows some sample IPv6 configurations. Select a configuration that most closely matches the environment into which you want to configure IPv6 on your system. These configurations are used again in Section 3.6 to describe how to configure selected systems in each configuration. For those configurations that show an IPv6 global address or address prefix, the addresses use the format described in Section 3.3.6.2.
IPv6 is supported on LAN and PPP network interfaces. See the Technical Overview for a list of commands and daemons that are supported in an IPv6 environment.
Figure 3-2
shows a simple LAN configuration in which
Host A and Host B communicate using IPv6.
Figure 3-2: Simple Host-to-Host Configuration
Figure 3-3
shows a simple LAN configuration in which Host
A, Host B, and Router A communicate using IPv6 and in which Host A and Host
B obtain global addresses from Router A.
Figure 3-3: Host-to-Host with Router Configuration
Figure 3-4
shows a configuration in which two IPv6 networks
are connected through an IPv6 router, Router A.
Figure 3-4: IPv6 Network-to-IPv6 Network with Router Configuration
Figure 3-5
shows a configuration in which four IPv6
networks are connected using three routers.
The three routers exchange routing
information with each other using the RIPng protocol.
Figure 3-5: Multiple IPv6 Networks and Multiple Routers Configuration
Figure 3-6
shows a configuration in which Host A
and Host B, connected to an IPv4 network, communicate using IPv6 through a
configured IPv4 tunnel.
Figure 3-6: Host-to-Host over Configured Tunnel Configuration
Figure 3-7 shows a configuration in which Host X is connected to an IPv4 network and Router A, an IPv6 router, is connected to the same IPv4 network and also is connected to two IPv6 networks. Host X communicates with Host B using IPv6 through a configured IPv4 tunnel between Host X and Router A.
Figure 3-7: Host-to-Router over Tunnel Configuration
Figure 3-8
shows a configuration in which four
IPv6 networks are connected through two routers and an IPv4 network.
Host
A communicates with Host F through a configured IPv4 tunnel between router
A and router B.
Figure 3-8: IPv6 Network-to-IPv6 Network over Configured Tunnel Configuration
Figure 3-9
shows a configuration in which Host
E is connected to an IPv4 network and Router B, an IPv6 router, is connected
to the same IPv4 network and also is connected to two IPv6 networks.
Host
E communicates with Host B using a 6to4 tunnel between Host E and Router B.
Figure 3-9: 6to4 Configuration
You can configure IPv6 on any node. For cluster members, you can configure IPv6 on each individual cluster member independently.
Note
IPv6 does not support cluster-wide communication. You cannot use an IPv6 address for the cluster alias. See the Cluster Administration manual for information on configuring a cluster.
This section describes those tasks that you need to do before configuring
IPv6.
3.6.1 Verifying IPv6 Support in the Kernel
Verify that the IP Version 6 (IPV6) and IP-in-IP Tunneling (IPTUNNEL) support is in the kernel by issuing the following commands:
# sysconfig -q ipv6 # sysconfig -q iptunnel
If
neither the
ipv6:
nor the
iptunnel:
subsystem attributes are displayed, do the following:
Build a new kernel by using the following command:
# doconfig -c SYSTEM_NAME
Choose the IPV6 and IPTUNNEL options in addition to any other options that you want.
Save the original kernel, then move the new kernel to the root directory.
# mv /vmunix /vmunix.save # mv /sys/SYSTEM_NAME/vmunix /vmunix
Reboot the system. Make sure there are no other users on the system. Use a command similar to the following:
# shutdown -r +5 "Adding IPv6 and IPTUNNEL kernel options ..."
You are now ready to configure your system to communicate in
an IPv6 network environment.
3.6.2 Preparing for the Configuration
After
you verify IPv6 support in the kernel, you configure your system to communicate
in an IPv6 network environment by running the IPv6 configuration utility,
ip6_setup.
The
ip6_setup
utility enables you
to configure the following:
IPv6 host
IPv6 router
When you run the
ip6_setup
configuration utility,
it gathers information from the system and prompts you for additional configuration
information.
Before you configure the IPv6 network software, you must gather information
about your system and network environment.
Figure 3-10
and
Figure 3-11
show the IPv6 Configuration Worksheets.
The following
sections describe the information that you need to record on the worksheets.
If you are viewing this manual on line, you can use the print feature to print
a copy of these worksheets.
Figure 3-10: IPv6 Configuration Worksheet 1
Figure 3-11: IPv6 Configuration Worksheet 2
If you want this system to function as an IPv6 router, check Yes; otherwise, check No. If you check No, the system is configured as an IPv6 host.
An IPv6 router can advertise address prefixes to all hosts on connected links (for example, a LAN and a configured tunnel) and forward packets toward their destinations. Packets can be forwarded directly on the link or over IPv4 tunnels.
If you want this system to record its addresses in the DNS/BIND database automatically, check Yes; otherwise, check No. If you check Yes, you must configure your system as a DNS/BIND client and your DNS/BIND server must support dynamic updates to the DNS database. See Network Administration: Services for information on configuring your DNS/BIND server.
Enter the
device names of the network interface to the IPv6 network.
For example,
le0
and
fta0.
If you are creating a configured
tunnel only on your system, enter
none.
If you want IPv6 routing to run over a PPP interface, check Yes; otherwise,
check No.
See
ppp_manual_setup(7)
If you want IPv6 to run over a 6to4 tunnel, check Yes; otherwise, check No. A 6to4 tunnel has one source and one destination in an IPv4 network.
If you want IPv6 to run over a configured IPv4 tunnel, check Yes; otherwise, check No. A configured IPv4 tunnel has one source and one destination in an IPv4 network. Use configured tunnels instead of automatic tunnels. You can define multiple configured tunnels.
If you want to configure IPv6 to run over IPv4 automatic tunnels, check Yes; otherwise, check No.
Note
Do not use automatic tunnels because their use might be deprecated in the future.
If you want to configure routes to other systems manually, check Yes; otherwise, check No.
On a router, you might want to configure static routes if one of the following conditions is true:
You want a configured tunnel and you are not advertising an address prefix on the tunnel link.
You want a configured tunnel and the router at the other end of the tunnel is not running the RIPng protocol.
Your system is not running the RIPng protocol.
On a host, you might want to configure static routes if you want a configured tunnel to a router and the router is not advertising itself as a default router on the tunnel link.
If you want
to start IPv6 directly from the configuration utility,
ip6_setup, check Yes.
If you want to start IPv6 during the next system boot,
check No.
The fully qualified
domain name for your node.
This consists of the host name and the DNS/BIND
domain name (for example,
host1.subdomain.example).
Your node's name or IP address (this end of the tunnel).
The
ip6_setup
utility automatically generates a 48-bit 6to4 site prefix.
If your system is an IPv6 host, enter a 64-bit 6to4 prefix to be configured
on the 6to4 tunnel interface.
The upper 48 bits of the address prefix must
be identical to the site prefix generated by the
ip6_setup
utility.
If you want to communicate with an IPv6-only network, enter the 6to4 address of the Relay Router.
The type of configured tunnel. Valid types are IPv4 and IPv6.
The name of the
configured tunnel interface (for example,
ipt0,
ipt1).
The
ip6_setup
script supplies this value.
The remote node's IP address (the remote end of the tunnel).
Your node's IP address (this end of the tunnel).
If your system is a router and you want the router to run the RIPng protocol on the tunnel link to exchange IPv6 routing information with a router at the remote end of the tunnel, check Yes; otherwise, check No.
If your system is a router and you want to advertise address prefixes to the node at the remote end of the tunnel, enter a 64-bit prefix; otherwise, write Done.
If your system is an IPv6 host and the router at the remote end of the tunnel is not advertising an address prefix, enter a 64-bit prefix to be configured on the tunnel interface.
The name of the interface (LAN, PPP, or configured tunnel) on which you want to run the RIPng protocol or advertise an address prefix.
If you want the router to run the RIPng protocol on the specified interface and to exchange IPv6 routing information with other routers on the link (LAN, PPP, or configured tunnel), check Yes; otherwise, check No.
If you want to advertise address prefixes to all hosts on the link, enter a 64-bit prefix; otherwise, write Done.
If you write Done, the router will not advertise an address prefix. All hosts must obtain their prefix information from another source.
Prefixes in IPv6 define a subnet, and are typically configured on a router for a specific link by the network administrator. The router advertises this prefix to all nodes connected to that link, along with the length of the prefix, whether the prefix is on link (that is, a neighbor), whether the prefix can also be used for stateless address configuration, and the length of time the prefix is valid.
The address prefix of a remote IPv6 network. The address prefix contains a Classless Inter-Domain Routing (CIDR) style bit length, for example, 5F00::/8. If you want to use the default route, write Default.
The name of the interface through which you are sending traffic to the remote IPv6 network.
The IPv6 address of the first router in the path to the destination prefix. Write the link local address of the router. If the connection to the router is over an IPv4 tunnel, write the link local IPv6 address of the remote tunnel endpoint.
3.6.3 Configuring Systems in Sample IPv6 Configurations
This section describes each sample configuration presented in
Section 3.5
and shows how selected systems are configured in each
example.
In some cases, this section presents additional options for you
to consider in the configuration.
3.6.3.1 Simple Host-to-Host Configuration
In
Figure 3-2, Host A and Host B use IPv6 link-local
addresses.
By default, the
ip6_setup
configuration utility
automatically creates a link-local address for your system.
The following
is a sample completed worksheet for Host A:
After configuring IPv6 on Host A, you edit the
/etc/ipnodes
file and insert the link-local address for Host B.
The configuration
process for Host B in this configuration is similar to Host A's.
With this configuration, no global address prefix is advertised on the
LAN.
If you want to advertise a global address prefix, you could either configure
one of the nodes as a router by using the
ip6_setup
utility
or add an IPv6 router to the LAN configuration.
An IPv6 router advertises
a global prefix on the link.
You can use the
netstat -in
command to view a local
node's link-local and global addresses.
If you are on Host A and want to connect to Host B using the
telnet
command, the format of the command is as follows:
# telnet fe80::0a00:2bff:fee2:1e11
Instead of specifying the link-local address, place the
address and the node name in the
/etc/ipnodes
file.
Then,
use the node name as the argument to the
telnet
command.
3.6.3.2 Host-to-Host with Router Configuration
In
Figure 3-3, Host A and Host B are on a LAN with Router
A.
In this case, Router A advertises the global address prefix
3ffe:1200:4112:1::/64
on the LAN.
Host A and Host B use this address
prefix to create global IPv6 addresses.
See
Section 3.3.6
for more information on obtaining experimental testing addresses.
The following
is a sample completed worksheet for Router A:
After configuring IPv6 on Router A, you can edit the
/etc/ipnodes
file and add the global addresses for the other nodes.
You would
also do this on Host A and Host B.
Alternatively, you could establish DNS/BIND
in your network using the global addresses.
If you added a DNS/BIND server with dynamic updates enabled on the network, the worksheet for Host A would have the following information:
3.6.3.3 IPv6 Network-to-IPv6 Network with Router Configuration
In Figure 3-4, two IPv6 networks are connected to each other through Router A and its multiple interfaces. The following is a sample completed worksheet for Router A:
3.6.3.4 Multiple IPv6 Networks and Multiple Routers Configuration
In Figure 3-5, four IPv6 networks are interconnected to each other using the three routers. In this configuration, the routers must exchange routing information in order for the routers to learn the routes to other subnets in the network. To accomplish this, each router must run the RIPng protocol. The following is a sample completed worksheet for Router A:
The worksheets for the other routers
are similar.
3.6.3.5 Host-to-Host over IPv4 Configured Tunnel Configuration
In Figure 3-6, two IPv6 systems communicate with each other over a configured tunnel through an IPv4 network, and use IPv6 link-local addresses. The following is a sample completed worksheet for Host A:
After configuring IPv6 on Host A, you edit the
/etc/ipnodes
file and insert the link-local address for Host B.
The configuration
process for Host B in this configuration is similar to Host A's.
With this configuration, no global address prefix is advertised on the
tunnel.
If you want to advertise a global address prefix, you could configure
one of the nodes as a router by using
ip6_setup.
An IPv6
router advertises a global prefix on the link.
You can use the
netstat -in
command to view a local
node's link-local and global addresses.
If you are on Host A and want to connect to Host B using the
telnet
command, the format of the command is as follows:
# telnet fe80::5.6.7.8
Instead of specifying the link-local address, place the
address and the node name in the
/etc/ipnodes
file.
Then,
use the node name as the argument to the
telnet
command.
3.6.3.6 Host-to-Router over IPv4 Configured Tunnel Configuration
In Figure 3-7, Host X communicates with Host B over a configured tunnel through an IPv4 network; both nodes use IPv6 addresses. The tunnel in this case is between Host X and Router A. The following is a sample completed worksheet for Host X when Router A is advertising itself as the default router for the tunnel link and advertising a global address prefix on the tunnel link:
If Router A is not advertising a global address prefix on the tunnel
link, the value
3ffe:1200:4113:1::/64
would be in the Address
prefix field in Configured Tunnel section of the Host X worksheet.
If Router
A is not advertising itself as the default router for the tunnel link, the
following information would also be on the Host X worksheet:
The following is a sample completed worksheet for Router A when Router A is advertising a global address prefix on the tunnel link:
If Router A is not advertising a global prefix on the tunnel link, the
following information would be on the Router A worksheet.
Note the manual
route to Host X.
Instead of specifying a destination network prefix, you specify
the host route,
3ffe:1200:4113:1::5.6.7.8, to Host X.
The next hop is the link-local IPv6 address of Host X's tunnel interface,
fe80::5.6.7.8.
3.6.3.7 IPv6 Network-to-IPv6 Network over IPv4 Configured Tunnel Configuration
In Figure 3-8, Host A communicates with Host F over a configured tunnel through an IPv4 network. The host configuration is similar to that of Host A in Section 3.6.3.1. All nodes automatically use their default router in order to communicate with nodes on other networks. The following is a sample completed worksheet for Router A:
You do not have to run RIPng on the
tu0
and
tu1
interfaces because there are no routers attached to the interfaces.
The configuration of Router B is similar, except that the source and
destination addresses for the configured tunnel are
5.6.7.8
and
1.2.3.4, respectively, and the address prefixes advertised
on
tu0
and
tu1
are
3ffe:1200:4113:1::/64
and
3ffe:1200:4113:2::/64, respectively.
Note
If the routers were not configured to use RIPng over the tunnel interface, each router would then need to specify a manual route to the other.
3.6.3.8 6to4 Tunnel Configuration
In Figure 3-9, Host E is the only node in a 6to4 site. It communicates with Host B over a 6to4 tunnel through an IPv4 network; both nodes use IPv6 6to4 addresses. The tunnel in this case is between Host E and Router B. IPv6 is not configured on the Host E physical interface because it is connected to an IPv4 network. IPv6, however, is configured on the 6to4 tunnel. The following is a sample completed worksheet for Host E:
Router B is the Border Router for another 6to4 site, and is also the IPv6 router for that site. Router B is advertising a 6to4 prefix on each subnet. The upper 48 bits of each 6to4 prefix is identical to the 6to4 site prefix. The following is a sample completed worksheet for Router B:
The following is a sample completed worksheet for Host B. Because Router B is advertising a 6to4 address prefix on the subnet, Host B autoconfigures its own 6to4 address as part of its participation in the site; it does not need to configure any 6to4 tunnel interfaces.
3.7 Configuring IPv6 on Your System
This section describes how to configure your system as either an IPv6 host or an IPv6 router. Make sure you complete the configuration worksheets before you begin.
You configure IPv6 by running the
/usr/sbin/ip6_setup
utility.
This utility defines the interfaces and types of connections to use
for IPv6 communication, and updates system files to enable IPv6 operation.
The configuration should take no longer than 10 minutes, excluding preparation
time.
The following illustration shows how to use the information in this section:
Default answers appear in brackets throughout the procedure. Press [Enter] to accept the default.
Section 3.7.1
illustrates the configuration of an IPv6
host with five interfaces: a physical interface (le0),
a 6to4 interface (tun1), an IPv6 over IPv4 tunnel (ipt0), an IPv6 over IPv6 tunnel (ipt1), and an
automatic tunnel (tun0).
On
le0, a
manual route is configured.
Section 3.7.2
illustrates the configuration of an IPv6
router with six interfaces: a physical interface (le0),
a point-to-point interface (ppp0), a 6to4 interface (tun1), an IPv6 over IPv4 tunnel (ipt0), an IPv6
over IPv6 tunnel (ipt1), and an automatic tunnel (tun0).
On
le0, RIPng will be started, a manual
route configured, and an address prefix advertised.
On
ppp0,
RIPng will be started and an address prefix advertised.
On
ipt0
and
ipt1, RIPng will be started and an address prefix advertised.
This page intentionally left blank.
3.7.1 Configuring an IPv6 Host
# /usr/sbin/ip6_setup[Enter]
This utility will gather some IPv4 information from your system
then prompt you for IPv6 related information. You may enter a
question mark (?) at any question for further explanation.
Do you want to enable IPv6 in inetd services on this system? [Yes]: [Enter]
Do you want to configure this system as an IPv6 router? [No]: [Enter]
[Footnote 2]
Do you want to enable dynamic updates of IPv6 addresses in the DNS/BIND namespace? [No]:
[Footnote 3]
Enter the fully qualified domain name for IPv6? [host1.corp.com]: [Enter]
[Footnote 4]
Do you want to configure a 6to4 interface? [no]: y [Enter]
[Footnote 5]
The 6to4 tunnel will be created as tun1
Enter this node's hostname or IPv4 address to use when generating your site's
6to4 prefix [16.140.64.103]: [Enter]
[Footnote 6]
Your 6to4 site prefix is:
2002:108c:4067::/48
PLEASE SAVE THIS INFORMATION TO CONFIGURE YOUR 6TO4 SITE.
Enter the address prefix to use on tun1 ? [2002:108c:4067::/64]: [Enter]
[Footnote 7]
Enter the hostname or 6to4 address of a 6to4 Relay Router? [2002:c058:6301::]: [Enter]
[Footnote 8]
6to4 interface configuration completed.
Enter the IPv6 LAN interfaces? [ le0 ]: [Enter]
[Footnote 9]
Do you wish to define IPv6 over IPv4 configured tunnels? [No] y [Enter]
[Footnote 10]
Enter the destination hostname or IPv4 address of tunnel ipt0? [No Default]: 16.140.64.142 [Enter]
[Footnote 11]
Enter the source hostname or IPv4 address of tunnel ipt0? [16.140.64.103]: [Enter]
[Footnote 12]
Enter an address prefix to use on ipt0? [Done]: [Enter]
[Footnote 13]
Enter the destination hostname or IPv6 address of tunnel ipt1? [Done]: [Enter]
Do you wish to define IPv6 over IPv6 configured tunnels? [No] y [Enter]
[Footnote 14]
Enter the destination hostname or IPv6 address of tunnel ipt1? [No Default]: 3ffe::2 [Enter]
[Footnote 15]
Enter the source hostname or IPv6 address of tunnel ipt1? [No Default]: 3ffe::1 [Enter]
[Footnote 16]
Enter an address prefix to use on ipt1? [Done]: [Enter]
[Footnote 17]
Enter the destination hostname or IPv6 address of tunnel ipt2? [Done]: [Enter]
Do you want to configure an IPv6 over IPv4 automatic tunnel interface? [no] y [Enter]
[Footnote 18]
The automatic tunnel will be created as tun0
Enter this node's hostname or IPv4 address to use when creating your automatic
tunnel [16.140.64.103]: y [Enter]
[Footnote 19]
Do you wish to define manual IPv6 routes? [No] y [Enter]
[Footnote 20]
Enter the destination network address prefix? []: 5f02:2::/32 [Enter]
[Footnote 21]
Enter interface to use when forwarding messages? [le0]: y [Enter]
[Footnote 22]
Enter the next node's IPv6 address: [No Default]: 3ffe::5 [Enter]
[Footnote 23]
Enter the destination network address prefix? [Done]: [Enter]
You configured this node as a Host with the following
[Footnote 24]
Interfaces:
tun1 6to4 Tunneling Enabled using 16.140.64.103
Prefix 2002:108c:4067::/64
Relay Router 2002:c058:6301::
le0 Dynamic Address Configuration Enabled
ipt0 Dynamic Address Configuration Enabled
Tunnel Source 16.140.64.103
Tunnel Destination 16.140.64.142
ipt1 Dynamic Address Configuration Enabled
Tunnel Source 3ffe::1
Tunnel Destination 3ffe::2
tun0 Automatic Tunneling Enabled using 16.140.64.103
Manual Routes:
5f02:2::/32 le0 3ffe::5 (G)
Do you wish to update the IPv6 startup procedures with this
configuration? [No Default] y [Enter]
Do you want to start IPv6? [Yes]: [Enter]
[Footnote 25]
3.7.2 Configuring an IPv6 Router
# /usr/sbin/ip6_setup [Enter]
This utility will gather some IPv4 information from your system
then prompt you for IPv6 related information. You may enter a
question mark (?) at any question for further explanation.
Do you want to enable IPv6 in inetd services on this system? [Yes]: [Enter]
Do you want to configure this system as an IPv6 router? [No]: y [Enter]
[Footnote 26]
Do you want to configure a 6to4 interface? [no]: y [Enter]
[Footnote 27]
The 6to4 tunnel will be created as tun1
Enter this node's hostname or IPv4 address to use when generating your site's
6to4 prefix [16.140.64.103]: [Enter]
[Footnote 28]
Your 6to4 site prefix is:
2002:108c:4067::/48
PLEASE SAVE THIS INFORMATION TO CONFIGURE YOUR 6TO4 SITE.
Enter the hostname or 6to4 address of a 6to4 Relay Router? [2002:c058:6301::]: [Enter]
[Footnote 29]
6to4 interface configuration completed.
Enter the IPv6 LAN interfaces? [ le0 ]: [Enter]
[Footnote 30]
Do you want to enable RIPng on interface le0? [Yes]: [Enter]
[Footnote 31]
Enter an address prefix to advertise on le0? [No Default]: 5f02:2::/64 [Enter]
[Footnote 32]
Enter an address prefix to advertise on le0? [Done]: [Enter]
Do you wish to configure IPv6 routing over any PPP links? [No] y [Enter]
[Footnote 33]
Enter a PPP interface name? [ppp0]: [Enter]
[Footnote 34]
Do you want to enable RIPng on interface ppp0? [Yes]: [Enter]
[Footnote 35]
Enter an address prefix to advertise on ppp0? [No Default]: 5f03:3::/64 [Enter]
[Footnote 36]
Enter an address prefix to advertise on ppp0? [Done]: [Enter]
Enter a PPP interface name? [Done]: [Enter]
Do you wish to define IPv6 over IPv4 configured tunnels? [No] [Enter]
[Footnote 37]
Enter the destination hostname or IPv4 address of tunnel ipt0? [No Default]: 16.140.64.142 [Enter]
[Footnote 38]
Enter the source hostname or IPv4 address of tunnel ipt0? [16.140.64.103]: [Enter]
[Footnote 39]
Do you want to enable RIPng on interface ipt0? [Yes]: [Enter]
[Footnote 40]
Enter an address prefix to advertise on ipt0? [Done]: aaa::/64 [Enter]
[Footnote 41]
Enter an address prefix to advertise on ipt0? [Done]: [Enter]
Enter the destination hostname or IPv4 address of tunnel ipt1? [Done]: [Enter]
Do you wish to define IPv6 over IPv6 configured tunnels? [No] y [Enter]
[Footnote 42]
Enter the destination hostname or IPv6 address of tunnel ipt1? [No Default]: 3ffe::2 [Enter]
[Footnote 43]
Enter the source hostname or IPv6 address of tunnel ipt1? [No Default]: 3ffe::1 [Enter]
[Footnote 44]
Do you want to enable RIPng on interface ipt1? [Yes]: [Enter]
[Footnote 45]
Enter an address prefix to advertise on ipt1? [Done]: bbbb::/64 [Enter]
[Footnote 46]
Enter an address prefix to advertise on ipt1? [Done]: [Enter]
Enter the destination hostname or IPv6 address of tunnel ipt2? [Done]: [Enter]
Do you want to configure an IPv6 over IPv4 automatic tunnel interface? [no] [Enter]
[Footnote 47]
Enter this node's hostname or IPv4 address to use when creating your automatic
tunnel [16.140.64.103]: [Enter]
[Footnote 48]
Do you wish to define manual IPv6 routes? [No] y [Enter]
[Footnote 49]
Enter the destination network address prefix? []: 5f02:2::/64 [Enter]
[Footnote 50]
Enter interface to use when forwarding messages? [le0]: [Enter]
[Footnote 51]
Enter the next node's IPv6 address: [No Default]: 3ffe::5 [Enter]
[Footnote 52]
Enter the destination network address prefix? [Done]: [Enter]
You configured this node as a Router with the following
[Footnote 53]
Interfaces:
tun1 6to4 Tunneling Enabled using 16.140.64.103
Prefix 2002:108c:4067::/64
Relay Router 2002:c058:6301::
le0 RIP Enabled
Prefix 5f02:2::/64
ppp0 RIP Enabled
Prefix 5f03:3::/64
ipt0 RIP Enabled
Tunnel Source 16.140.64.103
Tunnel Destination 16.140.64.142
Prefix aaaa::/64
ipt1 RIP Enabled
Tunnel Source 3ffe::1
Tunnel Destination 3ffe::2
Prefix bbbb::/64
tun0 Automatic Tunneling Enabled using 16.140.64.103
Manual Routes:
5f02:2::/64 le0 3ffe::5 (G)
Do you wish to update the IPv6 startup procedures with this
configuration? [No Default] y [Enter]
Do you want to start IPv6? [Yes]: [Enter]
[Footnote 54]
After using the
ip6_setup
utility to initially configure
IPv6, you might want to do the following:
The following sections describe these tasks.
3.8.1 Connecting to the 6bone Network
To connect to the 6bone network, choose a 6bone point that appears to be reasonably adjacent to your normal IPv4 paths into the Internet. The 6bone Web site at http://www.6bone.net contains information on how to join the 6bone network and how to find an attachment point.
If you want to connect to the 6bone network through the HP Palo Alto, California site either before or after you configure IPv6 on your host or router, complete the following steps:
Register your IPv4 tunnel by sending the IPv4 address of your router to the following address:
gw-6bone@pa.dec.com
Wait for confirmation that support for your tunnel is configured at HP. HP will provide an IPv6 global address prefix for you to use at your site and the IPv4 address of the HP Palo Alto router.
Configure your tunnel by running the
ip6_setup
utility.
See
Section 3.7.1
for host configuration and
Section 3.7.2
for router configuration.
Alternatively, you could run
the
iptunnel
command (see
Section 3.8.4).
Verify that your tunnel is operational by issuing the
ping
command to one of the following HP IPv6 nodes:
altavista.ipv6.digital.com ftp.ipv6.digital.com www.ipv6.digital.com
3.8.2 Initializing a New Interface for IPv6
In some cases, you might want to add
a new interface card to your system or change an interface card from one type
to another.
After the new card is installed, you must initialize it for IPv6
operation.
To initialize an interface, use the
ifconfig
command with the following syntax:
ifconfig
device
ipv6 up
For LAN interfaces, the
ifconfig
command creates
the link-local address (FE80::) and starts Duplicate Address Detection.
For example, to initialize Ethernet interface
ee0
for use with IPv6, enter the following command:
# ifconfig ee0 ipv6 up
To initialize the loopback interface for use with IPv6, enter the following command:
# ifconfig lo0 ipv6 up
To initialize the automatic tunnel interface, enter the following command:
# ifconfig tun0 ipv6 up
This chooses one of the system's IPv4 addresses for use as the tunnel endpoint.
If you are adding the interface card permanently, use the
ip6_setup
utility.
3.8.2.1 Setting the IPv6 Interface Identifier
You can set the IPv6 interface ID at the same time you initialize
an interface by using the
ifconfig
command with the
ip6interfaceid
parameter.
For example, to initialize Ethernet interface
ee0
for use with IPv6 and set its interface ID to the 64-bit value
0x0123456789abcdef, enter the following command:
# ifconfig ee0 ip6interfaceid ::0123:4567:89ab:cdef ipv6 up
Although the interface ID is expressed in standard IPv6
address format, only the low order 64 bits are used.
3.8.3 Removing IPv6 from an Interface
Removing IPv6 from an interface removes the
IPv6 configuration associated with the interface, including all IPv6 addresses
and IPv6 routes through the interface.
To remove IPv6 from an interface,
use the
ifconfig
command with the following syntax:
ifconfig
device
-ipv6
For example, to remove IPv6 from Ethernet interface
ee0,
enter the following command:
# ifconfig ee0 -ipv6
3.8.4 Creating a Configured Tunnel
To create a
configured (manual) tunnel, use the
/usr/sbin/iptunnel
command with the following syntax:
iptunnel
create remote-tunnel-endpoint
[local-tunnel-endpoint]
For example, to create a tunnel to the remote system
16.20.136.47, enter the following command:
# iptunnel create 16.20.136.47
To initialize the tunnel for IPv6 operation, enter the following command:
# ifconfig ipt0 ipv6 up
If you want this change to be permanent, use the
ip6_setup
utility.
3.8.5 Adding an Address to an Interface
To add or assign an IPv6 prefix
to an interface and to direct the kernel to automatically append the interface
identifier, use the
ifconfig
command with the following
syntax:
ifconfig
interface-name inet6 ip6prefix prefix
The following command assigns the prefix
3ffe:1200:4112:2::/64
to interface
ln0
(the interface ID is
0a00:2bff:fe12:3456).
As a result of this command, the address on
the interface is
3ffe:1200:4112:2:0a00:2bff:fe12:3456.
# ifconfig ln0 inet6 ip6prefix 3ffe:1200:4112:2::/64
The
ip6prefix
parameter directs the
kernel to automatically append the interface identifier to the address prefix.
To add or assign a full IPv6 address to an interface manually, use the
ifconfig
command with the following syntax:
ifconfig
interface-name inet6 address
The following command assigns the address
3ffe:1200:4112:2::1
to interface
ee0:
# ifconfig ee0 inet6 3ffe:1200:4112:2::1
Note
For IPv6 hosts, the
nd6hostddaemon configures interface prefixes automatically, depending on the contents of router advertisements.For IPv6 routers, the
ip6rtrddaemon configures interface prefixes automatically, depending on the contents of the/etc/ip6rtrd.conffile.
3.8.6 Deleting an Address from an Interface
To delete an IPv6 address
from an interface manually, use the
ifconfig
command with
the following syntax:
ifconfig
interface-name inet6 delete address
For example:
# ifconfig ee0 inet6 delete 3ffe:1200:4112:2::1
3.8.7 Adding or Deleting a Default Router
To add a default router, use
the
route
utility with the following syntax:
route
add -inet6 default router-address -dev interface
For example:
# route add -inet6 default fe80::0a00:2bff:fe12:3456 -dev ee0
To delete a default router,
use the
route
utility with the following syntax:
route
delete -inet6 default router-address -dev interface
For example:
# route delete -inet6 default fe80::0a00:2bff:fe12:3456 -dev ee0
Note
For IPv6 hosts, the
nd6hostddaemon performs the add and delete router operations automatically, depending on the contents of router advertisements.
3.8.8 Manually Adding a Route for an On-Link Prefix
After
you manually add an address and prefix to an interface, you can also add a
static route so that traffic to other nodes with the same prefix is sent directly
to the destination rather than through a router.
For example, if the prefix
3ffe:1200:4112:5::/64
was added to an Ethernet interface, which
was initialized with the link-local address
fe80::0a00:2bff:fe12:3456, the following command adds a route to neighboring nodes with the
same prefix:
# route add -inet6 3ffe:1200:4112:5::/64 fe80::0a00:2bff:fe12:3456 -interface
This command specifies that destinations with prefix
3ffe:1200:4112:5::/64
are reachable through the interface with address
fe80::0a00:2bff:fe12:3456.
In other words,
3ffe:1200:4112:5::/64
is an on-link prefix.
Note
For IPv6 hosts, the
nd6hostddaemon automatically adds on-link prefixes, based on the contents of router advertisements.
3.8.9 Configuring Routing Support in the Kernel
Before
configuring a router, you must enable forwarding by setting the
ipv6forwarding
and
ipv6router
attributes of the
ipv6
kernel subsystem to 1.
You set these attributes by entering
the following
sysconfig
commands:
# /sbin/sysconfig -r ipv6 ipv6forwarding=1 # /sbin/sysconfig -r ipv6 ipv6router=1
These commands are typically executed by the system startup
scripts on nodes configured as IPv6 routers.
3.8.10 Editing the Run-Time Configuration File
After you configure the system,
either as an IPv6 host or an IPv6 router, the
/etc/rc.config
file contains information used by the system startup procedures to start IPv6.
You can modify this file as appropriate for your configuration by using the
rcmgr
command.
The following variables are used by IPv6:
If set to yes, starts IPv6 during system startup.
Specifies an IPv6 device name.
The device name must
be in the
rc.config
file.
The
n
value is an integer number that starts at 0 and increments sequentially for
each device.
Specifies options and parameters
to use on an
ifconfig
command line during system startup.
The
n
value is an integer number that corresponds
to the number in the
IP6DEV_n
variable.
The
m
value is an integer that starts
at 0 and increments sequentially for each
ifconfig
line
needed for each device.
Specifies the number of IPv6 devices configured.
If set to yes, configures the node as an IPv6 router. Otherwise, configures the node as a host.
If set to yes, starts the IPv6
router daemon,
ip6rtrd, during IPv6 startup.
Specifies a string of options and parameters to use in starting the
ip6rtrd
daemon.
If set to yes, starts the IPv6
host daemon,
nd6hostd, during IPv6 startup.
Specifies a string of options and parameters to use in starting the
nd6hostd
daemon.
Specifies a string of options and parameters to use
to create a configured tunnel during system startup.
This variable is used
only when the device specified with the
IP6DEV_n
variable is a configured tunnel (for example,
ipt0).
Example 3-1
shows sample variables for an IPv6
host in the
/etc/rc.config
file.
Example 3-1: Sample IPv6 Host Configuration Variables
IPV6="yes" IP6DEV_0="tu0" IP6IFCONFIG_0_0="ipv6 up" IP6DEV_1="tun0" IP6IFCONFIG_1_0="ipv6 up" NUM_IP6CONFIG=2 IP6ROUTER="no" IP6RTRD="no" IP6RTRD_FLAGS="" ND6HOSTD="yes" ND6HOSTD_FLAGS=" -u -n host1.corp.com"
Example 3-2
shows sample variables for an IPv6
router in the
/etc/rc.config
file.
Example 3-2: Sample IPv6 Router Configuration Variables
IPV6="yes" IP6DEV_0="tu0" IP6IFCONFIG_0_0="ipv6 up" IP6DEV_1="tu1" IP6IFCONFIG_1_0="ipv6 up" NUM_IP6CONFIG=2 IP6ROUTER="yes" IP6RTRD="yes" IP6RTRD_FLAGS="/etc/ip6rtrd.conf" ND6HOSTD="no" ND6HOSTD_FLAGS=""
3.8.11 Editing the Router Configuration File
After you configure the
system as an IPv6 router, the
ip6rtrd
daemon sends out
periodic router advertisements for the following reasons:
To advertise itself as a potential default router for IPv6 traffic. The IPv6 nodes on the link receive these advertisements as part of their Neighbor Discovery processing.
To advertise an IPv6 address prefix, in which case IPv6 nodes on the link perform address autoconfiguration.
The
/etc/ip6rtrd.conf
file contains the configuration
data needed to send Router Advertisement messages.
This file is created when
ip6_setup
is run, if the system is configured as a router.
The
link interface and advertised prefix are inserted, and other default values
are used.
You can modify this file as appropriate for your network, for example,
when using multiple prefix values.
See
ip6rtrd.conf(4)
Example 3-3
is a sample configuration file.
Example 3-3: Sample ip6rtrd.conf File
#
# Sample ip6rtrd configuration file
#
interface tu0 {
MaxRtrAdvInterval 600
MinRtrAdvInterval 200
AdvManagedFlag 0
AdvOtherConfigFlag 0
AdvLinkMTU 1500
AdvReachableTime 0
AdvRetransTimer 0
AdvCurHopLimit 64
AdvDefaultLifetime 1800
Prefix dec:1::/64 {
AdvValidLifetime 1200
AdvPreferredLifetime 600
AdvOnLinkFlag 1
AdvAutonomousFlag 1
}
}
3.8.12 Tuning the Kernel Subsystems
You can use either the
sysconfig
utility or
dxkerneltuner
utility to tune the IPv6 subsystems.
See
sys_attrs_ipv6(5)sys_attrs_iptunnel(5)3.9 IPv6 Daemon Log Files
The
nd6hostd
and
ip6rtrd
daemons log informational and severe events in the
/var/adm/syslog.dated/date/daemon.log
file.
You can view the contents of
this message file by using the Event Viewer that is part of the SysMan Menu
utility.
See
Section 11.9
for more information about
the Event Viewer.
By default, the daemons do not log debug
information.
To enable logging of debug information for the
nd6hostd
daemon, issue the following commands:
# rcmgr set ND6HOSTD_FLAGS "-d -l /usr/tmp/nd6hostd.log" # /usr/sbin/rcinet restart inet6
To enable logging of debug information
for the
ip6rtrd
daemon, issue the following commands:
# rcmgr set IP6RTRD_FLAGS "-d -l /usr/tmp/ip6rtrd.log" # /usr/sbin/rcinet restart inet6