System Administration Guide: IP Services

Configuring IPMP Groups

This section contains configuration tasks for a typical IPMP group with at least two physical interfaces.

ProcedureHow to Configure an IPMP Group With Multiple Interfaces

The following steps for configuring an IPMP group also apply when configuring VLANs into an IPMP group.

Before You Begin

You need to have already configured the IPv4 addresses, and, if appropriate, the IPv6 addresses of all interfaces in the prospective IPMP group.


Caution – Caution –

You must configure only one IPMP group for each subnet or L2 broadcast domain. For more information, see Basic Requirements of IPMP


  1. On the system with the interfaces to be configured, assume the Primary Administrator role, or become superuser.

    The Primary Administrator role includes the Primary Administrator profile. To create the role and assign the role to a user, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.

  2. Place each physical interface into an IPMP group.


    # ifconfig interface group group-name
    

    For example, to place hme0 and hme1 under group testgroup1, you would type the following commands:


    # ifconfig hme0 group testgroup1
    # ifconfig hme1 group testgroup1
    

    Avoid using spaces in group names. The ifconfig 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.

    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.

  3. (Optional) Configure an IPv4 test address on one or more physical interfaces.

    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 ifconfig command.

    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 How to Configure a Standby Interface for an IPMP Group.

    Use the following syntax of the ifconfig command for configuring a test address:


    # ifconfig interface addif ip-address parameters -failover deprecated up
    

    For example, you would create the following test address for the primary network interface hme0:


    # ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up
    

    This command sets the following parameters for the primary network interface hme0:

    • Address set to 192.168.85.21

    • Netmask and broadcast address set to the default value

    • -failover and deprecated options set


      Note –

      You must mark an IPv4 test address as deprecated to prevent applications from using the test address.


  4. Check the IPv4 configuration for a specific interface.

    You can always view the current status of an interface by typing ifconfig interface. For more information on viewing an interface's status, refer to How to Get Information About a Specific Interface.

    You can get information about test address configuration for a physical interface by specifying the logical interface that is assigned to the test address.


    # ifconfig hme0:1
    	hme0:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
        mtu 1500 index 2 
        inet 192.168.85.21 netmask ffffff00 broadcast 192.168.85.255
  5. (Optional) If applicable, configure an IPv6 test address.


    # ifconfig interface inet6 -failover

    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.

    For example, to configure hme0 with an IPv6 test address, you would type the following:


    # ifconfig hme0 inet6 -failover
    

    You do not need to mark an IPv6 test address as deprecated to prevent applications from using the test address.

  6. Check the IPv6 configuration.


    # ifconfig hme0 inet6
    	hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
            	inet6 fe80::a00:20ff:feb9:17fa/10 
            	groupname test

    The IPv6 test address is the link-local address of the interface.

  7. (Optional) Preserve the IPMP group configuration across reboots.

    • For IPv4, add the following line to the /etc/hostname.interface file:


      interface-address <parameters> group group-name up \
      	addif logical-interface -failover deprecated <parameters> up

      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.

    • For IPv6, add the following line to the /etc/hostname6.interface file:


      -failover group group-name up

      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.

  8. (Optional) Add more interfaces to the IPMP group by repeating steps 1 through 6.

    You can add new interfaces to an existing group on a live system. However, changes are lost across reboots.


Example 31–1 Configuring an IPMP Group With Two Interfaces

Suppose you want to do the following:

You would type the following command:


# ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up

You must mark an IPv4 test address as deprecated to prevent applications from using the test address. See How to Configure an IPMP Group With Multiple Interfaces.

To turn on the failover attribute of the address, you would use the failover option without the dash

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.



Example 31–2 Preserving an IPv4 IPMP Group Configuration Across Reboots

Suppose you want to create an IPMP group called testgroup1 with the following configuration:

You would add the following line to the /etc/hostname.hme0 file:


192.168.85.19 netmask + broadcast + group testgroup1 up \
	addif 192.168.85.21 deprecated -failover netmask + broadcast + up

Similarly, to place the second interface hme1 under the same group testgroup1 and to configure a test address, you would add the following line:


192.168.85.20 netmask + broadcast + group testgroup1 up \
	addif 192.168.85.22 deprecated -failover netmask + broadcast + up


Example 31–3 Preserving an IPv6 IPMP Group Configuration Across Reboots

To create a test group for interface hme0 with an IPv6 address, you would add the following line to the /etc/hostname6.hme0 file:


-failover group testgroup1 up

Similarly, to place the second interface hme1 in group testgroup1 and to configure a test address, you would add the following line to the /etc/hostname6.hme1 file:


-failover group testgroup1 up

Troubleshooting

During IPMP group configuration, in.mpathd outputs a number of messages to the system console or to the syslog file. These messages are informational in nature and indicate that the IPMP configuration functions correctly.

See Also

If you want the IPMP group to have an active-standby configuration, go on to How to Configure a Standby Interface for an IPMP Group.

Configuring Target Systems

Probe-based failure detection involves the use of target systems, as explained in Probe-Based Failure Detection. For some IPMP groups, the default targets used by in.mpathd 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.

Consider the following criteria when evaluating which hosts on your network might make good targets.

ProcedureHow to Manually Specify Target Systems for Probe-Based Failure Detection

  1. Log in with your user account to the system where you are configuring probe-based failure detection.

  2. Add a route to a particular host to be used as a target in probe-based failure detection.


    $ route add -host destination-IP gateway-IP -static
    

    Replace the values of destination-IP and gateway-IP 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 192.168.85.137, which is on the same subnet as the interfaces in IPMP group testgroup1.


    $ route add -host 192.168.85.137 192.168.85.137 -static 
    
  3. Add routes to additional hosts on the network to be used as target systems.

ProcedureHow to Specify Target Systems in a Shell Script

  1. On the system where you have configured an IPMP group, assume the Primary Administrator role or become superuser.

    The Primary Administrator role includes the Primary Administrator profile. To create the role and assign the role to a user, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.

  2. Create a shell script that sets up static routes to your proposed targets.

    For example, you could create a shell script called ipmp.targets with the following contents:


    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  
  3. Copy the shell script to the startup script directory.


     # cp ipmp.targets /etc/init.d  
    
  4. Change the permissions on the new startup script.


    # chmod 744 /etc/init.d/ipmp.targets
    
  5. Change ownership of the new startup script.


    # chown root:sys /etc/init.d/ipmp.targets
    
  6. Create a link for the startup script in the /etc/init.d directory.


    # ln /etc/init.d/ipmp.targets /etc/rc2.d/S70ipmp.targets
    

    The S70 prefix in the file name S70ipmp.targets orders the new script properly with respect to other startup scripts.

Configuring Standby Interfaces

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 IPMP Interface Configurations.

ProcedureHow to Configure a Standby Interface for an IPMP Group

Before You Begin

For information on configuring an IPMP group and assigning test addresses, refer to How to Configure an IPMP Group With Multiple Interfaces.

  1. On the system with the standby interfaces to be configured, assume the Primary Administrator role or become superuser.

    The Primary Administrator role includes the Primary Administrator profile. To create the role and assign the role to a user, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.

  2. Configure an interface as a standby and assign the test address.


    # ifconfig interface plumb \
    ip-address other-parameters deprecated -failover standby up
    

    A standby interface can have only one IP address, the test address. You must set the -failover option before you set the standby up option. For <other-parameters>, use the parameters that are required by your configuration, as described in the ifconfig(1M) man page.

    • For example, to create an IPv4 test address, you would type the following command:


      # ifconfig hme1 plumb 192.168.85.22 netmask + broadcast + deprecated -failover standby up
      
      hme1

      Defines hme1 as the physical interface to be configured as the standby interface.

      192.168.85.22

      Assigns this test address to the standby interface.

      deprecated

      Indicates that the test address is not used for outbound packets.

      -failover

      Indicates that the test address does not fail over if the interface fails.

      standby

      Marks the interface as a standby interface.

    • For example, to create an IPv6 test address, you would type the following command:


      # ifconfig hme1 plumb -failover standby up
      
  3. Check the results of the standby interface configuration.


    # ifconfig hme1
    hme1: flags=69040843<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

    The INACTIVE flag indicates that this interface is not used for any outbound packets. When a failover occurs on this standby interface, the INACTIVE flag is cleared.


    Note –

    You can always view the current status of an interface by typing the ifconfig interface command. For more information on viewing interface status, refer to How to Get Information About a Specific Interface.


  4. (Optional) Preserve the IPv4 standby interface across reboots.

    Assign the standby interface to the same IPMP group, and configure a test address for the standby interface.

    For example, to configure hme1 as the standby interface, you would add the following line to the /etc/hostname.hme1 file:


    192.168.85.22 netmask + broadcast + deprecated group test -failover standby up 
  5. (Optional) Preserve the IPv6 standby interface across reboots.

    Assign the standby interface to the same IPMP group, and configure a test address for the standby interface.

    For example, to configure hme1 as the standby interface, add the following line to the /etc/hostname6.hme1 file:


    -failover group test standby up

Example 31–4 Configuring a Standby Interface for an IPMP Group

Suppose you want to create a test address with the following configuration:

You would type the following:


# ifconfig hme2 plumb 192.168.85.22 netmask + broadcast + \
deprecated -failover standby up

The interface is marked as a standby interface only after the address is marked as a NOFAILOVER address.

You would remove the standby status of an interface by typing the following:


# ifconfig interface -standby