Re: [tsvwg] Related to "Non-L4S traffic abusing the L-queue" discussion during the interim

Luca Muscariello <muscariello@ieee.org> Mon, 28 February 2022 13:32 UTC

Return-Path: <muscariello@ieee.org>
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 040743A11F6 for <tsvwg@ietfa.amsl.com>; Mon, 28 Feb 2022 05:32:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.109
X-Spam-Level:
X-Spam-Status: No, score=-2.109 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ieee.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 s9wlvAPhNJS6 for <tsvwg@ietfa.amsl.com>; Mon, 28 Feb 2022 05:32:39 -0800 (PST)
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) (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 801FC3A11EB for <tsvwg@ietf.org>; Mon, 28 Feb 2022 05:32:38 -0800 (PST)
Received: by mail-lf1-x129.google.com with SMTP id g39so21314260lfv.10 for <tsvwg@ietf.org>; Mon, 28 Feb 2022 05:32:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ieee.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=zGJMnQxC6XfwQToU2UZ6Ra7pMCQny0SaJR+zPHprxtY=; b=fpOxYWQnUXWIW+guzGjWR6tt2LIqJX99Xa6QGLd1CollRHt9jgdKcEaMcRCXH2Gjd1 kIqkDIoX7is+O+eI5t1SefIGvbngmWDmCRVWUZW6SVLrirzBS1bSM87W8suwkNajFUBL unQWD9DrR2nbZeybAreIATQOgBaeCWzdp0hLk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=zGJMnQxC6XfwQToU2UZ6Ra7pMCQny0SaJR+zPHprxtY=; b=ApvgdUA8WFJS0TLYcSYASGyuwLqyYPyyUSa8EPRwkwijVZfEiHFWn5Aj7EepfuSh8n yNeVHOKkhapttP1PKIpmcmkvnvCh5TrkZFfuv0tdUcTwsuRwbm3Xjpb9byJnLnTUVYZ+ bXo26pTKGxXZw9eT2b9VunYOva4Fwt/2XBDf6wXs3CzAJixivsvIX2CatAS4wU8Muc6C xg0/SlgcZsLyCPTTJnpc+NAg5aALyom6thNxnuXBrICnkl0tfvwTpEX/sQRkbFoNzXJT lBQAr2QKhHCLruERvpaCv39a9bVR2iywtzRusSGYFlicwFNZEVNKzvxIvY6QLszM2zpB ifgQ==
X-Gm-Message-State: AOAM533WeYfIXigSt55hCgBgJW8hJxTmrpWwWG29KKc4qnz4zcF5Xxw5 KRlnMcEMK2+O1niJTz7alX3zZLn3CKaZJ0ricUcdhI6iXjEEIw==
X-Google-Smtp-Source: ABdhPJw76igZ2y+3XaNInwXKq4Cj8N7uNnyAXeqOb1SnNIsf7Txr4bd3xYhN3NJj5gUnJ8p7AIJPJMFPVLX3qayUIuA=
X-Received: by 2002:a05:6512:3f09:b0:43a:4463:56f9 with SMTP id y9-20020a0565123f0900b0043a446356f9mr12461598lfa.533.1646055155909; Mon, 28 Feb 2022 05:32:35 -0800 (PST)
MIME-Version: 1.0
References: <AM9PR07MB7313D5AAF6B9D66C74CC35A1B9369@AM9PR07MB7313.eurprd07.prod.outlook.com> <AM9PR07MB7313F1401B14F6F2DB72A2B2B93E9@AM9PR07MB7313.eurprd07.prod.outlook.com> <MN2PR19MB40454F60DEE5735EAD428465833E9@MN2PR19MB4045.namprd19.prod.outlook.com> <CADVnQyk+uSX9GJtMBnsBhn9NzY+L3BKfhhUJ=yu4Aya98YEonw@mail.gmail.com> <MN2PR19MB40458624D266CDB54009AB19833E9@MN2PR19MB4045.namprd19.prod.outlook.com> <AM9PR07MB731311A9E4532FD501B5D94CB93E9@AM9PR07MB7313.eurprd07.prod.outlook.com> <AC61D119-FE97-4386-8FF0-A7783FA01522@gmx.de> <AM9PR07MB7313C0978D8B8306169409CCB9009@AM9PR07MB7313.eurprd07.prod.outlook.com> <B2CBEFEF-FF1F-45E8-8FE5-247E4BB00623@gmx.de> <d5d87c4c-6f40-c277-2968-0452275be98f@bobbriscoe.net>
In-Reply-To: <d5d87c4c-6f40-c277-2968-0452275be98f@bobbriscoe.net>
From: Luca Muscariello <muscariello@ieee.org>
Date: Mon, 28 Feb 2022 14:32:24 +0100
Message-ID: <CAH8sseS2za1RE5Fo4sp5BVYSV711_rascFosMyOstzw3Y-NKaA@mail.gmail.com>
To: Bob Briscoe <in@bobbriscoe.net>
Cc: Sebastian Moeller <moeller0@gmx.de>, "De Schepper, Koen (Nokia - BE/Antwerp)" <koen.de_schepper@nokia-bell-labs.com>, tsvwg IETF list <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000d9b21305d91414f5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/x1m4yCnGDqCBr2lIRw8u9lDDZUY>
Subject: Re: [tsvwg] Related to "Non-L4S traffic abusing the L-queue" discussion during the interim
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: Mon, 28 Feb 2022 13:32:44 -0000

On Mon, Feb 28, 2022 at 2:18 PM Bob Briscoe <in@bobbriscoe.net> wrote:

> Sebastian,
>
> On 27/02/2022 19:44, Sebastian Moeller wrote:
>
> Dear Koen,
>
> I have not spent the time to verify that I understand your claims an that I agree with them, (I have a hard time understanding how dropping packets that the head of a queue can be called "taildrop" with a straight face and hence am not willing to give you the benefit of the doubt, sorry).
> 	But on a purely logical level, how can a real attack vector for CoDel you might or might not have detected remedy the fact that DualQ essentially established a new fast-lane for unresponsive paced flows that manage to stay below L4S weighted schedulers L4S capacity?
>
>
> [BB] Because Jonathan's claim in his write-up that this is a new fast-lane
> is false.
> Also, in the heading, Jonathan says "This bonus is easily exploited by
> unscrupulous senders *without* disabling congestion control."
> But clearly, the flow's congestion control is not responding to the ECN
> markings coupled across from the C queue. So this statement must also be
> false.
>
> Reasoning:
> By deliberate design, the DualQ treats an unresponsive flow the same as a
> FIFO AQM (like PIE) would. If Jonathan ran a similar experiment but
> classified that unresponsive flow into the C queue, whether it was
> ECN-capable or not, it would have also got 40Mb/s.
>

Beyond the specific experiment, I do not think this is totally accurate. As
a stationary regime
a FIFO AQM and DualQ may converge to the same bandwidth sharing condition
wrt to unresponsive
traffic but in the FIFO AQM this would happen through a fight against, say
TCP. So the unresponsive flow would get packet losses during that fight. In
dualQ the unresponsive flow would get not a single loss to my
understanding, thanks to the prioritization behavior either via strict
priority or WFQ scheduling cycles.




>
> So, there is no new fast-lane.  There is no new throughput bonus. This is
> just the same 40Mb/s that any unresponsive 40Mb/s flow has always got in a
> single queue (AQM or not, ECN or not).
>
> This is the oft-stated deliberate design intent of the DualQ. Per-flow
> rate policing (and/or per-flow latency policing) can be added as an
> optional extra, but only if the operator wants it. The vast majority of the
> Internet currently works fine without per-flow policing.
>
>
> So far, I am solely focusing on Jonathan's scenario (40Mb/s in a 50Mb/s
> link). Koen's experiments show CoDel falls down when unresponsive flow(s)
> send more than the link capacity, but I want to take this one scenario at a
> time.
>
>
> Bob
>
> On Feb 27, 2022, at 18:57, De Schepper, Koen (Nokia - BE/Antwerp) <koen.de_schepper@nokia-bell-labs.com> <koen.de_schepper@nokia-bell-labs.com> wrote:
>
> Hi Sebastian,
>
> The important plots to check are the throughput plots in figure 1, where PIE and DualPI2 have very similar throughput profiles (confirming a coupled DualQ works like a single Q),
>
> 	As I said that is not enough, the whole premise of DualQ is that L4S and traditional traffic can not be mixed, so regressing to single queue behavior indicates that DualQ fails to meet its promise...
>
>
>
> and figure 3 where PIE and DualPI2 have a queue latency at the target. This can only be achieved if the drop and marks are correctly set by the AQM.
>
> 	But is this actually showing more than the known fact that PIE and CoDel have different strictness when interpreting the reference target parameter? To me this looks not really unexpected.
>
>
> Only in the CoDel case the ECT(0) non-responding UDP flow takes practically all the link capacity (99.9% when sending unresponsive UDP-ECT(0) at 100Mbps, and really 100% when sending at the higher 140 and 200Mbps rates, probably killing "all" not-ECT traffic; see other mail to Dave Taht).
> These results speak undeniably for themselves.
>
> 	That is, as always, a contingent upon interpretation; I am not convinced that your interpretation is necessarily the best objective one available.
>
>
> Your hunch and the issue which is now mentioned in the interim slides and the shepherd's writeup is just wrong.
>
> 	Excuse me, there is no data indicating that a faked ECT(1) unresponsive-to-CE flow (especially one staying below the L-queues capacity share) will get the same amount of actual drops in the L-queue as it would in a singe-queue CoDel or FIFO. I might not be seeing the forrest for the trees here, so please explain how the existing data shows that my hunch is wrong. But with the additional information about figure 8, I object to your claim, my "hunch [...] is just wrong". The data confirms what I described as my hunch, for cases when when the "illegitimate" flow stays below the L4S AQM's L-queue capacity.
> 	As I implied before this situation is not as exotic as you might think, given that most access links are << than core links, and L4S apparently is targeted for deployment on core links, no? So no, my flow might not noticeably affect the L-2-C "fairness at a congested L4S AQM but I might still be able to gain an unfair and undeserved throughput advantage over other flows at that link that runs counter to the L4S claims of rough equitable sharing between flows.
>
>
>
> This non-issue should just be removed from the writeup and I suggest you make it an issue for the CoDel/FQ-CoDel RFCs instead. There we detected a "real" attack vector!
>
> 	Yeah, you essentially demonstrated that CoDel in itself is not as DOS resilient as it would be desirable. As Dave already mentioned fq_codel partly takes the sting out of this by restricting the fall-out mostly to the hash-bucket housing the offending flow. Also note how the stress-dropper takes care to find the largest queue (which will house the DOS flow) so even batch-emergency dropping does mostly the right thing. A sufficiently motivated attacker obviously will spoof/randomize at least SRC ports or addresses causing more problems for FQ, but my concern really is not so much DOS resistance but simple ways to gain fast-lane access for actual useful data transfer and there address spoofing will make things much harder, than just rate-limiting and fake-ECT(1) marking a flow...
> As I see it if I would simply fake ECT(1) mark capacity-seeking non-ECN-honoring flows L4S will grant me a priority lane for data as long as I a) pace packets sufficiently well and b) stay below the L4S bottlenecks L-queue capacity.
>
>
>
> Koen.
>
> BTW:
>
> the highly interesting drops for Not-ECT UDP (for CoDel) seem to be missing (generally the labeling for figure 8 is imprecise, e.g. showing Drops ECT(1)-UDP in the first set PIE with ECT(0)-UDP)
>
> These results are not missing, only the legend is indeed missing
>
> 	Which for someone not intimately familiar with the data boils down to the same consequence, thanks for clearing this up.
>
>
>
> the brown colored "Drop Not-ECT" label, but the plots show these values (in brown). Also ECT(1) label in the legend should say ECT(0/1)
>
> 	I had figured that out from context ;)
>
>
> which depends on whether ECT(0/1) is used in the experiment (as in the labels under the results).
>
> 	Ah, okay with that additional information figure 8 now confirms my hunch just perfectly, no drops for unresponsive UDP in L-queue versus drops in C-queue as long as it stays below L-queue capacity. That is in direct conflict with your argument above that my "hunch [...] is just wrong", no?
>
>
>
>
> -----Original Message-----
> From: Sebastian Moeller <moeller0@gmx.de> <moeller0@gmx.de>
> Sent: Friday, February 25, 2022 11:32 PM
> To: De Schepper, Koen (Nokia - BE/Antwerp) <koen.de_schepper@nokia-bell-labs.com> <koen.de_schepper@nokia-bell-labs.com>
> Cc: Black, David <David.Black@dell.com> <David.Black@dell.com>; Neal Cardwell <ncardwell@google.com> <ncardwell@google.com>; tsvwg IETF list <tsvwg@ietf.org> <tsvwg@ietf.org>; Bob Briscoe <in@bobbriscoe.net> <in@bobbriscoe.net>
> Subject: Re: [tsvwg] Related to "Non-L4S traffic abusing the L-queue" discussion during the interim
>
> Hi Koen,
>
> from your link:
>
> "Only when non-responsive traffic is below the link capacity it can fully use that share, making the responsive flows share the rest of the capacity (as usual for any AQM on the Internet on a shared queue)."
>
>
> This pretty much confirms what I predicted, except the drop plots look incomplete, the highly interesting drops for Not-ECT UDP (for CoDel) seem to be missing (generally the labeling for figure 8 is imprecise, e.g. showing Drops ECT(1)-UDP in the first set PIE with ECT(0)-UDP). My hunch is that comparing drops ECT(1)-UDP in DualPi2 with the missing drops Not-ECT UDP in Codel, that in the latter we see much more drops than in the former, et voila, exploitable way to gain more throughput by marking traffic ECT(1)... as long as that traffic is reasonably paced and does not exceed the capacity of the L4S AQM (not an unlikely scenario even for capacity seeking traffic, my measly 100Mbps access link will not saturate the BNG uplink of my ISP or the link to the DSLAM)
>
> Regards
> 	Sebastian
>
>
>
> On Feb 25, 2022, at 19:30, De Schepper, Koen (Nokia - BE/Antwerp) <koen.de_schepper@nokia-bell-labs.com> <koen.de_schepper@nokia-bell-labs.com> wrote:
>
> Hi David,
>
> To be sure, we re-did the overload tests recently, confirming the
> previous overload results. These results are available at: Overload
> results caused by non-responsive UDP traffic for PIE, DualPI2 and
> CoDel AQMs | l4steam.github.io
>
> Specifically look at figure 8 at the end which shows that L4S traffic gets marks, up to 100% and appropriate drop if it reaches and exceeds the link capacity.
>
> The test case of Jonathan is approximated by the 70Mbps non-responsive ECT(1) UDP traffic on a 100Mbps link on a DualPI2 (Prague+Cubic) test case. In Jonathan's case it was 40Mbps on a 50Mbps link. We also evaluated in extreme when sending at 100Mbps non-responsive ECT(1) UDP traffic on a 100Mbps link, and even exceeding at 140Mbps and 200Mbps. You will see the results are as if it is on a Single Q PIE AQM. Note also that CoDel which never drops ECT packets, causes actually close to starvation and high tail-drop delay results as shown in figure 1, even with ECT(0). So I guess all the concerns about FQ_CoDel and tunnels/Hash-collisions are equally severe and not related to L4S alone (can just be exploited by ECT(0) traffic today already!!).
>
> Koen.
>
> From: Black, David <David.Black@dell.com> <David.Black@dell.com>
> Sent: Friday, February 25, 2022 7:04 PM
> To: Neal Cardwell <ncardwell@google.com> <ncardwell@google.com>
> Cc: De Schepper, Koen (Nokia - BE/Antwerp) <koen.de_schepper@nokia-bell-labs.com> <koen.de_schepper@nokia-bell-labs.com>; tsvwg IETF list <tsvwg@ietf.org> <tsvwg@ietf.org>; Jonathan Morton <chromatix99@gmail.com> <chromatix99@gmail.com>; Bob Briscoe <in@bobbriscoe.net> <in@bobbriscoe.net>; Black, David <David.Black@dell.com> <David.Black@dell.com>
> Subject: RE: [tsvwg] Related to "Non-L4S traffic abusing the L-queue"
> discussion during the interim
>
> Hi Neal,
>
> So, I saw that explanation - could someone check the "running code" to make sure that the coupling and marking occur even when the L queue is always empty?
>
> Thanks, --David
>
> From: Neal Cardwell <ncardwell@google.com> <ncardwell@google.com>
> Sent: Friday, February 25, 2022 12:58 PM
> To: Black, David
> Cc: De Schepper, Koen (Nokia - BE/Antwerp); tsvwg IETF list; Jonathan
> Morton; Bob Briscoe
> Subject: Re: [tsvwg] Related to "Non-L4S traffic abusing the L-queue"
> discussion during the interim
>
> [EXTERNAL EMAIL]
>
>
>
> On Fri, Feb 25, 2022 at 11:56 AM Black, David <David.Black@dell.com> <David.Black@dell.com> wrote:
> Koen,
>
> I'll observe that "traffic that is not responding at all to CE marks"
> is not necessary to achieve the reported results if the experimental
> setup "prevents the L queue from seeing any
>
> need to apply congestion signals, because it is always empty" as there would be no CE marks for the traffic in the L queue to respond to.
>
> I think the key part here is "if". :-) The assertion "prevents the L queue from seeing any need to apply congestion signals, because it is always empty" is from:
>  https://sce.dnsmgr.net/downloads/L4S-WGLC2-objection-details.pdf
> [sce.dnsmgr.net] That assertion is inconsistent with the functioning of the Dual-Q algorithm, as described in:
>  https://www.ietf.org/id/draft-ietf-tsvwg-aqm-dualq-coupled-21.html
> [ietf.org]
>
> As Bob noted: "in the scenario shown, although the L queue is indeed always empty, it will see a high level of congestion signals (~10% in this case) via the coupling."
> Here's Bob's e-mail for more context/details:
> https://mailarchive.ietf.org/arch/msg/tsvwg/joFr3sfOrxxkYhWdYrO2rLlCNU
> w/ [mailarchive.ietf.org]
>
> thanks,
> neal
>
>
>
> Please give that further consideration.
>
> Thanks, --David (as an individual)
>
> From: tsvwg <tsvwg-bounces@ietf.org> <tsvwg-bounces@ietf.org> On Behalf Of De Schepper, Koen
> (Nokia - BE/Antwerp)
> Sent: Friday, February 25, 2022 4:29 AM
> To: tsvwg IETF list; Jonathan Morton
> Subject: Re: [tsvwg] Related to "Non-L4S traffic abusing the L-queue"
> discussion during the interim
>
> [EXTERNAL EMAIL]
>
> Hi Jonathan,
>
> Can you confirm that this test is done with "Cubic" traffic that is not responding at all to CE marks? So it is just like any other non-responding traffic (like UDP CBR). We don't see any other way to explain your results.
>
> If so, we can/should remove this "issue" from the shepherd's write-up, as such unresponsive flows will get the same throughput on any single-Q bottleneck with or without AQM (taildrop/PI2/PIE/CoDel/STEP/RED/...) with a latency that matches the AQM strategy.
>
> Koen.
>
>
> From: tsvwg <tsvwg-bounces@ietf.org> <tsvwg-bounces@ietf.org> On Behalf Of De Schepper, Koen
> (Nokia - BE/Antwerp)
> Sent: Thursday, February 17, 2022 7:01 PM
> To: tsvwg IETF list <tsvwg@ietf.org> <tsvwg@ietf.org>; Jonathan Morton <chromatix99@gmail.com> <chromatix99@gmail.com>
> Subject: [tsvwg] Related to "Non-L4S traffic abusing the L-queue"
> discussion during the interim
>
> Hi Jonathan,
>
> It seems that the following open issue identified by the chairs:
>
> Non-L4S traffic abusing the L-queue
> * 'DualQ gives a large throughput bonus to L queue traffic, ie. a "fast lane"'
> * Is this a matter specific for DualQ that can be left for experimentation?
>
> is based on the following experiment you performed:
>
>
>            simple two-flow competition test on a standard dumbbell
> topology,
>
>            with the bottleneck running a DualQ qdisc into a 50Mbps shaper.
>
>            Both flows were configured to use CUBIC congestion
> control with
>
>            ECN negotiated, but one was additionally tweaked to set
> ECT(1)
>
>            instead of ECT(0) on all data segments, and to pace its
> output at
>
>            40Mbps. This latter measure prevents the L queue from
> seeing any
>
>            need to apply congestion signals, because it is always
> empty.  These
>
>            tweaks allowed that flow to use 80% of the link
> capacity, gaining a
>
>            fourfold advantage over its competitor,
>
> If there is capacity seeking traffic in the Classic queue, then it is even desired that the L4S queue does not add extra marks. The L4S marks should come only from the Classic coupling.
> Before diving into details, can you first explain why in your experiment the coupling from the Classic Q has no effect on your paced and ECT(1) labeled Cubic flow?
>
> I would expect that this ECT(1) labeled Cubic flow would get even less throughput than the Classic Cubic flow, as the first gets the doubled coupled CE marking probability (eg 2*10% = 20%) for L4S flows instead of the squared CE marking probability (10%^2 = 1%) which ECT(0) traffic would get.
>
> Thanks,
> Koen.
>
>
> --
> ________________________________________________________________
> Bob Briscoe                               http://bobbriscoe.net/
>
>