FAQ / How do I configure RSF-1 with Solaris IPMP

Multiipathing functionality is often best delivered using the inbuilt Solaris support for link aggregation with RSF-1 happily (and invisibly) using the specified aggregated interfaces in its configuration.

However where link aggregation is not possible (older switches/fabric etc) or where a niche network toplogy mandates true use of multipathing, then this can be utilised by RSF-1 as specified below.

RSF-1 version 3.2.0 and above fully supports Solaris IP multipathing version 1 and 2 (known as IPMP V1/V2). This article provides a simple step-by-step configuration for IPMP and RSF-1 using two network interfaces and the reserved class C address range.

  1. Identify the network interfaces on your machine you want to use for IPMP. In this example we’re using two, hme0 and hme1 in the IPMP group rsfnafo.
  2. Obtain four fixed IP addresses in the same local lan segment to be used as fixed IPMP addresses, this example uses the reserved class C range 192.168.20.* with a simple naming convention for clarity; change these names to suit your installation. Update /etc/inet/hosts with the IP addresses obtained:
    192.168.20.101    DUMMY0
    192.168.20.102    DUMMY1
    192.168.20.103    REALHOST
    192.168.20.104    RSF_VIP

    The DUMMY0 and DUMMY1 addresses are fixed to hme0 and hme1 for use by IPMP, REALHOST is a floating address used to refer to the node itself, and the RSF_VIP address will be used by RSF-1 to provide an address for clients to access services in the cluster.

  3. Next configure the two interfaces using the /etc/hostname.hme[01] files:/etc/hostname.hme0
    DUMMY0 netmask + broadcast + 
    group rsfnafo deprecated -failover up 
    addif REALHOST netmask + broadcast + failover up

    /etc/hostname.hme1

    DUMMY1 netmask + broadcast + 
    group rsfnafo deprecated -failover standby up
  4. Next configure unique MAC addresses on all interfaces. To do this run ifconfig -a and note the MAC address on the first interface:
    hme0: flags=1000843 mtu 1500 index 2
    	inet 298.178.99.141 netmask fffffff0 broadcast 298.178.99.143
    	ether 8:0:20:ca:ff:eb

    Next, enable local mac addresses, plumb in any unconfigured interfaces and then assign them a new unique MAC address. The usual way to do this is by slightly modifying an existing mac addess on the system, so in this case we change the hme0 address 8:0:20:ca:ff:eb to 8:0:20:ca:ff:ec, i.e. add one to the final hex number:

    # eeprom 'local-mac-address?=true'
    # /sbin/ifconfig hme1 plumb
    # /sbin/ifconfig hme1 ether 8:0:20:ca:ff:ec
  5. Enable IP failure detection in RSF-1 by adding the following line at the top of the RSF-1 configuration file (/opt/HAC/RSF-1/etc/config) in the global section:
    ###############################################################################
    ############## Optional global defaults & definitions come first. #############
    ###############################################################################
    
    CLUSTER_NAME IPMP_example
    IPDEVICE_MONITOR 5,5
    POLL_TIME 2
    REALTIME 1
    
    ###############################################################################
    ############## End of global section, start of machines section. ##############
    ###############################################################################
  6. The RSF_VIP should then be declared in the RSF-1 configuration file for a single service VIP:
    SERVICE example RSF_VIP "IPMP Service example"
      INITIMEOUT 60
      RUNTIMEOUT 60
     SERVER REALHOST
      IPDEVICE "hem0"
     SERVER OTHERHOST
      IPDEVICE "hme0"
  7. Finally, reboot the server and check that the appropriate addresses have been enabled on the interfaces.

Posted in: Networking