With the just-discussed bug fixed in my workspace, the kernel's new IPv4
unicast support for IPMP seems pretty solid.  For instance, I can ssh to
the test machine[1] from China, and trigger a failover on the interface
I'm logged in over:

  # ifconfig ce0 ether
  ce0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
          ether 0:3:ba:94:3b:74
  # ifconfig ce1 ether
  ce1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
          ether 0:3:ba:94:3b:75
  # arp -a | grep whitestar1-2
  ipmp0  whitestar1-2         255.255.255.255 SPLA     00:03:ba:94:3b:74
  # ifconfig ce0 failed
  # arp -a | grep whitestar1-2
  ipmp0  whitestar1-2         255.255.255.255 SPLA     00:03:ba:94:3b:75

As above, the ssh connection is unaffected even though the IP address it
connected through has been remapped to ce1.  Bringing back up the
interface triggers "active interface" rebalancing and causes whitestar1-2
to return to its original interface (ce0):

  # ifconfig ce0 -failed
  # arp -a | grep whitestar1-2
  ipmp0  whitestar1-2         255.255.255.255 SPLA     00:03:ba:94:3b:74
  #

Similar things can be done by removing or adding interfaces from the
group, or by changing hardware addresses:

  # ifconfig ce0 group ""
  # arp -a | grep whitestar1-2
  ipmp0  whitestar1-2         255.255.255.255 SPLA     00:03:ba:94:3b:75
  # ifconfig ce0 group a
  # ifconfig ce0 ether 00:03:ba:94:3b:76
  # arp -a | grep whitestar1-2
  ipmp0  whitestar1-2         255.255.255.255 SPLA     00:03:ba:94:3b:76

Of course, there's a lot more fun to be had, but the above gives the basic
idea.  I'll cover this in an overdue blog entry once I have a chance to
catch up on sleep.  And then it's on to multicast and broadcast support.

--
meem

Reply via email to