<chapter id="deploynetmult-56"><title>Administering IPMP (Tasks)</title><highlights><para>This chapter provides tasks for administering interface groups with
IP network multipathing (IPMP). The following major topics are discussed:</para><itemizedlist><listitem><para><olink targetptr="deploynetmult-58" remap="internal">Configuring IPMP (Task
Maps)</olink></para>
</listitem><listitem><para><olink targetptr="deploynetmult-57" remap="internal">Configuring IPMP Groups</olink></para>
</listitem><listitem><para><olink targetptr="enflg" remap="internal">Maintaining IPMP Groups</olink></para>
</listitem><listitem><para><olink targetptr="deploynetmult-92" remap="internal">Replacing a Failed Physical
Interface on Systems That Support Dynamic Reconfiguration</olink></para>
</listitem><listitem><para><olink targetptr="deploynetmult-116" remap="internal">Recovering a Physical
Interface That Was Not Present at System Boot</olink></para>
</listitem><listitem><para><olink targetptr="deploynetmult-47" remap="internal">Modifying IPMP Configurations</olink></para>
</listitem>
</itemizedlist><para>For an overview of IPMP concepts, refer to <olink targetptr="mpoverview" remap="internal">Chapter&nbsp;30, Introducing IPMP (Overview)</olink>.</para>
</highlights><sect1 id="deploynetmult-58"><title>Configuring IPMP (Task Maps)</title><para>This section contains links to the tasks that are described in this
chapter.</para><sect2 id="espyw"><title>Configuring and Administering IPMP Groups (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>Plan for an IPMP group.</para>
</entry><entry><para>Lists all ancillary information and required tasks before you can configure
an IPMP group.</para>
</entry><entry><para><olink targetptr="emyil" remap="internal">How to Plan for an IPMP Group</olink></para>
</entry>
</row><row><entry><para>Configure an IPMP interface group with multiple interfaces.</para>
</entry><entry><para>Configures multiple interfaces as members of an IPMP group.</para>
</entry><entry><para><olink targetptr="emqul" remap="internal">How to Configure an IPMP Group With Multiple
Interfaces</olink></para>
</entry>
</row><row><entry><para>Configure an IPMP group where one of the interfaces is a standby interface.</para>
</entry><entry><para>Configures one of the interfaces in a multiple interface IPMP group
as a standby interface.</para>
</entry><entry><para><olink targetptr="enfiu" remap="internal">How to Configure a Standby Interface for an
IPMP Group</olink></para>
</entry>
</row><row><entry><para>Configure an IPMP group that consists of a single interface.</para>
</entry><entry><para>Creates a single interface IPMP group. </para>
</entry><entry><para><olink targetptr="enfoy" remap="internal">How to Configure a Single Interface IPMP Group</olink></para>
</entry>
</row><row><entry><para>Display the IPMP group to which a physical interface belongs.</para>
</entry><entry><para>Explains how to obtain the name of an interface's IPMP group from the
output of the <command>ifconfig</command> command.</para>
</entry><entry><para><olink targetptr="deploynetmult-6" remap="internal">How to Display the IPMP Group Membership
of an Interface</olink></para>
</entry>
</row><row><entry><para>Add an interface to an IPMP group.</para>
</entry><entry><para>Configures a new interface as a member of an existing IPMP group.</para>
</entry><entry><para><olink targetptr="deploynetmult-103" remap="internal">How to Add an Interface to an IPMP
Group</olink></para>
</entry>
</row><row><entry><para>Remove an interface from an IPMP group.</para>
</entry><entry><para>Explains how to remove an interface from an IPMP group.</para>
</entry><entry><para><olink targetptr="deploynetmult-7" remap="internal">How to Remove an Interface From an
IPMP Group</olink></para>
</entry>
</row><row><entry><para>Move an interface from an existing IPMP group to a different group.</para>
</entry><entry><para>Moves interfaces among IPMP groups.</para>
</entry><entry><para><olink targetptr="deploynetmult-8" remap="internal">How to Move an Interface From One
IPMP Group to Another Group</olink></para>
</entry>
</row><row><entry><para>Change three default settings for the <command>in.mpathd</command> daemon.</para>
</entry><entry><para>Customizes failure detection time and other parameters of the <command>in.mpathd</command> daemon.</para>
</entry><entry><para><olink targetptr="deploynetmult-48" remap="internal">How to Configure the /etc/default/mpathd
File</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><sect2 id="espyy"><title>Administering IPMP on Interfaces That Support Dynamic
Reconfiguration (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>Remove an interface that has failed.</para>
</entry><entry><para>Removes a failed interface on a system.</para>
</entry><entry><para><olink targetptr="deploynetmult-93" remap="internal">How to Remove a Physical Interface
That Has Failed (DR-Detach)</olink></para>
</entry>
</row><row><entry><para>Replace an interface that has failed.</para>
</entry><entry><para>Replaces a failed interface.</para>
</entry><entry><para><olink targetptr="deploynetmult-97" remap="internal">How to Replace a Physical Interface
That Has Failed (DR-Attach)</olink></para>
</entry>
</row><row><entry><para>Recover an interface that was not configured at boot time.</para>
</entry><entry><para>Recovers a failed interface.</para>
</entry><entry><para><olink targetptr="deploynetmult-107" remap="internal">How to Recover a Physical Interface
That Was Not Present at System Boot</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1><sect1 id="deploynetmult-57"><title>Configuring IPMP Groups</title><para>This section provides procedures for configuring IPMP groups. It also
describes how to configure an interface as a standby.</para><sect2 id="eoxzz"><title>Planning for an IPMP Group</title><para>Before you configure interfaces on a system as part of an IPMP group,
you need to do some preconfiguration planning. </para><task id="emyil"><title>How to Plan for an IPMP Group</title><tasksummary><para>The following procedure includes the planning tasks and information
to be gathered prior to configuring the IPMP group. The tasks do not have
to be performed in sequence.</para>
</tasksummary><procedure><step><para>Decide which interfaces on the system are to be part of the IPMP
group.</para><para>An IPMP group usually consists of at least two physical
interfaces that are connected to the same IP link. However, you can configure
a single interface IPMP group, if required. For an introduction to IPMP groups,
refer to <olink targetptr="eobra" remap="internal">IPMP Interface Configurations</olink>. For
example, you can configure the same Ethernet switch or the same IP subnet
 under the same IPMP group. You can configure any number of interfaces into
the same IPMP group.</para><para>You cannot use the <literal>group</literal> parameter
of the <command>ifconfig</command> command with logical interfaces. For example,
you can use the <literal>group</literal> parameter with <literal>hme0</literal>,
but not with <literal>hme0:1</literal>.</para>
</step><step><para>Verify that each interface in the group has a unique MAC address.</para><para>For instructions, refer to <olink targetptr="mac11" remap="internal">How to Ensure That
the MAC Address of an Interface Is Unique, in Solaris 10 3/05 ONLY</olink> or <olink targetptr="eyprp" remap="internal">How to Ensure That the MAC Address of an Interface Is Unique</olink>.</para>
</step><step><para>Choose a name for the IPMP group.</para><para>Any non-null name
is appropriate for the group. You might want to use a name that identifies
the IP link to which the interfaces are attached.</para>
</step><step><para>Ensure that the same set of <literal>STREAMS</literal> modules
is pushed and configured on all interfaces in the IPMP group.</para><para>All
interfaces in the same group must have the same <literal>STREAMS</literal> modules
configured in the same order.</para><substeps><step><para>Check the order of STREAMS modules on all interfaces in the prospective
IPMP group.</para><para>You can print out a list of <literal>STREAMS</literal> modules
by using the <command>ifconfig <replaceable>interface</replaceable> modlist</command> command.
For example, here is the <command>ifconfig</command> output for an <literal>hme0</literal> interface:</para><screen># <userinput>ifconfig hme0 modlist</userinput>
	0 arp
	1 ip
	2 hme</screen><para>Interfaces normally exist as network drivers directly below the IP module,
as shown in the output from <command>ifconfig hme0 modlist</command>. They
should not require additional configuration.</para><para>However, certain
technologies, such as NCA or IP Filter, insert themselves as STREAMS modules
between the IP module and the network driver. Problems can result in the way
interfaces of the same IPMP group behave.</para><para>If a STREAMS module
is stateful, then unexpected behavior can occur on failover, even if you push
the same module onto all of the interfaces in a group.  However, you can use
stateless STREAMS modules, provided that you push them in the same order on
all interfaces in the IPMP group.</para>
</step><step><para>Push the modules of an interface in the standard order for the
IPMP group.</para><screen><userinput>ifconfig</userinput> <replaceable>interface</replaceable> <userinput>modinsert</userinput> <replaceable>module-name</replaceable></screen><screen>ifconfig hme0 modinsert ip</screen>
</step>
</substeps>
</step><step><para>Use the same IP addressing format on all interfaces of the IPMP
group.</para><para>If one interface is configured for IPv4, then all interfaces
of the group must be configured for IPv4. Suppose you have an IPMP group that
is composed of interfaces from several NICs. If you add IPv6 addressing to
the interfaces of one NIC, then all interfaces in the IPMP group must be configured
for IPv6 support.</para>
</step><step><para>Check that all interfaces in the IPMP group are connected to the
same IP link.</para>
</step><step><para>Verify that the IPMP group does not contain interfaces with different
network media types.</para><para>The interfaces that are grouped together
should be of the same interface type, as defined in <filename>/usr/include/net/if_types.h</filename>. For example, you cannot combine Ethernet and Token ring interfaces
in an IPMP group. As another example, you cannot combine a Token bus interface
with asynchronous transfer mode (ATM) interfaces in the same IPMP group.</para>
</step><step><para>For IPMP with ATM interfaces, configure the ATM interfaces 	
in LAN emulation mode. </para><para>IPMP is not supported for interfaces using
Classical IP over ATM.</para>
</step>
</procedure>
</task><task id="mac11" arch="sparc"><title>How to Ensure
That the MAC Address of an Interface Is Unique, in Solaris 10 3/05 ONLY</title><tasksummary><para>Before you configure an IPMP group, you must verify that every interface
in the prospective group has a unique MAC address. Almost all interfaces come
configured with a factory-set unique MAC address. However, every SPARC-based
system has a system-wide MAC address, which by default is used by all interfaces.
In an IPMP group, each interface must have a unique MAC address. Therefore,
you must ensure that the EEPROM parameter <literal>local-mac-address?</literal> is
set to <literal>true</literal> so that the interfaces use their factory-set
MAC addresses.  You can use the <command>eeprom</command> command to check
the current value of <literal>local-mac-address?</literal> and change it,
if necessary.</para>
</tasksummary><procedure><step><para>On the system with the interfaces to be configured, 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>Determine whether all interfaces on the system currently use the
system-wide MAC address.</para><screen># <userinput>eeprom local-mac-address?</userinput>
local-mac-address?=false</screen><para>In the example, the value of <literal>local-mac-address?=false</literal> indicates
that all interfaces do use the system-wide MAC address. The value of <literal>local-mac-address?=false</literal> must  be changed to <literal>true</literal> before the interfaces
can become members of an IPMP group. </para>
</step><step><para>If necessary, change the value of  <literal>local-mac-address?</literal> as
follows:</para><screen># <userinput>eeprom local-mac-address?=true</userinput></screen><para>When you reboot the system, the interfaces with factory-set MAC addresses
instead use these factory settings. Interfaces without factory-set MAC addresses
continue to use the system-wide MAC address.</para>
</step><step><para>Check the MAC addresses of the interfaces 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 
hme0: flags=1004843 &lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
     inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127
     ether 8:0:20:0:0:1
hme1: flags=1004843 &lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
     inet 10.0.0.114 netmask ffffff80 broadcast 10.0.0.127
     ether 8:0:20:0:0:1
ge0: flags=1004843 &lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
     inet 10.0.0.118 netmask ffffff80 broadcast 10.0.0.127
     ether 8:0:20:1:1:1</screen><para>Look for cases where multiple interfaces have the same MAC address.
In the previous example, <literal>hme0</literal> and <literal>hme1</literal> both
have the same MAC address.</para><note><para>Continue to the next step only if more than one network interface
still has the same MAC address.</para>
</note>
</step><step><para>If necessary, manually configure the remaining interfaces so that
all interfaces have unique MAC addresses.</para><para>Place a unique MAC address
in the <filename>/etc/hostname.</filename><replaceable>interface</replaceable> for
the particular interface. </para><note><para>To prevent any risk of manually configured MAC addresses conflicting
with other MAC addresses on your network, you must always configure <emphasis>locally
administered</emphasis> MAC addresses, as defined by the IEEE 802.3 standard.</para>
</note><para>In the previous example, you must configure either <literal>hme0</literal> or <literal>hme1</literal> with a  locally-administered MAC address.  For example, to
reconfigure <literal>hme1</literal>  with the locally-administered MAC address <literal>06:05:04:03:02</literal>, you would add the following line to <filename>/etc/hostname.hme1</filename>: </para><screen><userinput>ether 06:05:04:03:02</userinput> </screen><para>You also can use the <literal>ifconfig ether</literal> command to configure
an interface's MAC address for the current session. However, any changes made
directly with <command>ifconfig</command> are not preserved across reboots.
Refer to the <olink targetdoc="refman1m" targetptr="ifconfig-1m" remap="external"><citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for details.</para>
</step><step><para>Reboot the system.</para>
</step>
</procedure>
</task>
</sect2><sect2 id="emybr"><title>Configuring IPMP Groups</title><para>This section contains configuration tasks for a typical IPMP group with
at least two physical interfaces.</para><itemizedlist><listitem><para>For an introduction to multiple interface IPMP groups, refer
to <olink targetptr="emjid" remap="internal">IPMP Group</olink>. </para>
</listitem><listitem><para>For planning tasks, refer to <olink targetptr="eoxzz" remap="internal">Planning
for an IPMP Group</olink>.</para>
</listitem><listitem><para>To configure an IPMP group with only one physical interface,
refer to <olink targetptr="mpoverview-10" remap="internal">Configuring IPMP Groups With a Single
Physical Interface</olink>. </para>
</listitem>
</itemizedlist><task id="emqul"><title>How to Configure an IPMP Group With Multiple Interfaces</title><taskprerequisites><para>You need to have already configured the IPv4 addresses, and, if appropriate,
the IPv6 addresses of all interfaces in the prospective IPMP group.</para>
</taskprerequisites><procedure><step><para>On the system with the interfaces to be configured, 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="emqup"><para>Place each physical interface into an IPMP group.</para><screen># <userinput>ifconfig</userinput> <replaceable>interface</replaceable> <userinput>group</userinput> <replaceable>group-name</replaceable></screen><para>For example, to place <literal>hme0</literal> and <literal>hme1</literal> under
group <literal>testgroup1</literal>, you would type the following commands:</para><screen># <userinput>ifconfig hme0 group testgroup1</userinput>
# <userinput>ifconfig hme1 group testgroup1</userinput></screen><para>Avoid using spaces in group names. The <command>ifconfig</command> status
display does not show spaces. Consequently, do not create two similar group
names where the only difference is that one name also contains a space. If
one of the group names contains a space, these group names look the same in
the status display.</para><para>In a dual-stack environment, placing the IPv4
instance of an interface under a particular group automatically places the
IPv6 instance under the same group.</para>
</step><step id="emquq"><para>(Optional) Configure an IPv4 test address on one or more physical
interfaces.</para><para>You need to configure a test address only if you want
to use probe-based failure detection on a particular interface. Test addresses
are configured as logical interfaces of the physical interface that you specify
to the <command>ifconfig</command> command.</para><para>If one interface in
the group is to become the standby interface, do not configure a test address
for that interface at this time. You configure a test address for the standby
interface as part of the task <olink targetptr="enfiu" remap="internal">How to Configure a
Standby Interface for an IPMP Group</olink>.</para><para>Use the following
syntax of the <command>ifconfig</command> command for configuring a test address:</para><screen width="100"># ifconfig <replaceable>interface</replaceable> addif <replaceable>ip-address</replaceable> &lt;parameters> -failover deprecated up</screen><para>For example, you would create the following test address for the primary
network interface <literal>hme0</literal>:</para><screen width="100"># <userinput>ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up</userinput></screen><itemizedlist><para>This command sets the following parameters for the primary network interface <literal>hme0</literal>:</para><listitem><para>Address set to <literal>192.168.85.21</literal></para>
</listitem><listitem><para>Netmask and broadcast address set to the default value</para>
</listitem><listitem><para><option>failover</option> and <literal>deprecated</literal> options
set</para><note><para>You must mark an IPv4 test address as <literal>deprecated</literal> to
prevent applications from using the test address.</para>
</note>
</listitem>
</itemizedlist>
</step><step><para>Check the IPv4 configuration for a specific interface.</para><para>You
can always view the current status of an interface by typing <command>ifconfig</command> <replaceable>interface</replaceable>. For more information on viewing an interface's status,
refer to <olink targetptr="ipconfig-46" remap="internal">How to Get Information About a Specific
Interface</olink>.</para><para>You can get information about test address
configuration for a physical interface by specifying the logical interface
that is assigned to the test address.</para><screen width="100"># <userinput>ifconfig hme0:1</userinput>
	hme0:1: flags=9000843&lt;UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
    mtu 1500 index 2 
    inet 192.168.85.21 netmask ffffff00 broadcast 192.168.85.255</screen>
</step><step><para>(Optional) If applicable, configure an IPv6 test address.</para><screen># ifconfig <replaceable>interface</replaceable> inet6 -failover</screen><para>Physical interfaces with IPv6 addresses are placed into the same IPMP
group as the interfaces' IPv4 addresses. This happens when you configure the
physical interface with IPv4 addresses into an IPMP group.  If you first place
physical interfaces with IPv6 addresses into an IPMP group, physical interfaces
with IPv4 addresses are also implicitly placed in the same IPMP group.</para><para>For example, to configure <literal>hme0</literal> with an IPv6 test
address, you would type the following:</para><screen># <userinput>ifconfig hme0 inet6 -failover</userinput></screen><para>You do not need to mark an IPv6 test address as deprecated to prevent
applications from using the test address. </para>
</step><step><para>Check the IPv6 configuration.</para><screen width="100"># <userinput>ifconfig hme0 inet6</userinput>
	hme0: flags=a000841&lt;UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
        	inet6 fe80::a00:20ff:feb9:17fa/10 
        	groupname test</screen><para>The IPv6 test address is the link-local address of the interface.</para>
</step><step id="emqus"><para>(Optional) Preserve the IPMP group configuration across reboots.</para><itemizedlist><listitem><para>For IPv4, add the following line to the <filename>/etc/hostname.</filename><replaceable>interface</replaceable> file:</para><screen><replaceable>interface-address</replaceable> &lt;parameters> group <replaceable>group-name</replaceable> up \
	addif <replaceable>logical-interface</replaceable> -failover deprecated &lt;parameters> up</screen><para>In this instance, the test IPv4 address is configured only on the next
reboot. If you want the configuration to be invoked in the current session,
do steps 1, 2, and, optionally 3.</para>
</listitem><listitem><para>For IPv6, add the following line to the <filename>/etc/hostname6.</filename><replaceable>interface</replaceable> file:</para><screen>-failover group <replaceable>group-name</replaceable> up</screen><para>This test IPv6 address is configured only on the next reboot. If you
want the configuration to be invoked in the current session, do steps 1, 2,
and, optionally, 5.</para>
</listitem>
</itemizedlist>
</step><step><para>(Optional) Add more interfaces to the IPMP group by repeating
steps 1 through 6. </para><para>You can add new interfaces to an existing
group on a live system. However, changes are lost across reboots.</para>
</step>
</procedure><example id="emquk"><title>Configuring an IPMP Group With Two Interfaces</title><para>Suppose you want to do the following:</para><itemizedlist><listitem><para>Have the netmask and broadcast address set to the default
value.</para>
</listitem><listitem><para>Configure the interface with a test address <literal>192.168.85.21</literal>.</para>
</listitem>
</itemizedlist><para>You would type the following command:</para><screen width="100"># ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up</screen><para>You must mark an IPv4 test address as <literal>deprecated</literal> to
prevent applications from using the test address. See <olink targetptr="emqul" remap="internal">How
to Configure an IPMP Group With Multiple Interfaces</olink>. </para><para>To turn on the failover attribute of the address, you would use the <option role="nodash">failover</option> option without the dash </para><para>All test IP addresses in an IPMP group must use the same network prefix.
The test IP addresses must belong to a single IP subnet.</para>
</example><example id="emylj"><title>Preserving an IPv4 IPMP Group Configuration Across Reboots</title><para>Suppose you want to create an IPMP group called <literal>testgroup1</literal> with
the following configuration:</para><itemizedlist><listitem><para>Physical interface <literal>hme0</literal> with address <literal>192.168.85.19</literal></para>
</listitem><listitem><para>A logical interface address of <literal>192.168.85.21</literal></para>
</listitem><listitem><para><literal>deprecated</literal> and <option>failover</option> options
set</para>
</listitem><listitem><para>Netmask and broadcast address set to the default value</para>
</listitem>
</itemizedlist><para>You would add the following line to the <filename>/etc/hostname.hme0</filename> file:</para><screen>192.168.85.19 netmask + broadcast + group testgroup1 up \
	addif 192.168.85.21 deprecated -failover netmask + broadcast + up</screen><para>Similarly, to place the second interface <literal>hme1</literal> under
the same group <literal>testgroup1</literal> and to configure a test address,
you would add the following line:</para><screen>192.168.85.20 netmask + broadcast + group testgroup1 up \
	addif 192.168.85.22 deprecated -failover netmask + broadcast + up</screen>
</example><example id="emylm"><title>Preserving an IPv6 IPMP Group Configuration Across Reboots</title><para>To create a test group for interface <literal>hme0</literal> with an
IPv6 address, you would add the following line to the <filename>/etc/hostname6.hme0</filename> file:</para><screen>-failover group testgroup1 up</screen><para>Similarly, to place the second interface <literal>hme1</literal> in
group <literal>testgroup1</literal> and to configure a test address, you would
add the following line to the <filename>/etc/hostname6.hme1</filename> file:</para><screen>-failover group testgroup1 up</screen>
</example><taskrelated role="troubleshooting"><para>During IPMP group configuration, <command>in.mpathd</command> outputs
a number of messages to the system console or to the <filename>syslog</filename> file.
These messages are informational in nature and indicate that the IPMP configuration
functions correctly.</para><itemizedlist><listitem><para>This message indicates that interface <literal>hme0</literal> was
added to IPMP group <literal>testgroup1</literal>. However, <literal>hme0</literal> does
not have a test address configured. To enable probe-based failure detection,
you need to assign a test address to the interface.</para><screen width="100">May 24 14:09:57 host1 in.mpathd[101180]: No test address configured on interface hme0;
disabling probe-based failure detection on it.
testgroup1</screen>
</listitem><listitem><para>This message appears for all interfaces with only IPv4 addresses
that are added to an IPMP group. </para><screen width="100">May 24 14:10:42 host4 in.mpathd[101180]: NIC qfe0 of group testgroup1 is not 
plumbed for IPv6 and may affect failover capability</screen>
</listitem><listitem><para>This message should appear when you have configured a test
address for an interface.</para><screen width="100">Created new logical interface hme0:1
May 24 14:16:53 host1 in.mpathd[101180]: Test address now configured on interface hme0;
 enabling probe-based failure detection on it</screen>
</listitem>
</itemizedlist>
</taskrelated><taskrelated role="see-also"><para>If you want the IPMP group to have an active-standby configuration,
go on to <olink targetptr="enfiu" remap="internal">How to Configure a Standby Interface for
an IPMP Group</olink>. </para>
</taskrelated>
</task><sect3 id="etmkd"><title>Configuring Target Systems</title><para>Probe-based failure detection involves the use of target systems, as
explained in <olink targetptr="emqra" remap="internal">Probe-Based Failure Detection</olink>.
For some IPMP groups, the default targets used by <command>in.mpathd</command> is
sufficient. However, for some IPMP groups, you might want to configure specific
targets for probe-based failure detection. You accomplish probe-based failure
detection by setting up host routes in the routing table as probe targets.
Any host routes that are configured in the routing table are listed before
the default router. Therefore, IPMP uses the explicitly defined host routes
for target selection. You can use either of two methods for directly specifying
targets: manually setting host routes or creating a shell script that can
become a startup script. </para><para>Consider the following criteria when evaluating which hosts on your
network might make good targets. </para><itemizedlist><listitem><para>Make sure that the prospective targets are available and running.
Make a list of their IP addresses.</para>
</listitem><listitem><para>Ensure that the target interfaces are on the same network
as the IPMP group that you are configuring.</para>
</listitem><listitem><para>The netmask and broadcast address of the target systems must
be the same as the addresses in the IPMP group.</para>
</listitem><listitem><para>The target host must be able to answer ICMP requests from
the interface that is using probe-based failure detection. </para>
</listitem>
</itemizedlist><task id="etmem"><title>How to Manually Specify Target Systems for Probe-Based
Failure Detection</title><procedure><step><para>Log in with your user account to the system where you are configuring
probe-based failure detection.</para>
</step><step><para>Add a route to a particular host to be used as a target in probe-based
failure detection.</para><screen>$ <userinput>route add -host</userinput> <replaceable>destination-IP</replaceable> <replaceable>gateway-IP</replaceable> <userinput>-static</userinput></screen><para>Replace the values of <replaceable>destination-IP</replaceable> and <replaceable>gateway-IP</replaceable> with the IPv4 address of the host to be used as a
target. For example, you would type the following to specify the target system <literal>192.168.85.137</literal>, which is on the same subnet as the interfaces in
IPMP group <literal>testgroup1</literal>.</para><screen>$ <userinput>route add -host 192.168.85.137 192.168.85.137 -static</userinput> </screen>
</step><step><para>Add routes to additional hosts on the network to be used as target
systems.</para>
</step>
</procedure>
</task><task id="etmis"><title>How to Specify Target Systems in a Shell Script</title><procedure><step><para>On the system where you have configured an IPMP group, 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>Create a shell script that sets up static routes to  your proposed
targets. </para><para>For example, you could create a shell script called
 <literal>ipmp.targets</literal> with the following contents:</para><screen width="100">TARGETS="192.168.85.117 192.168.85.127 192.168.85.137"

case "$1" in
        'start')
            /usr/bin/echo "Adding static routes for use as IPMP targets"
		for target in $TARGETS; do
	  /usr/sbin/route add -host $target $target
		done
                  ;;
        'stop')
              /usr/bin/echo "Removing static routes for use as IPMP targets"
		 for target in $TARGETS; do
		/usr/sbin/route delete -host $target $target
		 done
                  ;;
  esac  </screen>
</step><step><para>Copy the shell script to the startup script directory. </para><screen> # <userinput>cp ipmp.targets /etc/init.d</userinput>  </screen>
</step><step><para>Change the permissions on the new startup script.  </para><screen># <userinput>chmod 744 /etc/init.d/ipmp.targets</userinput></screen>
</step><step><para>Change ownership of the new startup script.  </para><screen># <userinput>chown root:sys /etc/init.d/ipmp.targets</userinput></screen>
</step><step><para>Create a link for the startup script in the <filename>/etc/init.d</filename> directory.</para><screen># ln <userinput>/etc/init.d/ipmp.targets /etc/rc2.d/S70ipmp.targets</userinput></screen><para>The S70 prefix in the file name <filename>S70ipmp.targets</filename> orders
the new script properly with respect to other startup scripts.</para>
</step>
</procedure>
</task>
</sect3><sect3 id="ettlz"><title>Configuring Standby Interfaces</title><para>Use this procedure if you want the IPMP group to have an active-standby
configuration. For more information on this type of configuration, refer to <olink targetptr="eobra" remap="internal">IPMP Interface Configurations</olink>. </para><task id="enfiu"><title>How to Configure a Standby Interface for an IPMP Group</title><taskprerequisites><itemizedlist><listitem><para>You must have configured all interfaces as members of the
IPMP group.</para>
</listitem><listitem><para>You should not have configured a test address on the interface
to become the standby interface.</para>
</listitem>
</itemizedlist><para>For information on configuring an IPMP group and assigning test addresses,
refer to <olink targetptr="emqul" remap="internal">How to Configure an IPMP Group With Multiple
Interfaces</olink>.</para>
</taskprerequisites><procedure><step><para>On the system with the standby interfaces to be configured, 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="enfja"><para>Configure an interface as a standby and assign the
test address.</para><screen width="100"># ifconfig <replaceable>interface</replaceable> plumb <replaceable>ip-address</replaceable> &lt;other-parameters> deprecated -failover standby up</screen><para>A standby interface can have only one IP address, the test address.
You must set the <option>failover</option> option before you set the <literal>standby
up</literal> option. For <literal>&lt;other-parameters></literal>, use the
parameters that are required by your configuration, as described in the <olink targetdoc="refman1m" targetptr="ifconfig-1m" remap="external"><citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page. </para><itemizedlist><listitem><para>For example, to create an IPv4 test address, you would type
the following command:</para><screen width="100"># <userinput>ifconfig hme1 plumb 192.168.85.22 netmask + broadcast + deprecated -failover standby up</userinput></screen><variablelist><varlistentry><term><literal>hme1</literal></term><listitem><para>Defines <literal>hme1</literal> as the physical interface
to be configured as the standby interface.</para>
</listitem>
</varlistentry><varlistentry><term><literal>192.168.85.22</literal></term><listitem><para>Assigns this test address to the standby interface.</para>
</listitem>
</varlistentry><varlistentry><term><literal>deprecated</literal></term><listitem><para>Indicates that the test address is not used for outbound packets. </para>
</listitem>
</varlistentry><varlistentry><term><option>failover</option></term><listitem><para>Indicates that the test address does not fail over if the
interface fails.</para>
</listitem>
</varlistentry><varlistentry><term><option role="nodash">standby</option></term><listitem><para>Marks the interface as a standby interface.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem><listitem><para>For example, to create an IPv6 test address, you would type
the following command:</para><screen># <userinput>ifconfig hme1 plumb -failover standby up</userinput></screen>
</listitem>
</itemizedlist>
</step><step><para>Check the results of the standby interface configuration.</para><screen width="100"># <userinput>ifconfig hme1</userinput>
hme1: flags=69040843&lt;UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,
      STANDBY,INACTIVE mtu 1500 
         index 4 inet 192.168.85.22 netmask ffffff00 broadcast 19.16.85.255
         groupname test</screen><para>The <literal>INACTIVE</literal> flag indicates that this interface is
not used for any outbound packets. When a failover occurs on this standby
interface, the <literal>INACTIVE</literal> flag is cleared.</para><note><para>You can always view the current status of an interface by typing
the <command>ifconfig</command> <replaceable>interface</replaceable> command.
For more information on viewing interface status, refer to <olink targetptr="ipconfig-46" remap="internal">How to Get Information About a Specific Interface</olink>.</para>
</note>
</step><step id="enfjb"><para>(Optional) Preserve the IPv4 standby interface across reboots.</para><para>Assign the standby interface to the same IPMP group, and configure a
test address for the standby interface.</para><para>For example, to configure <literal>hme1</literal> as the standby interface, you would add the following line
to the <filename>/etc/hostname.hme1</filename> file:</para><screen width="100">192.168.85.22 netmask + broadcast + deprecated group test -failover standby up </screen>
</step><step><para>(Optional) Preserve the IPv6 standby interface across reboots.</para><para>Assign the standby interface to the same IPMP group, and configure a
test address for the standby interface.</para><para>For example, to configure <literal>hme1</literal> as the standby interface, add the following line to the <filename>/etc/hostname6.hme1</filename> file:</para><screen>-failover group test standby up</screen>
</step>
</procedure><example id="enfjf"><title>Configuring a Standby Interface for an IPMP Group</title><para>Suppose you want to  create a test address with the following configuration:</para><itemizedlist><listitem><para>Physical interface <literal>hme2</literal> as a standby interface</para>
</listitem><listitem><para>Test address of <literal>192.168.85.22</literal></para>
</listitem><listitem><para><literal>deprecated</literal> and <option>failover</option> options
set</para>
</listitem><listitem><para>Netmask and broadcast address set to the default value</para>
</listitem>
</itemizedlist><para>You would type the following:</para><screen width="100"># ifconfig hme2 plumb 192.168.85.22 netmask + broadcast + deprecated -failover standby up</screen><para>The interface is marked as a standby interface only after the address
is marked as a <literal>NOFAILOVER</literal> address.</para><para>You would remove the standby status of an interface by typing the following:</para><screen># ifconfig <replaceable>interface</replaceable> -standby</screen>
</example>
</task>
</sect3>
</sect2><sect2 id="mpoverview-10"><title>Configuring IPMP Groups With a Single Physical
Interface</title><para>When you have only one interface in an IPMP group, failover is not possible.
However, you can enable failure detection on that interface by assigning the
interface to an IPMP group. You do not have to configure a dedicated test
IP address to establish failure detection for a single interface IPMP group.
You can use a single IP address for sending data and detecting failure. </para><task id="enfoy"><title>How to Configure a Single Interface IPMP Group</title><procedure><step><para>On the system with the prospective single interface IPMP group,
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>For IPv4, create the single interface IPMP group.</para><para>You
can use either of the following methods:</para><itemizedlist><listitem><para>Use the following syntax to assign the single interface to
an IPMP group.</para><screen># ifconfig <replaceable>interface</replaceable> -failover group <replaceable>group-name</replaceable></screen><para>The following example assigns the interface <literal>hme0</literal> into
the IPMP group <literal>v4test</literal>:</para><screen># <userinput>ifconfig hme0  -failover group v4test</userinput></screen><para>Unlike the multiple physical interface configuration, you would not
mark a single physical interface as <literal>deprecated</literal>. </para><para>This
example includes the use of the <option>failover</option> option of the <command>ifconfig</command> command to create an <literal>IFF_NOFAILOVER</literal> flag
for the interface. Consider using <option>failover</option> if you might later
add more interfaces to the group. The <command>in.mpathd</command> daemon
sends probe packets by using that address. Later, when you add more interfaces,
the configuration should work properly.</para>
</listitem><listitem><para>Alternatively, you can use the following syntax to add a single
physical interface to an IPMP group:</para><screen># ifconfig <replaceable>interface</replaceable> group <replaceable>group-name</replaceable></screen><para>When you use this configuration, <command>in.mpathd</command> chooses
a data address to send probe packets. </para>
</listitem>
</itemizedlist>
</step><step><para>For IPv6, create the single interface IPMP group.</para><para>Use
either of the following two methods:</para><itemizedlist><listitem><para>Use the following syntax to assign the single interface to
an IPMP group:</para><screen># ifconfig <replaceable>interface</replaceable> inet6 -failover group <replaceable>group-name</replaceable></screen><para>For example, you would type the following to add the single interface <literal>hme0</literal> into the IPMP group <literal>v6test</literal>:</para><screen># <userinput>ifconfig hme0  inet6 -failover group v6test</userinput></screen>
</listitem><listitem><para>Use the following syntax if you do not want to set the <literal>NOFAILOVER</literal> flag:</para><screen># ifconfig <replaceable>interface</replaceable> inet6 group <replaceable>group-name</replaceable></screen><para>When the <command>in.mpathd</command> daemon detects failures, the interface
is marked and logged appropriately on the console.</para>
</listitem>
</itemizedlist><para>In a single physical interface configuration, you cannot verify whether
the target system that is being probed has failed or whether the interface
has failed. The target system can be probed through only one physical interface.
If only one default router is on the subnet, turn off IPMP if a single physical
interface is in the group. If a separate IPv4 and IPv6 default router exists,
or multiple default routers exist, more than one target system needs to be
probed. Hence, you can safely turn on IPMP.</para>
</step>
</procedure>
</task>
</sect2>
</sect1><sect1 id="enflg"><title>Maintaining IPMP Groups</title><para>This section contains tasks for maintaining existing IPMP groups and
the interfaces that compose those groups. The tasks presume that you have
already configured an IPMP group, as explained in <olink targetptr="deploynetmult-57" remap="internal">Configuring IPMP Groups</olink>.</para><task id="deploynetmult-6"><title>How to Display the IPMP Group Membership
of an Interface</title><procedure><step id="enfpj"><para>On the system with the IPMP group configuration, become
superuser or assume an equivalent role.</para><para>Roles contain authorizations
and privileged commands. For more information about roles, see <olink targetdoc="sysadv6" targetptr="rbactask-15" remap="external"><citetitle remap="section">Configuring RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink>.</para>
</step><step id="deploynetmult-step-20"><para>Display information about the interface, including the group to
which the interface belongs.</para><screen># <userinput>ifconfig</userinput> <replaceable>interface</replaceable></screen>
</step><step><para>If applicable, display IPv6 information for the interface.</para><screen># <userinput>ifconfig</userinput> <replaceable>interface</replaceable> <userinput>inet6</userinput></screen>
</step>
</procedure><example id="eojcd"><title>Displaying Physical Interface Groups</title><para>To display the group name for <literal>hme0</literal>, you would type
the following:</para><screen># <userinput>ifconfig hme0</userinput>
	hme0: flags=9000843&lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 
      index 2 inet 192.168.85.19 netmask ffffff00 broadcast 192.168.85.255
      groupname testgroup1</screen><para>To display the group name for only the IPv6 information, you would type
the following:</para><screen># <userinput>ifconfig hme0 inet6</userinput>
	hme0: flags=a000841&lt;UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        	inet6 fe80::a00:20ff:feb9:19fa/10 
        	groupname testgroup1</screen>
</example>
</task><task id="deploynetmult-103"><title>How to Add an Interface to an IPMP Group</title><procedure><step><para>On the system with the IPMP group configuration, 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="deploynetmult-step-106"><para>Add the interface to the IPMP group.</para><screen># ifconfig <replaceable>interface</replaceable> group <replaceable>group-name</replaceable></screen><para>The interface specified in <replaceable>interface</replaceable> becomes
a member of IPMP group <replaceable>group-name</replaceable>.</para>
</step>
</procedure><example id="esqao"><title>Adding an Interface to an IPMP Group</title><para>To add <literal>hme0</literal> to the IPMP group <literal>testgroup2</literal>,
you would type the following command:</para><screen width="100"># <userinput>ifconfig hme0 group testgroup2</userinput>
  hme0: flags=9000843&lt;UP ,BROADCAST,RUNNING,MULTICAST,IPv4,NOFAILOVER> mtu 1500 index 2
  inet 192.168.85.19 netmask ff000000 broadcast 10.255.255.255
  groupname testgroup2
  ether 8:0:20:c1:8b:c3 </screen>
</example>
</task><task id="deploynetmult-7"><title>How to Remove an Interface From an IPMP
Group</title><tasksummary><para>When you execute the <command>ifconfig</command> command's <literal>group</literal> parameter
with a null string, the interface is removed from its current IPMP group.
Be careful when removing interfaces from a group. If some other interface
in the IPMP group has failed, a failover could have happened earlier. For
example, if <literal>hme0</literal> failed previously, all addresses are failed
over to <literal>hme1</literal>, if <literal>hme1</literal> is part of the
same group. The removal of <literal>hme1</literal> from the group causes the <command>in.mpathd</command> daemon to return all the failover addresses to some other
interface in the group. If no other interfaces are functioning in the group,
failover might not restore all the network accesses.</para><para>Similarly, when an interface in a group needs to be unplumbed, you should
first remove the interface from the group. Then, ensure that the interface
has all the original IP addresses configured. The <command>in.mpathd</command> daemon
tries to restore the original configuration of an interface that is removed
from the group. You need to ensure that the configuration is restored before
unplumbing the interface. Refer to <olink targetptr="eoqse" remap="internal">What Happens During
Interface Failover</olink> to see how interfaces look before and after a failover.</para>
</tasksummary><procedure><step><para>On the system with the IPMP group configuration, 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="deploynetmult-step-23"><para>Remove the interface from the IPMP
group.</para><screen># ifconfig <replaceable>interface</replaceable> group ""</screen><para>The quotation marks indicate a null string.</para>
</step>
</procedure><example id="eojcj"><title>Removing an Interface From a Group</title><para>To remove <literal>hme0</literal> from the IPMP group <literal>test</literal>,
you would type the following command:</para><screen># <userinput>ifconfig hme0 group ""</userinput>
	# <userinput>ifconfig hme0</userinput>
	hme0: flags=9000843&lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
    index 2 inet 192.168.85.19 netmask ffffff00 broadcast 192.168.85.255
	# ifconfig hme0 inet6
	hme0: flags=a000841&lt;UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
    inet6 fe80::a00:20ff:feb9:19fa/10 </screen>
</example>
</task><task id="deploynetmult-8"><title>How to Move an Interface From One IPMP Group
to Another Group</title><tasksummary><para>You can place an interface in a new IPMP group when the interface belongs
to an existing IPMP group.  You do not need to remove the interface from the
current IPMP group. When you place the interface in a new group, the interface
is automatically removed from any existing IPMP group. </para>
</tasksummary><procedure><step><para>On the system with the IPMP group configuration, 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="deploynetmult-step-26"><para>Move the interface to a new IPMP group.</para><screen># ifconfig <replaceable>interface</replaceable> group <replaceable>group-name</replaceable></screen><para>Placing the interface in a new group automatically removes the interface
 from any existing group.</para>
</step>
</procedure><example id="esqak"><title>Moving an Interface to a Different IPMP Group</title><para>To change the IPMP group of interface <literal>hme0</literal>,
you would type the following: </para><screen># <userinput>ifconfig hme0 group cs-link</userinput></screen><para>This command removes the <literal>hme0</literal> interface from IPMP
group <literal>test</literal> and then puts the interface in the group <command>cs-link</command>.</para>
</example>
</task>
</sect1><sect1 id="deploynetmult-92"><title>Replacing a Failed Physical Interface
on Systems That Support Dynamic Reconfiguration</title><para>This section contains procedures that relate to administering systems
that support dynamic reconfiguration (DR).</para><note><para>The tasks pertain only to IP layers that are configured by using
the <command>ifconfig</command> command. Layers before or after the IP layer,
such as ATM or other services, require specific manual steps if the layers
are not automated. The steps in the next procedures are used to unconfigure
interfaces during predetachment and configure interface after postattachment. </para>
</note><task id="deploynetmult-93"><title>How to Remove a Physical Interface That
Has Failed (DR-Detach)</title><tasksummary><para>This procedure shows how to remove a physical interface on a system
that supports DR. The procedure assumes that the following conditions already
exist:</para><itemizedlist><listitem><para>Physical interfaces <literal>hme0</literal> and <literal>hme1</literal> are
the example interfaces.</para>
</listitem><listitem><para>Both interfaces are in the same IPMP group. </para>
</listitem><listitem><para><literal>hme0</literal> has failed. </para>
</listitem><listitem><para>Logical interface <literal>hme0:1</literal> has the test address.</para>
</listitem><listitem><para>You are replacing the failed interface with the same physical
interface name, for example, <literal>hme0</literal> with <literal>hme0</literal>.</para>
</listitem>
</itemizedlist><note><para>You can skip Step 2 if the test address is plumbed by using the <filename>/etc/hostname.hme0</filename> file.</para>
</note>
</tasksummary><procedure><step><para>On the system with the IPMP group configuration, 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="deploynetmult-step-95"><para>Display the test address configuration.</para><screen># <userinput>ifconfig hme0:</userinput>1

hme0:1:
flags=9040842&lt;BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
mtu 1500 index 3
inet 192.168.233.250 netmask ffffff00 broadcast 192.168.233.255</screen><para>You need this information to replumb the test address when replacing
the physical interface.</para>
</step><step id="deploynetmult-step-96"><para>Remove the physical interface.</para><para>Refer to the following sources for a complete description of how to
remove the physical interface:</para><itemizedlist><listitem><para><olink targetdoc="refman1m" targetptr="cfgadm-1m" remap="external"><citerefentry><refentrytitle>cfgadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page</para>
</listitem><listitem><para><citetitle>Sun Enterprise 6x00, 5x00, 4x00, and 3x00 Systems
Dynamic Reconfiguration User's Guide</citetitle></para>
</listitem><listitem><para><citetitle>Sun Enterprise 10000 DR Configuration Guide</citetitle></para>
</listitem>
</itemizedlist>
</step>
</procedure>
</task><task id="deploynetmult-97"><title>How to Replace a Physical Interface That
Has Failed (DR-Attach)</title><tasksummary><para>This procedure shows how to replace a physical interface on a system
that supports DR. </para>
</tasksummary><procedure><step><para>On the system with the IPMP group configuration, 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="deploynetmult-step-99"><para>Replace the physical interface.</para><para>Refer to the instructions in the following sources:</para><itemizedlist><listitem><para><olink targetdoc="refman1m" targetptr="cfgadm-1m" remap="external"><citerefentry><refentrytitle>cfgadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page</para>
</listitem><listitem><para><citetitle>Sun Enterprise 6x00, 5x00, 4x00, and 3x00 Systems
Dynamic Reconfiguration User's Guide</citetitle></para>
</listitem><listitem><para><citetitle>Sun Enterprise 10000 DR Configuration Guide</citetitle>,
or <citetitle>Sun Fire 880 Dynamic Reconfiguration User's Guide</citetitle> </para>
</listitem>
</itemizedlist>
</step><step id="deploynetmult-step-100"><para>Plumb and bring up the test address.</para><screen># <userinput>ifconfig hme0</userinput> <replaceable>test-address-configuration</replaceable></screen><para>Use the same test address configuration that was configured in the <filename>/etc/hostname.hme0</filename> file. The test configuration is the same configuration
that is displayed in Step 2 in the procedure <olink targetptr="deploynetmult-93" remap="internal">How to Remove a Physical Interface That Has Failed (DR-Detach)</olink>.</para><para>This configuration triggers the <command>in.mpathd</command> daemon
to resume probing. As a result of this probing, <command>in.mpathd</command> detects
the repair. Consequently, <command>in.mpathd</command> causes the original
IP address to fail back from <literal>hme1</literal>.</para><para>See <olink targetptr="emqvv" remap="internal">Test Addresses</olink> for more details about test addresses.</para><note><para>The failback of IP addresses during the recovery of a failed physical
interface takes up to three minutes. This time might vary, depending on network
traffic. The time also depends on the stability of the incoming interface
to fail back the failed-over interfaces by the <command>in.mpathd</command> daemon.</para>
</note>
</step>
</procedure>
</task>
</sect1><sect1 id="deploynetmult-116"><title>Recovering a Physical Interface That
Was Not Present at System Boot</title><note><para>The following procedure pertains only to IP layers that are configured
by using the <command>ifconfig</command> command. Layers before or after the
IP layer, such as ATM or other services, require specific manual steps if
the layers are not automated. The specific steps in the next procedure are
used to unconfigure interfaces during predetachment and to configure interfaces
after postattachment. </para>
</note><para>Recovery after dynamic reconfiguration is automatic for an interface
that is part of the I/O board on a Sun Fire&trade; platform. If the NIC is
a Sun Crypto Accelerator I - cPCI board, the recovery is also  automatic.
Consequently, the following steps are not required for an interface that is
coming back as part of a DR operation. For more information on the Sun Fire
x800 and Sun Fire 15000 systems, see the <olink targetdoc="refman1m" targetptr="cfgadm-sbd-1m" remap="external"><citerefentry><refentrytitle>cfgadm_sbd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page. The physical interface
fails back to the configuration that is specified in the <filename>/etc/hostname.</filename><replaceable>interface</replaceable> file. See <olink targetptr="deploynetmult-57" remap="internal">Configuring IPMP Groups</olink> for details on
how to configure interfaces to preserve the configuration across reboots.</para><note><para>On Sun Fire legacy (Exx00) systems, DR detachments are still subject
to manual procedures. However, DR attachments are automated.</para>
</note><task id="deploynetmult-107"><title>How to Recover a Physical Interface That
Was Not Present at System Boot</title><tasksummary><para>You must complete the following procedure before you recover a physical
interface that was not present at system boot. The  example in this procedure
has the following configuration:</para><itemizedlist><listitem><para>Physical interfaces <literal>hme0</literal> and <literal>hme1</literal> are
the interfaces. </para>
</listitem><listitem><para>Both interfaces are in the same IPMP group. </para>
</listitem><listitem><para><literal>hme0</literal> was not installed at system boot.</para>
</listitem>
</itemizedlist><note><para>The failback of IP addresses during the recovery of a failed physical
interface takes up to three minutes. This time might vary, depending on network
traffic. The time also depends on the stability of the incoming interface
to fail back the failed-over interfaces by the <command>in.mpathd</command> daemon.</para>
</note>
</tasksummary><procedure><step><para>On the system with the IPMP group configuration, 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="deploynetmult-step-109"><para>Retrieve the failed network information
from the failure error message of the console log.</para><para>See the <olink targetdoc="refman3a" targetptr="syslog-3c" remap="external"><citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3C</manvolnum></citerefentry></olink>man page. The error message
might be similar to the following:</para><screen>moving addresses from failed IPv4 interfaces:
hme1 (moved to hme0)</screen><para>This message indicates that the IPv4 addresses on the failed interface <literal>hme1</literal> have failed over to the <literal>hme0</literal> interface.</para><para>Alternatively, you might receive the following similar message:</para><screen>moving addresses from failed IPv4 interfaces:
hme1 (couldn't move, no alternative interface)</screen><para>This message indicates that no active interface could be found in the
same group as failed interface <literal>hme1</literal>. Therefore, the IPv4
addresses on <literal>hme1</literal> could not fail over.</para>
</step><step id="deploynetmult-step-110"><para>Attach the physical interface to the
system. </para><para>Refer to the following for instructions on how to replace
the physical interface:</para><itemizedlist><listitem><para><olink targetdoc="refman1m" targetptr="cfgadm-1m" remap="external"><citerefentry><refentrytitle>cfgadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page</para>
</listitem><listitem><para><citetitle>Sun Enterprise 10000 DR Configuration Guide</citetitle></para>
</listitem><listitem><para><citetitle>Sun Enterprise 6x00, 5x00, 4x00, and 3x00 Systems
Dynamic Reconfiguration User's Guide</citetitle></para>
</listitem>
</itemizedlist>
</step><step id="deploynetmult-step-111"><para>Refer to the message content from
Step 2. If the addresses could not be moved, go to Step 6. If the addresses
were moved, continue to Step 5.</para>
</step><step id="deploynetmult-step-112"><para>Unplumb the logical interfaces that
were configured as part of the failover process.</para><substeps><step id="deploynetmult-step-113"><para>Review the contents of the <filename>/etc/hostname.<replaceable>moved-from-interface</replaceable></filename> file to determine what logical
interfaces were configured as part of the failover process.</para>
</step><step id="deploynetmult-step-114"><para>Unplumb each failover IP address.</para><screen># ifconfig <replaceable>moved-to-interface</replaceable> removeif <replaceable>moved-ip-address</replaceable></screen><note><para>Failover addresses are marked with the <literal>failover</literal> parameter,
or are not marked with the <literal>-failover</literal> parameter. You do
not need to unplumb IP addresses that are marked <literal>-failover</literal>.</para>
</note><para>For example, assume that the contents of the <filename>/etc/hostname.hme0</filename> file
contains the following lines:</para><screen>inet 10.0.0.4 -failover up group one
addif 10.0.0.5 failover up
addif 10.0.0.6 failover up</screen><para>To unplumb each failover IP address, you would type the following commands:</para><screen># ifconfig hme0 removeif 10.0.0.5
# ifconfig hme0 removeif 10.0.0.6</screen>
</step>
</substeps>
</step><step id="deploynetmult-step-115"><para>Reconfigure the IPv4 information for
the replaced physical interface by typing the following command for each interface
that was removed:</para><screen># ifconfig <replaceable>removed-from-NIC</replaceable> &lt;parameters></screen><para>For example, you would type the following commands:</para><screen># ifconfig hme1 inet plumb
# ifconfig hme1 inet 10.0.0.4 -failover up group one
# ifconfig hme1 addif 10.0.0.5 failover up
# ifconfig hme1 addif 10.0.0.6 failover up</screen>
</step>
</procedure>
</task>
</sect1><sect1 id="gbdbr"><title>Modifying the <command>/etc/default/mpathd</command> IPMP Configuration File</title><para>Use the IPMP configuration file <filename>/etc/default/mpathd</filename> to
configure the following system-wide parameters for IPMP groups.</para><itemizedlist><listitem><para><literal>FAILURE_DETECTION_TIME</literal></para>
</listitem><listitem><para><literal>FAILBACK</literal></para>
</listitem><listitem><para><literal>TRACK_INTERFACES_ONLY_WITH_GROUPS</literal></para>
</listitem>
</itemizedlist><para>These parameters apply to all IPMP groups that are created on an individual
system.</para><task id="gbdbf"><title>How to Configure the <filename>/etc/default/mpathd</filename> File</title><procedure><step><para>On the system with the IPMP group configuration, 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="deploynetmult-step-51"><para>Edit the <filename>/etc/default/mpathd</filename> file.</para>
</step><step><para>(Optional) Type the new value for the <parameter>FAILURE_DETECTION_TIME</parameter> parameter.</para><screen>FAILURE_DETECTION_TIME=<replaceable>n</replaceable></screen><para>where <replaceable>n</replaceable> is the amount of time in seconds
for ICMP probes to detect whether an interface failure has occurred. The default
is 10 seconds.</para>
</step><step><para>(Optional) Type the new value for the <parameter>TRACK_INTERFACES_ONLY_WITH_GROUPS</parameter> parameter.</para><screen>TRACK_INTERFACES_ONLY_WITH_GROUPS=[yes | no]</screen><itemizedlist><listitem><para><parameter>yes</parameter>- The <parameter>yes</parameter> value
is the default behavior of IPMP. This parameter causes IPMP to ignore network
interfaces that are not configured into an IPMP group.</para>
</listitem><listitem><para><parameter>no</parameter> - The <parameter>no</parameter> value
sets failure and repair detection for <emphasis>all</emphasis> network interfaces,
regardless of whether they are configured into an IPMP group. However, when
a failure or repair is detected on an interface that is not configured 	into
an IPMP group, no failover or failback occurs. 	 Therefore, the<parameter>no</parameter> value
is only useful for reporting failures and does not directly improve network
availability.</para>
</listitem>
</itemizedlist>
</step><step><para>(Optional) Type the new value for the <parameter>FAILBACK</parameter> parameter.</para><screen>FAILBACK=[yes | no]</screen><itemizedlist><listitem><para><parameter>yes</parameter>- The <parameter>yes</parameter> value
is the default failback behavior of IPMP. When the repair of a failed interface
is detected, network access fails back to the repaired interface, as described
in <olink targetptr="emqqq" remap="internal">IPMP Failure Detection and Recovery Features</olink>.</para>
</listitem><listitem><para><parameter>no</parameter> - The <parameter>no</parameter> indicates
that data traffic does not move back to a repaired interface. When a failed
interfaces is detected as repaired, the <parameter>INACTIVE</parameter> flag
of <command>ifconfig</command> is set. This flag indicates that the interface
is currently not to be used for data traffic. The interface can still be used
for probe traffic.</para><para>For example, suppose an IPMP group consists
of two interfaces, <interface>ce0</interface> and <interface>ce1</interface>.
Then assume that the value <parameter>FAILBACK=no</parameter> is set in the <filename>mpathd</filename> file. If <interface>ce0</interface> fails, its traffic fails
over to <interface>ce1</interface>, as is the expected behavior of IPMP. However,
when IPMP detects that <interface>ce0</interface> is repaired, traffic does
not fail back from <interface>ce1</interface>, due to the <parameter>FAILBACK=no</parameter> parameter
in the <filename>mpathd</filename> file. <interface>ce0</interface> retains
its <literal>INACTIVE</literal> status and is not used for traffic unless
the <interface>ce1</interface> interface fails. </para>
</listitem>
</itemizedlist>
</step><step id="gbdby"><para>Restart the <command>in.mpathd</command> daemon.</para><screen># <userinput>pkill -HUP in.mpathd</userinput></screen>
</step>
</procedure>
</task>
</sect1><sect1 id="deploynetmult-47"><title>Modifying IPMP Configurations</title><para>The IPMP configuration file <filename>/etc/default/mpathd</filename> contains
three parameters that you can modify for your configuration requirements:</para><itemizedlist><listitem><para><literal>FAILURE_DETECTION_TIME</literal></para>
</listitem><listitem><para><literal>TRACK_INTERFACES_ONLY_WITH_GROUPS</literal></para>
</listitem><listitem><para><literal>FAILBACK</literal></para>
</listitem>
</itemizedlist><task id="deploynetmult-48"><title>How to Configure the <filename>/etc/default/mpathd</filename> File</title><procedure><step><para>On the system with the IPMP group configuration, 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="gbdbu"><para>Edit the <filename>/etc/default/mpathd</filename> file. </para><para>Change the default value of one or more of the three parameters.</para><substeps><step id="gbdao"><para>Type the new value for the <literal>FAILURE_DETECTION_TIME</literal> parameter.</para><screen>FAILURE_DETECTION_TIME=<replaceable>n</replaceable></screen><para>where <replaceable>n</replaceable> is the amount of time in seconds
for ICMP probes to detect whether an interface failure has occurred. The default
is 10 seconds.</para>
</step><step id="gbdcs"><para>Type the new value for the <literal>FAILBACK</literal> parameter.</para><screen>FAILBACK=[yes | no]</screen>
</step><step id="gbdcx"><para>Type the new value for the <literal>TRACK_INTERFACES_ONLY_WITH_GROUPS</literal> parameter.</para><screen>TRACK_INTERFACES_ONLY_WITH_GROUPS=[yes | no]</screen>
</step>
</substeps>
</step><step id="deploynetmult-step-52"><para>Restart the <command>in.mpathd</command> daemon.</para><screen># <userinput>pkill -HUP in.mpathd</userinput></screen>
</step>
</procedure>
</task>
</sect1>
</chapter>