Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Oct 1999 19:00:06 -0500 (CDT)
From:      Mohit Aron <aron@cs.rice.edu>
To:        freebsd-bugs@freebsd.org
Cc:        freebsd-net@freebsd.org, alc@cs.rice.edu (Alan Cox)
Subject:   arp errors on machines with two interfaces
Message-ID:  <199910090000.TAA28762@cs.rice.edu>

next in thread | raw e-mail | index | archive | help
Hi,
	whenever I have a FreeBSD machine containing two interfaces connected
to switched 100Mbps Ethernet, I keep getting arp errors of the form:

   arp: 128.42.1.30 is on fxp0 but got reply from 08:00:20:87:90:92 on fxp1

Here's an output of 'uname -a' on my machine:

FreeBSD idli.cs.rice.edu 3.3-RELEASE FreeBSD 3.3-RELEASE #7: Fri Oct  8
17:31:12 CDT 1999 aron@idli.cs.rice.edu:/usr/users/aron/FreeBSD-3.3-src/sys/compile/IDLI  i386


I managed to find the source of these error reports. The steps below outline 
what happens. 

     1) The FreeBSD machine in question is idli.cs.rice.edu and has two 
        network interfaces fxp0 and fxp1. The routing tables are set such that
        all packets to machine cs.rice.edu (128.42.1.30) are routed through 
	interface fxp0.

     2) Any communication between idli.cs.rice.edu and cs.rice.edu results in
        cs.rice.edu's address to be stored in the arp cache of 
	idli.cs.rice.edu. Lets assume that this has happened.
        
     3) Assume now that someone on cs.rice.edu does a login to a 3rd machine
        foo.cs.rice.edu. cs.rice.edu sends an arp broadcast on the network 
        asking for foo.cs.rice.edu's ethernet address. This broadcast is 
	received on both the interfaces of idli.cs.rice.edu.

     4) Upon getting arp packets from cs.rice.edu, idli.cs.rice.edu gets a 
        chance to refresh the address of cs.rice.edu in its arp cache (although
	idli.cs.rice.edu won't reply to the arp query). The processing for the
	arp packet received on interface fxp0 happens without any problem.

     5) However, the processing for the arp packet received on interface fxp1
        raises an arp error. This is because the routing table entry indicates
	that arp packets from cs.rice.edu should arrive on interface fxp0. 
	This raises the arp errors that keep flooding the message log. The
	code in question is in sys/netinet/if_ether.c in the function 
	in_arpinput().

Is there a better way to fix the problem other than simply turning the 
error report off ?



- Mohit


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199910090000.TAA28762>