LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

[Keepalived] Release 0.5.5 available

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: [Keepalived] Release 0.5.5 available
Cc: Steve Grevemeyer <steve@xxxxxxxxxxxxxx>, keepalived-devel@xxxxxxxxxxxxxxxxxxxxx, keepalived-announce@xxxxxxxxxxxxxxxxxxxxx
From: Alexandre Cassen <Alexandre.Cassen@xxxxxxxxxx>
Date: Wed, 10 Apr 2002 03:35:59 +0200
Hi all,

after a too much busy time, I have taken 5 days to work on VRRP re-design.
The previous VRRP framework has been revisited and design has been enhanced.
The main change are the creation of a netlink kernel reflector (based on zebra)
, a MII BMSR status poller (so I highly recommand using such NIC: eepro100,
3C905, ..). Have added support to LVS sync daemon. more details in changelog.

Currently IPSEC-AH still buggy due to IPSEC seq_num de-synchronization.

I would specially thanks Steve Grevemeyer <steve@xxxxxxxxxxxxxx> for
giving me access to its pre-prod LVS/keepalived env to debug my VRRP stuff.

download location: http://keepalived.sourceforge.net


The next efforts:
* Handle IPSEC-AH seq_num synchronization in fallback state.
* enhance the netlink kernel reflector to handle multiple primary/secondary
  IP address. That way healthcheckers framework will be able to use interface
  informations before performing check => ie: doesn t perform check if IP
  address is not set.
* Add support to the nice iparp patch provided by Julian. That way VRRP will
  be able to deal with multiple VMAC per interface.
* Documentation on the VRRP state machine explaining state transition matrix.
* Doc, doc, doc...

ChangeLog is :

2002-04-10  Alexandre Cassen  <acassen@xxxxxxxxxxxx>
        * keepalived-0.5.5 released.
        * Fixed a gratuitous ARP porting bug.
        * VRRP : Review the data structure to be more generic
          and clean with the rest of the code.
        * VRRP : Remove the interface flags (NIC) ioctl functions
        * VRRP : Created an interface (NIC) library giving access
          to common interface helpers functions.
        * VRRP : Created an interface lookup function creating a global
          interface structure during daemon bootstrap. Consist of a netlink
          RTM_GETLINK & RTM_GETADDR lookup, so we can work with
          a userspace interface representation.
        * VRRP : Create a netlink kernel reflection framework updating
          dynamically our interface structure according to kernel
          netlink broadcast. This design is highly inspired from zebra.
          => Reflection mean : wait for netlink kernel broadcast, if received,
          wakeup netlink filter to update our userspace representation.
          Prefer this design instead of a delayed netlink poller. That way
          we reduce global overhead.
        * VRRP : VRRP need to detect failure from many places.
          If netlink can notify for many troubles like mainly
          IFF_UP|DOWN & IFF_RUNNING, those flags are kernel drivers dependent.
To reduce takeover time and performance we need to have informations like : Does the media link is present ?. The fact is that most of the new NICs
          own embended hardware chip providing such informations. So created a
          MII transceiver status register thread poller. Monitoring Basic Mode
          Status Register (BMSR) of the MII status words. Waiting for kernel
          NIC drivers hackers to support this functionnality through netlink
          (=> Like a IFF_RUNNING update broadcast).
        * VRRP : Linked the state machine to the global interface structure.
          NIC failure/events are handled.
        * VRRP : Review the whole state machine code to be more realistic. The
          State transition diagram described into the RFC2338 is an obtimist
          view. The VRRP state transition diagram implemented here is :

                              +---------------+
                   +--------->|               |<-------------+
                   |          |  Initialize   |              |
                   |   +------|               |----------+   |
                   |   |      +---------------+          |   |
                   |   V                                 V   |
           +---------------+                       +---------------+
           |               |---------------------->|               |
           |    Master     |                       |    Backup     |
           |               |<----------------------|               |
           +---------------+                       +---------------+
            ^   |     |                                   |    ^
            |   |     |       +---------------+           |    |
            |   |     +------>|  Dummy Master |           |    |
            |   |             +---------------+           |    |
            |   |                     |                   |    |
            |   |                     V                   |    |
            |   |             +---------------+           |    |
            |   +------------>|               |<----------+    |
            |                 |     Fault     |                |
            +-----------------|               |----------------+
                              +---------------+

        * VRRP : Robust multicast handling. Something really strange
          is : after a NIC failure (in fallback mode) without closing
          the socket, multicast advert can be sent but not received ?
          really strange don t know why probably an IGMP resubmit ?.
          So multicast group is left during failover (media trouble,
          IFF_DOWN or !IFF_RUNNING). In fallback, we register a new
          membership and synchronize all the packet dispatcher fds.
        * VRRP : Fixed a checksum trouble using password authentication.
        * VRRP : Added support to the LVS sync daemon. This permit
          LVS sync daemon to be state drived by a specific VRRP instance.
        * Review the autoconf/automake to be more generic.
        * Some cosmetics patches.


All comments, inputs & points of view are welcome,

Best regards,
Alexandre



<Prev in Thread] Current Thread [Next in Thread>
  • [Keepalived] Release 0.5.5 available, Alexandre Cassen <=