IP Network Multipathing Administration Guide

Administering Multipathing Groups With Multiple Physical Interfaces

This section describes how you enable IP network multipathing. To use the IP network multipathing feature, you should have more than one physical interface connected to the same IP link. For example, you can configure the same Ethernet switch or the same IP subnet under the same multipathing group. If you have just one physical interface, refer to Administering Multipathing Groups With a Single Physical Interface.

Multipathing groups are identified by non-null names. For example, math-link, bio-link, and chem-link make good names. The names typically represent where these groups are connected. Network access switches from a failed adapter to a working adapter in the multipathing group when a failure is detected. The failover of network access includes IPv4 unicast, broadcast, and multicast traffic, as well as IPv6 unicast and multicast traffic. For IP network multipathing to function properly, the following conditions must exist for the network adapters that are part of the same multipathing group:

  1. You must push and configure the same set of STREAMS modules on all network adapters in the multipathing group.

  2. If you have plumbed IPv4 on one network adapter, then you must plumb IPv4 on all network adapters in the multipathing group.

  3. If you have plumbed IPv6 on one network adapter, then you must plumb IPv6 on all network adapters in the multipathing group.

  4. All Ethernet network adapters in the system should have unique MAC addresses. To achieve unique MAC addresses, set the local-mac-address to TRUE in the openboot PROM for SPARC platforms. Nothing needs to be done for IA (x86) platforms.

  5. All network adapters of the multipathing group must be connected to the same IP link.

  6. The multipathing group should not contain dissimilar interfaces. The interfaces that are grouped together should be of the same interface type that is defined in /usr/include/net/if_types.h. For example, you cannot combine Ethernet with Token ring, and you cannot combine a Token bus with asynchronous transfer mode (ATM).

  7. When you use IP network multipathing with an ATM, you must configure the ATM for LAN emulation. Multipathing over classical IP instances is not currently supported.


Note –

The fourth condition concerns all interfaces in the system, not just those belonging to the multipathing group.


For the adapters that do not come with factory-set unique MAC addresses, you can manually configure a MAC address for each adapter as a workaround. For example, use the ifconfig ether command in a startup script file.


Note –

The MAC addresses that are configured manually cannot be maintained across system reboot. You are responsible for choosing unique MAC addresses. IP network multipathing might behave unpredictably if the MAC addresses of adapters are not unique.


Grouping Physical Interfaces

You use the ifconfig command to configure groups. This command uses a new group parameter that requires a group name. The ifconfig command places both the IPv4 and IPv6 instances of the interface in that group. The group parameter has the following syntax:


ifconfig interface-name group group-name

Note –

Avoid using spaces in group names. The ifconfig status display does not show spaces. Consequently, do not create two similar group names. If one of the group names contains a space, these group names look the same in the status display. However, the group names are different. This difference might be confusing.


Placing the IPv4 instance under a particular group automatically places the IPv6 instance under the same group. Also, you can place a second interface, which is connected to the same subnet, in the same group by using the same command. See How to Configure a Multipathing Interface Group With Two Interfaces.

You can remove an interface from a multipathing group by using a null string with the group sub-command. See How to Remove an Interface From a Group.

You can place an interface in a new group when the interface is already part of some multipathing group. You do not need to remove the interface from any existing group. By placing the interface in a new group, the interface is automatically removed from any existing group. See How to Move an Interface From an Existing Group to a Different Group.

You can have any number of network adapters that you can configure in the same multipathing group. You cannot use the group parameter with logical interfaces. For example, you can use the parameter with hme0, but not with hme0:1.

You must connect all the interfaces in the multipathing group to the same IP link. When an interface fails, the failover operation moves all the IP addresses from the interface that has failed to a functional interface in the group. The functional interface must be connected to the same IP link. Consequently, routers can continue to rout packets to the addresses that have been switched to the functional interface.

Configuring Test Addresses

You must configure all physical interfaces of a multipathing group with a test address. You need test addresses to detect failures and repairs. If a test address is not configured, the test address is not chosen for failover. Only in.mpathd uses test addresses. Normal applications should not use this address. This address is not chosen for failover when the interface fails. In IPv4, you should configure the test address in such a way that normal applications do not use the test address. See How to Configure a Multipathing Interface Group With Two Interfaces.

This section describes the concepts of test address configuration for the following Internet protocols:

IPv4 Test Addresses

The in.mpathd multipathing daemon requires a test IP address for detecting failures and repairs. You must use a routeable address for this IP address. The subnet prefix of the address must be known to any routers present on the link. You use the ifconfig command's new -failover option to configure a test address. Use the following syntax to configure a test address:


# ifconfig interface-name addif ip-address <other-parameters> -failover up

For <other-parameters>, use the parameters that are required by your configuration. See the ifconfig(1M) man page for descriptions. How to Configure a Multipathing Interface Group With Two Interfaces shows the steps that you perform for an IPv4 test address.

For example, if you wanted to do the following configuration:

Type the following command:


# ifconfig hme0 addif 19.16.85.21 netmask + broadcast + -failover up

Note –

You must mark an IPv4 test address as deprecated to prevent applications from using the test address. See How to Configure a Multipathing Interface Group With Two Interfaces.


Use failover without the dash to turn on the failover attribute of the address.


Note –

All test IP addresses in a multipathing group must use the same network prefix. The test IP addresses must belong to a single IP subnet.


IPv6 Test Addresses

To configure an IPv6 test address, you use the link-local address, because link-local addresses are tied to the physical interface. Thus, you do not need a separate IP address in the IPv6 situation. For IPv6, the -failover option has the following syntax:


# ifconfig interface-name inet6 -failover

How to Configure a Multipathing Interface Group With Two Interfaces shows the steps that you perform for an IPv6 test address.

When a multipathing group has both IPv4 and IPv6 plumbed on all the group's interfaces, you might not need a separate IPv4 test address. The in.mpathd daemon can probe the interfaces by using an IPv6 link-local address. IPv6 link-local addresses are created when IPv6 is plumbed.

Use failover without the dash to turn on the failover attribute of the address.


Note –

The only valid IPv6 test address is the link-local address.


Preventing Applications From Using Test Addresses

After you have configured a test address, you need to ensure that this address is not used by normal applications. If you let applications use the test address, applications fail, because test addresses do not fail over during the failover operation. To ensure that IP does not pick the test address for normal applications, you mark the test address deprecated by using the ifconfig command. This parameter has the following syntax:


ifconfig interface-name deprecated

IP does not pick a deprecated address as a source address for any communication, unless the applications explicitly bind to the address. Only in.mpathd explicitly binds to such an address. See How to Configure a Multipathing Interface Group With Two Interfaces.

Because link-local addresses are not present in the name service, DNS, NIS, and NIS+, applications do not use link-local addresses for communication. Consequently, you do not need to mark IPv6 test addresses as deprecated.


Note –

You must not mark IPv6 link-local addresses as deprecated.


Use the -deprecated option to turn off the deprecated attribute of the address.


Note –

IPv4 test addresses should not be placed in the name service tables, DNS, NIS, and NIS+. In IPv6, link-local addresses are used as test addresses. In IPv6, link-local addresses are not normally placed in the name service tables.


Autoconfigured IPv6 addresses are not preserved across system reboot. If you require that IP addresses be preserved across reboot, then applications should use static IP addresses.

Using the hostname File to Configure Groups and Test Addresses

You can use the /etc/hostname.interface files to configure multipathing groups and test addresses. To configure a multipathing group by using the /etc/hostname.interface file, you can add a line to the file by using the following syntax:


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

For example, if you want to create the group test with the following configuration:

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


19.16.85.19 netmask + broadcast + group test up \
addif 19.16.85.21 deprecated -failover netmask + broadcast + up

How to Configure a Multipathing Interface Group With Two Interfaces shows the steps that you perform to configure the IPv4 hostname file.

For IPv6 setup, add a line to the /etc/hostname6.interface file by using the following syntax:


<parameter> group group-name up

For example, to create a test group for hme0 with an IPv6 test address, add the following line to the /etc/hostname6.hme0 file:


-failover group test up
addif 1080::56:a00:20ff:feb9:19fa up

How to Configure a Multipathing Interface Group With Two Interfaces shows the steps that you perform to configure the IPv6 hostname6 file.

Configuring Standby Interfaces

You can configure multipathing groups with standby interfaces. As the name implies, the interface is considered a standby interface. The standby interface is not used unless some other interface in the group fails. A standby interface has an IFF_INACTIVE flag when the interface is not hosting any failover IP address. Consequently, when an active interface fails, the standby interface is always chosen for failover. After the standby interface is chosen, the IFF_INACTIVE flag is cleared on the standby interface. From that instant, the active standby interface is treated the same as other active interfaces. Some failures might not choose a standby interface. Instead, some failures might choose an active interface that hosts fewer IP addresses than the standby interface.

The standby interface is not used to send normal data packets. Consequently, limited traffic flows on a standby interface. You must configure standby interfaces with a test address to ensure that probes are sent to determine if the interface is functional. If you do not configure standby interfaces with a test address, the interface is not chosen for failovers when another interface in the group fails. A standby interface might carry traffic under the following conditions:

Thus, the system does not normally select a standby interface, except for probes, unless the standby interface is explicitly chosen by an application. If some interface in the group fails, all network access is switched to the standby interface. To configure a standby interface, you use the ifconfig command's new standby parameter by using the following syntax:


# ifconfig interface-name standby group group-name

How to Configure a Multipathing Group With One of the Interfaces a Standby Interface shows the steps that you perform.

The in.mpathd daemon sends probes on the standby interface after a test address is configured on the standby interface. You should configure only test addresses on a standby interface. If any other address is added on the standby, the addition of this address fails. If a standby interface already has addresses other than test addresses, automatic failover of these addresses occurs to a different interface in the group. Only the test address remains, if a test address exists. Avoid configuring non-test address on a standby interface.

You need to mark the address as a test address by using the ifconfig command's deprecated and -failover options before setting standby or setting up.

To configure a test address on a standby interface, use the following syntax:


# ifconfig interface-name plumb ip-address
   <other-parameters> deprecated -failover standby up

For <other-parameters>, use the parameters that are required by your configuration. See the ifconfig(1M) man page for descriptions.


Note –

Standby interfaces are not used for failover if no test address is configured on that interface.


For example, if you want to create a test address with the following configuration:

You type the following command line:


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

Note –

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


How to Configure a Multipathing Group With One of the Interfaces a Standby Interface shows the steps that you perform.

You can clear a standby interface by using the following syntax:


# ifconfig interface-name -standby