Re: [OPSEC] Last Call: <draft-ietf-opsec-ipv6-eh-filtering-06.txt> (Recommendations on the Filtering of IPv6 Packets Containing IPv6 Extension Headers) to Informational RFC

"C. M. Heard" <heard@pobox.com> Tue, 27 November 2018 19:47 UTC

Return-Path: <heard@pobox.com>
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 C52E11241F6; Tue, 27 Nov 2018 11:47:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 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_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=pobox.com; domainkeys=pass (1024-bit key) header.from=heard@pobox.com header.d=pobox.com
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 W7ulxDhEh7OA; Tue, 27 Nov 2018 11:46:57 -0800 (PST)
Received: from pb-smtp20.pobox.com (pb-smtp20.pobox.com [173.228.157.52]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C41E8130DC0; Tue, 27 Nov 2018 11:46:57 -0800 (PST)
Received: from pb-smtp20.pobox.com (unknown [127.0.0.1]) by pb-smtp20.pobox.com (Postfix) with ESMTP id 3B27C2DF8B; Tue, 27 Nov 2018 14:46:57 -0500 (EST) (envelope-from heard@pobox.com)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type:content-transfer-encoding; s=sasl; bh=XuBBovtinCIV gjUMxUntb3bmzI0=; b=P1S26EYef8yebAzvvors5yhzQ+pauJiFcyn+kdzx2AaF FerMmwsvN/2wckuSodWo8Smk/aoS7mBqPNMnuVrUY5bvwuSFUDMBqlSiwJVtVuch dLu69o3FCdnbpCd3xFKXwCiFfJOCRp6u7l+VGfGIBZRD7EsIF+xWJbf/vMsP8y4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type:content-transfer-encoding; q=dns; s=sasl; b=leEai0 IDB+55NJ9w8p32lMIqLOOoAyZTzcEL9iNX9LP7us3gzfaifDqkaGju0U4SvbsepR +psaIL8xIqJziGrIqMFJDdYfCKcPHQhtabgwEJNUSNoWZunNwt1c2EmqodWTzQ19 iAPTq+niOv2VtY1iFUnvjDQJbLZx2Vgcy8pcY=
Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1]) by pb-smtp20.pobox.com (Postfix) with ESMTP id 33F722DF89; Tue, 27 Nov 2018 14:46:57 -0500 (EST) (envelope-from heard@pobox.com)
Received: from mail-it1-f172.google.com (unknown [209.85.166.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 9BFCE2DF87; Tue, 27 Nov 2018 14:46:54 -0500 (EST) (envelope-from heard@pobox.com)
Received: by mail-it1-f172.google.com with SMTP id b5so445494iti.2; Tue, 27 Nov 2018 11:46:54 -0800 (PST)
X-Gm-Message-State: AA+aEWZbFkgFu7t6XbAdOEmDCZDUmqOSemA5yI7jFVm/6kWocaA8N4T8 9+p+PdAJrtwMqUMt2qfGi6NdtdMJKhQUNyCitME=
X-Google-Smtp-Source: AJdET5d6NculCUimHjJOums4N2APMc6A/XK+HB66hCqH35V5TVrlPkU0FNpzohAyVKdpKljTOG2vIOLhudrzfcB8J+8=
X-Received: by 2002:a02:b529:: with SMTP id l38mr27874600jaj.25.1543348013395; Tue, 27 Nov 2018 11:46:53 -0800 (PST)
MIME-Version: 1.0
References: <CACL_3VExxwN6z-WHbp3dcdLNV1JMVf=sgMVzh-k0shNJFeADbQ@mail.gmail.com> <BLUPR0501MB2051A8FFB1DAFDCA9873B9E6AE700@BLUPR0501MB2051.namprd05.prod.outlook.com> <CACL_3VFSHqU-D+NJu=k2-p4tbjZukT7i7WEoX+5kdUtdHB4Rjw@mail.gmail.com> <CACL_3VGk0CsHObEgSwLdCp8agOWrjccB94-aynEz3Bv0w+EU+w@mail.gmail.com> <475fe28a-aafe-d3b0-e665-fe97dd1439b8@foobar.org> <CACL_3VGHWW8fCDo8Q9br2fwXn5zBi+kN_5a1sOTX7m7QaU8iyg@mail.gmail.com> <3dc898de-6a18-4106-52fd-36cb8f60b19b@gmail.com> <f2784abe-d5b5-a556-3cfa-63481a7a8929@foobar.org> <CACL_3VGqhc-gFhbGJNm9XjZRXHpv9yZ3e4CurmT2P-VpQuVi3w@mail.gmail.com> <40f9b0b3-f9fd-fc09-dad1-3e575df791a3@si6networks.com> <CACL_3VHnUZwcG2=QbJ8HZf6nqiYv8qXxK8cOkuBmdX3QsKfPNg@mail.gmail.com> <12480906-A488-477E-BAE9-B7E22FD34060@gmail.com> <65e96716-48d3-a26c-905a-a5e47deea683@si6networks.com> <16F94EAB-CE40-4A4A-BAB3-4DDAC44980B0@employees.org>
In-Reply-To: <16F94EAB-CE40-4A4A-BAB3-4DDAC44980B0@employees.org>
From: "C. M. Heard" <heard@pobox.com>
Date: Tue, 27 Nov 2018 11:46:41 -0800
X-Gmail-Original-Message-ID: <CACL_3VHntGacF6B=L6ZmjPVhWBPbGQBpE8n5VYjA+URFhWRwYA@mail.gmail.com>
Message-ID: <CACL_3VHntGacF6B=L6ZmjPVhWBPbGQBpE8n5VYjA+URFhWRwYA@mail.gmail.com>
Subject: Re: [OPSEC] Last Call: <draft-ietf-opsec-ipv6-eh-filtering-06.txt> (Recommendations on the Filtering of IPv6 Packets Containing IPv6 Extension Headers) to Informational RFC
To: Ole Troan <otroan@employees.org>
Cc: Fernando Gont <fgont@si6networks.com>, Bob Hinden <bob.hinden@gmail.com>, OPSEC <opsec@ietf.org>, IETF <ietf@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Pobox-Relay-ID: 31495C06-F27D-11E8-B57F-F5C31241B9FE-06080547!pb-smtp20.pobox.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/AlDNEm5ARBj_zczijszT80BReW0>
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: Tue, 27 Nov 2018 19:47:04 -0000

On Tue, Nov 27, 2018 at 12:28 AM Ole Troan wrote:
> Fernando, et al,
>
>>> From reading the email thread, this sentence seems to me to be a
>>> good summary of the draft.
>>
>> Most of the content of this document is about analyzing the
>> implications of each EH and option, to help folks with the
>> aforementioned analysis -- regardless of what the outcome of [such]
>> analysis is.
>
> OK, that’s good to hear.
>
> If that’s the case I would have liked to see more text on explaining
> the background, give reasons why filtering in the middle of the
> network is harmful (protocol extensions, ossification, violates
> Internet architecture principles, packet parsing is costly, might
> required symmetric paths, etc).
>
> A very unfortunate consequence of this work, is that the IETF appears
> to send a message that routers in the Internet is now expected to
> parse deep into packets and perform filtering actions. That’s a big
> change of the Internet architecture, and our view of layering.
>
> A few comments on the actual advice:
>
> The HBH advice (3.4.1.5) is fine and reflects that I think.
> Likewise for the RH advice (3.4.2.5),  FH (3.4.3.5) and DestOpt (3.4.6.5).
>
> * Protocol numbers 253/254
>
> OLD:
> 3.4.10.5.  Advice
>    Intermediate systems should discard packets containing these EHs.
>    Only in specific scenarios in which RFC3692-Style experiments are to
>    be performed should these EHs be permitted.
>
> NEW:
> 3.4.10.5.  Advice
>    Intermediate systems should permit packets that contain these EHs.
>
> * New protocol types / extension headers
>
> OLD
> 3.5.5.  Advice
>    Intermediate systems should discard packets containing unknown IPv6
>    EHs.
>
> NEW:
> 3.5.5.  Advice
>    Intermediate systems should permit packets containing unknown IPv6
>    EHs.

Ole, you are in effect saying that the proposed text for Section 3 in
https://mailarchive.ietf.org/arch/msg/opsec/5SF7Q1dNnikQ23sx0nn6Iah1hMU
should have the "operators should determine ..." text replaced by
"intermediate systems should permit ..." (note that I include a portion
of Section 3.1 dealing with the "unable to determine" case, in addition
to the cases you mention above).

I have to admit that I think the Internet would be better served by
the choices that you propose, but the current consensus position of the
IETF, as expressed in RFC 7045 (PS), acknowledges that some systems
will parse deep into packets to perform filtering actions.  In levying
requirement on systems that do so, it is neutral on what the default
action is in the above cases.  Since the status of the current draft is
informational, it seems inappropriate to push the advice one way or
another and thereby turn "MAY" into "should" or "should not."

Hence, I think "operators should determine ..." is probably the way to go.

To make the point about RFC 7045 steering the advice perfectly clear, I'd
actually like to see Section 2.3 expanded along the following lines:

---
OLD:
2.3.  Conventions

   This document assumes that nodes comply with the requirements in
   [RFC7045].  Namely (from [RFC7045]),

   o  If a forwarding node discards a packet containing a standard IPv6
      EH, it MUST be the result of a configurable policy and not just
      the result of a failure to recognise such a header.

   o  The discard policy for each standard type of EH MUST be
      individually configurable.

   o  The default configuration SHOULD allow all standard IPv6 EHs.

NEW:
2.3.  Conventions

   This document assumes that nodes comply with the requirements in
   [RFC7045].  Namely (from [RFC7045]),

   o  Any forwarding node along an IPv6 packet's path that forwards the
      packet for any reason SHOULD do so regardless of any extension
      headers that are present.  Exceptionally, if a forwarding node is
      designed to examine extension headers for any reason, such as
      firewalling, it MUST recognise and deal appropriately with all
      standard IPv6 extension header types and SHOULD recognise and deal
      appropriately with experimental IPv6 extension header types.

   o  If a forwarding node discards a packet containing a standard IPv6
      EH, it MUST be the result of a configurable policy and not just
      the result of a failure to recognise such a header.

   o  The discard policy for each standard type of EH MUST be
      individually configurable.

   o  The default configuration SHOULD allow all standard IPv6 EHs.

   o  Experimental IPv6 extension headers SHOULD be treated in the same
      way as standard extension headers, including an individually
      configurable discard policy.  However, the default configuration
      MAY drop experimental extension headers.

   o  Forwarding nodes MUST be configurable to allow packets containing
      unrecognised extension headers, but the default configuration MAY
      drop such packets.

Do you think that this would help?

> * MLD
> 4.3.7.5.  Advice
>    Intermediate systems should discard packets that contain this option.
>    Only in specific environments where support for RSVP, multicast
>    routing, or similar protocols is desired, should this option be
>    permitted.
>
> Multicast is fundamental to the function of e.g. IPv6 ND. IPv6 links
> must generally be multicast capable. A recommendation of a blanket kill
> of MLD can’t be right. I don’t know how this recommendation should be
> formed, perhaps say something to separate MLD as used on-link with
> hop-limit = 1?

As I look at the advice for specific options more carefully, I find some
inconsistencies in the advice for certain cases, and the Router Alert
option (which is the one that applies to MLD) is one of those. My
general take for Hop-by-Hop options would be:

- If the "act" bits are set to "00" (ignore if you don't support it),
  then the advice should probably be to pass packets with that option
  unless there is vulnerable equipment that needs to be protected (e.g.,
  legacy routers that could be subject to DOS attacks from Router Alert)

- if the "act" bits are set to anything else, then the advice should
  probably be to drop such packets unless part of a domain where the
  feature is used (which is what RFC 8200 says anyway)

> Unknown options types:
>
> OLD:
> 4.4.5.  Advice
>    Enterprise intermediate systems that process the contents of IPv6 EHs
>    should discard packets that contain unknown options.  Other
>    intermediate systems that process the contents of IPv6 EHs should
>    permit packets that contain unknown options.
>
> NEW:
> 4.4.5.  Advice
>    Intermediate systems should not discard packets based on the presence
>    of unknown options.

I see that Fernando subsequently agreed to this, and I do not object;
but I do questions why unknown options would be permitted while the ones
set aside for RFC3692-style are to be filtered unless such an experiment
is known to be ongoing. Consistent advice seems to be in order for
these two cases.

I will follow up after doing a more thorough review of the specific
advice for each option.

Mike Heard