2. Why use Proxy ARP with subnetting?
The applications for using Proxy ARP with subnetting are fairly specific.
In my case, I had a wireless Ethernet card that plugs into an 8-bit ISA slot. I wanted to use this card to provide connectivity for a number of machines at once. Being an ISA card, I could use it on a Linux machine, after I had written an appropriate device driver for it - this is the subject of another document. From here, it was only necessary to add a second Ethernet interface to the Linux machine and then use some mechanism to join the two networks together.
For the purposes of discussion, let network 0 be the local Ethernet connected to the Linux box via an NE-2000 clone Ethernet interface on eth0. Network 1 is the main network connected via the wireless Ethernet card on eth1. Machine A is the Linux box with both interfaces. Machine B is any TCP/IP machine on network 0 and machine C is likewise on network 1.
Normally, to provide the connectivity, I would have done one of the following:
Used the IP-Bridge software (see the Bridge mini-HOWTO) to bridge the traffic between the two network interfaces. Unfortunately, the wireless Ethernet interface cannot be put into "Promiscuous" mode (ie. it can't see all packets on network 1). This is mainly due to the lower bandwidth of the wireless Ethernet (2MBit/sec) meaning that we don't want to carry any traffic not specifically destined to another wireless Ethernet machine - in our case machine A - or broadcasts. Also, bridging is rather CPU intensive!
Alternatively, use subnets and an IP-router to pass packets between the two networks (see the IP-Subnetworking mini-HOWTO). This is a protocol specific solution, where the Linux kernel can handle the Internet Protocol (IP) packets, but other protocols (such as AppleTalk) need extra software to route. This also requires the allocation of a new IP subnet (network) number, which is not always an option.
In my case, getting a new subnet (network) number was not an option, so I wanted a solution that allowed all the machines on network 0 to appear as if they were on network 1. This is where Proxy ARP comes in. Other solutions are used to connect other (non-IP) protocols, such as netatalk to provide AppleTalk routing.