Basic requirements for IPMP
- All interfaces in an IPMP group must have uniqueMAC addresses
- All interfaces in an IPMP group must be of the same media type
- All interfaces in an IPMP group must be on the same IP link
Two types of IPMP:
- Link-Based FailureDetection
- Probe-Based FailureDetection
Terminology:
Data Addresses: Conventional address configured to interface.
Test Addresses: used by in.mpathd for probe based failure detection.
IP link: Physical connection to network switch
To configure link based IPMP, we do not required test address. So configure the two interface hostname files
Ex., nxge0 and nxge4
echo “myhost netmask + broadcast + group ipmp0 up” > /etc/hostname.nxge0
echo “group ipmp0 up” > /etc/hostname.nxge4
then restart the network services
svcadm disable network/physical
svcadm enable network/physical
Jan 7 18:26:52 myhost in.mpathd[1501]: No test address configured on interface nxge4; disabling ed failure detection on it
Jan 7 18:26:52 myhost in.mpathd[1501]: No test address configured on interface nxge0; disabling probe-based failure on it
Then ifconfig output will look like below. Notice that nxge4 do not have IP configured.
nxge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.0.100netmask ffffff80 broadcast 165.40.63.127
groupname ipmp0
ether 0:xx:xx:xx:xx:xx
nxge4: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
groupname ipmp0
ether 0:xx:xx:xx:xx:xx
Then verify the failover and back with ‘if_mpadm” command
root@myhost # if_mpadm -d nxge0
Jan 7 18:28:29 myhost in.mpathd[1501]: Successfully failed over from NIC nxge0 to NIC nxge4
root@myhost # if_mpadm -r nxge0
Jan 7 18:28:43 myhost in.mpathd[1501]: Successfully failed back to NIC nxge0
While testing ran a ping test
H:\>ping 192.168.0.100-t
Pinging 192.168.0.100with 32 bytes of data:
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=39ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Request timed out. –here tested failover to nxge4
Reply from 192.168.0.100: bytes=32 time=39ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Request timed out.—here tested failback to nxge0
Reply from 192.168.0.100: bytes=32 time=39ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Reply from 192.168.0.100: bytes=32 time=38ms TTL=244
Ping statistics for 192.168.0.100:
Packets: Sent = 25, Received = 23, Lost = 2 (8% loss),
Approximate round trip times in milli-seconds:
Minimum = 38ms, Maximum = 39ms, Average = 38ms
Control-C
Note: For trouble shooting you can test network connectivity from OK prompt with watch-net command
/pci@400/pci@2/pci@0/pci@6/network@0
1000 Mbps full duplex Link up
Looking for Ethernet Packets.
‘.’ is a Good Packet. ‘X’ is a Bad Packet.
Type any key to stop.
………………………………………
/pci@400/pci@1/pci@0/pci@8/network@0
1000 Mbps link up
Looking for Ethernet Packets.
‘.’ is a Good Packet.
Type any key to stop.
…………………………………………
Reference
http://docs.oracle.com/cd/E23823_01/pdf/816-4554.pdf
https://blogs.oracle.com/stw/entry/using_ipmp_with_link_based
Filed under: networking, Solaris Tagged: ipmp, solaris10
