Re: I-D Action: draft-smith-6man-link-locals-off-link-00.txt

Mark Smith <markzzzsmith@gmail.com> Thu, 20 August 2015 10:03 UTC

Return-Path: <markzzzsmith@gmail.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 710B91A89A0 for <ipv6@ietfa.amsl.com>; Thu, 20 Aug 2015 03:03:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.498
X-Spam-Level:
X-Spam-Status: No, score=-0.498 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, FROM_LOCAL_NOVOWEL=0.5, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=1, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lE6R1puGHHmv for <ipv6@ietfa.amsl.com>; Thu, 20 Aug 2015 03:03:22 -0700 (PDT)
Received: from mail-ig0-x22e.google.com (mail-ig0-x22e.google.com [IPv6:2607:f8b0:4001:c05::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3A4471A8997 for <ipv6@ietf.org>; Thu, 20 Aug 2015 03:03:22 -0700 (PDT)
Received: by igfj19 with SMTP id j19so10294993igf.0 for <ipv6@ietf.org>; Thu, 20 Aug 2015 03:03:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=gPbAoYrwXt7U6u+MW+iSzSyANZ3/rByL0GePZ4NkKeg=; b=qlRy64QlgRJx1FrVJo4t82qpV9Q1Dwg3zaWN0+x/9elsi9iRxiWk8lo4wwJIyLY2HF bupS8WHmMol9XR1EllNoiRl5s+8ww+jBbFN1+hbnovZzvlRRO5yQULJqhBxl8EdjfxZ2 CQ6LZWEp1qP7+9WCncoEWVQE8ndz9CL6OtOXJ1W3vMrj6rZXilFYKj/Q4ZLBH4Jrln9E JP2/ganP0eemxAOvKyPcCwocUk1ez4pU8Tp+0vUHNGqrlSbijB3rp3X2yPzG2NDyeXWs nwxeDwbmsHrQU3kGDZkkNepv3zwO+1ZrcEqZPJ0Jd48O7yUQ5IwgLLV4he/4mlhYfhFi YIXQ==
X-Received: by 10.50.138.70 with SMTP id qo6mr34097618igb.15.1440065001600; Thu, 20 Aug 2015 03:03:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.141.21 with HTTP; Thu, 20 Aug 2015 03:02:51 -0700 (PDT)
In-Reply-To: <E3F33DB1-65F3-4DBC-A4BB-C96EA4587E34@gmail.com>
References: <20150816123509.23625.7953.idtracker@ietfa.amsl.com> <55D3E7E6.7000505@gmail.com> <CAO42Z2y4im1dMc7Zvos9oBLL0xh7E-dF58xfMQJY6XhvZtN=Ww@mail.gmail.com> <E3F33DB1-65F3-4DBC-A4BB-C96EA4587E34@gmail.com>
From: Mark Smith <markzzzsmith@gmail.com>
Date: Thu, 20 Aug 2015 20:02:51 +1000
Message-ID: <CAO42Z2zBA3yP8znTq1Z-xv-UAc2nE-MdJVaZ0-D8BCb4PxihpA@mail.gmail.com>
Subject: Re: I-D Action: draft-smith-6man-link-locals-off-link-00.txt
To: Dennis Ferguson <dennis.c.ferguson@gmail.com>
Content-Type: multipart/alternative; boundary="001a1134bbc6dfbe7d051dbb429e"
Archived-At: <http://mailarchive.ietf.org/arch/msg/ipv6/GoLd_4trXjcQNagvgG1y-YP1qSA>
Cc: 6man WG <ipv6@ietf.org>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 20 Aug 2015 10:03:25 -0000

Hi Dennis,

What I'm really taking about is whether a host can reach a link local
destination attached to the same link instance directly.

The L-bit in a PIO indicates whether the host should try to reach the
destination directly, or to send the packet to a router.

For link-local destinations, hosts are to always co

On 20 Aug 2015 11:17, "Dennis Ferguson" <dennis.c.ferguson@gmail.com> wrote:
>
> Hello,
>
> On 19 Aug, 2015, at 00:41 , Mark Smith <markzzzsmith@gmail.com> wrote:
> > On 19 August 2015 at 12:20, Brian E Carpenter
> > <brian.e.carpenter@gmail.com> wrote:
> >> I have a question.
> >>
> >> How did the host that is attempting to send a packet to its
> >> unreachable neighbour learn the address of that neighbour
> >> in the first place? As far as I can see, neighbour discovery is
> >> clearly going to fail anyway, since neither Neighbor Solicitation
> >> nor Neighbor Advertisement will be delivered.
> >>
> >
> > Right. The failure to resolve the link-local address will cause the
> > application to fail to connect, unlike on a conventional
> > (unconstrained) broadcast multi-access, NBMA or point-to-point link
> > where link-locals work.
>
> I'm confused about how this answers the question, though.  If I write
> down the link-local address of a machine attached to my (unconstrained)
> broadcast multiaccess network at home, go to work and try to connect
> to the same machine using that address, it will fail to connect.  The
> reason it will fail to connect is that the host I'm trying to connect
> to using that link-local address is off-link, just like most other hosts
> on the planet are.  Link-local addresses don't work if the hosts are
> off-link, a fact that is entirely unsurprising and is not in need of
> fixing, so applications which need to talk to off-link destinations
> will need to avoid trying to use link-local addresses to do so.
>

So the trouble I've had is that I've had to adopt the "on-link"/"off-link"
terminology, because that is what the "L" bit in a PIO is theoretically
indicating.

In reality, what it is really indicating is whether a host should try to
directly send a packet to the destination covered by the PIO prefix, or to
send it to one it's default routers, either for transmission over another
link, or back onto the same link.

So when I've described enabling hosts to treat Link-Locals as "off-link",
all I'm really saying is that the host should send traffic to all
Link-Local destinations to one of its default routers. Currently, hosts
always try to send to Link-Local destinations directly, and that cannot be
changed.

The "L" bit would be better described as the "send direct to destination"
or "send via router" bit.


> So I think the question remains: what made the application trying to
> connect to an off-link destination using a link-local address think
> that this should work?
>
> What is "on-link" and what is "off-link" is neither arbitrarily determined
> nor defined by addressing, it is a property of the L2 connectivity that
> exists.  Once whatever is necessary for address resolution has been done
> a host can expect that a packet sent to an on-link neighbor with a TTL of
> 255 will arrive with a TTL of 255, that a packet sent with a TTL of 1
> will arrive, and that it may be able to continue to talk to an on-link
> neighbor even if the routers go away.  An application which doesn't care
> about any of this also needn't care what kind of address it uses to talk
> to its neighbor and can just pick one that works,

Actually, if there is a choice, LLs are listed first (preferred) over GUA
and ULA addresses in the return from the getaddrinfo() call, as smaller
scopes are preferred in the IPv6 address selection RFC.

> but an application which

> goes out its way to use a link-local address may very well rely on the
> nature of the service it expects to get by limiting itself to on-link
> neighbors this way and I think that connection should probably fail if the
> expected service can't be delivered.
>

Yes, and that failure will either be made visible to the end-user, even
though the destination is reachable via GUA/ULAs if they exist, or
applications will have to adopt happy-eyeball techniques to hide Link-Local
failures when GUA/ULAs are also available.


> I think I understand the bigger problem you are trying to solve.  The
hosts
> and the routers have asymmetric views of what is on-link and what is
off-link:
> from the point-of-view of a host it is on a link with a router or two but
> nothing else, while the routers see themselves as on-link with everything
> so behavior somewhere will need to change to deal with the asymmetry.

Yes.

If security is the motivation for the CBMA link, there is still a device
that can enforce security policy between hosts even if their applications
choose to use LLs instead of GUAs or ULAs to reach other hosts that are
connected to the same link (but not directly reachable).


> What I don't get is why you seem to want to change the host behavior to
> be more consistent with the router's view of the link, rather than just
> limiting the changes to make the router's behavior consistent with the
> hosts' view.

So the only alternative is for the router to perform ND Proxy for
Link-Local destinations.

So why is it necessary to use ND Proxy for LLs, but not for GUAs and ULAs?
Why wasn't ND proxy used to solve the problem for GUAs and ULAs too? PIOs
could have just been used for SLAAC operation, rather than also making a
statement about whether the GUA or ULA destination is directly reachable
over the link, or reachable indirectly via a default router.

>  Not only is the router the preferred place to deal with

> oddities, since there are usually fewer of them than hosts and we already
> expect to have to configure them to do stuff in any case, but in this
> case the changes in the router will involve making the router behave
> (from the hosts' point of view) as if the router has more limited L2
> connectivity than it actually does, which can sometimes be done, while
> making the host conform to the router's view requires making the hosts
> behave is if they have more extensive L2 connectivity than they actually
> do, which is impossible.  The L2 connectivity the hosts have is all
> they have to work with, so I think you must make the routers behave
> consistently with the host view of their link.
>
> To do that I think you would want to make modifications to the router
behavior
> like the following:
>
> - When the router forwards a packet from one host to another it should
>   not send a redirect pointing the source host directly at the
destination.
>   While doing so might be consistent with the router's view of the link
>   it is inconsistent with the host's.
>

Yes, on a CBMA link, routers' sending redirects has to be switched off.

> - When the router receives a packet from a host destined to a link-local
>   address of another host it should drop the packet.  While this might
>   be same-link forwarding from the router's view of the link it is
off-link
>   forwarding from the point of view of both hosts, so to be consistent
>   with the host view it shouldn't be done.
>

I consider that too big a hammer. Applications are permitted to use LLs,
and I think the IPv6 address selection RFC actually effectively courages it
because it prefers LLs over larger scoped addresses like GUAs/ULAs - if
they exist.

> - When the router receives an unrouted multicast from a host it should

>   not attempt to deliver that packet to other hosts.  Unrouted

>   multicasts don't leave the link they were sent on so doing this would
>   be inconsistent with the hosts' view of their links (not to mention
>   inconsistent with the router's view as well).
>
> - I think a multicast router is going to have a problem with this link
>   if it can't omit the originating host when flooding to the others.
>   You'll need to decide if you care or not.
>

So you're sort of describing all the problems that CBMA links create that
don't exist on BMA, NBMA and point-to-point links. I want to solve these
problems for CBMA links, while still giving people who want the "problems"
for security reasons the option to have them.

> I'm not positive, but I think most what you seem to want to do works (if
you

> don't need to deal with IPv4) without changes to the hosts if you just let
> each host believe it is alone on a link with a router or two, and don't
> let the routers do anything inconsistent with that.  Is there a reason
> not to do it this way?
>
> Dennis Ferguson
>


Regards,

Mark.