Subject: Re: draft-ietf-zeroconf-ipv4-linklocal-06.txt

From: Thomas Narten <[email-masked]>
Date: Wed, 11 Sep 2002 10:29:01 -0400

Thomas Narten <[email-masked]> writes:

> In re-reviewing the document, I had the following comments:

> Most are nits. The one substantive comment is:

>    If the destination address is in the 169.254/16 prefix (including the
>    169.254.255.255 broadcast address), the host SHOULD use its link-
>    local source address, if it has one. If the host does not have a
>    link-local source address, then it MAY choose to ARP for the
>    destination address and then send its packet, with a routable source
>    IP address and a link-local destination IP address, directly to its
>    destination on the same physical link. The host MUST NOT send the
>    packet to any router for forwarding.

> The above wording suggests that if host has no LL address, it is not
> required to use its global address to talk to a device that only has a
> LL address. This seems broken (i.e, will result in communication
> failure that is hard to diagnose). Seems to me that SHOULD->MUST and
> the MAY should also be a MUST.

I have seen no followup on this question. Does this mean that the WG
doesn't think there is an issue? Doesn't care? Or?

PS, it would be good to resolve this so I can get the document before
the IESG for consideration.

Thomas

---

From: Keith Moore <[email-masked]>
Date: Wed, 11 Sep 2002 11:56:02 -0400

> doesn't think there is an issue? Doesn't care? Or?

"MUST use LL source address" is not acceptable - there are apps that 
will break if this is done.  I'd argue that hosts SHOULD use a global
address whenever possible (if nothing else, for the sake of backward 
compatibility) and SHOULD NOT use an LL source address -- even when
talking to an LL destination -- except as a last resort.

Keith

---

From: Thomas Narten <[email-masked]>
Date: Wed, 11 Sep 2002 13:05:51 -0400

Keith,

> will break if this is done.

To what wording are you referring? That wording is not mentioned above.

> I'd argue that hosts SHOULD use a global address whenever possible
> (if nothing else, for the sake of backward compatibility) and SHOULD
> NOT use an LL source address -- even when talking to an LL
> destination -- except as a last resort.

If your destination is an LL address, what difference does it make if
you use your LL vs global source address to talk to it? In neither
case can you move off-link and continue having things work. 

Thomas

---

From: Keith Moore <[email-masked]>
Date: Wed, 11 Sep 2002 13:16:07 -0400

> To what wording are you referring? That wording is not mentioned above.

I'm referring to
"Seems to me that SHOULD->MUST and the MAY should also be a MUST"
or did I misinterpret it?
 
> case can you move off-link and continue having things work.

some apps use source addresses for referrals.  an LL source address
might work fine for a referral from one destination, but not from another.
(ironically one justification for using source addresss in referrals
rather than some address passed in the payload is NATs)

Keith

---

From: Thomas Narten <[email-masked]>
Date: Wed, 11 Sep 2002 13:38:32 -0400

> or did I misinterpret it?

OK. I was confused. Indeed, my original note was confusing. Please
ignore it. :-( Let me try again.

What I meant to say is:

The above wording suggests that if host has no LL address, but it does
have a global address, it is not required to use that global address
to talk to a device that only has a LL address. This seems
broken. I.e, it will result in communication failure that is hard to
diagnose. Two nodes, both with legitimate addresses that should work,
for some strange reason won't talk to each other. Seems to me like the
MAY should really be a MUST. You can't NOT use the global address, if
it's the only address you have. Or, if there are legitimate reasons
why an implementation might not want to use its global address in this
case (knowing that communication will fail as a result) please include
some background explaining why this might be a reasonable approach.

In contrast to my first message, I don't have a problem with the first
SHOULD.

Thus, Keith's followup is not on my point at all, but on existing
text, that I incorrectly suggested should be changed..

Thomas

---

From: Keith Moore <[email-masked]>
Date: Wed, 11 Sep 2002 13:58:22 -0400

Okay, first I would say that a host SHOULD NOT give up trying to 
contact a destination just because the destination was specified
as an LL address but the host doesn't have an LL address.  IMHO 
it SHOULD try using the routable address before giving up.
But I'd go even farther - IMHO it SHOULD try using a routable address
first, and use the LL address (if it has one) only as a last resort.

I hesitate to say MUST NOT here because the host might have imposed
administrative controls or some such on the use of certain 
source addresses.  That and I don't recall that we've ever said that 
a host MUST use all available source addresses in order to try to
contact a destination, so I don't know why we should impose such
a constraint specifically for LL.

This I think illustrates some of the fundamental problems with limited-
scope addresses - (a) successful use of such addresses depends on the
app or the host picking the "right" addresses in the absence of the 
information needed to determine which ones are "right", (b) partially
because that knowledge is lacking, the host or app may need to make 
multiple  connection attempts with different combinations of source
and/or destination addresses before finding one that will work (thus 
introducing delay), and (c) even a source/dest combination that works 
for one host pair may not suffice for use in referrals by either that 
source or dest to other components of that app that reside on other hosts. 

Keith