Basic IPMP

Finally, I got tired of remembering which network interfaces is configured on my Netra test box. So I do not have to remember which interface to plug cable into I configured IPMP on the box. IPMP provides link redundancy among multiple network interfaces in multipathing group. IPMP is not meant to be full fledged load balancing solution, though it will spread outgoing traffic across the interfaces.

I have put my two hme interfaces into a multipathing group. The group has a failover IP address assigned to it. Initially this address will be assigned to hme0. If hme0 fails, the address will automatically move to the other interface in the failover group.

First I edited /etc/hostname.hme0:

unreal-hme0 netmask + broadcast + deprecated -failover group unrealgrp1 up addif unreal netmask + broadcast + failover up

This configures physical hme0 with IP address of, which will not fail over and puts hme0 in unrealgrp1 multipathing group. It will additionally configure a virtual IP address of which will failover when hme0 link goes down. Deprecated means the IP address will not be used as source address for any outgoing packets.

Then I edited /etc/hostname.hme1:

unreal-hme1 netmask + broadcast + deprecated -failover group unrealgrp1 up

Similarly, hme1 will be configured with IP address of and as a member of unrealgrp1 multipathing group. Again, is marked as deprecated so it will not be used for outgoing packets. Finally I made sure my hosts file is correct:

bash-3.00# cat /etc/hosts       localhost    unreal          loghost    unreal-hme0    unreal-hme1

And here is the result:

bash-3.00# ifconfig -a  
lo0: flags=2001000849 mtu 8232 index 1
        inet netmask ff000000
hme0: flags=9040843 mtu 1500 index 2
        inet netmask ffffff00 broadcast
        groupname unrealgrp1
        ether 8:0:20:d9:ac:c
hme0:1: flags=1000843 mtu 1500 index 2
        inet netmask ffffff00 broadcast
hme1: flags=19040803 mtu 1500 index 3
        inet netmask ffffff00 broadcast
        groupname unrealgrp1
        ether 8:0:20:d9:ac:d

Essentially IP address “floats” among interfaces. If I were to unplug hme0, would fail over to hme1. Failure is detected on link loss. There are some tunable parameters in /etc/default/mpathd.

This is all I needed. Of course, there is much more to IPMP: you can setup test system, that your system will test for reachability, detection of interfaces missing on boot, etc. Sun has much more info on it here.