Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Oct 2001 14:27:33 +0700
From:      Max Khon <fjoe@iclub.nsu.ru>
To:        "Jose M. Alcaide" <jose@we.lc.ehu.es>
Cc:        Harti Brandt <brandt@fokus.gmd.de>, Terry Lambert <tlambert2@mindspring.com>, Beech Rintoul <akbeech@anchoragerescue.org>, current@FreeBSD.ORG, net@FreeBSD.ORG
Subject:   Re: arp: <some ether addr> is using my IP address 0.0.0.0!  ??!?!?
Message-ID:  <20011020142733.A48164@iclub.nsu.ru>
In-Reply-To: <20011019145246.D327@v-ger.we.lc.ehu.es>; from jose@we.lc.ehu.es on Fri, Oct 19, 2001 at 02:52:46PM %2B0200
References:  <3BCEEBDD.46121235@mindspring.com> <20011019110116.Y1072-100000@beagle.fokus.gmd.de> <20011019145246.D327@v-ger.we.lc.ehu.es>

next in thread | previous in thread | raw e-mail | index | archive | help
hi, there!

> Same here. My -CURRENT system is replying to those ARP request which carry
> 0.0.0.0 as sender IP address:
> 
> 14:43:33.706099 arp who-has 158.227.48.193 (ff:ff:ff:ff:ff:ff) tell 0.0.0.0
> 14:43:33.706152 arp reply 0.0.0.0 is-at 0:d0:b7:3e:a0:fb
> 
> > I think this is because I have an interface that is up and has NO IP
> > address:
> 
> I don't think so:
> 
> # ifconfig -a
> fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         inet 158.227.6.52 netmask 0xffffff00 broadcast 158.227.6.255
>         inet6 fe80::2d0:b7ff:fe3e:a0fb%fxp0 prefixlen 64 scopeid 0x1 
>         inet6 fec0::9ee3:634 prefixlen 120 
>         ether 00:d0:b7:3e:a0:fb 
>         media: Ethernet autoselect (100baseTX <full-duplex>)
>         status: active
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
>         inet6 ::1 prefixlen 128 
>         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
>         inet 127.0.0.1 netmask 0xff000000 
> 
> Something is broken in the ARP implementation of -CURRENT.

please try this patch (provided by jlemon)

Index: if_ether.c
===================================================================
RCS file: /ncvs/src/sys/netinet/if_ether.c,v
retrieving revision 1.85
diff -u -r1.85 if_ether.c
--- if_ether.c	2001/10/17 18:07:05	1.85
+++ if_ether.c	2001/10/19 15:38:07
@@ -593,10 +593,12 @@
 		    isaddr.s_addr == ia->ia_addr.sin_addr.s_addr)
 			goto match;
 	/*
-	 * No match, use the first address on the receive interface
+	 * No match, use the first inet address on the receive interface
 	 * as a dummy address for the rest of the function.
 	 */
-	ifa = TAILQ_FIRST(&ifp->if_addrhead);
+	TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)
+		if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET)
+			break;
 	if (ifa == NULL) {
 		m_freem(m);
 		return;

/fjoe

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?20011020142733.A48164>