Re: Is Linux 2.2+ proxy ARP broken?

From: Ion Badulescu (ionut@moisil.cs.columbia.edu)
Date: Thu Apr 06 2000 - 15:35:05 EST


In article <cs.lists.linux-kernel/al87leb9l5f.fsf@sirppi.helsinki.fi> you wrote:

> Standard *bsd behavior (which works (at least) on {Net,Open}BSD and certain
> commercial *NIXes):
>
> arp -s <ip> <ether_addr> pub
>
> => whenever ARP request for <ip> shows up, we reply with <ether_addr>.
>
> I seem to be unable to reproduce this behavior with Linux (at least 2.2 or
> 2.3.99pre series); it seems that hwaddr for published addrs isn't even
> written down (at least, /proc/net/arp says it's 00:00:00:... or *, don't
> remember which), and nothing of interest occurs when ARP request shows up
> on the ethernet interface.

It's not supported, the underlying data structures do not have a field for
the supplied MAC address. What the code does is try to match the supplied MAC
address against the MAC addresses of all interfaces, then store a pointer to
the matching interface structure in the proxy arp structure.

I've written a patch to allow this behavior by adding a MAC address field to
struct pneigh_entry, but it's mostly untested and rather in-elegant. I needed
it to allow the sharing of a virtual MAC address between two different
machines, and I got it to the point where it correctly replies to the ARP
request and gives of the virtual MAC address. I'd would like to know however
if this is a legitimate thing to have in the official kernel..

Ion

-- 
  It is better to keep your mouth shut and be thought a fool,
            than to open it and remove all doubt.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Apr 07 2000 - 21:00:17 EST