Re: [lisp] Mirja Kühlewind's Discuss on draft-ietf-lisp-rfc6830bis-16: (with DISCUSS and COMMENT)

"Mirja Kuehlewind (IETF)" <ietf@kuehlewind.net> Mon, 17 September 2018 16:16 UTC

Return-Path: <ietf@kuehlewind.net>
X-Original-To: lisp@ietfa.amsl.com
Delivered-To: lisp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 70871130E95 for <lisp@ietfa.amsl.com>; Mon, 17 Sep 2018 09:16:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); domainkeys=pass (1024-bit key) header.from=ietf@kuehlewind.net header.d=kuehlewind.net
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 UgrdEj-YE_en for <lisp@ietfa.amsl.com>; Mon, 17 Sep 2018 09:16:53 -0700 (PDT)
Received: from kuehlewind.net (kuehlewind.net [83.169.45.111]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2ED46130E84 for <lisp@ietf.org>; Mon, 17 Sep 2018 09:16:53 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=kuehlewind.net; b=uQ/jxB/yRbeIUG/rFPx9qroXXab9Ierbr367HSDbZMf9zkXKY5123Di7mss6USwLQ5iZiv0jGwcmJ30XZ+RR8eJl4trs6YeKuhWbnLW6WkQ0DFKpaqYJ8InZP8VmFspqBIHZjXbwzihNiCKRKfLyjTcZQ30pRgQaZCCNO7CuFJI=; h=Received:Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer:X-PPP-Message-ID:X-PPP-Vhost;
Received: (qmail 6945 invoked from network); 17 Sep 2018 18:15:50 +0200
Received: from mue-88-130-61-174.dsl.tropolys.de (HELO ?192.168.178.24?) (88.130.61.174) by kuehlewind.net with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 17 Sep 2018 18:15:50 +0200
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: "Mirja Kuehlewind (IETF)" <ietf@kuehlewind.net>
In-Reply-To: <5A3C4B1F-EA31-4698-96F4-915A77400A56@gmail.com>
Date: Mon, 17 Sep 2018 18:15:42 +0200
Cc: lisp-chairs@ietf.org, draft-ietf-lisp-rfc6830bis@ietf.org, The IESG <iesg@ietf.org>, Luigi Iannone <ggx@gigix.net>, "lisp@ietf.org list" <lisp@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <2CAF25CC-01EE-49D4-B970-F8EFB24940A8@kuehlewind.net>
References: <153667905625.16761.12157659372502604927.idtracker@ietfa.amsl.com> <7DEBCA24-9D55-4325-85AA-48AB3FAAB91D@gmail.com> <0201F06C-DA9E-445A-A995-54BA805B595C@kuehlewind.net> <DDA9C261-44DD-4389-9463-3A84E4C176BB@gmail.com> <5EC21C57-D217-48A9-AFD0-24710299CF7F@kuehlewind.net> <5A3C4B1F-EA31-4698-96F4-915A77400A56@gmail.com>
To: Dino Farinacci <farinacci@gmail.com>
X-Mailer: Apple Mail (2.3445.9.1)
X-PPP-Message-ID: <20180917161550.6936.81331@lvps83-169-45-111.dedicated.hosteurope.de>
X-PPP-Vhost: kuehlewind.net
Archived-At: <https://mailarchive.ietf.org/arch/msg/lisp/UpYLyXhGO76pzxUJfh0TYrWC0mc>
Subject: Re: [lisp] Mirja Kühlewind's Discuss on draft-ietf-lisp-rfc6830bis-16: (with DISCUSS and COMMENT)
X-BeenThere: lisp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: List for the discussion of the Locator/ID Separation Protocol <lisp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lisp>, <mailto:lisp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lisp/>
List-Post: <mailto:lisp@ietf.org>
List-Help: <mailto:lisp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lisp>, <mailto:lisp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 17 Sep 2018 16:16:57 -0000

Hi Dino,

unfortunately, I don’t think this is quite there yet. First of all, I have to say that I misread the original text which already says that only the CE should be copied which is at least mostly inline with RFC6040 already. However, I really would like the existing text to be clearer here (instead of just adding additional text).

Also you still need at least one reference to rfc3168 because that’s the spec that defines the mechanism and IP bits.

Let me propose something:

For encapsulation:
OLD
"The 'Explicit Congestion Notification' (ECN) field (bits 6 and 7
      of the IPv6 'Traffic Class' field) requires special treatment in
      order to avoid discarding indications of congestion [RFC3168].
      ITR encapsulation MUST copy the 2-bit 'ECN' field from the inner
      header to the outer header.  Re-encapsulation MUST copy the 2-bit
      'ECN' field from the stripped outer header to the new outer
      header.“
PROPOSED
"The 'Explicit Congestion Notification' (ECN) field (bits 6 and 7
      of the IPv6 'Traffic Class' field) [RFC3168] requires special treatment in
      order to preserve the use of ECN on the path.
      ITR encapsulation MUST copy the 2-bit 'ECN' field from the inner
      header to the outer header, inline with the ’Normal Mode’ in section 4.1 
      of [RFC6040].  Re-encapsulation SHOULD follow the decapsulation as described 
      below and then 2-bit 'ECN' field from the stripped inner header to the 
      new outer header.“

For decapsulation:
OLD
"The 'Explicit Congestion Notification' (ECN) field (bits 6 and 7
      of the IPv6 'Traffic Class' field) requires special treatment in
      order to avoid discarding indications of congestion [RFC3168].  If
      the 'ECN' field contains a congestion indication codepoint (the
      value is '11', the Congestion Experienced (CE) codepoint), then
      ETR decapsulation MUST copy the 2-bit 'ECN' field from the
      stripped outer header to the surviving inner header that is used
      to forward the packet beyond the ETR.  These requirements preserve
      CE indications when a packet that uses ECN traverses a LISP tunnel
      and becomes marked with a CE indication due to congestion between
      the tunnel endpoints.“
PROPOSED
"The 'Explicit Congestion Notification' (ECN) field (bits 6 and 7
      of the IPv6 'Traffic Class' field) requires special treatment on 
      decapsulation in
      order to avoid discarding indications of congestion, 
      inline with section 4.2 of [RFC6040]. If
      the 'ECN‘ field of the outer header contains a congestion indication 	
      codepoint (the
      value is '11', the Congestion Experienced (CE) codepoint) and the inner 
      header indicates ECN support (either ECT(0) or ECT(1) codepoint is set), 
      then ETR decapsulation MUST also set CE field in the inner header that is 
      used
      to forward the packet beyond the ETR. If the inner packet is marked as non-
      ECT but the outer header has the CE mark set, the packet MUST be dropped 
      instead. Any discrepancy between the inner and outer header for non-ECT, 
      ECT(0) and ECT(1) MUST NOT be copied from the outer header. These 
      requirements preserve
      CE indications when a packet that is ECN-capable traverses a LISP tunnel
      and becomes marked with a CE indication due to congestion between
      the tunnel endpoints or transforms an CE into loss if that packet is not 
      ECN-capable conserving the congestion indication towards a non-ECN enables 
      endpoint."

Please also remove the duplicated text after these bullet lists in the draft!

Further I believe my discuss points 2) and 4) are not fully resolved yet. Also I would like to at least see more explanation about the approach for extensibility that was taken in this doc (point 6).

Mirja
 

> Am 12.09.2018 um 23:30 schrieb Dino Farinacci <farinacci@gmail.com>:
> 
>> Hi again,
>> 
>> please see below.
> 
> Thanks for the ongoing discussion Mirja. See a new diff file enclosed as a proposed -18 update. Let me know if the text I added to address your comments are sufficient.
> 
> I believe (but could be wrong) that this should be the last set of comments to 6830bis. But I have not seen any acks from Alvaro if we addressed all his comments (specifically for 6830bis).
> 
>> 
>>> Am 11.09.2018 um 18:45 schrieb Dino Farinacci <farinacci@gmail.com>:
>>> 
>>> 
>>>>> Well it doesn’t have to be. I am a bit hesitant to just point to another long complicated RFC. This text has gone through review for quite a long time and many ECN experts decided we should write it this way. And this text did go through IESG review when RFC6830 was made experimental RFC.
>>>> 
>>>> Procedere explained in RFC6040 are actually not that complicated. It’s mainly the table provided in section 3.2. Please have a look at the draft. However, I disagree that it „negative“ to point for this part to another RFC. This is not a unique problem, that’s why we have RFC6040 and all approaches that face this problem should point to RFC6040 and implement the same strategy.
>>> 
>>> I am just worried it will be ignored because there are implementations out there that do what they already do. If we want to suggest to consider the procedures in RFC6040, I am okay with that, but you need to provide the wording because I certainly don’t want it too strong.
>> 
>> Actually the behavior as currently described in the lisp draft is not even complainant with rfc3138, however, rfc3168 is updated by rfc6040. The encapsulation in the lisp draft behavior is already what RFC6040 described; so that’s good. However, the decapsulation is neither what RFC3168 nor rfc6040 says. Therefore this must be fixed and I guess a bis doc is also the best chance we get to fix these incorrect implementation then. If you are worried that this will be ignored, you should mention it explicitly in section 18 (Changes since RFC 6830).
> 
> The working group made this decsision back in 2009 when the LISP WG was formed. Actually earlier when we did the initial work in the IRTF RRG. RFC3168 was published in Sep 2001. But note one of the authors, David Black, offered the text you see in the document rewgarding ECN handling.
> 
> So by doing this update, we ARE going to create a implementation incompatibility.
> 
>> There is no matter about the wording being too strong or whatever, RFC6040 is very clear about the correct behavior and that is exactly what needs to be implemented. Please go ahead and read RFC6040. If you need further help, please ask an ECN expert for help, e.g. Bob Briscoe who is the author of RFC6040.
> 
> Check the diff file to see if you are okay with the new text added. It WAS NOT simple because there are a number of cases that need to be described that doesn’t contradict RFC6040 that I do not want to repeat.
> 
>> Please note that I actually pointer to a wrong section in RFC6040 above. It should of course be 4.2 (and not 3.2).
> 
> Okay, that makes more sense now. I was confused.
> 
>>>>> 
>>>>> 
>>>>>> 3) Sec 7.1. only takes about ICMPv6 "Packet Too Big" packets while
>>>>>> "IPv4-encapsulated packet with the DF bit set to 1" should be addressed as well.
>>>>> 
>>>>> This is discussed in length. I don’t know how you could have missed this.
>>>> 
>>>> I didn't miss that discussion but the text got fixed incorrectly because it doesn’t not address IPv4 through the whole text. Please have a look and fix that as well. I think this is mainly an editorial issue but and important one to fix.
>>> 
>>> I am sorry. I don’t know what you think is wrong. Please point to the text specifically.
>> 
>> Sec 7.2:
>> "   2.  When an IPv6-encapsulated packet, or an IPv4-encapsulated packet
>>      with the DF bit set to 1, exceeds what the core network can
>>      deliver, one of the intermediate routers on the path will send an
>>      ICMPv6 "Packet Too Big" message to the ITR.  The ITR will parse
>>      ^^^^^^^^^^^^^^^^^^^^^^
>>     there will be no ICMPv6 message is the packet was IPv4
>> 
>>      the ICMPv6 message to determine which Locator is affected by the
>>      effective MTU change and then record the new effective MTU value
>>      in the Map-Cache entry.
>> 
>>  3.  When a packet is received by the ITR from a source inside of the
>>      site and the size of the packet is greater than the effective MTU
>>      stored with the Map-Cache entry associated with the destination
>>      EID the packet is for, the ITR will send an ICMPv6 "Packet Too
>>                                                  ^^^^^^^^^^^^^^^^^^^
>> 
>>      Big" message back to the source.  The packet size advertised by
>>      the ITR in the ICMPv6 message is the effective MTU minus the LISP
>>      encapsulation length.”
> 
> This is now fixed. I now understand your comment. Please check the diff file enclosed.
> 
>>> 
>>>>> 
>>>>>> 6) And now the more-discussion-needed point:
>>>>>> So my underlying concern is the same as brought up by the TSV-ART review that
>>>>>> lisp information are not end-to-end integrity protected or authenticated.
>>>>> 
>>>>> I would like you to be more specific. Beacuse there is a lot of security in the protocol and we believe the current drafts, in their entirety, inicdate so.
>>>> 
>>>> I was thinking about the option to add an authenticated hash, anyway…
>>> 
>>> LISP uses lisp-crypto (RFC8061) which uses AEAD.
>> 
>> I think the pity here is that RFC8061 is still a separate optional RFC. I would have expected to have this integrated into rfc6830bis and make it mandatory to implement if not mandatory to use.
> 
> Agree. I don’t know what to tell you. But as you might now, there is a tradeoff between privacy and monitoring/lawful intercept that is being made and we know there are strong camps on each side.
> 
> You might have heard me say it at a recent IETF plenary “everything should be encrypted, period”. So you know what camp I’m in.  ;-)
> 
>> 
>>> 
>>>>> 
>>>>>> However, while briefly thinking about how this could be eventually realized, I
>>>>>> noticed that there is actually no mechanism to extend the LISP header in any
>>>>> 
>>>>> Right, by design so it is efficient for hardware AND software forwarding. But we do have the LISP-GPE header that can be used for extensions. But that has limited deployment.
>>>>> 
>>>>>> way. There is no version, no option and the LISP header seems to have a fixed,
>>>>> 
>>>>> We decdied as a working group that the UDP port number would indicate what header follows and therefore what LISP version is used.
>>>> 
>>>> Okay, that needs to be explained in the doc!
>>>> 
>>>> Mirja
>>> 
>>> The document says that UDP port 4341 is assigned and when so, the LISP header as docmented is used. We shouldn’t just encourage versioning if the philosophy it not to churn often.
>> 
>> Okay, that is actually not possible based on the recommendation in RFC6335:
>> 
>> "   o  IANA strives to assign only one assigned port number for all
>>     variants of a service (e.g., for updated versions of a service).“
>> 
>> That means it is not possible to get another port number for a new version of lisp. You need a different version approach.
>> 
>> Mirja
> 
> The working group made this decsision back in 2009 when the LISP WG was formed. Actually earlier when we did the initial work in the IRTF RRG. RFC3168 was published in Aug 2011.
> 
> LISP-GPE is a variant of the the LISP data-plane, and it is using the same UDP port 4341. So we actually accomplished the reuse.
> 
> Dino
> 
> <rfcdiff-6830bis.html>
> 
>