Re: Non-Last Small IPv6 Fragments

Tom Herbert <tom@herbertland.com> Fri, 11 January 2019 21:27 UTC

Return-Path: <tom@herbertland.com>
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 D33EF128CE4 for <ipv6@ietfa.amsl.com>; Fri, 11 Jan 2019 13:27:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level:
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001] 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 VkvwXXzxXJ1d for <ipv6@ietfa.amsl.com>; Fri, 11 Jan 2019 13:27:01 -0800 (PST)
Received: from mail-qt1-x82c.google.com (mail-qt1-x82c.google.com [IPv6:2607:f8b0:4864:20::82c]) (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 9C60A128B14 for <ipv6@ietf.org>; Fri, 11 Jan 2019 13:27:01 -0800 (PST)
Received: by mail-qt1-x82c.google.com with SMTP id v11so20458338qtc.2 for <ipv6@ietf.org>; Fri, 11 Jan 2019 13:27:01 -0800 (PST)
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; bh=THc06LC1tg0IyxUNh0MSvNNS8Orf5USUEasRSbAaSpk=; b=1SS50DOZULAjLs8Mb0x09tlwdfYkey9L4NlGZGNj44xIeOLeETGTZ3qjemQvs3vnAK X4xO89qezAt0E6HgS9lfVaeeaX7TOziS6DEWi4uLK1HYOinlYB/ZMYmpDExVHQtyLA2O dRGNDeYmps1MNfX+VCJ9pYBfk2zXXFNMmhjnjvhqwNjlgJiC31R3nNhJCjZFrzJ2UkPz cKZ/F+HioobeYO/e4+extNvrUSOisa4IDx/RGC3eEdm0f3FAjdeM6F1b9YXTKU5J+isz BjcuKxW/q5J2nz1+tB6kcwOorUfqWg/95JM6QNRoPLn2pTixxzckVX7Z6gHkSKnAxKo3 0/eA==
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; bh=THc06LC1tg0IyxUNh0MSvNNS8Orf5USUEasRSbAaSpk=; b=LYMVTrGct0fCi9PEP6CD0vVcOZb11H1CktBNz6EcT6irQOraJ6NeX8Wye5K0n8n1tP 5b7+q/lRLSRa4c5qv40dOIg8GmLcRX/P+5W11NS9Iqn5oA7xrEoIdKRMtQRqVAvORFCl CzPPhBnVsZUfPyV5eO56kDLs83h4GNxv0Av+XxT6xFqgHMgS3zshp0U3cZoGKrA2r18O NVbHkO9p5mDOH67p6rTTEistdIWKzJs14ADl6q0ID5BZIUVhXvsPhmEkBAMqROfWRIq5 ElDPS3fPPhGOcA/whzuWqr1aZNyvgtvwkTR7MyPSq2FlB0jz7tdYUMSIZPk2qNvhpF5/ 0hNQ==
X-Gm-Message-State: AJcUukfpOJvd60l0HoJWhMuPln9ECWed7UzYbzL+V44Aahm/WGHYGcBo CET8EYAN3ArEaOSBdHCCr34YjhPP+CwOBwppa2vAnT+1X50=
X-Google-Smtp-Source: ALg8bN5wXRI1ycQqPdS089pr5rI9Ae5JmhaXOdRi0CAqsuwqBxfs5EhBXM5G5fBoXEwPZoF4T64kPW32LwbGHWIbXKc=
X-Received: by 2002:a0c:f584:: with SMTP id k4mr15643547qvm.22.1547242020492; Fri, 11 Jan 2019 13:27:00 -0800 (PST)
MIME-Version: 1.0
References: <CAOSSMjV0Vazum5OKztWhAhJrjLjXc5w5YGxdzHgbzi7YVSk7rg@mail.gmail.com> <2AB3F16C-FC0E-4EF7-B1ED-1A97F2CEC69B@gmail.com> <BYAPR05MB42458F851962F26AE1E15CC4AE840@BYAPR05MB4245.namprd05.prod.outlook.com> <CAAedzxofmhokstWuq7mRWnd5PTz5WQaiDNnE8O_VHXF_PbK6nw@mail.gmail.com> <BYAPR05MB4245388FB800873A5A8ED12AAE840@BYAPR05MB4245.namprd05.prod.outlook.com> <66bf652a-2bc0-6814-6ded-a63eece7fbe2@gmail.com> <BYAPR05MB4245B9305E6EC57EDD45509FAE840@BYAPR05MB4245.namprd05.prod.outlook.com> <7453645f-ff91-e866-b087-e7d4f1450ab6@gmail.com> <0e792b48-4360-6977-9ae8-9cdfdc78c7b8@gmail.com> <16A642DC-D3A4-452C-B7D1-20CA0EEEDDA2@lists.zabbadoz.net> <CAOSSMjWS9po2XuBHJ5hbN9hfNDKZ1diecH08Kt697-15jRtAvg@mail.gmail.com> <0e0c3141-889e-ff60-2787-2889b3a9af6b@si6networks.com> <748DA428-5AB2-4487-A4FB-F2DABF5BF8BE@thehobsons.co.uk> <8b43af81-1c49-5cea-6472-97703674e661@si6networks.com> <CAN-Dau1HwG5RndacpSA+si+zKuTdpSvA=QA1A11A==rMNe=4+w@mail.gmail.com>
In-Reply-To: <CAN-Dau1HwG5RndacpSA+si+zKuTdpSvA=QA1A11A==rMNe=4+w@mail.gmail.com>
From: Tom Herbert <tom@herbertland.com>
Date: Fri, 11 Jan 2019 13:26:49 -0800
Message-ID: <CALx6S35KNhV2gFp9OdU+M1zy5WUuEAEvXkDXNDWWxi7uQ4e_cw@mail.gmail.com>
Subject: Re: Non-Last Small IPv6 Fragments
To: David Farmer <farmer@umn.edu>
Cc: Fernando Gont <fgont@si6networks.com>, IPv6 List <ipv6@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/76OX3G6kX576WbzL5MVFA_eUvy0>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
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: Fri, 11 Jan 2019 21:27:04 -0000

On Fri, Jan 11, 2019 at 1:13 PM David Farmer <farmer@umn.edu> wrote:
>
>
> On Fri, Jan 11, 2019 at 1:58 PM Fernando Gont <fgont@si6networks.com> wrote:
>>
>> On 11/1/19 15:38, Simon Hobson wrote:
>> > Fernando Gont <fgont@si6networks.com> wrote:
>> >
>> >> ... enforce limits ...
>> >
>> > The guidance also needs to suggest sensible limits - otherwise what one implementer (eg the Linux stack that discards any small fragment that isn't the last)
>>
>> IMO, this is bad behavior advice. As an attacker, I'd fire 1280-sized
>> frags, and your check hasn't achieved anything.
>>
>>
>> >may not interoperate with another (eg make the last two fragments approximately equal in size). In a significant part, that seems to
>> > have been what this thread has been about - what is reasonable
>> guidance for this.
>>
>> In general, what you do is AIMD (additive increase, multiplicative
>> decrease). The numbers limits are a few thousand packets. Which allow
>> fragments to work for some cases - few connections, rather low
>> throughput, but will not allow system breakage when the attacker wants
>> to play.
>>
>> Dropping small frags as in Linux is bad, because you hurt
>> interoperability without any significant/real gain.
>>
>> OTOH, limiting the number of frags is good, because limits kick in at a
>> point in which "you need to do something, because otherwise - DoS".
>>
>> Obviously, you cannot expect big pipes with fragmentation to work. Given
>> high bandwith, multiply 60s * throughput, and you'll need a lot of
>> memory to hold the frags.
>>
>> Adapting the Frag reassembly time out can also help -- there's not much
>> of a point to keep a frag in memory for 60s, particularly when under
>> heavly load. -- well before that TCP timers will fire, or the frag si
>> not useful anymore, anyway.
>
>
> I just had a thought for the guidance;
>
> 1. System-wide limit the number of fragments based on the overall system resources available.
> 2. As you near said limit, maybe 75% of the limit, drop outright, or at a high probability, non-final fragments smaller than (1280/2) 640 bytes.
>
> The reasonable fragmentation algorithms I can think of do not generate non-final fragments that are less than 640 bytes. Nevertheless, such fragments SHOULD NOT be dropped except for when the system is under stress.
>
> What do others think?

I don't see any practical purpose of sending tiny fragments with eight
byte payloads in non-first fragments, these can only happens under DOS
attack or synthetic testing. So I do believe it's prudent to have some
guidance on setting limits for minimal sizes of non-first fragments.
The limit should probably be configurable with some recommended
default value. I believe the 1280 limit in Linux is too high, but
there are some compelling arguments for 640.

Tom

> ===============================================
> David Farmer               Email:farmer@umn.edu
> Networking & Telecommunication Services
> Office of Information Technology
> University of Minnesota
> 2218 University Ave SE        Phone: 612-626-0815
> Minneapolis, MN 55414-3029   Cell: 612-812-9952
> ===============================================
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> ipv6@ietf.org
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------