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>