arp: <some ether addr> is using my IP address <some IP addr>

Olivier Nicole Olivier.Nicole at ait.ac.th
Wed Jun 11 21:19:36 PDT 2003


Hi,

I know the problem is not new, but...

I am using 4.8-RELEASE, 2 interfaces 3com 905b (xl0 and xl1), and one
RealTeck, no IP on the 3 com, one fixed IP on the rl0.

I bridge between xl0 and xl1.

Interface rl0 and xl1 are connected to the same switched ethernet
network.

Sometime, the interface Xl1 answers to arp requests and mess up the
communication between that machine and others. And then I get the
above mentionned message.

I tried to configure the 3com interfaces with -arp but it does not
help.

Looking at teh source of sys/netinet/if_ether.c, I see:

	/*
	 * No match, use the first inet address on the receive interface
	 * as a dummy address for the rest of the function.
	 */
	TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)
		if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET) {
			ia = ifatoia(ifa);
			goto match;
		}
	/*
	 * If bridging, fall back to using any inet address.
	 * This is probably incorrect, the right way being try to match
	 * addresses for interfaces in the same cluster, so if we
	 * get here we should always drop the packet.
	 */

The first part was corrected apparently back in 2001, but it seems
that when ding bridge, we are still left with some dirty situation.

Is there any way to correct that behaviour? (except than forcing
static ARP in every single host that would have to talk to that guy)

Best regards,

Olivier


More information about the freebsd-net mailing list