Subject: Re: ACCEPT [LL17] Hosts with configured addresses MUST ARP for v4 LL addresses

From: Stuart Cheshire <[email-masked]>
Date: Sun, 23 Feb 2003 13:58:37 -0800

Mika Liljeberg wrote:

>a) the sender cannot know whether another node is a router or not 

As Philip Nye already pointed out, a host *does* know this.

If a host has a packet addressed to IP address X,
and it ARPs for IP address X,
and it gets a reply,
and then it sends the packet to the hardware address in that ARP reply,
then the host is sending the packet directly.

If a host has a packet addressed to IP address X,
and it ARPs for IP address Y,
and it gets a reply,
and then it sends the packet to the hardware address in that ARP reply,
then why did the host do that?

What made the host send the packet to IP address Y instead of IP address 
X?

That's because the host's routing tables told the host that IP address X 
was not on the local link, and that IP address Y was the correct router 
to send the packet to for forwarding to IP address X.

When a host sends a packet to an IP address other than the one the packet 
is addressed to, the host is sending it to be forwarded.

(Devices that do proxy ARP allow hosts that are not on the local link to 
masquerade as if they were on the local link, but the devices doing the 
proxy ARP take on the responsibility for making this work properly. It is 
not the responsibility of all other hosts on the link to be aware of this 
masquerade and modify their behaviour to accomodate it.)

Stuart Cheshire <[email-masked]>
 * Wizard Without Portfolio, Apple Computer, Inc.
 * www.stuartcheshire.org

---

From: Mika Liljeberg <[email-masked]>
Date: 24 Feb 2003 00:13:08 +0200

> to send the packet to for forwarding to IP address X.

I understand all this. Didn't you read my mail?

On-link determination happens as part of route selection, before ARP is
ever attempted. Hence, ARP does not need to be mentioned. I was only
asking for more precise language.

The same with proxy ARP routers. The sender cannot know about those, so
let's say the requirement in a different way. Was there something wrong
with the text I proposed?

	MikaL