kern/129730: respond with wrong ARP.

Remko Lodder remko at elvandar.org
Thu Dec 18 05:00:11 PST 2008


The following reply was made to PR kern/129730; it has been noted by GNATS.

From: "Remko Lodder" <remko at elvandar.org>
To: "KOIE Hidetaka" <koie at suri.co.jp>
Cc: freebsd-gnats-submit at freebsd.org,
 qingli at FreeBSD.org
Subject: Re: kern/129730: respond with wrong ARP.
Date: Thu, 18 Dec 2008 13:56:04 +0100 (CET)

 > I built FreeBSD-current at 2008-12-18, and boot it.
 >
 > Some machine in my network cannot connect a DNS server...
 > The finding is my FreeBSD machine responds to ARP request for a 3rd
 > machine with a wrong ARP response like this:
 >
 > 6:50:26.320648 00:1b:78:9a:47:db > Broadcast, ethertype ARP (0x0806),
 > length 42: arp who-has 10.1.100.1 tell 10.1.6.59
 > 16:50:26.320784 00:e0:81:74:ef:e4 > 00:1b:78:9a:47:db, ethertype ARP
 > (0x0806), length 60: arp reply 10.1.100.1 is-at 00:1b:78:9a:47:db
 > 16:50:26.320851 00:30:48:99:64:8c > 00:1b:78:9a:47:db, ethertype ARP
 > (0x0806), length 60: arp reply 10.1.100.1 is-at 00:30:48:99:64:8c
 > # 00:1b:78:9a:47:db is a requester (10.1.6.59).
 > # 00:e0:81:74:ef:e4 is my machine (10.1.3.67).
 > # 00:30:48:99:64:8c is a real responder (10.1.100.1).
 >
 > line 1 is ARP request.
 > line 2 is ARP response by my machine with wrong.
 > line 3 is ARP correct response.
 >
 > note: bridging and proxyall are not specified on my machine.
 >
 >>How-To-Repeat:
 >
 >>Fix:
 > I don't know. (but, a bug may be in r186119).
 >
 > Now, to suppress the wrong behavior,
 > Index: if_ether.c
 > ===================================================================
 > RCS file: /.../.../src/sys/netinet/if_ether.c,v
 > retrieving revision 1.187
 > diff -u -p -r1.187 if_ether.c
 > --- if_ether.c  17 Dec 2008 00:14:28 -0000      1.187
 > +++ if_ether.c  18 Dec 2008 08:52:44 -0000
 > @@ -660,6 +660,7 @@ reply:
 >                 (void)memcpy(ar_tha(ah), ar_sha(ah), ah->ar_hln);
 >                 (void)memcpy(ar_sha(ah), enaddr, ah->ar_hln);
 >         } else {
 > +goto drop; /*KOIE*/
 >                 if (la == NULL) {
 >                         if (!V_arp_proxyall)
 >                                 goto drop;
 >
 
 Hello,
 
 I seem to be hitting the same behaviour, I did a roll back last night, and
 need to finish testing with this. I'll reply-all when I have more
 information about this.
 
 Cheers,
 remko
 
 
 -- 
 /"\   Best regards,                      | remko at FreeBSD.org
 \ /   Remko Lodder                       | remko at EFnet
  X    http://www.evilcoder.org/          |
 / \   ASCII Ribbon Campaign              | Against HTML Mail and News
 
 


More information about the freebsd-bugs mailing list