bruce@ssc-vax.UUCP (Bruce Stock) (03/29/89)
After reading many references to the use of proxy arp, I decided to consult RFC 925 to get the details. The description there did not match the mechanism I had mentally envisioned from descriptions of what proxy arp does. In brief, the RFC describes a mechanism for extending the arp reply service by expanding the arp cache in the gateway, via a somewhat elaborate means, to include end systems which the gateway can get to on other networks. From reading about the service offered by proxy arp elsewhere, I had assumed that a gateway would implement it not by an expansion of the arp cache, but by coupling arp with the routing table. E.G.: 1. Recieve Arp request 2. Consult routing table to see if I can reach the destination 3. If I can, reply to the arp with my physical address 4. If not, do nothing. So my question is: How is it done in the real world? Per RFC925, per above, or otherwise? Regards, Bruce Stock uw-beaver!ssc-vax!bruce
hedrick@geneva.rutgers.edu (Charles Hedrick) (03/30/89)
RFC 925 does not describe how proxy ARP is implemented. The RFC proposes a new kind of packet switch, which is somewhere between a normal IP gateway and a bridge. ARP is used as part of the design, but this is *not* proxy ARP as currently used. (Indeed that term does not occur in the RFC.) RFC 925 is describing something that looks a lot like a learning bridge. Like a bridge, there is no mapping between IP address and network topology, i.e. no subnetting. Like a bridge, hosts are listed individually in the routing tables, unlike gateways, which only keep track of routes to nets and subnets (except for the directly connected subnets, which need ARP caches). It's an interesting proposal, but it isn't proxy ARP as currently used. Proxy ARP is used with conventional IP gateways (routers). It is exactly as you describe: a gateway responds to ARP requests for targets on the other side of the gateway. It decides whether to respond to an ARP by looking in its routing tables. There are two uses for proxy ARP - some gateways implement it only for subnets of the local network. The intention is to handle the problem of hosts that do not understand subnets. - some gateways implement it for all destinations. In that case it is possible for a host to use ARP as a gateway discovery technique for all destinations. I believe proxy ARP was originally invented only to handle hosts that don't implement subnets. However we use the second approach at Rutgers: where possible our hosts are set to issue ARP requests for all destinations.