Pages

Tuesday, February 8, 2011

How to configure probe-based IPMP

IPMP enable to recover from network path failures. If a failure occurs in one network link and an alternate link is configured, IP address can fails over. So network access changes automatically from the failed link to the alternate link, providing uninterrupted access to the network. Probe based IPMP utilize test address to monitor the health of interfaces. You need Solaris 8 10/00 as minimum.

  1. Verify the solaris OS release
    # more /etc/release
    Solaris 10 5/08 s10x_u5wos_10 X86
    Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
    Use is subject to license terms.
    Assembled 24 March 2008
  2. In SPARC system, you must configure the host to have unique MAC address for each interface.
    # eeprom "local-mac-address?"
local-mac-address?=false
# eeprom "local-mac-address?=true"
# eeprom "local-mac-address?"
local-mac-address?=true
  1. Edit your hosts file. In this example, you have 2 interface e1000g0 and e1000g1. Each interface has 2 IP address (data address and test address).
    # more /etc/inet/hosts
    #
    # Internet host table
    #
    ::1 localhost
    127.0.0.1 localhost
    172.16.31.11 jupiter loghost # data address for e1000g0
    172.16.31.21 jupiter-e1000g1 # data address for e1000g1
    172.16.31.111 jupiter-test # test address for e1000g0
    172.16.31.211 jupiter-e1000g1-test # test address for e1000g1

  2. Set your interface to include IPMP. You need to edit /etc/hostname.<interface> file. The two interfaces will be member of IPMP group. In this example, you have group jupiter-group.
    # more /etc/hostname.e1000g0
    jupiter netmask + broadcast + group jupiter-group up
addif jupiter-test deprecated netmask + broadcast + -failover up
# more /etc/hostname.e1000g1
    jupiter-e1000g1 netmask + broadcast + group jupiter-group up
addif jupiter-e1000g1-test deprecated netmask + broadcast + -failover up
  1. Configure each interface to start using IPMP.
    # ifconfig e1000g0 jupiter netmask + broadcast + group jupiter-group up
    # ifconfig e1000g0 addif jupiter-test deprecated netmask + broadcast + -failover up
    # ifconfig e1000g1 jupiter-e1000g1 netmask + broadcast + group jupiter-group up
    # ifconfig e1000g1 addif jupiter-e1000g1-test deprecated netmask + broadcast + -failover up

  2. See your IPMP configuration
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.16.31.11 netmask fffffc00 broadcast 172.16.31.255
groupname jupiter-group
ether 8:0:27:7e:12:82
e1000g0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu
1500 index 2
inet 172.16.31.111 netmask fffffc00 broadcast 172.16.31.255
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.16.31.21 netmask fffffc00 broadcast 172.16.31.255
groupname jupiter-group
ether 8:0:27:7e:12:83
e1000g1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu
1500 index 2
inet 172.16.31.211 netmask fffffc00 broadcast 172.16.31.255
  1. Verify that IPMP daemon is running.
    # pgrep -lf in.mpathd
    6513 /usr/lib/inet/in.mpathd

  2. Test your IPMP configuration
    # if_mpadm -d e1000g0
    Nov 3 13:24:31 jupiter in.mpathd[119]: Successfully failed over from NIC e1000g0 to NIC e1000g1
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.16.31.11 netmask fffffc00 broadcast 172.16.31.255
groupname jupiter-group
ether 8:0:27:7e:12:82
e1000g0:1: flags=9040843<BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu
1500 index 2
inet 172.16.31.111 netmask fffffc00 broadcast 172.16.31.255
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.16.31.21 netmask fffffc00 broadcast 172.16.31.255
groupname jupiter-group
ether 8:0:27:7e:12:83
e1000g1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu
1500 index 2
inet 172.16.31.211 netmask fffffc00 broadcast 172.16.31.255
e1000g1:2 flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.16.31.11 netmask fffffc00 broadcast 172.16.31.255
groupname jupiter-group
    ether 8:0:27:7e:12:82
  1. Return to your original IPMP configuration
    # if_mpadm -r e1000g0
    Nov 3 13:24:31 jupiter in.mpathd[535]: Successfully failed back to NIC e1000g0
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.16.31.11 netmask fffffc00 broadcast 172.16.31.255
groupname jupiter-group
ether 8:0:27:7e:12:82
e1000g0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu
1500 index 2
inet 172.16.31.111 netmask fffffc00 broadcast 172.16.31.255
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.16.31.21 netmask fffffc00 broadcast 172.16.31.255
groupname jupiter-group
ether 8:0:27:7e:12:83
e1000g1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu
1500 index 2
    inet 172.16.31.211 netmask fffffc00 broadcast 172.16.31.255

No comments:

Post a Comment