Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Linux-HA: Dev

Re: [Linux-HA] Problem with gratuitous arps in IPaddr2

 

 

Linux-HA dev RSS feed   Index | Next | Previous | View Threaded


florian.haas at linbit

Sep 15, 2009, 6:30 AM

Post #1 of 5 (1791 views)
Permalink
Re: [Linux-HA] Problem with gratuitous arps in IPaddr2

No one seems to have acted on this when it was first posted, but we just
discussed this on #linux-ha, and Lars and Dejan were kind enough to
offer an explanation:

On 2009-07-02 13:38, Michael Schwartzkopff wrote:
> Hi,
>
> I encountered a problem with an ordinary IPaddr2 resource. In the logs I see:
>
> IPaddr2[9651]: ERROR: Could not send gratuitous arps

This appears to be the case on any system where libnet (on Debian,
libnet1-dev) is not available *at compile time*. The obvious workaround,
per Lars' and Dejan's suggestion, is to compile resource-agents on a
system with libnet installed.

An issue exists on RHEL 5, which does not have libnet available. It is,
however, available from the CentOS 5 "extras" repository.

Andrew -- assuming you are building packages for RHEL on CentOS, can you
make sure you pull libnet into the build environment?

Cheers,
Florian
Attachments: signature.asc (0.25 KB)


lmb at suse

Sep 16, 2009, 9:18 AM

Post #2 of 5 (1704 views)
Permalink
Re: [Linux-HA] Problem with gratuitous arps in IPaddr2 [In reply to]

On 2009-09-15T15:30:14, Florian Haas <florian.haas [at] linbit> wrote:

> No one seems to have acted on this when it was first posted, but we just
> discussed this on #linux-ha, and Lars and Dejan were kind enough to
> offer an explanation:

Why is this cross-posted over 3 lists? One would suffice. Ah well.

> This appears to be the case on any system where libnet (on Debian,
> libnet1-dev) is not available *at compile time*. The obvious workaround,
> per Lars' and Dejan's suggestion, is to compile resource-agents on a
> system with libnet installed.

No, the right solution would be to fix the stand-alone send_arp and drop
the libnet dependency (libnet is not exactly well maintained), and be
rid of the distinction between the two.

The send_arp.linux.c code file has different semantics than
send_arp.libnet.c (I doubt it was ever tested), and can do way more than
we need, but at the same, can't do a few things we want (like sending
both ARP types at once, backgrounding, etc).

A simple 7 step plan if someone feels like coding a bit of C:

1. rm -f send_arp.linux.c
2. mv send_arp.libnet.c send_arp.c
3. vi send_arp.c
4. s/libnet calls/standalone calls/
5. fix build
6. compile
7. ship

Patches welcome ;-)

> Andrew -- assuming you are building packages for RHEL on CentOS, can you
> make sure you pull libnet into the build environment?

RHEL packages get build on RHEL, not on CentOS.

FWIW, this also affects IPaddr.


Regards,
Lars

--
Architect Storage/HA, OPS Engineering, Novell, Inc.
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
"Experience is the name everyone gives to their mistakes." -- Oscar Wilde

_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev [at] lists
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/


andrew at beekhof

Sep 16, 2009, 9:35 AM

Post #3 of 5 (1699 views)
Permalink
Re: [Linux-HA] Problem with gratuitous arps in IPaddr2 [In reply to]

On Wed, Sep 16, 2009 at 6:18 PM, Lars Marowsky-Bree <lmb [at] suse> wrote:
>
> The send_arp.linux.c code file has different semantics than
> send_arp.libnet.c

I added extra handling to try and make them match.
Did I miss something?

Basically I took the arping source code and added extra option handling.
_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev [at] lists
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/


florian.haas at linbit

Sep 16, 2009, 10:02 AM

Post #4 of 5 (1703 views)
Permalink
Re: [Linux-HA] Problem with gratuitous arps in IPaddr2 [In reply to]

On 2009-09-16 18:18, Lars Marowsky-Bree wrote:
> On 2009-09-15T15:30:14, Florian Haas <florian.haas [at] linbit> wrote:
>
>> No one seems to have acted on this when it was first posted, but we just
>> discussed this on #linux-ha, and Lars and Dejan were kind enough to
>> offer an explanation:
>
> Why is this cross-posted over 3 lists? One would suffice. Ah well.

Misch posted it on linux-ha, it belongs in linux-ha-dev, and just in
case I'm wrong and it's in fact Pacemaker related, then Andrew is most
likely to read it quickest on pacemaker. That's all. It may be a
heuristic too crude for Your Excellency, but it worked for me. :)

>> This appears to be the case on any system where libnet (on Debian,
>> libnet1-dev) is not available *at compile time*. The obvious workaround,
>> per Lars' and Dejan's suggestion, is to compile resource-agents on a
>> system with libnet installed.
>
> No, the right solution would be to fix the stand-alone send_arp and drop
> the libnet dependency (libnet is not exactly well maintained), and be
> rid of the distinction between the two.

See, that's why I referred to a "workaround", rather than a "solution".

> The send_arp.linux.c code file has different semantics than
> send_arp.libnet.c (I doubt it was ever tested), and can do way more than
> we need, but at the same, can't do a few things we want (like sending
> both ARP types at once, backgrounding, etc).
>
> A simple 7 step plan if someone feels like coding a bit of C:
>
> 1. rm -f send_arp.linux.c
> 2. mv send_arp.libnet.c send_arp.c
> 3. vi send_arp.c
> 4. s/libnet calls/standalone calls/
> 5. fix build
> 6. compile
> 7. ship
>
> Patches welcome ;-)
>
>> Andrew -- assuming you are building packages for RHEL on CentOS, can you
>> make sure you pull libnet into the build environment?
>
> RHEL packages get build on RHEL, not on CentOS.
>
> FWIW, this also affects IPaddr.

Tough luck then. Time to prod the CentOS clustering folks. Fabian?

Cheers,
Florian
Attachments: signature.asc (0.25 KB)


lmb at suse

Sep 16, 2009, 11:36 AM

Post #5 of 5 (1690 views)
Permalink
Re: [Linux-HA] Problem with gratuitous arps in IPaddr2 [In reply to]

On 2009-09-16T18:35:54, Andrew Beekhof <andrew [at] beekhof> wrote:

> > The send_arp.linux.c code file has different semantics than
> > send_arp.libnet.c
> I added extra handling to try and make them match.
> Did I miss something?

The exit code, at least - arping exits with non-zero if no replies are
received, which is the expected behaviour for unsolicited ARPs. So yes,
it accepts the options, but I'm not sure it behaves in the same way as
the original send_arp.

I think it needs a bit more auditing to make sure - it'd be nice if
someone would step forward to tcpdump the two and check that we're
seeing the same results, and make sure send_arp.linux.c doesn't fail.

Either that, or someone needs to fix the libnet dependency. I'm actually
not much biased either way, as long as IP fail-over works in the end ;-)


Regards,
Lars

--
Architect Storage/HA, OPS Engineering, Novell, Inc.
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
"Experience is the name everyone gives to their mistakes." -- Oscar Wilde

_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev [at] lists
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Linux-HA dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.