arp bug

Daniel Gryniewicz (dang@fprintf.net)
Mon, 7 Jan 2002 18:41:44 -0500


I've encountered what I believe to be an arp bug. Here's the situation:

I have quite a number of boxes, connected together via a number of networks.
(It's a routing testbed) In this case, there are two boxes in question, box A
and box B. Here's the relevent portion of the config of both boxes:

Box A: (netbsd)
ex0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:b0:d0:99:e6:ab
media: Ethernet autoselect (100baseTX full-duplex)
status: active
inet 10.131.10.22 netmask 0xff800000 broadcast 10.255.255.255
inet6 fe80::2b0:d0ff:fe99:e6ab%ex0 prefixlen 64 scopeid 0x5
inet6 fec0:0:0:30a::16 prefixlen 64
iso 47.0.5.80.ff.ff.0.0.0.6.0.0.0.0.0.a.83.a.16.0
netmask ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.0.0.0
fxp2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
address: 00:02:b3:03:4f:05
media: Ethernet autoselect (100baseTX)
status: active
inet 10.3.37.22 netmask 0xffffff80 broadcast 10.3.37.127
inet6 fe80::202:b3ff:fe03:4f05%fxp2 prefixlen 64 scopeid 0x3
inet6 fec0:0:0:325::16 prefixlen 64
iso 47.0.5.80.ff.ff.0.0.0.4.0.0.0.0.0.a.3.21.16.0
netmask ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.0.0.0

Box B: (linux 2.4.17)
eth0 Link encap:Ethernet HWaddr 00:B0:D0:99:E5:E6
inet addr:10.131.10.13 Bcast:10.255.255.255 Mask:255.128.0.0
inet6 addr: fe80::2b0:d0ff:fe99:e5e6/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7325 errors:0 dropped:0 overruns:1 frame:0
TX packets:416 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xe880

eth4 Link encap:Ethernet HWaddr 00:02:B3:03:4C:EE
inet addr:10.3.37.13 Bcast:10.3.37.127 Mask:255.255.255.128
inet6 addr: fe80::202:b3ff:fe03:4cee/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0x6000

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.3.37.0 0.0.0.0 255.255.255.128 U 40 0 0 eth4
0.0.0.0 10.254.10.1 0.0.0.0 UG 40 0 0 eth0

If I now change the default route on box B from 10.254.10.1 to 10.3.37.22
(using route del/route add), then Box B sends the following arp, captured via
tcpdump on box A:

17:49:12.393126 arp who-has 10.3.37.22 tell 10.131.10.13

This triggers a bug in NetBSD, which is how I found out about this, but should
that be "tell 10.3.37.13"? If it was, this would work. As near as I can
tell, Linux does this type of thing whenever I change my default route from
it's initial one to one on another interface. This bug occures in (at least)
2.4.17, 2.4.5, and 2.2.20, so it's probably in all versions.

Thanks,
Daniel
---
Recursion n.:
See Recursion.
-- Random Shack Data Processing Dictionary

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/