Re: I-D Action: draft-gont-6man-ipv6-universal-extension-header-01.txt

"C. M. Heard" <heard@pobox.com> Sat, 03 May 2014 19:12 UTC

Return-Path: <heard@pobox.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 27E351A0103 for <ipv6@ietfa.amsl.com>; Sat, 3 May 2014 12:12:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level:
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] 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 Se0ZWD4vAM0u for <ipv6@ietfa.amsl.com>; Sat, 3 May 2014 12:12:16 -0700 (PDT)
Received: from shell4.bayarea.net (shell4.bayarea.net [209.128.82.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8CB401A0100 for <ipv6@ietf.org>; Sat, 3 May 2014 12:12:16 -0700 (PDT)
Received: (qmail 8991 invoked from network); 3 May 2014 12:12:13 -0700
Received: from shell4.bayarea.net (209.128.82.1) by shell4.bayarea.net with (DHE-RSA-AES256-SHA encrypted) SMTP; 3 May 2014 12:12:12 -0700
Date: Sat, 03 May 2014 12:12:12 -0700
From: "C. M. Heard" <heard@pobox.com>
X-X-Sender: heard@shell4.bayarea.net
To: 6man <ipv6@ietf.org>
Subject: Re: I-D Action: draft-gont-6man-ipv6-universal-extension-header-01.txt
In-Reply-To: <536317AE.1090500@gmail.com>
Message-ID: <Pine.LNX.4.64.1405031048580.14081@shell4.bayarea.net>
References: <20140408103907.23507.46057.idtracker@ietfa.amsl.com> <536317AE.1090500@gmail.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Archived-At: http://mailarchive.ietf.org/arch/msg/ipv6/a7DYJwOXTJxoZdBQvNBrwkIbSFs
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: <http://www.ietf.org/mail-archive/web/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: Sat, 03 May 2014 19:12:18 -0000

On Fri, 2 May 2014, Brian E Carpenter wrote:
> I've finally understood what's been bothering me about this draft.
> Actually, two things:
> 
> 1. If a node (regardless of whether it's the destination host,
> or an intermediate node such as a firewall) has a policy
> of discarding packets with an unknown extension header
> or an unknown transport protocol, it *doesn't matter* that
> it can't distinguish them. The packet is discarded anyway.
> 
> Comment on that: In either case, this discard by a host is
> consistent with RFC2460 (even as updated by RFC7045). In either
> case, it's what we would expect a firewall to do if it has the
> usual sort of paranoid policy, and that again is consistent
> with RFC7045.

What motivated the draft was work on L2 middlebox functions that are 
not required to have the usual paranoid "default deny" policy in 
order to accomplish the intended purpose.  One was RA-Guard (see 
http://tools.ietf.org/html/rfc7113); the other was DHCPv6-Shield 
(http://tools.ietf.org/html/draft-ietf-opsec-dhcpv6-shield).  For 
those functions extension headers do not matter so long as the 
transport header can be found and inspected; the implementation 
advice for the RA-Guard and DHCPv6-Shield filters is to pass 
everything that can be positively identified as NOT being a 
forbidden RA message or DHCPv6 message.

That being said, if Brian is correct in his assertion that we should 
expect typical filtering middleboxes to agressively apply a "default 
deny" policy to unknown extension headers, then I'd have to agree 
with his conclusion that UEH (or a reserved range of next header 
values) would fail to achieve its intended purpose, which is to get 
them to skip over unknown extention headers.  On the other hand, I 
have gotten the impression from much of the discussion here and on 
v6ops that the usual aim of filtering middeboxes is to inspect 
transport headers, not specifically extension headers, and apply a 
"default deny" policy to transport protocols.  If the reason packets 
with extension headers get dropped is because the middleboxes lack 
the ability to find the transport header, then UEH (or a reserved 
range of next header values) could help.

> 2. Given that argument, I think this draft should consider a 4th 
> possible solution: Do Nothing. I think it's a valid option.

If "do nothing" means make no changes to the normative 
specifications in 7045 and 6564, then yes, that is a valid option.

That being said, there has in the past been an impression that RFC 
6564 guaranteed that it would be possible to skip over unknown 
extension headers -- see, e.g., the changes in the above-referenced 
DHCPv6-Shield draft in going from -01 to -02.

In order to clear up thus confusion, it would probably be useful to 
at least publish advice to implementors of middleboxes that any 
unrecognized Next Header value SHOULD be treated as if it indicates 
the presence of an unknown upper-layer header, because it is unsafe 
to treat it as if it were a new extension header with the TLV format 
defined by RFC 6564.  It would also be good to remind them that they 
MUST provide a configuration option to allow packets containing such 
values, as specified in RFC 7045, noting that a side-effect of 
allowing all unrecognized extension headers is that unrecognized 
transport protocols will be allowed also.

Mike Heard