WG Status Update on draft-ietf-quic-load-balancers

Martin Duke <martin.h.duke@gmail.com> Mon, 11 July 2022 17:48 UTC

Return-Path: <martin.h.duke@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 313C3C15790C for <quic@ietfa.amsl.com>; Mon, 11 Jul 2022 10:48:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.105
X-Spam-Level:
X-Spam-Status: No, score=-7.105 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id O_In0XrQNTwj for <quic@ietfa.amsl.com>; Mon, 11 Jul 2022 10:48:22 -0700 (PDT)
Received: from mail-vs1-xe36.google.com (mail-vs1-xe36.google.com [IPv6:2607:f8b0:4864:20::e36]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 77763C14F72E for <quic@ietf.org>; Mon, 11 Jul 2022 10:48:22 -0700 (PDT)
Received: by mail-vs1-xe36.google.com with SMTP id d187so5576737vsd.10 for <quic@ietf.org>; Mon, 11 Jul 2022 10:48:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=LQPTWLAhml0tvmoJgv5dgQB7Xgp82mxRXLYt/Vk8S4g=; b=EcZZAVSWo5+ag1/vOKZSsirSBTrUsKhciiHWlqMLVkZcCFeFy2UN/tB3R9n0qM1rVq FWsfquRm55ZGVU3y/Fjn9eEki+gL/kwuQ/Ar/peBOD0jNGilJUqUuKdcYR5CrWp+R4ij U8OeZcTDgo+Oxi3KMhWIA+M7pUYmTOqx5QSumvJDSlDd0cTWGAUEBCvYWRwVzdoCv9+1 3nCIs9D7psC9PmP2Y+nTnBntZWFSXxMptWuC9Joa8drcMRaawnde5pPnNwT3g2955viZ vG9IMtonJxU2VUPtF0Cmel3Mc6OeYGSYVFJYXIBYRuEGDT2MJbqnZEgTS3AvWP7L5b0y IEdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=LQPTWLAhml0tvmoJgv5dgQB7Xgp82mxRXLYt/Vk8S4g=; b=OYp9tHzFYQm8bUeyrzSxU/QhxnEmO7yXwHsexQmXYKO+puwcIwGGLAKTosZ5p3tqyc FqpP6ICZQVJV5y4YYwGxLPmnNQoHGks2f8fboRuzwB4Kt1K0AZ85DqGyUCo4l0PXqNWR oNPurRDvTGNcx9MGu99rsnf1VNzetG/HX12UBhyOisjwX4Kbo7tQQxNaoiQW24MU9P0F 8WCWPqfMEvKUlOWXfwwWGedBotXIgfyFe5+nQvsA1MsWPVg8EmzCv7AFGBzfnW7F/jfJ QlRSjta/Ye9rPaorR6Hq1umWfsaDVcsmEC9reKfaGD5ZeCowyGCSgTlXPHB2eGb/i7h7 9iXQ==
X-Gm-Message-State: AJIora9o8509/F6QQv3zZ0MR+TQg9jjpjeehMexS2wJrYqL7LnBpLiJ1 5f/xYC9cXpVfcsX02M+PUkaEXfgJxPARDVTpWswvA7O+2BU=
X-Google-Smtp-Source: AGRyM1trO165AfNVLOcrYqA9H9Lg9XWYrwT9ZDsRm+lLkRrqhdl0cU83w0SfnJ7624roM+/pMD4iHu1W/m5w0Se7l4A=
X-Received: by 2002:a05:6102:2151:b0:357:202e:d0a6 with SMTP id h17-20020a056102215100b00357202ed0a6mr6527179vsg.52.1657561701177; Mon, 11 Jul 2022 10:48:21 -0700 (PDT)
MIME-Version: 1.0
From: Martin Duke <martin.h.duke@gmail.com>
Date: Mon, 11 Jul 2022 10:48:10 -0700
Message-ID: <CAM4esxScHF=6ZNXrYHW1TnFYpA722Mnv5162UjsweC7gmgzC9g@mail.gmail.com>
Subject: WG Status Update on draft-ietf-quic-load-balancers
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000064602505e38b289a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ubtsXPqXnM8lBkFgOgTY9_mfv2o>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jul 2022 17:48:23 -0000

Hello QUICWG,

In lieu of taking up agenda time in Philadelphia, I thought I'd update the
WG on the status of the QUIC-LB document via email, on behalf of my fellow
authors, Nick and Christian.

*TL;DR editorially, the document is ready for WGLC, but the working group
might want to wait for more running code.*

Draft-14 is out
<https://datatracker.ietf.org/doc/draft-ietf-quic-load-balancers/> and
closes all the remaining open Github issues:

   - We responded to the crypto review. There are some tweaks to the 4-pass
   algorithm, and we address the concern that there should be more than 4
   passes in Section 8.7
   <https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#section-8.7>
   .
   -  I added further normative requirements around the 0b11 'fourtuple'
   codepoint in Section 2.2
   <https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#section-2.2>
   .
   - A new non-normative section about issues relating to demultiplexing
   between processes
   <https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#section-6.2>
   on a single server.

There are no remaining issues and we believe, from an editorial
perspective, consensus is strong enough for WGLC. There have been extensive
WG contributions, although interest has waned as we get deeper in the
weeds. So IMO there's rough consensus; what about running code?

1. I implemented an open-source encoder/decoder library
<https://github.com/f5networks/quic-lb> and Load Balancer based on NGINX
UDP Proxy <https://github.com/martinduke/nginx-quic-lb> -- last updated for
draft-10, both in C. There is (very slow) WIP to get this caught up with
draft-14.

2. I implemented a Google QUICHE open-source C++ encoder/decoder library
<https://github.com/google/quiche/tree/main/quiche/quic/load_balancer>
(currently
draft-12 but with -14 support imminent). Work over the next several months
will deploy this into various server and L4 load balancer platforms that
use Google QUICHE, both proprietary and open source.

3. In non-Martin news, Alipay has a longstanding NGINX fork
<https://github.com/alipay/quic-lb> that also implements the QUIC-LB
load-balancer side, though it's apparently dated to draft-08.

In other words, we're pretty good on the load balancer side and light on
the server side; given the number of QUIC server implementations out there,
anyone willing to contribute code to one would be greatly appreciated. I
will commit to interop testing with a couple of weeks' notice between my
(updated) load balancer and anyone that produces a server.

So the WG has a few choices here:
a) Progress immediately to WGLC

b) Wait for Google's deployment to start to see if that generates any
further insights relevant to the spec, which is bounded to the order of
months

c) Wait for more implementations not by me and/or interop between them,
which has no bound how long it might take

I'm interested in the group's perspectives on the path forward -- and as
always, for you to read and review the document. I'll be at IETF 114 if
people would like to discuss privately in person, and if there's strong
support to add it to the agenda, I can ask the chairs for time.

Thanks for reading!
Martin