Re: [nfsv4] NFS over QUIC

Brian Pawlowski <beepee@gmail.com> Fri, 04 September 2020 01:02 UTC

Return-Path: <beepee@gmail.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 838313A1434 for <nfsv4@ietfa.amsl.com>; Thu, 3 Sep 2020 18:02:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.097
X-Spam-Level:
X-Spam-Status: No, score=-1.097 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, FREEMAIL_REPLYTO=1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 GjvA9iUFWUf1 for <nfsv4@ietfa.amsl.com>; Thu, 3 Sep 2020 18:02:19 -0700 (PDT)
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) (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 5CA053A142B for <nfsv4@ietf.org>; Thu, 3 Sep 2020 18:02:19 -0700 (PDT)
Received: by mail-ej1-x62c.google.com with SMTP id j11so6439844ejk.0 for <nfsv4@ietf.org>; Thu, 03 Sep 2020 18:02:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc; bh=4GzSQlUgbhM+7zjwuB2OHC5Z2syoW3yj5qQKuxEoPHo=; b=VOpO7wm0USkADGGgH0B1ktKoA5/9mKTWnYIFilEG+srvcp/uHl0Ya3q9N2GxG0hL2U bKm8j/1BmEDi+rwzYnyRkQ5h1mvJezT2BCiAzfCw3cvZ67x8bI9u+NA09/wdiv4g2wGY dDjRt82vwimzB9rak5km+NH0Kudc4NZLgyBbhrJuAkn/3CeWOaU1auqX+vow6uUR/NTM FfTYmF5SAv2w8mNy5ChPVEGeMvf6behOBCAwWalCucXLR8pTrCgAJRAtZE4mBDYznr49 rrgZZNKvWUsjEVQke0cbWPRSWw9T8MZj20jMCllVW8paWWOzHsISCdl/U4BVddrGYT0A ryQQ==
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:reply-to :from:date:message-id:subject:to:cc; bh=4GzSQlUgbhM+7zjwuB2OHC5Z2syoW3yj5qQKuxEoPHo=; b=tht2wqpM4EeswZ2AVoajQjpUK/Oqv/iFh5iO8cdDjx3hgPKE5/UJUx5ssjBJiG3Vue elkSY3lAtdagbRZ4uT9haFaM62Ipf+3tj4YqSykfZ8H0sQT6tXJvJfyLVihjOB+XKSKh SJ0oFAqQEC1YHaGYedFxJbzoYGbFyr+xLVVCSRXzFvWuDT7fJsUetGB6I/RYwXj2t4lx 0hUXXaatvFM4fbg4uFR7jbUbDj1FHIvKqGkGRiCQSeZ63JiX9fP1rZEliI+7PCiR8Ouq f8wUWhivSAKVdpxw2BB9mXJcWcqUS2LCxKY0VQNcDoScgM3coEbwg/+NQ1Ag6v3PB2Wg Kweg==
X-Gm-Message-State: AOAM533oBEKL1i3SM6E7zjSZrxsxK9rXyurw5nudNDTH8zRllA260KZG En2yAjYec8rM0omsnK3Cwcf/f4/IKgoKRPhoGcU=
X-Google-Smtp-Source: ABdhPJwrspjgQjACB/PnOYtnaEaYSWsA6aJfWN4/KxYUS1gc6zPfZJxj7tluVxpXDk11naTkndUWyjcB28MNkI0z624=
X-Received: by 2002:a17:906:1b11:: with SMTP id o17mr3551380ejg.67.1599181337787; Thu, 03 Sep 2020 18:02:17 -0700 (PDT)
MIME-Version: 1.0
References: <20200903215242.GA4788@fieldses.org> <EFDBAD41-E0BE-4AEF-8E37-18A414CE8588@gmail.com> <20200904003242.GB4788@fieldses.org> <064FD529-9526-4F34-BBE9-E9CDAC2EED5D@gmail.com>
In-Reply-To: <064FD529-9526-4F34-BBE9-E9CDAC2EED5D@gmail.com>
Reply-To: beepee@gmail.com
From: Brian Pawlowski <beepee@gmail.com>
Date: Thu, 03 Sep 2020 18:02:06 -0700
Message-ID: <CAEo7hJH=jeTk6eKD83fmhi+HFiDH8TqVvMZALq1aPXs+5iQGmA@mail.gmail.com>
To: Chuck Lever <chucklever@gmail.com>
Cc: Bruce Fields <bfields@fieldses.org>, Linux NFS Mailing List <linux-nfs@vger.kernel.org>, NFSv4 <nfsv4@ietf.org>, stfrench@microsoft.com
Content-Type: multipart/alternative; boundary="00000000000092002605ae726b04"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/kJGxRgiu7NmLKE3ytrVp6DjjRmQ>
Subject: Re: [nfsv4] NFS over QUIC
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4/>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Sep 2020 01:02:22 -0000

Where the Like button?

On Thu, Sep 3, 2020 at 5:53 PM Chuck Lever <chucklever@gmail.com> wrote:

>
>
> > On Sep 3, 2020, at 8:32 PM, Bruce Fields <bfields@fieldses.org> wrote:
> >
> > On Thu, Sep 03, 2020 at 07:48:19PM -0400, Chuck Lever wrote:
> >> Hi Bruce-
> >>
> >>> On Sep 3, 2020, at 5:52 PM, J. Bruce Fields <bfields@fieldses.org>
> wrote:
> >>>
> >>> I've been thinking about what might be required for NFS to run over
> >>> QUIC.
> >>>
> >>> Also cc'ing Steve French in case he's thought about this for CIFS/SMB.
> >>>
> >>> I don't have real plans.  For Linux, I don't even know if there's a
> >>> kernel QUIC implementation planned yet.
> >>>
> >>> QUIC uses TLS so we'd probably steal some stuff from the NFS/TLS draft:
> >>>
> >>>     https://datatracker.ietf.org/doc/draft-cel-nfsv4-rpc-tls/
> >>
> >> The link to the latest version of that document is
> >>
> >> https://datatracker.ietf.org/doc/draft-ietf-nfsv4-rpc-tls/
> >>
> >>> For example, section 4.3, which explains how to authenticate on top of
> >>> an already-encrypted session, should also apply to QUIC.
> >>
> >> Most of the document's content will be re-used for defining
> >> RPC-over-QUIC, for example the ALPN defined in Section 8.2.
> >> Lars Eggert, a chair of the QUIC WG, has been helping guide
> >> the RPC-over-TLS effort with an eye towards using QUIC for
> >> RPC when QUIC becomes more mature.
> >>
> >> I thought the plan was to write a specification of RPC-over-
> >> QUIC as a new RPC transport type with a netid and uaddr along
> >> with a definition of the transport semantics (a la TI-RPC).
> >> The document would need to explain record marking, peer
> >> authentication, how to use multi-path and multi-stream support,
> >> and so on.
> >>
> >> Making NFS work on that transport should then be straightforward
> >> enough that perhaps additional standards work wouldn't be
> >> necessary.
> >
> > Oh, OK, good.  Sounds like you're way ahead of me, then, I didn't know
> > there was a plan.
>
> That's all there is for the moment! :-)
>
>
> > --b.
> >
> >>> QUIC runs over UDP, so I think all that would be required to negotiate
> >>> support would be to attempt a QUIC connection to port 2049.
> >>>
> >>> The "Transport Layers" section in the NFS RFCs:
> >>>
> >>>     https://tools.ietf.org/html/rfc5661#section-2.9
> >>>
> >>> requires transports support reliable and in-order transmission, forbids
> >>> clients from retrying a request unless a connection is lost, and
> forbids
> >>> servers from dropping a request without closing a connection.  I'm
> still
> >>> vague on how those requirements interact with QUIC's connection
> >>> management and 0-RTT reconnection.
> >>>
> >>> https://www.ietf.org/id/draft-ietf-quic-applicability-07.txt looks
> >>> useful, as a guide for applications running over QUIC.  It warns that
> >>> connections can time out fairly quickly.  For timely callbacks over NFS
> >>> sessions, that means we need the client to ping the server regularly.
> >>> Sounds like that's what they do for HTTP/QUIC to make server push
> >>> notifications work:
> >>>
> >>>     https://tools.ietf.org/html/draft-ietf-quic-http-09#section-5
> >>>
> >>>     HTTP clients are expected to use QUIC PING frames to keep
> >>>     connections open.  Servers SHOULD NOT use PING frames to keep a
> >>>     connection open.  A client SHOULD NOT use PING frames for this
> >>>     purpose unless there are responses outstanding for requests or
> >>>     server pushes.
> >>>
> >>> QUIC allows multiple streams per connection--I wonder how we might use
> >>> that.  RFC 5661 justifies the requirement for an ordered transport
> with:
> >>>
> >>>     Ordered delivery simplifies detection of transmit errors, and
> >>>     simplifies the sending of arbitrary sized requests and responses
> >>>     via the record marking protocol.
> >>>
> >>> So as long as we don't try to split a single RPC among streams, I think
> >>> we're OK.  Would a stream per session slot be reasonable?  I'm not sure
> >>> what the cost of a stream is.
> >>>
> >>> Do we need to add a new universal address type so the protocol can
> >>> specify QUIC endpoints when necessary?  (For server-to-server-copy,
> pnfs
> >>> file layouts, fs_locations, etc.)  All QUIC needs is an IP address and
> >>> maybe a port, so maybe the existing UDP/TCP addresses are enough?
> >>
> >> --
> >> Chuck Lever
> >> chucklever@gmail.com
>
> --
> Chuck Lever
> chucklever@gmail.com
>
>
>
> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www.ietf.org/mailman/listinfo/nfsv4
>