[comp.protocols.tcp-ip] Proxy ARP question

Crispin@SUMEX-AIM.STANFORD.EDU (Mark Crispin) (08/02/88)

It appears that my message got damaged on the way out.  Anyway,
MURAKAMI@NTT-20.NTT.JP (or %NTT-20.NTT.JP@RELAY.CS.NET) is trying to
get ahold of software that supports Proxy ARP and is having problems.
He isn't directly on the Internet.  Can anyone help him?
-------

wiltzius@lll-crg.llnl.gov (Dave Wiltzius) (05/24/91)

I have searched the host requirements documents, rfc1009 and other
RFCs without finding a definitive answer to the following:  Should
proxy ARP work only for hosts on the same network, but different
subnets?  In particular, should it specifically *not* work between
hosts on different networks (such as 128.100 and 128.99)?

Nothing I have found says it should not work for the latter but
there are statements that imply it should only work for hosts on
subnetted networks when going to other hosts on the same subnetted
network (here the assumption is that the host depending upon proxy
ARP does not do subnetting).

Thanks.
  Dave Wiltzius
  Lawrence Livermore Nat'l Lab
  wiltzius@llnl.gov

hedrick@athos.rutgers.edu (Charles Hedrick) (05/24/91)

Proxy ARP seems to have been invented originally simply to handle
the problem of systems that did not implement subnets.  I believe
the first implementations worked only with addresses on other subnets
of the same network.  It's not used by a number of people for
other purposes, and many implementations will respond to requests
for addresses on other networks.  We use it for finding gateways.
That is, we don't like the idea of hardcoding gateway addresses
into 100s of config files.  So we configure most of our systems
to ARP for everything.  It's then the gateways' job to make sure
that the right gateway responds.  We're moving to Cisco's Gateway
Discovery Protocol slowly.

smoot@cs.utexas.edu (Smoot Carl-Mitchell) (05/27/91)

In article <May.23.15.48.56.1991.14837@athos.rutgers.edu> hedrick@athos.rutgers.edu (Charles Hedrick) writes:
>Proxy ARP seems to have been invented originally simply to handle
>the problem of systems that did not implement subnets.  I believe
>the first implementations worked only with addresses on other subnets
>of the same network.

By definition Proxy ARP can only respond to hosts which do not understand
subnets.  If the machine sending the ARP request understood subnets, it 
would use the usual IP routing mechanism to route its packets.  Proxy ARP
is a surrogate for real routing.  The host which does not understand subnets
thinks the whole network (which may be subnetted) is directly attached to
its own network interface.

We did add a "feature" which lets Proxy ARP check the routing table of the
responding router.  This is useful in circumstances where a particular
network segment is not really subnetted.  This allows you to establish the
subnet mask simply on the router an leave all the host network masks as if
they were on an unsubnetted network.  All that is required is to establish
static routes to each of the ``pseudo'' subnets accessible via that
interface.

This is a useful feature for sites which are slowly migrating to a fully
subnetted network, but either have machines which do not understand subnets
or are forced to slowly migrate because of time contraints.  Proxy ARP
is useful, but using true subnets is a much better alternative.
-- 
Smoot Carl-Mitchell, Texas Internet Consulting
smoot@tic.com, smoot@cs.utexas.edu

08071TCP@MSU.EDU (Doug Nelson) (05/31/91)

>By definition Proxy ARP can only respond to hosts which do not understand
>subnets.  If the machine sending the ARP request understood subnets, it
>would use the usual IP routing mechanism to route its packets.

This definition is a little too simplistic.  For example, we use subnets
here, but have multiple subnet sizes.  Proxy ARP lets hosts on the big
subnet find systems on the small subnets which are carved out of the
big one.

Doug Nelson                             nelson@msu.edu
Michigan State University

geertj@philica.ica.philips.nl (Geert Jan de Groot) (06/01/91)

In article <97879@lll-winken.LLNL.GOV> wiltzius@lll-crg.llnl.gov (Dave Wiltzius) writes:
>I have searched the host requirements documents, rfc1009 and other
>RFCs without finding a definitive answer to the following:  Should
>proxy ARP work only for hosts on the same network, but different
>subnets?  In particular, should it specifically *not* work between
>hosts on different networks (such as 128.100 and 128.99)?

It probably doesn't work because the 'client' (ARP-requestor) has
no reason to ARP for a host that is not on his network. Foreign
networks should be routed, not proxy-arped.

The only reason why proxy arp works with subnetting is because a
client (wrongly) assumes he can reach the other host on the same
network and therefore ARPs instead of routes. This assumption was
made by older software that did not do subnetting. I have never 
seen software that didn't route for foreign networks.

If you can get your client software to ARP for foreign networks,
then I guess proxy-arp will work.

Geert Jan


--8<--nip-nip---------------------------------------------------------------

Geert Jan de Groot, Philips ICA, Weisshausstrasse 1, 5100 Aachen, Germany
Email: geertj@ica.philips.nl or ..!hp4nl!philica!geertj
Phone: +49 241 6003 714  FAX: +49 241 6003 709

jason@hpcndjdz.CND.HP.COM (Jason Zions) (06/03/91)

>If you can get your client software to ARP for foreign networks,
>then I guess proxy-arp will work.

On many systems, declaring ones self as the default router will cause the
system to ARP for *all* addresses, i.e.

# /etc/route add default `hostname` 0

will do the trick.
--
This is not an official statement of The Hewlett-Packard Company. No
warranty is expressed or implied. The information included herein is not to
be construed as a committment on HP's part. The devil made me do it. This
won't save me from the lawyers' wrath, but it can't hurt.

Jason Zions			The Hewlett-Packard Company
Colorado Networks Division	3404 E. Harmony Road
Mail Stop 102			Ft. Collins, CO  80525  USA
jason@cnd.hp.com		(303) 229-3800