http://thegeekdiary.com/how-to-configure-solaris-10-probe-based-ipmp/
http://docs.oracle.com/cd/E19253-01/816-4554/emqul/index.html
http://blog.verwilst.be/2008/04/09/active-passive-bonding-on-solaris-10/comment-page-1/
http://www.c0t0d0s0.org/archives/6300-Less-known-Solaris-features-IP-Multipathing-Part-8-Classic-IPMP.html
Original docs
1. Place each interface into the group
# ifconfig hme0 group testgroup1
# ifconfig hme1 group testgroup1
if active-standby configuration is needed than
# ifconfig hme0 group testgroup1 deprecated -failover up
# ifconfig hme1 group testgroup1 deprecated -failover standby up
2. Configure test IP (v4) address on physical interfaces
# ifconfig hme0 addif 192.168.85.21 255.255.255.0 -failover deprecated up
the address is marked as deprecated to prevent applications from using it
Flag "-failover" means that this address configures as non-failover.
3. Add logicial interface
# ifconfig hme0 addif 10.16.244.60 netmask 255.255.252.0 up
(to remove logical interface:
# ifconfig hme0:1 unplumb
------------------------------------------------------------------
Testing IPMP failover
We can check the failure and repair of an interface very easily using if_mpadm command. “-d” detaches the interface whereas “-r” reattaches it.
# if_mpadm -d ce0
# if_mpadm -r ce0
Meanings of FLAGs
You would see flags such as NOFAILOVER, DEPRECATED, STANDBY etc.. in the output of “ifconfig -a” command. The meanings of these flags and parameters to enable them are:
deprecated -> can only be used as test address for IPMP and not for any actual data transfer by applications.
-failover -> does not failover when the interface fails
standby -> makes the interface to be used as standby
Example active-standby config (tested):
vnet1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 172.16.0.30 netmask ffffff00 broadcast 172.16.0.255
groupname g1
ether 0:14:4f:f9:28:16
vnet1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 3
inet 172.16.0.31 netmask ffffff00 broadcast 172.16.0.255
vnet2: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY,INACTIVE> mtu 1500 index 4
inet 172.16.0.32 netmask ffffff00 broadcast 172.16.0.255
groupname g1
ether 0:14:4f:fb:c4:e4
working IP that will fail over is 172.16.0.30
cat /etc/hostname.vnet1
172.16.0.31 netmask 255.255.255.0 deprecated -failover group g1 up addif 172.16.0.30 netmask 255.255.255.0 up
cat /etc/hostname.vnet2
172.16.0.32 netmask 255.255.255.0 group g1 deprecated -failover standby up
----------------------------------------------------------------------------------
Important!
- during reconfiguration try not to unplumb interfaces because it may lead to connection reset on all system interfaces.
- DEPRECATED and NOFAILOVER flags are managed by "deprecated" and "failover" options of the ifconfig command.
"-deprecated" switches off DEPRECATED flag and "failover" switches off NOFAILOVER flag.
Most commonly used Probe-Based IPMP configurations
1. Active – Active configuration
Groupname: ipmp0
Active interface(s): e1000g0
e1000g1
Standby interface(s): -
Data IP addresse(s): 192.168.1.2
Test IP addresse(s): 192.168.1.3
192.168.1.4
Command line :
Invalid:
# ifconfig e1000g0 plumb 192.168.1.2 netmask + broadcast + group ipmp0 up addif 192.168.1.3 netmask + broadcast + deprecated -failover up
Should be:
# ifconfig e1000g0 plumb 192.168.1.2 netmask + broadcast + deprecated -failover group ipmp0 up addif 192.168.1.3 netmask + broadcast + up
# ifconfig e1000g1 plumb 192.168.1.4 netmask + broadcast + deprecated -failover group ipmp0 up
To ensure persistent configuration across reboots edit the files :
/etc/hostname.e1000g0:
192.168.1.2 netmask + broadcast + group ipmp0 up \
addif 192.168.1.3 netmask + broadcast + deprecated -failover up
/etc/hostname.e1000g1:
192.168.1.4 netmask + broadcast + deprecated -failover group ipmp0 up
Before failure :
# 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 9
inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255
groupname ipmp0
ether 0:c:29:f6:ef:67
e1000g0:1: flags=9040843[UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER] mtu 1500 index 9
inet 192.168.1.3 netmask ffffff00 broadcast 192.168.1.255
e1000g1: flags=9040843[UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER] mtu 1500 index 10
inet 192.168.1.4 netmask ffffff00 broadcast 192.168.1.255
groupname ipmp0
ether 0:c:29:f6:ef:71
After failure :
# ifconfig -a
lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=19000802[BROADCAST,MULTICAST,IPv4,NOFAILOVER,FAILED] mtu 0 index 9
inet 0.0.0.0 netmask 0
groupname ipmp0
ether 0:c:29:f6:ef:67
e1000g0:1: flags=19040803[UP,BROADCAST,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,FAILED] mtu 1500 index 9
inet 192.168.1.3 netmask ffffff00 broadcast 192.168.1.255
e1000g1: flags=9040843[UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER] mtu 1500 index 10
inet 192.168.1.4 netmask ffffff00 broadcast 192.168.1.255
groupname ipmp0
ether 0:c:29:f6:ef:71
e1000g1:1: flags=1000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 10
inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255
2. Active – Standby
The only difference in case of a active-standby configuration is – the interface configured as standby is not used to send any out bound traffic. Thus disabling the load balancing feature of an active-active configuration.
Groupname: ipmp0
Active interface(s): e1000g0
Standby interface(s): e1000g1
Data IP addresse(s): 192.168.1.2
Test IP addresse(s): 192.168.1.3
192.168.1.4
Command line :
# ifconfig e1000g0 plumb 192.168.1.2 netmask + broadcast + group ipmp0 up addif 192.168.1.3 netmask + broadcast + deprecated -failover up
# ifconfig e1000g1 plumb 192.168.1.4 netmask + broadcast + deprecated -failover group ipmp0 standby up
To ensure persistent configuration across reboots edit the files :
/etc/hostname.e1000g0:
192.168.1.2 netmask + broadcast + group ipmp0 up \
addif 192.168.1.3 netmask + broadcast + deprecated -failover up
/etc/hostname.e1000g1:
192.168.1.4 netmask + broadcast + deprecated -failover group ipmp0 standby up
Before failure :
# 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 11
inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255
groupname ipmp0
ether 0:c:29:f6:ef:67
e1000g0:1: flags=9040843[UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER] mtu 1500 index 11
inet 192.168.1.3 netmask ffffff00 broadcast 192.168.1.255
e1000g1: flags=69040843[UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY,INACTIVE] mtu 1500 index 12
inet 192.168.1.4 netmask ffffff00 broadcast 192.168.1.255
groupname ipmp0
ether 0:c:29:f6:ef:71
After failure :
# ifconfig -a
lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=19000802[BROADCAST,MULTICAST,IPv4,NOFAILOVER,FAILED] mtu 0 index 11
inet 0.0.0.0 netmask 0
groupname ipmp0
ether 0:c:29:f6:ef:67
e1000g0:1: flags=19040803[UP,BROADCAST,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,FAILED] mtu 1500 index 11
inet 192.168.1.3 netmask ffffff00 broadcast 192.168.1.255
e1000g1: flags=29040843[UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY] mtu 1500 index 12
inet 192.168.1.4 netmask ffffff00 broadcast 192.168.1.255
groupname ipmp0
ether 0:c:29:f6:ef:71
e1000g1:1: flags=21000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4,STANDBY] mtu 1500 index 12
inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255
-----------------------------------------------------------------------------------------------------------------
As a result of switchover the following records are placed into messages log:
Feb 13 18:23:18 mer4.tcinet.ru bge: [ID 801725 kern.info] NOTICE: bge1: link down
Feb 13 17:23:18 mer4.tcinet.ru in.mpathd[11563]: [ID 215189 daemon.error] The link has gone down on bge600001
Feb 13 17:23:18 mer4.tcinet.ru in.mpathd[11563]: [ID 594170 daemon.error] NIC failure detected on bge600001 of group group600
Feb 13 17:23:18 mer4.tcinet.ru in.mpathd[11563]: [ID 832587 daemon.error] Successfully failed over from NIC bge600001 to NIC bge600000
Feb 13 18:25:33 mer4.tcinet.ru bge: [ID 801725 kern.info] NOTICE: bge1: link up 1000Mbps Full-Duplex
Feb 13 17:25:33 mer4.tcinet.ru in.mpathd[11563]: [ID 820239 daemon.error] The link has come up on bge600001
|