Hi Pascal,

Thanks for the clarifications.

One point I strongly disagree with is about the cost of the ND exchange. ND
is indeed done on one-hop but in 6TiSCH case this maps to the* shared cell*,
where the collisions happen. Once we get pass that critical first hop,
things are much easier as we have dedicated cells towards the 6LBR. So, I
would by no means underestimate the effect of doubling the communication
overhead on the shared cell due to ND.

I also think that a solution where ND is done for the first time once the
pledge becomes a joined node, and JP or pledge do not have to worry about
insecure NCE is quite clean. With that, JP becomes stateless at *all*
levels, including IP, which is quite good from the security point of view
during the join process. It also removes 50% of overhead on the shared cell
in a fully generic setting. To me, it seems that you are recommending to
give up from that because 1) some people will not like it; 2) some stacks
might need to be amended to support either destination all-zeros, or source
all-JPs.

That said, please note that the *existing* text in -05 already mentions ND
as a phase in the join process. We do not detail how ND is done, and I
don't think we should by any means do it in the minimal-security draft. In
the existing text, we reference Section 5.5.1 of RFC6775. We also give a
recommendation that the NCE resulting from the ND exchange should be kept
separately, as the pledge is not yet authenticated.

A specific optimization when JP's LL is constructed from its L2 address
with a bit in the EB is more of a workaround to me, but I can live with it.
I guess this would belong to the richardson-enahnced-beacon document?

Mališa


On Fri, Apr 20, 2018 at 11:20 AM Pascal Thubert (pthubert) <
pthub...@cisco.com> wrote:

> Hello Mališa
>
>
>
> The all-0 destination is tricky, not done anymore that I know off. Trying
> that may get us through hell at 6MAN and/or IESG.
>
>
>
> I think that as an RFC you must described the clean way and then the
> optimizations when the LLs are based on EUI 64.
>
>
>
> IMHO, the spec should say that:
>
>
>
> -         That the pledge sends an RS to all-JPs at l3, L2 dest = unicast
> MAC of the JP.
>
> -         That the pledge registers its LL using ND EARO.
>
>
>
> With that we are clean from the standards perspective.
>
>
>
> And then, to address your concern, the spec would then indicate that if
> the pledge or the JP LL are derived from EUI 64 then some optimizations are
> possible.
>
> If the JP LL derives from EUI 64 you may:
>
> -         Have a bit in the beacon that indicates so.
>
>
>
> If the pledge LL derives from EUI 64 you may:
>
> -         Skip the ND EARO to register the LL to the JP
>
> -         Indicate in the join message that the LL derives from the MAC
>
> -         Use it on the way back to skip the look up
>
>
>
> Notes:
>
> -         The JP just needs to have a threshold of unsecured NCE, and a
> sensible lifetime for these, but that’s not that difficult.
>
> -         If the NCE for the pledge is no more there when the join
> response comes in then the JP needs to do a NS look up.
>
>
>
> Also, I do not necessarily agree that the ND phase is that expensive. It
> is just a one-hop exchange.
>
>
>
> Cheers,
>
>
>
> Pascal
>
>
>
> *From:* Mališa Vučinić <malisa.vuci...@inria.fr>
> *Sent:* jeudi 19 avril 2018 15:32
> *To:* Pascal Thubert (pthubert) <pthub...@cisco.com>
> *Cc:* Michael Richardson <mcr+i...@sandelman.ca>; 6tisch@ietf.org
>
>
> *Subject:* Re: [6tisch] Optimizing Neighbor Discovery during the join
> process
>
>
>
> Pascal,
>
>
>
> If we were to use the unspecified address, would the following be OK:
>
>
>
> - Join Request: L3 source: Pledge LL; L3 destination: all-zeros; L2
> source: pledge EUI; L3 destination: JP EUI from the Beacon
>
> - Join Response: L3 source: all-zeros; L3 destination: pledge LL; L2
> source: JP EUI; L2 destination: Pledge EUI
>
>
>
> (Join Request and Join Response refer to packets exchanged between the
> pledge and the JP.)
>
>
>
> This seems to:
>
> - resolve Michael's concern about CoAP libraries expecting the response to
> come from the same IPv6 address where it was sent to
>
> - not introduce any additional packet overhead
>
> - avoid an ND exchange doubling communication overhead
>
> - avoid the need to keep a separate insecure cache at JP. How this would
> be implemented is implementation specific, one example is an ephemeral
> cache entry discussed in previous emails.
>
>
>
> Let me know if you see any pitfalls, to me it looks quite appealing as an
> option.
>
>
>
> Mališa
>
>
>
> On Thu, Apr 19, 2018 at 2:41 PM Pascal Thubert (pthubert) <
> pthub...@cisco.com> wrote:
>
> Hello all :
>
>
>
> Guessing the Link Local of the JP looks like a very bad idea. Because the
> JP may not form a link local from EUI. This is being discouraged for
> privacy reasons. Guessing is really unclean any way.
>
>
>
> To resolve the address of the device at the JP you could
>
> -         Piggy back an ARO in the join request, implicitly associated
> with the link local of the device. The JP may store it or not, I guess it
> could have a bounded amount of NCE for this use. At least, it could
> immediately reject the Join if the LL is a duplicate with another node, in
> which case a NA (status/=0) would work. Otherwise duplicate LL may be an
> issue for a non-EUI64-based LL.
>
> -         Lookup the Link Local of the device on the way back, if there
> is no NCE, but that’s a multicast from the JP to locate the JN
>
>
>
> To reverse resolve the IP
>
>
>
> -         If the prefix is known, we can define an anycast address “any
> JP on this prefix” similar to the home agent anycast address in RFC 3775.
>
> -         Else you can define a multicast all-JPs and use the multicast
> IP over unicast MAC trick by extension to RFC 6085.
>
> -         Early implementations / pre standards can ship with FF02::2
> instead of all-JPs, but the standard should be correct otherwise we’ll pay
> it at the IESG.
>
>
>
>
>
> For the mail below:
>
> -         There is no such thing as traffic from all-routers. With RFC
> 6085 we are tricking “all” at L3 with a unicast L2 to make the L3 multicast
> become a sort of  anycast and where we get to choose which JP.
>
> -         There is such thing as traffic source set to unspecified
> address (all zeroes) though. If that’s enough for you, you may use that.
>
> -         With RFC 6775 update, ND registration for a link local is a one
> hop thing, does not fly to the root or what, so the cost is really limited
>
>
>
> Take care,
>
>
>
> Pascal
>
>
>
> *From:* 6tisch <6tisch-boun...@ietf.org> *On Behalf Of *Mališa Vucinic
> *Sent:* mercredi 18 avril 2018 19:37
> *To:* Michael Richardson <mcr+i...@sandelman.ca>
> *Cc:* 6tisch@ietf.org
> *Subject:* Re: [6tisch] Optimizing Neighbor Discovery during the join
> process
>
>
>
>
>
> On Wed, 18 Apr 2018 at 19:17, Michael Richardson <mcr+i...@sandelman.ca>
> wrote:
>
>
>     > Yes, I guess you could call it an ephemeral cache entry
>     > constructed by CoAP at JP when the join response is received,
>     > before being forwarded to the pledge. As soon as the packet is
>     > passed to L2, the cache entry is removed. Can we do this?
>
> I think that we can do this.
>
> It might be better if the traffic came from ff02::2, but I'm not sure that
> would be acceptable for IPv6 reasons.
> I am concerned that a reply from a different L3 address will not be
> acceptable to some coap libraries.
>
>
>
>
>
> Indeed, good point about a different adress in the response.
>
>
>
> @Pascal, would it be possible for JP to use all-routers as the source IPv6
> address? If not, does it help if we define our own well-known address?
>
>
_______________________________________________
6tisch mailing list
6tisch@ietf.org
https://www.ietf.org/mailman/listinfo/6tisch

Reply via email to