Re: Linux 2.2 - BSD/OS 4.1 ARP incompatibility

From: David Luyer (david_luyer@pacific.net.au)
Date: Mon Sep 04 2000 - 12:07:22 EST


> just try "traceroute -s 111.111.111.111 d.e.f.2"

> What shows this simple test?
>
> arp who-has d.e.f.2 tell a.b.c.1
>
> or
>
> arp who-has d.e.f.2 tell d.e.f.1

When I tried traceroute -s d.e.f.1 d.e.f.2, it worked, the first time the
Linux box in question talked to the BSD/OS in question without the aid of
an extra host spoofing responses to the arp queries in question.

The command you suggested also had the desired effect. However...

# arp -d d.e.f.2
# traceroute d.e.f.2
traceroute to d.e.f.2, 30 hops max, 40 byte packets
 1 a.b.c.1 2997 ms !H 2998 ms !H 3000 ms !H

(ie, failure by default)

# traceroute -s d.e.f.1 d.e.f.2
traceroute to d.e.f.2 from d.e.f.1, 30 hops max, 40 byte packets
 1 d.e.f.2 1 ms 0 ms 0 ms
# traceroute d.e.f.2
traceroute to d.e.f.2, 30 hops max, 40 byte packets
 1 d.e.f.2 1 ms 0 ms 0 ms

(success, and success by default once the MAC address is known to the ARP
table)

# arp -d d.e.f.2
# traceroute -s 5.5.5.5 d.e.f.2
 1 * * *

at this point the tcpdump shows arp requests from d.e.f.1, ie, correct ARP
requests.

But straight command line ping and traceroute with no explicit source, and
sockets which are not explicitly bound (eg, standard netkit telnet) are
perhaps being auto-bound or otherwise made to choose a.b.c.1 as their for
arp requests.

> If the announced address is d.e.f.1 then there is no problem in
> inet_select_addr() but your application is already bound to the
> primary address.

It's not in the case of telnet (simple to see by strace), and I expect not
in the case of traceroute with no explicit source either. However, perhaps
the automatic bind is choosing the primary address.

So if I want it to work I most likely need to make the ARP request ignore
the higher level bindings of the socket.

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:18 EST