SUMMARY : Setting up IPMP : Clarification

From: David STAPLETON <>
Date: Tue Feb 24 2004 - 05:56:01 EST
Thanks to all that responded, i.e. the following, in order of receipt: 

Doug Hughes, Bucky Swider, Darren Dunham, Stan Pietkiewicz

Essentially both options are valid and it depends on your preference and point of reference&#133;. Also a small apology as I neglected to mention that we are using IPMP for IP Failover ONLY and not for outbound load balancing.

Many thanks to you all for the clarifications and the blueprint pdf link.


Comments from those that responded are below (Original post below that) :

It doesn't matter. Think of it in a different way. You must have 2 fixed, non-movable addresses, one per interface. These are used by in.mpathd for pinging and determining availability. You must have at least one floating IP address. This is the one that you use for your routing and that you give to all client systems and that
you put in DNS. How you get to this state is irrelevent. You can use the primary IP and make that into the movable, or you can assign a new IP and make that the movable, as long as the floating one is the one you
give out, everything's fine.


Neither 'a' or 'b' are correct.

In IPMP, each physical interface needs its own test address.  Then you have one (active/passive) or two (active/active) 'data' IP addresses. 

These data addresses float between the physical interfaces as necessary.

The big stylistic question comes in as to whether you want the 'test' address as the 'base' address  (i.e. hme0) or an 'additional' interface (i.e. hme0:1).  The debate rages on, For me, it makes sense to use the 'test' address as the 'base' address- i.e. hme0 & hme1 will have their own addresses <test> which never
change.   Then, depending on the situation, either may have additional addresses. 

This is also the model from Sun Cluster & Veritas Cluster, as well as F15K SCs).

I also prefer active/passive.  It makes troubleshooting & authentication much simpler (i.e. defining only one address to a firewall rule instead of multiple addresses; one entry in /etc/hosts and dfstab for NFS partners,
True, it theoretically cuts down your bandwith, but keep in mind that IPMP load balances OUTBOUND traffic only.

Bucky Swider

Have you read through the Sun Blueprint where it talks about some of
the reasons?
Darren Dunham

The way I've set up IPMP is to use 4 IP addresses per machine (assuming 2 NICs): the primary IP of each of the NICs, and a deprecated IP alias used only by IPMP for test connections. The 2 NICs are also connected to
different devices at the other end of the wire (ie.: *NOT* the same network switch) to minimize single points of failure. What this would give me is:

hme0 # primary nic, primary IP
hme0:1 #primary nic, test IP
hme1 #second nic, primary IP
hme1:1 #second nic, test IP

You could have applications on client machines use both of the primary IPs to get some semblance of load balancing, since (supposedly) Solaris will load balance outgoing traffic going to different destination across
the 2 NICs.

As far as the configuration itself goes, I've used the method (one of two described in the Sun Blueprint note) where you put the ifconfig commands right in the hostname.hme0 and hostname.hme1 files. Of course,
changes will only take effect after a UWS (universal windows solution) (reboot) 


=====   original posting =====

Hi folks,

I wonder could somebody clear something up for me regarding setting up IPMP.

I have trawled through the net, the archives, etc. and have found two types of configuration setup for IPMP and it seems to me that if one is correct, the other must be wrong.

The difference in the two methods essentially revolves around the Primary Interface I.P. address and I have found documentation supporting both.

For this query I am not interested in the actual ifconfig syntax, etc. to set up IPMP or some of the caveats, (as in being on the same I am only interested in the configuration difference between the two so I'll skip the actual commands.

The two methods are below (All IP address, etc. are fake - well they don't apply to our actual set-up...) :

Assume that pre-setup is the following and already exists ;
      Primary interface and I.P. - hme0 :     #Designated Primary interface for IPMP
      Existing seconday interface - hme1 :   #Designated Failover interface for IPMP

Test IP address that you want to use is : (this is obviously a spare address and can be used safely so let's call it the "Spare" I.P. address for clarification).

In method A) You setup the system so that the Primary and Secondary interface I.P. addresses remain the same, by that I mean you add the IPMP group name, etc. and the correct ifconfig options to set it up the IPMP but the I.P. addresses for the Primary and Secondary interfaces are not changed and you add the Spare I.P. address as an
alias to the Primary Interface.  So you end up with something like the following : 

      Primary interface and I.P. - hme0 :     # Primary interface for IPMP (unchanged)
      Existing seconday interface - hme1 :   # Failover interface for IPMP (unchanged)
      Test Interface (alias) - hme0:1 :      # Test interface for IPMP (Spare I.P. address added)

The other method, B) You basically substitute the Test I.P. for the Primary interface address and the Primary Interface address becomes the Test Interface address;  The Secondary interface I.P. address remains unchanged, except, as stated above, by adding the IPMP group name and necessary configuration changes to add it to the IPMP.  So in the end you have something like the following :

      Primary interface and I.P. - hme0 :    # Primary interface for IPMP (I.P. changed to Spare I.P. address)
      Existing seconday interface - hme1 :   # Failover interface for IPMP (unchanged)
      Test Interface (alias) - hme0:1 :      # Test interface for IPMP (I.P. is the original Primary interface I.P.) 

So essentially in method A) all I.P addresses remain unchanged and you just add the Spare I.P. as the Test Alias (hme0:1) and method B) you effectively make the I.P. address for the Primary interface for IPMP the Spare I.P. address and add the former Primary I.P. address as the alias (hme0:1) to the Primary interface.

I hope the explanation is clear and the question is..... Which one is the right way to do it?  Intuitively it seems to me that method B is correct as if the Primary fails, the "Test" interface switches to the Failover interface and how could that happen if the Test interface wasn't the original Main I.P. address (i.e. the pingable I.P. address)????

Thanks a million and I will summarise.
David S.

Sign-up for Ads Free at
sunmanagers mailing list
Received on Tue Feb 24 05:55:49 2004

This archive was generated by hypermail 2.1.8 : Thu Mar 03 2016 - 06:43:26 EST