Re: [LARTC] proxy arp problem

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello there, Don,

ARP cache woes!  Got too much cache?  ;)

 : Now I move the host down to the other side of the firewall, which is
 : doing arp proxy.  In order to do that, of course, I have to add a
 : route to the firewall.

So, in short, you have a router which is caching a link layer address much
longer than you want.  I, too, have had this problem in the past, and,
when I am in control of the router, I kick it.  When I'm not in control of
it, I have called the person (in the colocation facility, at the site, in
the data center) who is in control and have that person kick the router.

Not so long ago, I became aware that some routers, contrary to my
expectations, actually obey gratuitous ARP.  I have only tested this on
linux boxen, so I don't know how other operating systems handle gratuitous
ARP and link layer address caching.

 : [.... the ] timeout on the router is 4 hours (!!)  (Is this common?
 : Or even reasonable?  Anyone know what values are in common use?)

I do not find 4 hours to fall in the range of a reasonable ARP cache
lifetime.  ARP doesn't consume very much bandwidth.  This is ethernet,
after all.

 : I notice rfc1122 (p22) suggests timeouts on the order of a minute,
 : which is what I expected.

Yes, dozens of seconds to several minutes seems a reasonable neighbor
table lifetime.

 : Even better would be some mechanism that, when we add the route to the
 : firewall could figure out who on either end should be sent such
 : packets.

Automated or manual?  If you are manually adding the route, you could use
arping to create a gratuitous ARP frame.  If the router respects
gratuitous ARP, your task is done.  If not, then I can see only one
alternative.  Sharpen up your steel-toe boots, and give that router a
kick.

Automated?  Well....if you can do it manually, you should be able to
trigger it automatically, right?

 : Perhaps it could remember all of the arp requests that it had
 : seen (these are, after all, sent to broadcast, so it wouldn't need to
 : be in promiscuous mode) it could see from the new route (1) which ip
 : addresses had been used in that range, (2) which ip addresses those
 : addresses had tried to talk to directly.

I'm not quite sure what you mean here...

 : I'll be interested in any other ideas, and even more interested in
 : anything that has already been implemented to solve this problem.

I'd suggest send_arp in the fake software from the linux-ha project [1]
(here's an article showing send_arp for address takeover [2]).  If you
don't wish to compile, arping [3] works marvelously for creating
gratuitous ARP frames [4].

-Martin

 [1]  http://www.linux-ha.org/failover/
      http://www.vergenet.net/linux/fake/download/latest/
 [2]  http://www.onlamp.com/pub/a/onlamp/2003/04/03/linuxhacks.html
 [3]  http://linux-ip.net/html/tools-arping.html
 [4]  http://linux-ip.net/html/ether-arp.html
      http://linux-ip.net/html/ether-arp.html#ex-ether-arp-gratuitous

-- 
Martin A. Brown --- SecurePipe, Inc. --- mabrown@xxxxxxxxxxxxxx



[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux