Greetings,

We've all probably had or seen the carp error similar to:

   carp0: incorrect hash

In most cases that I've seen on this and other lists it was because of
something obvious like a mismatched pass or two supposed carp partners
using different vhid's.

I've taken a look at the code but wanted to verify.  What pieces of
information are:

   1) used to determine that a particular carp packet is intended for
      you carp host?  

   2) given that a carp host knows that a particular carp packet is one
      that it cares about, how does it verify that all of the parameters
      contained within are legit?

I believe the answer to 1 is the version, type and vhid from the carp
packet.  2 I'm not so sure about, but I'm assuming that at least part of
this decision is based on the pass.  

I had a situation earlier today that I could not explain.  Put simply,
I had hosts A, B, C and D all on the same /24.  Hosts A and B where
a carp pair for 192.168.0.1 and hosts C and D were a carp pair for
192.168.0.4.  If A and B were using the same vhid as C and D, both ends
would complain about an incorrect hash.  Having never been in that
situation before, I figured the vhid's were clashing since the pass
happened to be the same on all 4 machines.  I destroyed carp0 and did
a 'sh /etc/netstart carp0'.  I was still getting the messages but they
seemed less frequent.  I worked on other things which required a reboot
and from then on, the messages were gone.  The two carp pairs have
functioned as expected ever since. 

Was my fix (prior to rebooting) the correct one?  If so, why did
I continue to get the incorrect hash messages?  Gremlins or operator
error?

If the answer to all this is to just ensure that if I ever have more
than one carp pair on the same network to ensure that I have different
vhids, does anyone have a vhid numbering scheme that they've found
workable?  I had been using interface number +1 (so the carp for em0
would be vhid 1, etc).

Any input would be much appreciated!

-jon

Reply via email to