Re: [tsvwg] draft-ietf-udp-options issues from IETF 104

Tom Herbert <tom@herbertland.com> Tue, 16 July 2019 22:06 UTC

Return-Path: <tom@herbertland.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9A92412013A for <tsvwg@ietfa.amsl.com>; Tue, 16 Jul 2019 15:06:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=herbertland-com.20150623.gappssmtp.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 rtE5c1_Mpp5h for <tsvwg@ietfa.amsl.com>; Tue, 16 Jul 2019 15:06:57 -0700 (PDT)
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4F1CC12012C for <tsvwg@ietf.org>; Tue, 16 Jul 2019 15:06:57 -0700 (PDT)
Received: by mail-ed1-x535.google.com with SMTP id w20so22218461edd.2 for <tsvwg@ietf.org>; Tue, 16 Jul 2019 15:06:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=3UqGc1XGPCoboDwzIkBDLxvY20c6hzIPevsot0BHRes=; b=JRtKUsRgu+DMq3V+bHGKl01lGO51O19s9KMYt9oVBRj8Mr2vQoMgQ7ecyNPlzzHHQU 5pRZ1vJVpFKPhbeXmf+i/1OnqiUGd9WIfGnBM667gJ/IA5aLeHdnfnO2JBvZyzGOOic/ lieBYJ4sQNlVXLVS61BqpMHvp7PNeyOJGrnV2V+nzzxuYA5VIdan7K3+fhXaZSXqsPX3 oSsJI3ZLV8EUiP2QsUjPqlbB4lE2+wNx5yrn/PVt54JxUcB9jBzT7fMRgySiQ4eM1RFk RfGwGZSs4iPbQILD1kcesM464GdhEnNtGjWta0UCHGVLpV3RdYZ4C1Xg2ChBsrphXV0C YiPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=3UqGc1XGPCoboDwzIkBDLxvY20c6hzIPevsot0BHRes=; b=o8NieRQvZx4BmUrOGpWsiEa9y6BA8H4Pq0Cn10egv0UZU9TYIjRPtFgh5/31wNjHzI UO75XClxJicNrsoQ+VXqhi/DCs3ufePsQsjQ/1spBAIIzNgj/8Fq8cQm/KJi4NYzjcZm Mg+bt60kggGNbJx/Hhm0L7SGbAezSTPs4GeLfPCXxAPGHedeJJ2HH+Y+STYXkNBp4qrF /piclgwsoVrdP2uIrU54DA3qK23B1Sw+/QfG0Si+UMbqL9DhObcrG20N0/Ml73khtZXK ped3TAfTK/X0CBVj0fwcPjDe6iaZIARjhTYElMK4Ft4zHOCbjerESbY3/YMALfqnpglI kDpQ==
X-Gm-Message-State: APjAAAXMLPp4DijTvkq7M8D4SmTuEHJ0SVal3BDl9uNcDg1lcsaGjRYS zXF0bAsLM9MscJs/Ii7W26qG8ayb8gUVxJzyXpmLK0v1
X-Google-Smtp-Source: APXvYqynbnaid8mB7RIjlXB3wGzpF5FaUDJeUwWzmTaaw0S9A+iYMSXnG+I3xE3REC/AVba5foWNEpdUV6PelVTcSOk=
X-Received: by 2002:a50:b0e3:: with SMTP id j90mr31781809edd.26.1563314815778; Tue, 16 Jul 2019 15:06:55 -0700 (PDT)
MIME-Version: 1.0
References: <CAPDqMeq9GjEQKukH1pZOTdE50e_rc3U6gpdxT-5qrS5phD0RGw@mail.gmail.com> <646D45AD-D79B-4BD2-A084-7DA97CE2C415@strayalpha.com> <7EC37B50-45D5-4CF1-B113-205E55BF244E@strayalpha.com> <CALx6S34s7L7xo+26bt5Cdaqi4Es5Aci42GHk1WNKzugr5st-Gw@mail.gmail.com> <B525BF50-EFCC-44A5-A604-6CDDA914A1CB@strayalpha.com> <CAPDqMep3R6z9PRKkHyOvrh6sV9n5Sc0B++-zVz0FYJCwE6swrQ@mail.gmail.com> <E42A2AE2-F499-465E-BDE6-5EFC0AB20042@strayalpha.com> <CE03DB3D7B45C245BCA0D24327794936306138E9@MX307CL04.corp.emc.com> <CAPDqMeoyNb7vQTdqxLpZpnKb9S7QKeDJNLyQJBmq95yXhB+xfQ@mail.gmail.com> <7D365770-64FE-40BC-901D-B4D7DF6B484B@strayalpha.com> <20190713182554.GB39770@clarinet.employees.org> <CALx6S36mH2M6SYnRSecWXa7k_d1u8O43+CXE-=KqeO0x2e5+qw@mail.gmail.com> <82FF6486-FABF-4D2C-B5E2-178779C720A4@strayalpha.com> <30c17e9c174f6b0da3ecc6b503a8cb17@strayalpha.com> <CACL_3VGs7j+y5vFNT3OL9OKX8ue4rv-Cxi467KR-vbhnMdx86g@mail.gmail.com> <2f71a292f924a9b8de4227c4bbc2f809@strayalpha.com> <CACL_3VGrF5UnbVsSzZZoy1i57WKiQKBX2T3a16UyEVHY=Kr3XA@mail.gmail.com> <0ce46e21249f0dc55310b192d382f50a@strayalpha.com> <CALx6S36gaMqNRo_hYKr45T_vTkUB-vRrYRYJz2_KgvejNsJtLQ@mail.gmail.com> <efbf65646a0e0d2535dc5726b34f3472@strayalpha.com>
In-Reply-To: <efbf65646a0e0d2535dc5726b34f3472@strayalpha.com>
From: Tom Herbert <tom@herbertland.com>
Date: Tue, 16 Jul 2019 15:06:44 -0700
Message-ID: <CALx6S37sZxmGQJq5mxDiF88NeUjj2HMRnQG5KyZA_4ujrLJkqg@mail.gmail.com>
To: Joe Touch <touch@strayalpha.com>
Cc: "C. M. Heard" <heard@pobox.com>, tsvwg <tsvwg@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/thhCazUe2SsHX9OPoapTJmI5oSQ>
Subject: Re: [tsvwg] draft-ietf-udp-options issues from IETF 104
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Jul 2019 22:07:00 -0000

On Tue, Jul 16, 2019 at 2:44 PM Joe Touch <touch@strayalpha.com> wrote:
>
>
>
>
> On 2019-07-16 14:37, Tom Herbert wrote:
>
> On Tue, Jul 16, 2019 at 2:25 PM Joe Touch <touch@strayalpha.com> wrote:
>
> ...
>
> IPv6 extension headers began without a limit, and then we realized we
> needed to limit them to fit into one MTU, and then we realized that
> unbounded limits are a good DOS attack vector so we added more limits
> to the receiver which are now default in Linux. Saying that we need
> unlimited options is an academic statement and doesn't reflect
> realities of deployment.
>
>
> We CAN easily set a limit IF we went.
>
> We don't need to design that into the protocol structure. And we don't need to start with something that already impacts things like fragmentation/reassembly, LITE, etc. where the final user data is inside the options area.
>
> Additionally, the comparison to IP is misleading; these are endpoint options and should not have the same kinds of limits as per-hop.
>
IPv6 has destination options for which limits are applied by Linux.


> Finally, the "realities of deployment" should not be designed or limited by what is currently available. UDP hasn't been updated in many decades; I hope we won't need to come back and re-do this in 5 years just because we're too focused on current technology.
>

Tell that to the IPv6 guys ;-) It has taken years to derive a
deployable solution and that has included real world considerations
like DOS. IMO, it is wise to learn from that experience.

Consider in the UDP options draft:

 [NOTE: Tom Herbert suggested we declare "more than 3 consecutive
   NOPs" a fatal error to reduce the potential of using NOPs as a DOS
   attack, but IMO there are other equivalent ways (e.g., using
   RESERVED or other UNASSIGNED values) and the "no more than 3"
   creates its own DOS vulnerability)

Okay, so there is no limit to number of NOPs in a packet. So per the
draft we could full up an MTU or even a maximum size IP packet with
NOPs. That's going to wreak havoc on a receiver and hence is a great
DOS attack. If you don't believe, please run the experiment in your
implemenation and see what happens to your CPU utilization.

In any case, if we don't mention practical limits in the protocol
specification for something that is otherwise unlimited, people will
apply their own limits. I will tell you up front, that if you try to
put this in Linux there will be significant pushback to implement
appropriate limits. We've already went down the DOS path and have
learned the lessons. We apply configurable limits with reasonable
defaults for IPv6 HBH and destination options, and they will be
applied to SR options (it's all the same code which UDP options will
use any way). Limits might be configurable, but we're not going to
allow things in the kernel that are known and obvious DOS vectors. Of
course, if people start coming up with their own limits then that
consequently reduces interoperability.

Tom






> Joe