For long we used Tracking IP basd IPMP wherein we track the availability of a gateway on the network using ICMP Echo request. When the gateway IP fails to respond it is considered link is unavailable and NIC fails over to the standby NIC in the IPMP group.
The biggest disadvantage here is that we use 3 IP addresses:
1 for the Virtual IP
1 for the active NIC
1 for the Standby NIC
and ofcourse the overhead of the ICMP echo requests sent every seconds.
This can be overcome using the Link based IPMP configuration where you only need only IP Address and there is no overhead of ICMP messages and the failover delay is lot lesser than that of the tracking method. And the added advantage of a very simple configuration.
To configure Link based IPMP, create the hostname.<int name> files for the Active NIC and the standby NIC. For instance here, we use the bge0 and bge3 NICs as the IPMP pair where bge0 is active and bge3 is standby and hence the files hostname.bge0 and hostname.bge3.
To configure Link based IPMP, create the hostname.<int name> files for the Active NIC and the standby NIC. For instance here, we use the bge0 and bge3 NICs as the IPMP pair where bge0 is active and bge3 is standby and hence the files hostname.bge0 and hostname.bge3.
root@solaris10:/etc # ls -l hostname*-rw-r–r– 1 root root 55 May 6 11:23 hostname.bge0-rw-r–r– 1 root root 23 May 6 11:23 hostname.bge3
Edit the hostname.bge0 file and enter the following:
root@solaris10:/etc # vi hostname.bge0solaris10 netmask + broadcast + group sol10-ipmp up
where,
“solaris10” is the hostname which should have a corresponding host entry in the /etc/hosts file.
sol10-ipmp is the name of the IPMP group.
Edit the hostname.bge3 and the following
root@solaris10:/etc # vi hostname.bge3group sol10-ipmp up
Here as you can see the standby NIC only has IPMP group configuration. This is all is needed to setup Link based IPMP. When the server is rebooted this configuration should take effect
To do this on the fly, we can use the ifconfig command:
NIC bge0
root@solaris10:/etc # ifconfig bge0 plumbroot@solaris10:/etc # ifconfig bge0 192.168.0.1 netmask 255.255.255.0 group sol10-ipmp up
NIC bge3
root@solaris10:/etc # ifconfig bge3 plumbroot@solaris10:/etc # ifconfig bge3 group sol10-ipmp up
root@solaris10:/etc # ifconfig -alo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1inet 127.0.0.1 netmask ff000000bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2inet 192.168.0.1 netmask ffffff00 broadcast 192.168.0.255groupname sol10-ipmpether 0:a:1d:ee:ab:cdbge3: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 5inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255groupname sol10-ipmpether 0:a:1d:ee:ab:d2
This should do.
To test failover, you can do the hard way of pulling the cables or use if_mpadm command as follows:
To failover:
root@solaris10:/etc # if_mpadm -d bge0
To failback
root@solaris10:/etc # if_mpadm -r bge0
why you don’t test your configuration whith +
“ifconfig bge0 unplumb” i would like to see what can happen
Hey there.I can not find name of my NiC card and the IP address in Solaris 10 I just intalled and do not want to reinstall it.But I inserted the Solaris 10 dvd trying to locate my nic card which I finally found in /dev/bge0 now I am having hard time to install it with pkgadd -a .Can anyone help me out how to install this bge0
Solomon, Check in dmesg and grep for the device name. You have to assign an ip to the nic card unless of course you are using dhcp. Than an ifconfig -a should do the trick. Check this link which is a basic networking in Solaris 10. Good luck.
@MaVa: unplumb will unconfigure your NIC from your system. IPMP gives us “link/connection redundancy” not “nic redundancy”. Doing an unplumb with destroy the whole IPMP group any way.
Your “hostname.bge3” file is incorrect. It should be “solaris10 sol10-ipmp standby up” for active/standby configuration.
The suggested config is quick and easy; we used it with success. Thank you!
Recently, by means of snoop I found that Solaris occasionally sends some data packets through the standby interface; netstat -i showed about 0.8%.
This can cause a hick-up in certain firewalls and load balancers. Normally the hick-up is a little delay, nothing to really worry about.
Still this can be avoided by adding a standby parameter:
ifconfig bge3 group sol10-ipmp standby up
(ifconfig bge3 solaris10 group sol10-ipmp standby up gives an error message!?)
/etc/hostname.bge3 becomes:
group sol10-ipmp standby up
Now nothing (but HW broadcasts) is sent to the standby interface.
The drawback is that ifconfig -a looks a bit ugly now:
…
bge0: flags=1000843 mtu 1500 index 2
inet 192.168.0.1 netmask ffffff00 broadcast 192.168.0.255
groupname sol10-ipmp
ether 0:a:1d:ee:ab:cd
bge0:1: flags=1000843 mtu 1500 index 2
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
bge3: flags=1000842 mtu 0 index 3
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
groupname sol10-ipmp
ether 0:a:1d:ee:ab:d2
The configuration works perfectly. Great