Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.mel.connect.com.au!munnari.OZ.AU!news.ecn.uoknor.edu!paladin.american.edu!zombie.ncsc.mil!news.mathworks.com!newsfeed.internetmci.com!btnet!zetnet.co.uk!demon!youngman.demon.co.uk From: jeremy@youngman.demon.co.uk (Jeremy Youngman) Newsgroups: comp.unix.bsd.bsdi.misc Subject: Proxy ARP Date: Wed, 17 Jan 1996 19:53:08 GMT Lines: 47 Message-ID: <821908436.13431@youngman.demon.co.uk> NNTP-Posting-Host: youngman.demon.co.uk X-NNTP-Posting-Host: youngman.demon.co.uk X-Newsreader: Forte Free Agent 1.0.82 Hi, please can somebody help me with a Proxy ARP problem? Please see below for details, but IN SUMMARY I am looking for anybody who is successfully using Proxy ARP on BSD v201 (in particular where you're publishing one hardware address and actually using another). ----- ----- ----- | |1 1| |2 1| | | A +-----+ B +-----+ C + | | | | | | ----- ----- ----- I have three hosts A, B and C. A and C have one interface each, B has two. A-B and B-C are different TCP/IP subnets so host C has to send packets for host A via host B. This could be done via a routing table on host C however I'm trying to use Proxy ARP on host B. The idea is that when host C arp's for the hardware address of host A, that arp is seen by host B which replies with the hardware address of its (B's) interface2. Then C will send packets to B's interface2, which B will forward to host A using B's own routing tables. This means everybody's happy and I don't need to change anything on host C [in real life they'll be many hosts like C, which is why I want to go for Proxy ARP on B]. Okay so far? However host B also has to keep details of host A's hardware address in its (B's) arp cache. In other words, host B "knows" of two hardware addresses for host A - (i) one which it publishes to hosts like C and (ii) one which it uses itself. This is a valid thing to do, at least on some TCP/IP stacks, but I'm having problems on my BSD v201 software. When I look at host B's arp table it already has an entry for A's IP address pointing to hardware address of A's interface. When I try: arp -s <IP_addr_of_A> <HW_addr_of_B_iface2> pub I get the error "Writing to socket: File already exists" (or text pretty similar). In other words it is not letting me add a proxy entry. I tried deleting the existing arp entry for host A but the software either put it back straight away or put it back marked as (incomplete) - but that's another story. Anybody out there doing proxy arp like this?