Re: Tsvart last call review of draft-ietf-lisp-rfc6833bis-13

Colin Perkins <csp@csperkins.org> Wed, 12 September 2018 12:44 UTC

Return-Path: <csp@csperkins.org>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A4EEC130E25; Wed, 12 Sep 2018 05:44:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=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 Axn6XJbvS-wH; Wed, 12 Sep 2018 05:44:06 -0700 (PDT)
Received: from balrog.mythic-beasts.com (balrog.mythic-beasts.com [IPv6:2a00:1098:0:82:1000:0:2:1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CFE7C130E48; Wed, 12 Sep 2018 05:44:05 -0700 (PDT)
Received: from [130.209.157.49] (port=40301 helo=glaroam2-191-147.wireless.gla.ac.uk) by balrog.mythic-beasts.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <csp@csperkins.org>) id 1g04Ux-0002fZ-RH; Wed, 12 Sep 2018 13:44:04 +0100
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Tsvart last call review of draft-ietf-lisp-rfc6833bis-13
From: Colin Perkins <csp@csperkins.org>
In-Reply-To: <C29F5A80-AB80-49D7-B508-E86F4FECFC9E@gmail.com>
Date: Wed, 12 Sep 2018 13:43:53 +0100
Cc: tsv-art@ietf.org, draft-ietf-lisp-rfc6833bis.all@ietf.org, IETF Discussion Mailing List <ietf@ietf.org>, "lisp@ietf.org list" <lisp@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <B080E6E7-DB8A-4DD2-A50E-2CB69A06BC55@csperkins.org>
References: <153597929696.13392.8265627120055145654@ietfa.amsl.com> <C29F5A80-AB80-49D7-B508-E86F4FECFC9E@gmail.com>
To: Dino Farinacci <farinacci@gmail.com>
X-Mailer: Apple Mail (2.3273)
X-BlackCat-Spam-Score: 4
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/UJJYWAqb9TtNfrsdd48H3ARfMnM>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 12 Sep 2018 12:44:09 -0000

> On 4 Sep 2018, at 17:33, Dino Farinacci <farinacci@gmail.com> wrote:
>> Reviewer: Colin Perkins
>> Review result: On the Right Track
>> 
>> I've reviewed this document as part of the transport area review team's ongoing
>> effort to review key IETF documents. These comments were written primarily for
>> the transport area directors, but are copied to the document's authors for
>> their information and to allow them to address any issues raised. When done at
>> the time of IETF Last Call, the authors should consider this review together
>> with any other last-call comments they receive. Please always CC
>> tsv-art@ietf.org if you reply to or forward this review.
> 
> Thanks a lot for the review Colin.

Apologies for the slow follow-up.

>> I have several concerns with the transport aspects of this draft. Many of these
>> appear to be present in RFC 6833 also, but I note that while RFC 6833 is an
>> Experimental, this draft is targeted at the Standards Track. Some of these
>> issues may not be of practical concern, depending on the way LISP is used, and
>> might just need clarifications in the draft to make it clear they do not occur
>> in practice.
> 
> Let me try helping with the clarification and if we need to add clarification text, by all means, we will do so.
> 
>> The draft defines the LISP control plane. It updates and greatly extends RFC
>> 6833. The control plane runs over UDP, and this draft defines the format of
> 
> I hope you understand why it greatly updates RFC6833. It was due to the working group’s decision to move the control-plane elements out of RFC 6830 into RFC 6833bis. So the procedures and protocols are not new just re-located.
> 
>> LISP control plane messages and rules for processing such messages. The packet
>> formats generally contain lists of records, the length of which is indicated by
>> an 8-bit Record Count field located in a common sub-header. The format allows
>> packets that are larger than the typical path MTUs seen in the Internet, but
>> the draft doesn’t mention Path MTU discovery to determine the largest packet
>> that can be sent, or how large packets are fragmented. Perhaps the messages are
>> small enough that this is not a practical issue? In which case the draft should
>> explain and justify this for each message type (and perhaps put limits on the
>> Record Count to ensure it). Alternatively, then the draft should specify how
>> path MTU discovery is to be performed, and how protocol messages should be
>> fragmented (or subdivided) to fit the path MTU. Section 3.2 of RFC 8085 has
>> some further discussion and suggestions for how to address this issue.
> 
> The control-plane does’t try to send MTU size packets. It depends on IP fragmentation/reassembly. But an implementation should know it cannot build a LISP message larger than 65535 bytes.

I’m not convinced relying on IP fragmentation is a good idea. In the best case, loss of a fragment results in loss of the entire packet, multiplying the effective loss rate. There can also be middleboxes that drop fragments. It would be better if the control place could fragment to MTU size packets (either the actual MTU, or a typical MTU – 1280 octets perhaps).

>> The draft does not mention congestion control, but many of the messages are
>> rate limited. If the intent of the rate limits is that no further congestion
>> control is needed, then it needs to be made explicit that this is the case, and
> 
> Yes, that is the intent.
> 
>> some justification needs to be added to explain why it is safe. This could,
>> perhaps, take the form of an appendix that analyses the expected control plane
>> traffic that will flow over a particular path when the protocol is in use, and
>> demonstrates that this will be low enough rate not to be problematic. In any
>> case, the draft needs some discussion of how congestion control is addressed.
> 
> The flow-control is coupled with protecting caches as well as request and register load on map-resolvers and map-servers.

Sure, but as I mentioned, the draft needs some justification for why this is safe from a congestion control viewpoint.

>> It’s unclear what messages need to be retransmitted if they’re lost, and how to
>> determine if a message is lost (e.g., what is the timeout) and what is the
>> retransmission schedule. This may be clear to a reader with an in-depth
>> understanding of LISP, but it would be helpful to provide more explicit
>> statements about loss detection and retransmission.
> 
> Map-Registers are sent periodically but the text says that if Map-Notify messages are desired for acknowledgement, the Map-Registers can be transmitted more quickly in the case of loss.
> 
> Map-Notify messages are obviously acknowledgement by Map-Notify-Ack. That was an added message to RFC6833bis.
> 
> Map-Requests and Map-Replies are reliability sent for cache population. And the nonce is used for both security purproses and to associated a Map-Reply to a previous sent Map-Request, which is rate-limited.
> 
> That is pretty much it and I think is explained in pretty much detail. So if you have any specific comments, please provide them. Thanks.

I perhaps missed it, but didn’t see any discussion of timeouts to detect loss, retransmission frequency, how often retransmissions should be retried before giving up, and what might happen if the retransmissions fail. It’s not sufficient to just say a response is retransmitted, without saying how loss is detected and how retransmissions work.

>> Many of these issues could perhaps be addressed by running the control plane
>> over TCP rather than UDP, as is beginning to happen with the DNS. I understand
>> that this would be a significant late change to the protocol.
> 
> We have a draft that is considering running the LISP control-plane over TCP/QUIC with the addition of encryped security TLS/QUIC. But not as a replacement to UDP but so an LISP control-plane implementation cam be simplfied.

I’d encourage this work, with the goal of eventually replacing the UDP-based transport.

>> The control plane messages contain embedded IP addresses. Does this cause any
>> issues in the presence of NAT boxes, either by leaking information about
>> private addressing or by distributing addresses that are unreachable outside
>> their realm? I noticed there is a mention of an individual draft on LISP NAT
>> Traversal in Section 5.6, but the embedded addresses are included in more
>> places.
> 
> We want private addresses to be inside of LISP control-plane packet payload because there are cases where two xTRs want to determine if they are behind the same NAT, so they can encapsulate directly to each other with those private addresses. For xTRs that are not behind this common NAT, RLOC-probing will tell them they cannot reach the private address.

That’s fine, there should be some discussion of the privacy implications of exposing those addresses. The WebRTC community has run into considerable issues due to leaking IP addressing information – perhaps this is not a concern for LISP, but the issue should be considered, if only to add a note explaining why it’s not a concern.

Is there a need to protect the addresses? STUN uses XOR-mapping of embedded IP addresses, because NATs were found that tried to translate embedded IP addresses, outside of the IP header, and broke the protocol. Does LISP need something similar?

> Yes, there is a NAT-traversal draft that has been a alive for quite a long time. Many of us are trying to simplify the operation of LISP NAT-traversal with implementation and deployment experience.
> 
> Thanks again,
> Dino
> 
>> 
>> Regards,
>> Colin
>> 
> 



-- 
Colin Perkins
https://csperkins.org/