<chapter id="ipv6-config-tasks-1"><title>Enabling IPv6 on a Network (Tasks)</title><highlights><para>This chapter contains tasks for configuring IPv6 on a network. The following
major topics are covered:</para><itemizedlist><listitem><para><olink targetptr="ipv6-config-tasks-64" remap="internal">Configuring an IPv6
Interface</olink></para>
</listitem><listitem><para><olink targetptr="gbvnf" remap="internal">Enabling IPv6 on an Interface (Task
Map)</olink></para>
</listitem><listitem><para><olink targetptr="ipv6-config-tasks-5" remap="internal">Configuring an IPv6
Router</olink></para>
</listitem><listitem><para><olink targetptr="ipv6-config-tasks-6" remap="internal">Modifying an IPv6 Interface
Configuration for Hosts and Servers</olink></para>
</listitem><listitem><para><olink targetptr="gbuzn" remap="internal">Modifying an IPv6 Interface Configuration
(Task Map)</olink></para>
</listitem><listitem><para><olink targetptr="ipv6-config-tasks-10" remap="internal">Configuring Name Service
Support for IPv6</olink></para>
</listitem>
</itemizedlist><para>For an overview of IPv6 concepts, refer to <olink targetptr="ipv6-overview-7" remap="internal">Chapter&nbsp;3, Planning an IPv6 Addressing Scheme
(Overview)</olink>. For IPv6 planning tasks, refer to <olink targetptr="ipv6-planning-1" remap="internal">Chapter&nbsp;4, Planning an IPv6 Network (Tasks)</olink>.
To find reference information about the tasks in this chapter, refer to <olink targetptr="ipv6-ref-76" remap="internal">Chapter&nbsp;11, IPv6 in Depth (Reference)</olink>.</para>
</highlights><sect1 id="ipv6-config-tasks-64"><title>Configuring an IPv6 Interface</title><para>The initial step in IPv6 configuration is enabling IPv6 on an interface.
You can enable IPv6 support during the Solaris 10 installation process or
by configuring IPv6 on the interfaces of an installed system. </para><para>During the Solaris 10 installation process, you can enable IPv6 on one
or more of a system's interfaces.  After installation, the following IPv6-related
files and tables are in place:</para><itemizedlist><listitem><para>Each interface that was enabled for IPv6 now has an associated <filename>/etc/hostname6.</filename><replaceable>interface</replaceable> file, such
as <filename>hostname6.dmfe0</filename>. </para>
</listitem><listitem><para>The <filename>/etc/nsswitch.conf</filename> file has been
modified to accommodate lookups using IPv6 addresses.</para>
</listitem><listitem><para>The IPv6 address selection policy table is created. This table
prioritizes the IP address format to use for transmissions over an IPv6-enabled
interface.</para>
</listitem>
</itemizedlist><para>This section describes how to enable IPv6 on the interfaces of an installed
system. </para><sect2 id="gbvnf"><title>Enabling IPv6 on an Interface (Task Map)</title><informaltable frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Enable IPv6 on an interface on a system that has already been installed
with the Solaris 10 OS.</para>
</entry><entry><para>Use this task for enabling IPv6 on an interface after the Solaris 10
OS has been installed.</para>
</entry><entry><para><olink targetptr="ipv6-config-tasks-119" remap="internal">How to Enable an IPv6 Interface
for the Current Session</olink></para>
</entry>
</row><row><entry><para>Make the IPv6-enabled interface persist across reboots.</para>
</entry><entry><para>Use this task to make the IPv6 address of the interface permanent.</para>
</entry><entry><para><olink targetptr="ipv6-config-tasks-28" remap="internal">How to Enable Persistent IPv6
Interfaces</olink></para>
</entry>
</row><row><entry><para>Turn off IPv6 address autoconfiguration.</para>
</entry><entry><para>Use this task if you need to manually configure the interface ID portion
of the IPv6 address.</para>
</entry><entry><para><olink targetptr="gbuzm" remap="internal">How to Turn Off IPv6 Address Autoconfiguration</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><task id="ipv6-config-tasks-119"><title>How to Enable an IPv6 Interface for
the Current Session</title><tasksummary><para>Begin your IPv6 configuration process by enabling IPv6 on the interfaces
of all systems that will become IPv6 nodes. Initially, the interface obtains
its IPv6 address through the autoconfiguration process, as described in <olink targetptr="chapter1-42" remap="internal">IPv6 Address Autoconfiguration</olink>. You then can
tailor the node's configuration based on its function in the IPv6 network,
either as a host, server, or router. </para><note><para>If the interface is on the same link as a router that currently
advertises an IPv6 prefix, the interface obtains that site prefix as part
of its autoconfigured addresses. For more information, refer to <olink targetptr="ipv6-config-tasks-21" remap="internal">How to Configure an IPv6-Enabled Router</olink>.</para>
</note><para>The following procedure explains how to enable IPv6 for an interface
that was added after Solaris 10 installation.</para>
</tasksummary><taskprerequisites><para>Complete the planning tasks for the IPv6 network, such as upgrading
hardware and software, and preparing an addressing plan. For more information,
see <olink targetptr="ipv6-planning-2" remap="internal">IPv6 Planning (Task Maps)</olink>.</para>
</taskprerequisites><procedure><step><para>Log in to the prospective IPv6 node as Primary Administrator or
as superuser.</para><para>The Primary Administrator role includes the Primary
Administrator profile. To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Enable IPv6 on an interface.</para><screen># <userinput>ifconfig inet6</userinput> <replaceable>interface</replaceable> <userinput>plumb up</userinput></screen>
</step><step><para>Start the IPv6 daemon<command>in.ndpd</command>.</para><screen># <userinput>/usr/lib/inet/in.ndpd</userinput></screen><note><para>You can display the status of a node's IPv6-enabled interfaces
by using the <command>ifconfig</command><option>a6</option> command.</para>
</note>
</step>
</procedure><example id="gbvgn"><title>Enabling an IPv6 Interface After Installation</title><para>This example shows how to enable IPv6 on the <command>qfe0</command> interface.
Before you begin, check the status of all interfaces configured on the system.</para><screen># <userinput>ifconfig -a</userinput>
lo0: flags=1000849 &lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
qfe0: flags=1000863 &lt;UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,IPv4> mtu 1500 
           index 2
        inet 172.16.27.74 netmask ffffff00 broadcast 172.16.27.255
        ether 0:3:ba:13:14:e1 </screen><para>Only the <literal>qfe0</literal> interface is currently configured for
this system. Enable IPv6 on this interface as follows:</para><screen width="100"># <userinput>ifconfig inet6 qfe0 plumb up</userinput>
# <userinput>/usr/lib/inet/in.ndpd</userinput>
# <userinput>ifconfig -a6</userinput>
lo0: flags=2000849 &lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
qfe0: flags=2000841 &lt;UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        ether 0:3:ba:13:14:e1 
        inet6 fe80::203:baff:fe13:14e1/10</screen><para>The example shows the status of the system's interface before and after <command>qfe0</command>becomes IPv6-enabled. The <option>a6</option> option of <command>ifconfig</command> shows just the IPv6 information for <command>qfe0</command> and
the loopback interface. Note that the output indicates that only a link-local
address was configured for <command>qfe0</command>, <literal>fe80::203:baff:fe13:14e1/10</literal>. This address indicates that as of yet no router on the node's
local link advertises a site prefix.</para><para>After IPv6 is enabled, you can use the <command>ifconfig</command> <option>a</option> command to display both IPv4 and IPv6 addresses for all interfaces
on a system.</para>
</example><taskrelated role="additional-action"><itemizedlist><listitem><para>To configure the IPv6 node as a router, go to <olink targetptr="ipv6-config-tasks-5" remap="internal">Configuring an IPv6 Router</olink>.</para>
</listitem><listitem><para>To maintain the IPv6 interface configuration across reboots,
see <olink targetptr="ipv6-config-tasks-28" remap="internal">How to Enable Persistent IPv6
Interfaces</olink>.</para>
</listitem><listitem><para>To disable address autoconfiguration on the node, see <olink targetptr="gbuzm" remap="internal">How to Turn Off IPv6 Address Autoconfiguration</olink>.</para>
</listitem><listitem><para>To tailor the node as a server, see the suggestions in <olink targetptr="ipv6-config-tasks-53" remap="internal">Administering IPv6-Enabled Interfaces on
Servers</olink>.</para>
</listitem>
</itemizedlist>
</taskrelated>
</task><task id="ipv6-config-tasks-28"><title>How to Enable Persistent IPv6 Interfaces</title><tasksummary><para>This procedure explains how to enable IPv6 interfaces with autoconfigured
IPv6 addresses that persist across subsequent reboots.</para><note><para>If the interface is on the same link as a router that currently
advertises an IPv6 prefix, the interface obtains that site prefix as part
of its autoconfigured addresses. For more information, refer to <olink targetptr="ipv6-config-tasks-21" remap="internal">How to Configure an IPv6-Enabled Router</olink>.</para>
</note>
</tasksummary><procedure><step><para>Log in to the IPv6 node as Primary Administrator or as superuser.</para><para>The Primary Administrator role includes the Primary Administrator profile.
To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Create IPv6 addresses for interfaces that were added after installation.</para><screen># <userinput>touch /etc/hostname6.</userinput><replaceable>interface</replaceable></screen>
</step><step id="gbuzi"><para>(Optional) Create an <filename>/etc/inet/ndpd.conf</filename> file
that defines parameters for interface variables on the node.</para><para>If
you need to create temporary addresses for the host's interface, refer to <olink targetptr="ipv6-config-tasks-102" remap="internal">Using Temporary Addresses for an Interface</olink>.
For details about <filename>/etc/inet/ndpd.conf</filename>, refer to the <olink targetdoc="refman4" targetptr="ndpd.conf-4" remap="external"><citerefentry><refentrytitle>ndpd.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man page and <olink targetptr="ipv6-ref-10" remap="internal">ndpd.conf Configuration File</olink>.</para>
</step><step><para>Reboot the node.</para><screen># <userinput>reboot -- -r</userinput></screen><para>The reboot process sends router discovery packets. If a router responds
with a site prefix, the node can configure any interface with a corresponding <filename>/etc/hostname6.</filename><replaceable>interface</replaceable> file with a
global IPv6 address. Otherwise, the IPv6-enabled interfaces are configured
solely with link-local addresses. Rebooting also restarts <command>in.ndpd</command> and
other network daemons in IPv6 mode.</para>
</step>
</procedure><example id="gbvgc"><title>Making an IPv6 Interface Persist Across Reboots</title><para>This example shows how to make the IPv6 configuration for the <command>qfe0</command> interface persist across reboots. In this example, a router on
the local link advertises the site prefix and subnet ID <literal>2001:db8:3c4d:15/64</literal>.</para><para>First, check the status of the system's interfaces.</para><screen># <userinput>ifconfig -a</userinput>
lo0: flags=1000849 &lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
qfe0: flags=1000863 &lt;UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,IPv4> mtu 1500 
           index 2
        inet 172.16.27.74 netmask ffffff00 broadcast 172.16.27.255
        ether 0:3:ba:13:14:e1 </screen><screen># <userinput>touch /etc/hostname6.qfe0</userinput>
# <userinput>reboot -- -r</userinput></screen><para>Verify that the IPv6 address you configured is still applied to the <literal>qfe0</literal> interface.</para><screen># <userinput>ifconfig -a6</userinput>
qfe0: flags=2000841 &lt;UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
       ether 0:3:ba:13:14:e1 
       inet6 fe80::203:baff:fe13:14e1/10 
 qfe0:1: flags=2180841 &lt;UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 
          index 2
        inet6 2001:db8:3c4d:15:203:baff:fe13:14e1/64</screen><para>The output of <command>ifconfig</command> <option>a6</option> shows
two entries for <literal>qfe0</literal>. The standard <literal>qfe0</literal> entry
includes the MAC address and the link-local address. A second entry, <literal>qfe0:1</literal>, indicates that a pseudo-interface was created for the additional
IPv6 address on the <literal>qfe0</literal> interface. The new, global IPv6
address, <literal>2001:db8:3c4d:15:203:baff:fe13:14e1/64</literal>, includes
the site prefix and subnet ID advertised by the local router.</para>
</example><taskrelated role="additional-action"><itemizedlist><listitem><para>To configure the new IPv6 node as a router, go to <olink targetptr="ipv6-config-tasks-5" remap="internal">Configuring an IPv6 Router</olink>.</para>
</listitem><listitem><para>To disable address autoconfiguration on the node, see <olink targetptr="gbuzm" remap="internal">How to Turn Off IPv6 Address Autoconfiguration</olink>.</para>
</listitem><listitem><para>To tailor the new node as a server, see the suggestions in <olink targetptr="ipv6-config-tasks-53" remap="internal">Administering IPv6-Enabled Interfaces on
Servers</olink>.</para>
</listitem>
</itemizedlist>
</taskrelated>
</task><task id="gbuzm"><title>How to Turn Off IPv6 Address Autoconfiguration</title><tasksummary><para>You normally should use address autoconfiguration to generate the IPv6
addresses for the interfaces of hosts and servers. However, sometimes you
might want to turn off address autoconfiguration, especially if you want to
manually configure a token, as explained in <olink targetptr="gbvsf" remap="internal">Configuring
an IPv6 Token</olink>.</para>
</tasksummary><procedure><step><para>Log in to the IPv6 node as Primary Administrator or as superuser.</para><para>The Primary Administrator role includes the Primary Administrator profile.
To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="gbvgl"><para>Create an <filename>/etc/inet/ndpd.conf</filename> file
for the node.</para><para>The <filename>/etc/inet/ndpd.conf</filename> file
defines interface variables for the particular node. This file should have
the following contents in order to turn off address autoconfiguration for
all of the server's interfaces:</para><screen>if-variable-name StatelessAddrConf false</screen><para>For details about <filename>/etc/inet/ndpd.conf</filename>, refer to
the <olink targetdoc="refman4" targetptr="ndpd.conf-4" remap="external"><citerefentry><refentrytitle>ndpd.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man
page and <olink targetptr="ipv6-ref-10" remap="internal">ndpd.conf Configuration File</olink>.</para>
</step><step><para>Update the IPv6 daemon with your changes.</para><screen># <userinput>pkill -HUP in.ndpd</userinput></screen>
</step>
</procedure>
</task>
</sect1><sect1 id="ipv6-config-tasks-5"><title>Configuring an IPv6 Router</title><para>The first step in configuring IPv6 on a network is configuring IPv6
on a router. Router configuration involves a number of discrete tasks, which
are described in this section. You might perform some or all of the tasks,
depending on your site requirements.</para><sect2 id="ipv6-config-tasks-2"><title>IPv6 Router Configuration (Task Map)</title><para>Perform the next tasks in the order that is shown in the table.</para><informaltable frame="all" pgwide="100"><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec0" colwidth="29.17*"/><colspec colname="colspec1" colwidth="29.17*"/><colspec colname="colspec2" colwidth="40.66*"/><thead><row rowsep="1"><entry><para>Task</para>
</entry><entry><para>Description </para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>1. Ensure that you have completed the required prerequisites before
you begin IPv6 configuration.</para>
</entry><entry><para>You must complete planning tasks and Solaris installation with IPv6
enabled interfaces before you configure an IPv6-enabled router.</para>
</entry><entry><para><olink targetptr="ipv6-planning-1" remap="internal">Chapter&nbsp;4, Planning an IPv6
Network (Tasks)</olink> and <olink targetptr="ipv6-config-tasks-64" remap="internal">Configuring
an IPv6 Interface</olink>.</para>
</entry>
</row><row><entry><para>2. Configure a router.</para>
</entry><entry><para>Define the site prefix for the network. </para>
</entry><entry><para><olink targetptr="ipv6-config-tasks-21" remap="internal">How to Configure an IPv6-Enabled Router</olink></para>
</entry>
</row><row><entry><para>3. Configure tunnel interfaces on the router.</para>
</entry><entry><para>Set up a manual tunnel or a 6to4 tunnel interface on the router. The
local IPv6 network needs tunnels to communicate with other, isolated IPv6
networks.</para>
</entry><entry><itemizedlist><listitem><para><olink targetptr="ipv6-config-tasks-24" remap="internal">How to Configure a
6to4 Tunnel</olink></para>
</listitem><listitem><para><olink targetptr="ipv6-config-tasks-20" remap="internal">How to Manually Configure
IPv6 Over IPv4 Tunnels</olink></para>
</listitem><listitem><para><olink targetptr="ipv6-config-tasks-37" remap="internal">How to Manually Configure
IPv6 Over IPv6 Tunnels</olink></para>
</listitem><listitem><para><olink targetptr="ipv6-config-tasks-40" remap="internal">How to Configure IPv4
Over IPv6 Tunnels</olink></para>
</listitem>
</itemizedlist>
</entry>
</row><row><entry><para>4. Configure the switches on the network.</para>
</entry><entry><para>If your network configuration includes switches, configure them for
IPv6 at this point in the configuration process.</para>
</entry><entry><para>Refer to switch manufacturer's documentation.</para>
</entry>
</row><row><entry><para>5. Configure any hubs on your network.</para>
</entry><entry><para>If your network configuration includes hubs, configure them for IPv6
at this point in the configuration process.</para>
</entry><entry><para>Refer to hub manufacturer's documentation.</para>
</entry>
</row><row><entry><para>6. Configure the network name service for IPv6. </para>
</entry><entry><para>Configure your primary name service (DNS, NIS, or LDAP) to recognize
IPv6 addresses after the router is configured for IPv6.</para>
</entry><entry><para><olink targetptr="ipv6-config-tasks-11" remap="internal">How to Add IPv6 Addresses to
DNS</olink> and <olink targetptr="ipv6-admintasks-37" remap="internal">How to Display IPv6 Information Through NIS</olink></para>
</entry>
</row><row><entry><para>7. (Optional) Modify the addresses for the IPv6-enabled interfaces on
hosts and servers.</para>
</entry><entry><para>After IPv6 router configuration, make further modifications on IPv6-enabled
hosts and servers.</para>
</entry><entry><para><olink targetptr="ipv6-config-tasks-6" remap="internal">Modifying an IPv6 Interface Configuration
for Hosts and Servers</olink></para>
</entry>
</row><row><entry><para>Configure applications to support IPv6</para>
</entry><entry><para>Different applications might require different actions in order to support
IPv6.</para>
</entry><entry colsep="0" rowsep="0"><para>Refer to applications' documentation</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><task id="ipv6-config-tasks-21"><title>How to Configure an IPv6-Enabled
Router</title><tasksummary><para>This procedure assumes that all interfaces of the router were configured
for IPv6 during Solaris installation.</para>
</tasksummary><procedure><step><para>On the system that will become the IPv6 router, assume the Primary
Administrator role or become superuser.</para><para>The Primary Administrator
role includes the Primary Administrator profile. To create the role and assign
the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="ipv6-config-tasks-step-57"><para>Review which interfaces on the
router were configured for IPv6 during installation.</para><screen># <userinput>ifconfig -a</userinput></screen><para>Check the output to ensure that the interfaces that you wanted to configure
for IPv6 are now plumbed with link-local addresses. The following sample command
output of <command>ifconfig -a</command> shows the IPv4 and IPv6 addresses
that were configured for the router's interfaces. </para><screen width="100">o0: flags=1000849 &lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
dmfe0: flags=1000843 &lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.16.26.232 netmask ffffff00 broadcast 172.16.26.255
        ether 0:3:ba:11:b1:15 
dmfe1: flags=1000843 &lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4 mtu 1500 index 3
        inet 172.16.26.220 netmask ffffff00 broadcast 172.16.26.255
        ether 0:3:ba:11:b1:16 
lo0: flags=2000849 &lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
dmfe0: flags=2000841 &lt;UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        ether 0:3:ba:11:b1:15 
        inet6 fe80::203:baff:fe11:b115/10 
dmfe1: flags=2000841 &lt;UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 3
        ether 0:3:ba:11:b1:16 
        inet6 fe80::203:baff:fe11:b116/10 

         </screen><para>The output also shows that the primary network interface <literal>dmfe0</literal> and
the additional interface <literal>dmfe1</literal> were configured during installation
with the IPv6 link&ndash;local addresses <literal>fe80::203:baff:fe11:b115/10</literal> and <literal>fe80::203:baff:fe11:b116/10</literal>.</para>
</step><step id="ipv6-config-tasks-step-61"><para>Configure IPv6 packet forwarding
on all interfaces of the router.</para><para>Use either of the following  to enable packet forwarding:</para><itemizedlist><listitem><para>Use the <command>routeadm</command> command, as follows:</para><screen># <userinput>routeadm -e ipv6-forwarding -u</userinput></screen>
</listitem><listitem><para>Use the following Service Management Facility (SMF) command, as follows:.</para><screen># svcadm enable ipv6-forwarding</screen>
</listitem>
</itemizedlist>
</step><step id="ipv6-config-tasks-step-62"><para>Start the routing daemon.</para><para>The <command>in.ripngd</command> daemon handles IPv6
routing. </para><para>Turn on IPv6 routing in either of the following ways:</para><itemizedlist><listitem><para>Use the <command>routeadm</command> command as follows:</para><screen># <userinput>routeadm -e ipv6-routing -u</userinput></screen>
</listitem><listitem><para>Use SMF to enable IPv6 routing:</para><screen>#<userinput> svcadm enable ripng:default</userinput> </screen>
</listitem>
</itemizedlist><para>For syntax information on the <command>routeadm</command> command,
see the <olink targetdoc="refman1m" targetptr="routeadm-1m" remap="external"><citerefentry><refentrytitle>routeadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page. </para>
</step><step><para>Create the <filename>/etc/inet/ndpd.conf</filename> file. </para><para>You specify the site prefix to be advertised by
the router and other configuration information in <filename>/etc/inet/ndpd.conf</filename>.
This file is read by the <command>in.ndpd</command> daemon, which implements
the IPv6 Neighbor Discovery protocol.</para><para>For a list of variables and allowable values, refer to <olink targetptr="ipv6-ref-10" remap="internal">ndpd.conf Configuration File</olink> and the <olink targetdoc="refman4" targetptr="ndpd.conf-4" remap="external"><citerefentry><refentrytitle>ndpd.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink>man page.</para>
</step><step><para>Type the following text into the <filename>/etc/inet/ndpd.conf</filename> file:</para><screen><userinput>ifdefault AdvSendAdvertisements true
prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on</userinput></screen><para>This text tells the <literal>in.ndpd</literal> daemon to send out router
advertisements over all interfaces of the router that are configured for IPv6.</para>
</step><step id="ipv6-config-tasks-step-65"><para>Add additional text to the <filename>/etc/inet/ndpd.conf</filename> file to configure the site prefix on the various interfaces of
the router.</para><para>The text should have the following format:</para><screen width="70">prefix <replaceable>global-routing-prefix</replaceable>:<replaceable>subnet ID</replaceable>/64 <replaceable>interface</replaceable></screen><para>The following sample <filename>/etc/inet/ndpd.conf</filename> file configures
the router to advertise the site prefix <literal>2001:0db8:3c4d::/48</literal> over
the interfaces <literal>dmfe0</literal> and <literal>dmfe1</literal>.</para><screen>ifdefault AdvSendAdvertisements true
prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on

<userinput>if dmfe0 AdvSendAdvertisements 1
prefix 2001:0db8:3c4d:15::0/64 dmfe0

if dmfe1 AdvSendAdvertisements 1
prefix 2001:0db8:3c4d:16::0/64 dmfe1</userinput></screen>
</step><step><para>Reboot the system.</para><para>The IPv6 router begins advertising
on the local link any site prefix that is in the <filename>ndpd.conf</filename> file. </para>
</step>
</procedure><example id="ipv6-config-tasks-ex-115"><title><command>ifconfig</command> Output Showing IPv6 Interfaces</title><para>The following example shows output from the <command>ifconfig</command> <option>a</option> command such as you would receive after you finish the <olink targetptr="ipv6-config-tasks-5" remap="internal">Configuring an IPv6 Router</olink> procedure.</para><screen width="100">lo0: flags=1000849 &lt;UP LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
dmfe0: flags=1000843 &lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.16.15.232 netmask ffffff00 broadcast 172.16.26.255
        ether 0:3:ba:11:b1:15 
dmfe1: flags=1000843 &lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4 mtu 1500 index 3
        inet 172.16.16.220 netmask ffffff00 broadcast 172.16.26.255
        ether 0:3:ba:11:b1:16 
lo0: flags=2000849 &lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
dmfe0: flags=2100841 &lt;UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 2
        ether 0:3:ba:11:b1:15 
        inet6 fe80::203:baff:fe11:b115/10 
dmfe0:1: flags=2180841 &lt;UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6> mtu 1500
          index 2
        inet6 2001:db8:3c4d:15:203:baff:fe11:b115/64
dmfe1: flags=2100841 &lt;UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 3
        ether 0:3:ba:11:b1:16 
        inet6 fe80::203:baff:fe11:b116/10 
dmfe1:1: flags=2180841 &lt;UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6> mtu 1500
           index 3
        inet6 2001:db8:3c4d:16:203:baff:fe11:b116/64</screen><para>In this example, each interface that was configured for IPv6 now has
two addresses. The entry with the name of the interface, such as <literal>dmfe0</literal>,
shows the link-local address for that interface. The entry with the form <replaceable>interface:n</replaceable>, such as <literal>dmfe0:1</literal>, shows a global
IPv6 address. This address includes the site prefix that you configured in
the <filename>/etc/ndpd.conf</filename> file, in addition to the interface
ID.</para>
</example><taskrelated role="see-also"><itemizedlist><listitem><para>To configure any tunnels from the routers that you have identified
in your IPv6 network topology, refer to <olink targetptr="ipv6-config-tasks-16" remap="internal">Configuring
Tunnels for IPv6 Support</olink>.</para>
</listitem><listitem><para>For information about configuring switches and hubs on your
network, refer to the manufacturer's documentation.</para>
</listitem><listitem><para>To configure IPv6 hosts, refer to <olink targetptr="ipv6-config-tasks-6" remap="internal">Modifying an IPv6 Interface Configuration
for Hosts and Servers</olink>.</para>
</listitem><listitem><para>To improve IPv6 support on servers, refer to <olink targetptr="ipv6-config-tasks-53" remap="internal">Administering IPv6-Enabled Interfaces on
Servers</olink>.</para>
</listitem><listitem><para>For detailed information about IPv6 commands, files, and daemons,
refer to <olink targetptr="ipv6-ref-83" remap="internal">Solaris 10 IPv6 Implementation</olink>.</para>
</listitem>
</itemizedlist>
</taskrelated>
</task>
</sect1><sect1 id="ipv6-config-tasks-6"><title>Modifying an IPv6 Interface Configuration
for Hosts and Servers</title><para>This section explains how to modify the configuration of IPv6-enabled
interfaces on nodes that are hosts or servers. In most instances, you should
use address autoconfiguration for IPv6-enabled interfaces, as explained in <olink targetptr="chapter1-49" remap="internal">Stateless Autoconfiguration Overview</olink>. However,
you can modify the IPv6 address of an interface, if necessary, as explained
in the tasks of this section. </para><sect2 id="gbuzn"><title>Modifying an IPv6 Interface Configuration (Task Map)</title><informaltable frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Turn off IPv6 address autoconfiguration.</para>
</entry><entry><para>Use this task if you need to manually configure the interface ID portion
of the IPv6 address.</para>
</entry><entry><para><olink targetptr="gbuzm" remap="internal">How to Turn Off IPv6 Address Autoconfiguration</olink></para>
</entry>
</row><row><entry><para>Create a temporary address for a host.</para>
</entry><entry><para>Hide a host's interface ID by configuring a randomly created temporary
address that is used as the lower 64 bits of the address.</para>
</entry><entry><para><olink targetptr="ipv6-config-tasks-106" remap="internal">How to Configure a Temporary
Address</olink></para>
</entry>
</row><row><entry><para>Configure a token for the interface ID of a system.</para>
</entry><entry><para>Create a 64-bit token to be used as the interface ID in an IPv6 address.</para>
</entry><entry><para><olink targetptr="ipv6-config-tasks-70" remap="internal">How to Configure a User-Specified
IPv6 Token</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><sect2 id="ipv6-config-tasks-102"><title>Using Temporary Addresses for an
Interface</title><para>An IPv6 <emphasis>temporary address</emphasis> includes a randomly generated
64-bit number as the interface ID, instead of an interface's MAC address.
You can use temporary addresses for any interfaces on an IPv6 node that you
want to keep anonymous. For example, you might want to use temporary addresses
for the interfaces of a host that needs to access public web servers. Temporary
addresses implement IPv6 privacy enhancements. These enhancements are described
in RFC 3041, available at <ulink url="http://www.ietf.org/rfc/rfc3041.txt?number=3041" type="text_url">&ldquo;Privacy
Extensions for Stateless Address Autoconfiguration in IPv6&rdquo;</ulink>.</para><para>You enable a temporary address in the <filename>/etc/inet/ndpd.conf</filename> file
for one or more interfaces, if needed. However, unlike standard, autoconfigured
IPv6 addresses, a temporary address consists of the 64-bit subnet prefix and
a randomly generated 64-bit number. This random number becomes the interface
ID segment of the IPv6 address. A link-local address is not generated with
the temporary address as the interface ID.</para><para>Be aware that temporary addresses have a default <emphasis>preferred
lifetime</emphasis> of one day. When you enable temporary address generation,
you may also configure the following variables in the <filename>/etc/inet/ndpd.conf</filename> file:</para><variablelist termlength="medium"><varlistentry><term><emphasis>valid lifetime</emphasis> TmpValidLifetime</term><listitem><para>Time span in which the temporary address exists, after which
the address is deleted from the host.</para>
</listitem>
</varlistentry><varlistentry><term><emphasis>preferred lifetime</emphasis> TmpPreferredLifetime</term><listitem><para>Elapsed time before the temporary address is deprecated. This
time span should be shorter than the valid lifetime.</para>
</listitem>
</varlistentry><varlistentry><term><emphasis>address regeneration</emphasis></term><listitem><para>Duration of time before the expiration of the preferred lifetime,
during which the host should generate a new temporary address.</para>
</listitem>
</varlistentry>
</variablelist><para>You express the duration of time for temporary addresses as follows:</para><variablelist termlength="narrow"><varlistentry><term><replaceable>n</replaceable></term><listitem><para><replaceable>n</replaceable> number of seconds, which is the
default</para>
</listitem>
</varlistentry><varlistentry><term><replaceable>n</replaceable> <literal>h</literal></term><listitem><para><replaceable>n</replaceable> number of hours (<literal>h</literal>)</para>
</listitem>
</varlistentry><varlistentry><term><replaceable>n</replaceable> <literal>d</literal></term><listitem><para><replaceable>n</replaceable> number of days (<literal>d</literal>)</para>
</listitem>
</varlistentry>
</variablelist><task id="ipv6-config-tasks-106"><title>How to Configure a Temporary Address</title><procedure><step><para>Log in to the IPv6 host as Primary Administrator or as superuser.</para><para>The Primary Administrator role includes the Primary Administrator profile.
To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="ipv6-config-tasks-step-104"><para>If necessary, enable IPv6 on the
host's interfaces</para><para>Refer to <olink targetptr="ipv6-config-tasks-119" remap="internal">How
to Enable an IPv6 Interface for the Current Session</olink>.</para>
</step><step id="ipv6-config-tasks-step-105"><para>Edit the <filename>/etc/inet/ndpd.conf</filename> file to turn on temporary address generation.</para><itemizedlist><listitem><para>To configure temporary addresses on all interfaces of a host,
add the following line to <filename>/etc/inet/ndpd.conf</filename>:</para><screen><userinput>ifdefault TmpAddrsEnabled true</userinput></screen>
</listitem><listitem><para>To configure a temporary address for a specific interface,
add the following line to <filename>/etc/inet/ndpd.conf</filename>:</para><screen><userinput>if</userinput> <replaceable>interface</replaceable> <userinput>TmpAddrsEnabled true</userinput> </screen>
</listitem>
</itemizedlist>
</step><step id="ipv6-config-tasks-step-107"><para>(Optional) Specify the valid lifetime
for the temporary address. </para><screen><userinput>ifdefault TmpValidLifetime</userinput> <replaceable>duration</replaceable></screen><para>This syntax specifies the valid lifetime for all interfaces on a host.
The value for <replaceable>duration</replaceable> should be in seconds, hours,
or days. The default valid lifetime is 7 days. You can also use <literal>TmpValidLifetime</literal> with the <literal>if</literal> <replaceable>interface</replaceable> keywords
to specify the valid lifetime for a temporary address of a particular interface.</para>
</step><step id="ipv6-config-tasks-step-108"><para>(Optional) Specify a preferred
lifetime for the temporary address, after which the address is deprecated.</para><screen><userinput>if</userinput> <replaceable>interface</replaceable> <userinput>TmpPreferredLifetime</userinput> <replaceable>duration</replaceable></screen><para>This syntax specifies the preferred lifetime for the temporary address
of a particular interface. The default preferred lifetime is one day. You
can also use <literal>TmpPreferredLifetime</literal> with the <literal>ifdefault</literal> keyword
to specify the preferred lifetime for the temporary addresses on all interfaces
of a host.</para><note><para>Default address selection gives a lower priority to IPv6 addresses
that have been deprecated. If an IPv6 temporary address is deprecated, default
address selection chooses a nondeprecated address as the source address of
a packet. A nondeprecated address could be the automatically generated IPv6
address, or possibly, the interface's IPv4 address. For more information about
default address selection, see <olink targetptr="ipv6-admintasks-43" remap="internal">Administering
Default Address Selection</olink>.</para>
</note>
</step><step id="ipv6-config-tasks-step-109"><para>(Optional) Specify the lead time
in advance of address deprecation, during which the host should generate a
new temporary address.</para><screen><userinput>ifdefault TmpRegenAdvance</userinput> <emphasis>duration</emphasis></screen><para>This syntax specifies the lead time in advance of address deprecation
for the temporary addresses of all interfaces on a host. The default is 5
seconds.</para>
</step><step id="ipv6-config-tasks-step-110"><para>Change the configuration of the <filename>in.ndpd</filename> daemon.</para><screen># <userinput>pkill -HUP in.ndpd</userinput>
# <userinput>/usr/lib/inet/in.ndpd</userinput></screen>
</step><step id="ipv6-config-tasks-step-123"><para>Verify that temporary addresses
have been created by running the <command>ifconfig</command> <option>a6</option> command,
as shown in <olink targetptr="ekqwi" remap="internal">Example 7&ndash;5</olink>.</para><para>The
output from <command>ifconfig</command> should have the word <literal>TEMPORARY</literal> in
the same line as the interface definition.</para>
</step>
</procedure><example id="ipv6-config-tasks-113"><title>Temporary Address Variables in the <filename>/etc/inet/ndpd.conf</filename> File</title><para>The following example shows a segment of an <filename>/etc/inet/ndpd.conf</filename> file
with temporary addresses enabled for the primary network interface.</para><screen>ifdefault TmpAddrsEnabled true

ifdefault TmpValidLifetime 14d

ifdefault TmpPreferredLifetime 7d

ifdefault TmpRegenAdvance 6s</screen>
</example><example id="ekqwi"><title><command>ifconfig</command><option>a6</option> Command Output with
Temporary Addresses Enabled</title><para>This example shows the output of the <command>ifconfig</command> command
after temporary addresses are created.</para><screen width="100"># <userinput>ifconfig -a6</userinput>
lo0: flags=2000849 &lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1 
     inet6 ::1/128
hme0: flags=2000841 &lt;UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2 
     ether 8:0:20:b9:4c:54
     inet6 fe80::a00:20ff:feb9:4c54/10
hme0:1: flags=2080841 &lt;UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2 
     inet6 2001:db8:3c4d:15:a00:20ff:feb9:4c54/64
hme0:2: flags=802080841&lt;UP,RUNNING,MULTICAST,ADDRCONF,IPv6,TEMPORARY> mtu 1500 index 2 
      inet6 2001:db8:3c4d:15:7c37:e7d1:fc9c:d2cb/64</screen><para>Note that the line following interface <literal>hme0:2</literal> includes
the word <literal>TEMPORARY</literal>. This designation indicates that the
address <literal>2001:db8:3c4d:15:7c37:e7d1:fc9c:d2cb/64</literal> has a temporary
interface ID.</para>
</example><taskrelated role="see-also"><itemizedlist><listitem><para>To set up name service support for IPv6 addresses, see <olink targetptr="ipv6-config-tasks-10" remap="internal">Configuring Name Service Support for IPv6</olink>.</para>
</listitem><listitem><para>To configure IPv6 addresses for a server, see <olink targetptr="ipv6-config-tasks-70" remap="internal">How to Configure a User-Specified IPv6 Token</olink>.</para>
</listitem><listitem><para>To monitor activities on IPv6 nodes, see <olink targetptr="ipv6-admintasks-1" remap="internal">Chapter&nbsp;8, Administering a TCP/IP Network
(Tasks)</olink>.</para>
</listitem>
</itemizedlist>
</taskrelated>
</task>
</sect2><sect2 id="gbvsf"><title>Configuring an IPv6 Token</title><para>The 64-bit interface ID of an IPv6 address is also referred to as a <emphasis>token</emphasis>, as introduced in <olink targetptr="ipv6-overview-10" remap="internal">IPv6
Addressing Overview</olink>. During address autoconfiguration, the token is
associated with the interface's MAC address. In most cases, nonrouting nodes,
that is IPv6 hosts and servers, should use their autoconfigured tokens.</para><para>However, using autoconfigured tokens can be a problem for servers whose
interfaces are routinely swapped as part of system maintenance. When the interface
card is changed, the MAC address is also changed. Servers that depend on having
stable IP addresses can experience problems as a result. Various parts of
the network infrastructure, such as DNS or NIS, might have stored specific
IPv6 addresses for the interfaces of the server.</para><para>To avoid address change problems, you can manually configure a token
to be used as the interface ID in an IPv6 address. To create the token, you
specify a hexadecimal number of 64 bits or less to occupy the interface ID
portion of the IPv6 address. During subsequent address autoconfiguration,
Neighbor Discovery does not create an interface ID that is based on the interface's
MAC address. Instead, the manually created token becomes the interface ID.
This token remains assigned to the interface, even when a card is replaced.</para><note><para>The difference between user-specified tokens and temporary addresses
is that temporary addresses are randomly generated, rather than explicitly
created by a user.</para>
</note><task id="ipv6-config-tasks-70"><title>How to Configure a User-Specified IPv6
Token</title><tasksummary><para>The next instructions are particularly useful for servers whose interfaces
are routinely replaced. They also are valid for configuring user-specified
tokens on any IPv6 node.</para>
</tasksummary><procedure><step><para>Assume the Primary Administrator role or become superuser on the
node.</para><para>The Primary Administrator role includes the Primary Administrator
profile. To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="ipv6-config-tasks-step-74"><para>Verify that the interface you want
to configure with a token is plumbed.</para><para>An interface must be plumbed
before you can configure a token for its IPv6 address.</para><screen># <userinput>ifconfig</userinput> <option>a6</option></screen><screen>qfe0: flags=2000841 &lt;UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        ether 0:3:ba:13:14:e1 
        inet6 fe80::203:baff:fe13:14e1/10</screen><para>This output shows that the network interface <literal>qfe0</literal> is
plumbed and has the link-local address <literal>fe80::203:baff:fe13:14e1/10</literal>.
This address was automatically configured during installation. </para>
</step><step><para>Create one or more 64-bit hexadecimal numbers to be used as tokens
for the node's interfaces. For examples of tokens, refer to <olink targetptr="ipv6-overview-15" remap="internal">Link-Local Unicast Address</olink>.</para>
</step><step id="ipv6-config-tasks-step-78"><para>Configure each interface with a
token.</para><para>Use the following form of the <command>ifconfig</command> command
for each interface to have a user-specified interface ID (token):</para><screen>ifconfig <replaceable>interface</replaceable> inet6  token <replaceable>address/64</replaceable></screen><para>For example, you would use the following command to configure interface <literal>qfe0</literal> with a token:</para><screen># <userinput>ifconfig qfe0 inet6 token ::1a:2b:3c:4d/64 </userinput></screen><para>Repeat this step for every interface that will have a user-specified
token.</para>
</step><step id="ipv6-config-tasks-step-73"><para>(Optional) Make the new IPv6 address
persist across reboots.</para><substeps><step><para>Edit or create an <filename>/etc/hostname6.</filename><replaceable>interface</replaceable> file for each interface you configured with a token.</para>
</step><step><para>Add the following text at the bottom of each <filename>/etc/hostname.6</filename><replaceable>interface</replaceable> file:</para><screen><userinput>token ::</userinput><replaceable>token-name</replaceable>/64</screen><para>For example, you might add the following text to the bottom of an<filename>/etc/hostname6.</filename><replaceable>interface</replaceable> file:</para><screen>token ::1a:2b:3c:4d/64</screen>
</step>
</substeps><para>After the system reboots, the token that you configured in an <filename>/etc/hostname6.</filename><replaceable>interface</replaceable> file is applied to the interface's
IPv6 address. This IPv6 address remains persistent across subsequent reboots.</para>
</step><step id="ipv6-config-tasks-step-76"><para>Update the IPv6 daemon with your
changes.</para><screen># <userinput>pkill -HUP -in.ndpd</userinput></screen>
</step>
</procedure><example id="gbvqu"><title>Configuring a User-Specified Token on an IPv6 Interface</title><para>In the following example, the interface <literal>bge0:1</literal> has
an autoconfigured IPv6 address. The subnet prefix <literal>2001:db8:3c4d:152:/64</literal> is
advertised by a router on the node's local link. The interface ID <literal>2c0:9fff:fe56:8255</literal> is generated from <literal>bge0:1</literal>'s MAC address.</para><screen># <userinput>ifconfig -a6</userinput>
lo0: flags=2002000849 &lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128
bge0: flags=2100801 &lt;UP,MULTICAST,IPv6> mtu 1500 index 5
        inet6 fe80::2c0:9fff:fe56:8255/10
        ether 0:c0:9f:56:82:55
bge0:1: flags=2180801 &lt;UP, MULTICAST,ADDRCONF,IPv6>mtu 1500 index 5
        inet6 2001:db8:3c4d:152:c0:9fff:fe56:8255/64
# <userinput>ifconfig bge0 inet6 token ::1a:2b:3c:4d/64</userinput>
# <userinput>vi /etc/hostname6.bge0</userinput>
token ::1a:2b:3c:4d/64
# <userinput>pkill -HUP -in.ndpd</userinput>
# <userinput>ifconfig -a6</userinput>
lo0: flags=2002000849 &lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128
bge0: flags=2100801 &lt;UP,MULTICAST,IPv6> mtu 1500 index 5
        inet6 fe80::2c0:9fff:fe56:8255/10
        ether 0:c0:9f:56:82:55
bge0:1: flags=2180801 &lt;UP, MULTICAST,ADDRCONF,IPv6>mtu 1500 index 5
        inet6 2001:db8:3c4d:152:1a:2b:3c:4d/64</screen><para>After the token is configured, the global address on the second status
line of <literal>bge0:1</literal> now has <literal>1a:2b:3c:4d</literal>configured
for its interface ID.</para>
</example><taskrelated role="see-also"><itemizedlist><listitem><para>To update the name services with the IPv6 addresses of the
server, see <olink targetptr="ipv6-config-tasks-10" remap="internal">Configuring Name Service
Support for IPv6</olink>.</para>
</listitem><listitem><para>To monitor server performance, see <olink targetptr="ipv6-admintasks-1" remap="internal">Chapter&nbsp;8, Administering a TCP/IP Network
(Tasks)</olink>.</para>
</listitem>
</itemizedlist>
</taskrelated>
</task>
</sect2><sect2 id="ipv6-config-tasks-53"><title>Administering IPv6-Enabled Interfaces
on Servers</title><para>When you plan for IPv6 on a server, you must make a few decisions
as you enable IPv6 on the server's interfaces. Your decisions affect the strategy
to use for configuring the interface IDs, also known as <emphasis>tokens</emphasis>,
of an interface's IPv6 address.</para><task id="gbwsg"><title>How to Enable IPv6 on a Server's Interfaces</title><taskprerequisites><para>The next procedure assumes the following:</para><itemizedlist><listitem><para>Solaris 10 OS is already installed on the server.</para>
</listitem><listitem><para>You enabled IPv6 on the server's interfaces either during
Solaris OS installation or later, using the procedures in <olink targetptr="ipv6-config-tasks-64" remap="internal">Configuring an IPv6 Interface</olink>.</para>
</listitem>
</itemizedlist><para>If applicable, upgrade the application software to support IPv6. Note
that many applications that run on the IPv4 protocol stack also successfully
run on IPv6. For more information, refer to <olink targetptr="ipv6-planning-18" remap="internal">How
to Prepare Network Services for IPv6 Support</olink>.</para>
</taskprerequisites><procedure><step><para>On the server, assume the Primary Administrator role or become
superuser.</para><para>The Primary Administrator role includes the Primary
Administrator profile. To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Ensure that an IPv6 subnet prefix is configured on a router on
the same link as the server. </para><para>For more information, refer to <olink targetptr="ipv6-config-tasks-5" remap="internal">Configuring an IPv6 Router</olink>.</para>
</step><step><para>Use the appropriate strategy for the interface ID for the server's
IPv6-enabled interfaces.</para><para>By default, IPv6 address autoconfiguration
uses the MAC address of an interface when creating the interface ID portion
of the IPv6 address. If the IPv6 address of the interface is well known, swapping
one interface for another interface can cause problems. The MAC address of
the new interface will be different. During address autoconfiguration, a new
interface ID is generated.</para><itemizedlist><listitem><para>For an IPv6-enabled interface that you do not plan to replace,
use the autoconfigured IPv6 address, as introduced in <olink targetptr="chapter1-42" remap="internal">IPv6 Address Autoconfiguration</olink>.</para>
</listitem><listitem><para>For IPv6-enabled interfaces that must appear anonymous outside
the local network, consider using a randomly generated token for the interface
ID. For instructions and an example, refer to <olink targetptr="ipv6-config-tasks-106" remap="internal">How to Configure a Temporary Address</olink>. </para>
</listitem><listitem><para>For IPv6-enabled interfaces that you plan to swap on a regular
basis, create tokens for the interface IDs. For instructions and an example,
refer to <olink targetptr="ipv6-config-tasks-70" remap="internal">How to Configure a User-Specified
IPv6 Token</olink>.</para>
</listitem>
</itemizedlist>
</step>
</procedure>
</task>
</sect2>
</sect1>&ipv6-config-tunnels;<sect1 id="ipv6-config-tasks-10"><title>Configuring Name Service Support for
IPv6</title><para>This section describes how to configure the DNS and NIS name services
to support IPv6 services.</para><note><para>LDAP supports IPv6 without requiring IPv6-specific configuration
tasks.</para>
</note><para>For full details for administering DNS, NIS, and LDAP, refer to the <olink targetdoc="sysadv5" remap="external"><citetitle remap="book">System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP)</citetitle></olink>.</para><task id="ipv6-config-tasks-11"><title>How to Add IPv6 Addresses to DNS</title><procedure><step><para>Log in to the primary or secondary DNS server as Primary Administrator
or as superuser.</para><para>The Primary Administrator role includes the Primary
Administrator profile. To create the role and assign the role to a user, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>Edit the appropriate DNS zone file by adding AAAA records for
each IPv6-enabled node:</para><screen><replaceable>host-name</replaceable>  IN   AAAA 	<replaceable>host-address</replaceable></screen>
</step><step><para>Edit the DNS reverse zone file and add PTR records:</para><screen><replaceable>host-address</replaceable> IN   PTR   <replaceable>hostname</replaceable></screen><para>For detailed information on DNS administration, refer to <olink targetdoc="sysadv5" remap="external"><citetitle remap="book">System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP)</citetitle></olink>.</para>
</step>
</procedure><example id="ipv6-config-tasks-30"><title>DNS Reverse Zone File</title><para>This example shows an IPv6 address in the reverse zone file.</para><screen>$ORIGIN	ip6.int.	
8.2.5.0.2.1.e.f.f.f.9.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0 \
	IN		PTR		vallejo.Eng.apex.COM.</screen>
</example>
</task><task id="ipv6-config-tasks-116"><title>How to Display IPv6 Name Service Information</title><tasksummary><para>You can use the <command>nslookup</command> command to display IPv6
name service information.</para>
</tasksummary><procedure><step><para>Under your user account, run the <command>nslookup</command> command.</para><screen>% <userinput>/usr/sbin/nslookup</userinput></screen><para>The default server name and address appear, followed by the <command>nslookup</command> command's angle bracket prompt.</para>
</step><step><para>View information about a particular host by typing the following
commands at the angle bracket prompt:</para><screen>><userinput>set q=any</userinput>
><replaceable>host-name</replaceable></screen>
</step><step><para>Type the following command to view only AAAA records:</para><screen>><userinput>set q=AAAA</userinput>
<replaceable>hostname</replaceable></screen>
</step><step><para>Quit the <command>nslookup</command> command by typing <userinput>exit</userinput>.</para>
</step>
</procedure><example id="eojay"><title>Using <command>nslookup</command> to Display IPv6 Information</title><para>This example shows the results of <command>nslookup</command> in an
IPv6 network environment.</para><screen>%  <userinput>/usr/sbin/nslookup</userinput>
Default Server:  dnsserve.local.com
Address:  10.10.50.85
> <userinput>set q=AAAA</userinput>
> <userinput>host85</userinput>
Server:  dnsserve.local.com
Address:  10.10.50.85

host85.local.com      IPv6 address = 2::9256:a00:fe12:528
> <userinput>exit</userinput></screen>
</example>
</task><task id="ipv6-admintasks-34"><title>How to Verify That DNS IPv6 PTR Records
Are Updated Correctly</title><tasksummary><para>In this procedure, you use the <command>nslookup</command> command to
display PTR records for DNS IPv6.</para>
</tasksummary><procedure><step><para>Under your user account, run the <command>nslookup</command> command.</para><screen>% <userinput>/usr/sbin/nslookup</userinput></screen><para>The default server name and address display, followed by the <command>nslookup</command> command's angle bracket prompt.</para>
</step><step><para>Type the following at the angle bracket prompt to see the PTR
records:</para><screen><userinput>>set q=PTR</userinput></screen>
</step><step><para>Quit the command by typing <userinput>exit</userinput>.</para>
</step>
</procedure><example id="eojar"><title>Using <command>nslookup</command> to Display PTR Records</title><para>The following example shows the PTR record display from the <command>nslookup</command> command.</para><screen width="100">%  <userinput>/usr/sbin/nslookup</userinput>
Default Server:  space1999.Eng.apex.COM
Address:  192.168.15.78
> <userinput>set q=PTR</userinput>
> 8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int

8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int name = 
vallejo.ipv6.Eng.apex.COM
ip6.int nameserver = space1999.Eng.apex.COM
> <userinput>exit</userinput></screen>
</example>
</task><task id="ipv6-admintasks-37"><title>How to Display IPv6 Information Through
NIS</title><tasksummary><para>In this procedure, you use the <command>ypmatch</command> command to
display IPv6 information through NIS:</para>
</tasksummary><procedure remap="single-step"><step><para>Under your user account, type the following to display IPv6 addresses
in NIS:</para><screen>% <userinput>ypmatch</userinput> <replaceable>hostname</replaceable> <userinput>hosts .</userinput><replaceable>byname</replaceable></screen><para>The information about the specified <replaceable>hostname</replaceable> displays.</para>
</step>
</procedure>
</task>
</sect1>
</chapter>