[comp.dcom.sys.cisco] Parallel routers running proxy-arp

echan@cadev6.intel.com (Eldon Chan ~ ) (04/25/91)

As in the diagram, what would happen if router R1 crashed after the
unsubnetted_host established the connection to subnetted-host2 via
proxy-arp from R1?  Would the unsubnetted_host send another ARP request
or is it going to wait until the ARP entry aged out (20min?)

On the gateway side, would both routers response to the ARP
request for subnetted-host2  or just the router has a better route? In
the later case, I probably have to assign different default metric on
the routers to force a primary and a secondary route. Does IGRP take
care of this and provide some kind of load balancing? 


      subnetted-host1       unsubnetted_host
               |               |
  ----------------------------------------------
                           |             |
                           |             |
                        ------        -------
                        |  R1 |       |  R2  |  Both routers are 
                        ------        -------   running proxy-arp
                           |             |
                           |             |
  ----------------------------------------------
                |
        subnetted-host2

RFC1122 mentioned that there are four mechanisms to implement ARP
timeout.  I know most UNIX aged the arp table every minute, timeout the
incomplete entries every 3 minutes and complete entries every 20
minutes. What happens when the connection drops ? 

Would someone tell me which vendor is using which mechanism or point me
to the source files that I can check? In particular I am interested in
SunOS, Ultrix and AIX.

Thanks in advance.

Eldon Chan
echan@scdt.intel.com
-----------------------------------------------------------------------
-----------------------------------------------------------------------
RFC1122                        LINK LAYER                   October 1989



            DISCUSSION:
                 The ARP specification [LINK:2] suggests but does not
                 require a timeout mechanism to invalidate cache entries
                 when hosts change their Ethernet addresses.  The
                 prevalence of proxy ARP (see Section 2.4 of [INTRO:2])
                 has significantly increased the likelihood that cache
                 entries in hosts will become invalid, and therefore
                 some ARP-cache invalidation mechanism is now required
                 for hosts.  Even in the absence of proxy ARP, a long-
                 period cache timeout is useful in order to
                 automatically correct any bad ARP data that might have
                 been cached.

            IMPLEMENTATION:
                 Four mechanisms have been used, sometimes in
                 combination, to flush out-of-date cache entries.

                 (1)  Timeout -- Periodically time out cache entries,
                      even if they are in use.  Note that this timeout
                      should be restarted when the cache entry is
                      "refreshed" (by observing the source fields,
                      regardless of target address, of an ARP broadcast
                      from the system in question).  For proxy ARP
                      situations, the timeout needs to be on the order
                      of a minute.

                 (2)  Unicast Poll -- Actively poll the remote host by
                      periodically sending a point-to-point ARP Request
                      to it, and delete the entry if no ARP Reply is
                      received from N successive polls.  Again, the
                      timeout should be on the order of a minute, and
                      typically N is 2.

                 (3)  Link-Layer Advice -- If the link-layer driver
                      detects a delivery problem, flush the
                      corresponding ARP cache entry.

                 (4)  Higher-layer Advice -- Provide a call from the
                      Internet layer to the link layer to indicate a
                      delivery problem.  The effect of this call would
                      be to invalidate the corresponding cache entry.
                      This call would be analogous to the
                      "ADVISE_DELIVPROB()" call from the transport layer
                      to the Internet layer (see Section 3.4), and in
                      fact the ADVISE_DELIVPROB routine might in turn
                      call the link-layer advice routine to invalidate
                      the ARP cache entry.

                 Approaches (1) and (2) involve ARP cache timeouts on
                 the order of a minute or less.  In the absence of proxy
                 ARP, a timeout this short could create noticeable
                 overhead traffic on a very large Ethernet.  Therefore,
                 it may be necessary to configure a host to lengthen the
                 ARP cache timeout.

alan@curta.cc.columbia.edu (Alan Crosswell) (04/29/91)

To concur about proxy-arp.  SunOS and IBM VM TCP/IP arp implementations
are broken.  They never age out.  We had tried this set up.  Our fix on
the unix side is to have a cron job that runs every 5 minutes or so and
explicity flush the arp cache.
/a

oberman@ptavv.llnl.gov (04/29/91)

In article <34622@boulder.Colorado.EDU>, alan@curta.cc.columbia.edu (Alan Crosswell) writes:
> To concur about proxy-arp.  SunOS and IBM VM TCP/IP arp implementations
> are broken.  They never age out.  We had tried this set up.  Our fix on
> the unix side is to have a cron job that runs every 5 minutes or so and
> explicity flush the arp cache.

I'm not so sure of this. The problem is that if an ARP entry is accessed, it
resets the timeout. And there is no way to know if the access pointed to the
right place. So any entry that gets regular access NEVER times out. But it's an
ARP problem, not anything wrong with SunOs.

R. Kevin Oberman			Lawrence Livermore National Laboratory
Internet: oberman@icdc.llnl.gov		(415) 422-6955

P.S. Who would ever believe me saying anything to defend SunOs?

Disclaimer: Don't take this too seriously. I just like to improve my typing
and probably don't really know anything useful about anything.