Re: Mirja Kühlewind's Discuss on draft-ietf-6man-rfc2460bis-09: (with DISCUSS and COMMENT)

otroan@employees.org Wed, 12 April 2017 20:36 UTC

Return-Path: <otroan@employees.org>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 42C601243F3; Wed, 12 Apr 2017 13:36:09 -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, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=employees.org; domainkeys=pass (1024-bit key) header.from=otroan@employees.org header.d=employees.org
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 YFGmZqpJ4o-B; Wed, 12 Apr 2017 13:36:05 -0700 (PDT)
Received: from esa01.kjsl.com (esa01.kjsl.com [IPv6:2607:7c80:54:3::87]) by ietfa.amsl.com (Postfix) with ESMTP id EB46F129AC4; Wed, 12 Apr 2017 13:35:59 -0700 (PDT)
Received: from cowbell.employees.org ([198.137.202.74]) by esa01.kjsl.com with ESMTP; 12 Apr 2017 20:35:59 +0000
Received: from cowbell.employees.org (localhost [127.0.0.1]) by cowbell.employees.org (Postfix) with ESMTP id 35760D788B; Wed, 12 Apr 2017 13:35:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=employees.org; h=from :message-id:content-type:mime-version:subject:date:in-reply-to :cc:to:references; s=selector1; bh=aKCQ1EjYmt5fZXu3E9JITmnwmg0=; b= dpSz/w+MpiohRyoiHk8loWicRjnR1H8L+Jej8kKW/IWSXfr29CDsBWw1tYVmYrD8 0nhq4yJJ5d+lnBMgUExGaPYR2DtglUTrYevJeILkO1f6l/AgYXLn1+LEJdchmW+I j4eIATTBOhv8RxbDDJTzJFBPyQu7X5cRC8BFtKBJws8=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=employees.org; h=from :message-id:content-type:mime-version:subject:date:in-reply-to :cc:to:references; q=dns; s=selector1; b=Zw+IjQjvduvrE6FhyH+LPMJ oD9DskZwyU1TOMkl6iRzUzjWS8wDNA9pwVBA+6bPy8daFDYtgWW4kV4NTmvU+UKR DqDhien7ttjV1QxBl3m9UPQ++EVw7dIqWk3ahsve2cGGFv/ECP+c4nFka4APmdlr pZs0mrRFdLHiHxXE1Htg=
Received: from h.hanazo.no (96.51-175-103.customer.lyse.net [51.175.103.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: otroan) by cowbell.employees.org (Postfix) with ESMTPSA id D54FCD788E; Wed, 12 Apr 2017 13:35:58 -0700 (PDT)
Received: from [IPv6:::1] (localhost [IPv6:::1]) by h.hanazo.no (Postfix) with ESMTP id 5088BA99FFAC; Wed, 12 Apr 2017 22:35:54 +0200 (CEST)
From: otroan@employees.org
Message-Id: <248F8BA5-48D6-4933-B45F-7F1B20477C2C@employees.org>
Content-Type: multipart/signed; boundary="Apple-Mail=_1E0B371C-4728-423D-95D6-E50494431612"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Mirja Kühlewind's Discuss on draft-ietf-6man-rfc2460bis-09: (with DISCUSS and COMMENT)
Date: Wed, 12 Apr 2017 22:35:52 +0200
In-Reply-To: <149201127005.15808.3277140025315157500.idtracker@ietfa.amsl.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-6man-rfc2460bis@ietf.org, 6man-chairs@ietf.org, 6man WG <ipv6@ietf.org>
To: Mirja Kühlewind <ietf@kuehlewind.net>
References: <149201127005.15808.3277140025315157500.idtracker@ietfa.amsl.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/B5YsY8u-zb5FeDtwRUwAQNEC4k0>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 12 Apr 2017 20:36:09 -0000

Mirja,

> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> My discuss is mainly on text in section 4.8 (also based on the tsv-art
> review -> Thanks Martin!):

See also Bob's response to Maritn.

> 
> I find the recommendation to basically just not use hop-by-hop headers in
> section 4.8 extremely unsatisfying. Can we maybe do better? Wouldn't it
> be maybe time to just deprecate the current hop-by-hop number an assign a
> new one? I know that also has deployment problem but maybe it's worth a
> try. I guess the assignment could happen in a new document though, but
> the deprecation could be done here.

The Hop-by-Hop header (HBH) is a container option. It has the protocol value 0, and has to be first in the header chain, so to make it efficient for routers to check for it's presence.

RFC2460 has:
  The Hop-by-Hop Options header is used to carry optional information
   that must be examined by every node along a packet's delivery path.

The problem with this was that implementations ended up punting packets with the HBH to software, essentially opening up for a DOS attack, which again led operators to filtering out packets with the HBH == 0.
(While at the same time there were no HBH options with cross Internet significance).

How the HBH option could be saved has been discussed for quite some time in the 6MAN working group.
Including a draft: https://tools.ietf.org/html/draft-ietf-6man-hbh-header-handling-03
Which conclusion got included into 2460bis.

The working group thought it premature to deprecate the HBH option header.
As a way to "rescue" the HBH option we have made one significant change:

NOTE: While [RFC2460] required that all nodes must examine and
process the Hop-by-Hop Options header, it is now expected that nodes
along a packet's delivery path only examine and process the Hop-by-
Hop Options header if explicitly configured to do so.

Which means by default routers unless they have been configured to process a particular option contained in an HBH option, shall forward the packet as normal. Thereby rectifying the attack vector.

What we lose by this approach is that one cannot use mandatory options anymore. I.e. options that MUST be processed by every router along the packet's path. RFC2675 for example is a mechanism depending on that. In our view this is not a problem, since routers with links with MTU larger than 64K would have to be configured and would be within a controlled domain anyhow.

> 
> This related to this comment from Martin's review, also proposing a
> potential way forward:
> "- Section 4.8. "Defining New Extension Headers and Options":
> It says new hop-by-hop headers must never ever defined. This is
> problematic, as this closing the door forever, even if future instances
> of the IETF do would like to wish to define new hop-by-hop headers. A
> better way would have to say "that new hop-by-hop headers must have IETF
> consensus".

Yes, the door for a new HBH option header container is closed.
Given that this is the signal that every router has to check.
Given that this is a container option one can put whatever one likes into the existing HBH options header, so it would be hard to see the use case for a new one.

> - Section 4.8. "Defining New Extension Headers and Options":
> Also the „not recommended“ to define new extension headers looks strange,
> especially with the phrase "There has to be a very clear justification".
> The term "clear justification" is not an exact engineering specification.
> Why not using "technical protocol specification and real word use case
> required, plus IETF consensus"?"

   Defining new IPv6 extension headers is not recommended.  There has to
   be a very clear justification why any new extension header is needed
   before it is standardized.

The text does state "standardized" though.

Just to remind you that the Destination options header, the HBH options header and the Routing header are all container options, which allows for arbitrary number of TLVs inside. Since extension headers share the numbering space with upper layer protocols, defining new ones would require all implementations parsing header chains (e.g. to do packet filtering on transport headers) would have to be updated. This is the reason for the strict restriction on adding new ones.

> 
> As a side note, there is at least one experimental RFC that defines a
> destination option to be inspected by a network device, given the know
> problems of hop-by-hop option which renders them unusable.

Right, that's a much more costly way of doing it, given that routers would now have to go and hunt for the particular sub option. This also violates RFC2460. And this would obviously neither achieve hop by hop behaviour.

> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> One question because I'm not sure if I interpret this correct to make it
> part of my discuss:
> Section 4.5: "The number and content of the headers preceding the
> Fragment
>      header of different fragments of the same original packet may
>      differ.  Whatever headers are present, preceding the Fragment
>      header in each fragment packet, are processed when the packets
>      arrive, prior to queueing the fragments for reassembly.  Only
>      those headers in the Offset zero fragment packet are retained in
>      the reassembled packet."
> Does this mean the ECN codepoint (part of the Traffic Class field) is
> copied from the first fragment? This doesn't seem to be correct, however,
> also not sure what the correct answer is. I know this was not changed in
> this revision but maybe we can still get this right.

When fragments are created most of the fields are copied from the IPv6 headers (e.g., Source Address, Destination address, flow label, traffic class, hop limit).  Some like payload length, next header, and hop limit are modified.

If I understand your question, the answer is yes, the ECN code point is copied from the first fragment, but should be the same from all of the fragments.

Best regards,
Ole