The configuration and use of Proxy-ARP is really quite simple, but is generally found to be quite confusing because what is actually being done behind the scenes is not understood. "True" bridging is a OSI layer 2 (link layer, e.g., Ethernet) protocol that makes use of only the 'Address Routing Protocol' (ARP) that only uses MAC address resolution. Bridging does not look at ip addresses of the connecting machine or make use of routing tables and ip-filtering, thus making OSI layer 3 (network layer, e.g., IPv4 addresses) filtering impossible. Routing is done on the OSI layer 3 and makes use of routing tables and firewalling by use of ip addresses and routing tables setup on the machine. Proxy-ARP acts as if it is a consolidation of both features of bridging and routing whereas a client machine is bound to a designated ip address that is answered by one (or more) of the router's interfaces, but is done at OSI layer 3 so that filtering of the traffic on this ip address can be done by the router instead of being "blindly" passed through the router.
Proxy-ARP has been an available feature of Linux kernels since the
2.0.x series and is technically enabled by the kernel through a set of
boolean files on the /proc file system
located at '/proc/sys/net/ipv4/conf/<interface>/proxy_arp
'.
The boolean toggle (0|1) in this set of files "disables|enables"
proxy-arp by interface. Rather than setting this option by hand editing,
proxy-arp is generally enabled by the firewall/filtering program on the
system. Arp-cache entries can also be manually set (persistent) by use of
the 'arp' utility. Many firewall applications, such as Shorewall,
make use of both 'arp' and the kernel proc files. All traffic
filtering with proxy-arp must be configured with the firewall/filtering
application that you are using.
A couple of things you will want to keep in mind is that:
Proxy-ARP is not bridging, so DO NOT CONFIGURE BRIDGE OPTIONS!!!
Proxy-ARP is a function of routing, so you MUST configure the interfaces as such.
Proxy-ARP ip addresses are not defined on the router with the ip address/netmask/etc...other than the necessary settings for the interfaces themselves.
!!!DO NOT CONFIGURE THE INTERFACE(S) WITH THE PROXY-ARP'ed IP ADDRESSES USED BY OTHER MACHINES!!!