Re: Linux 2.2 - BSD/OS 4.1 ARP incompatibility

From: David Luyer (david_luyer@pacific.net.au)
Date: Sat Sep 02 2000 - 06:49:28 EST


Andi Kleen wrote:
> > According to the standards, who is in the wrong? To me it looks like Linux
> > is the misbehaved OS in this case.
>
> Strictly it is your routing which is wrong, because you're giving different
> routing information to BSDI and Linux.

Thanks for the workaround. Unfortunately I'm not currently in the same
state as the systems with this problem so I haven't yet put a kernel which
will support the tools required to test the workaround on the network in
question.

I see that the routing tables may be the core of the problem but it looks like
the problem can so simply be solved by choosing the local IP address in the
subnet which you are sending the ARP request to, and this should never break
anything, it only doesn't fix the case where a machine has a direct route to
a network it doesn't have an interface in.

Covering the situation again:

    network 10.0.0.0/24
    in transition to 192.168.0.0/24
    new machines only in 192.168.0.0/24
    machine 10.0.0.1 == 192.168.0.1, Linux
    wants to talk to new machine 192.168.0.2, BSD/OS
    if eth0 = 10.0.0.1 and eth0:0 = 192.168.0.1 it sends
         "hi I'm 10.0.0.1 looking for 192.168.0.2"
    which 192.168.0.2 completely ignores (either not knowing where to send
    the response, or not recognising the packet as destined for itself)

Now Alan's suggestion was to "fix the routing table", ie, to add a route for
10.0.0.0/24 as a direct route on the 192.168.0.2 interface.

After doing this, the BSD/OS system still ignored the ARP requests! It didn't
even help to add a secondary IP of 10.0.0.2.

If the machine would say "hi I'm 192.168.0.1 looking for 192.168.0.2"
(choosing the source IP for the arp request by the IP it is searching
for) then it would just work.

For comparison, both Cisco routers and BSD/OS work this way, they choose
which IP to put in an ARP request based on what IP address they are looking
for. Linux is the odd one out in that it always chooses the primary interface
IP to put in the ARP request on a given interface.

David.

-- 
----------------------------------------------
David Luyer
Senior Network Engineer
Pacific Internet (Aust) Pty Ltd
Phone:  +61 3 9674 7525
Fax:    +61 3 9699 8693
Mobile: +61 4 1064 2258, +61 4 1114 2258
http://www.pacific.net.au        NASDAQ: PCNTF
<< fast 'n easy >>
----------------------------------------------

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



This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:13 EST