Re: Flow label [not draft-han-6man-in-band-signaling-for-transport-qos-00.txt]

Tom Herbert <tom@herbertland.com> Sat, 21 October 2017 01:30 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 DC3F6132C3F for <ipv6@ietfa.amsl.com>; Fri, 20 Oct 2017 18:30:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7] 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 z1_VlOv_PAp3 for <ipv6@ietfa.amsl.com>; Fri, 20 Oct 2017 18:30:11 -0700 (PDT)
Received: from mail-qk0-x22f.google.com (mail-qk0-x22f.google.com [IPv6:2607:f8b0:400d:c09::22f]) (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 CA41B1320DC for <ipv6@ietf.org>; Fri, 20 Oct 2017 18:30:10 -0700 (PDT)
Received: by mail-qk0-x22f.google.com with SMTP id m189so16352366qke.4 for <ipv6@ietf.org>; Fri, 20 Oct 2017 18:30:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=kDXRp61P+YvaeZeegdK4hpYtsjaBSxFl9Cxn58C0vEM=; b=teYzqX8SM+Z6DdLFehtAsiCGRIoeBvOAeyrAIOaBa3eWTLiI6GdDMTuQfIpeNjUzMV Y6C5e2JyNKpVSaenvUIxY0yKDkx6VuADlnLg+QWiKLtzcnG/pqFpN9IuvvTfSA5UK0fM ORWufayYKM9/972WkGV10fhIhjdZSnZ8TyHryl/FPZZ+uSdG1uMptsAYwqU10rxXERxu xeVL1Ub9J3KpbZIpcH1+UuXDUvwFX86r/XOQJGlupnkdFUFrh/44X22MouXABPfDG1uy hUzMG9c2lxAB5htGANRTW7+n33mNvQfv3BrhTb6+Ub7GoDt0vjsYF8HTL+Wt5GPxBmOp LFWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=kDXRp61P+YvaeZeegdK4hpYtsjaBSxFl9Cxn58C0vEM=; b=Pi4PbHomL9JC36aR/nVIb9VkxmA5vLwQFg9uhcCp0akGTVPmepFlsD7kLAu1ZdnG1G d+KfaktSp2YZqi783styWSRRC/lOXE6pBUVV4jzRANnfWMcGwOSbyGKzgBYclzO7s6HT MgV6Wa5HQoQ332NJ+5cwWcyqiMlpRBw2y1e19SDRu+G1Nt4XLY0wWmTzWEyhO05RMG90 DdvVcWBU/cU+G0sb07kQtbbPu+z0ekh0jNIKDN1XHBKoIqzuSUyBRxxlMmdK3dn6rVN+ pAXeu3yQy7qhGD0Guu3EKVoVNfjcviPDbhkR0SSPTPoj2giTJua9ekcsVGLvEhBL+URN xhOw==
X-Gm-Message-State: AMCzsaUgls4Xc9K4+s1XGy6wI23xBfeXdjvDad7lalWl5chKvi8CijoC BlzyxbrQkkwuUc4uuJwcQsN18hRxVTOxKLJC6IEyUg==
X-Google-Smtp-Source: ABhQp+Qcpo5wCd38OgTRpFxufQWTJgr39wgM9jQ8yEFln6ErXrmLOGd2G5tVghvz/JXYA/959ssq2uBxdWtdExdISv0=
X-Received: by 10.55.89.65 with SMTP id n62mr9072335qkb.51.1508549409778; Fri, 20 Oct 2017 18:30:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.237.54.4 with HTTP; Fri, 20 Oct 2017 18:30:09 -0700 (PDT)
In-Reply-To: <631451d4-9c3f-7b2e-d7ea-14648c91f07c@gmail.com>
References: <CALx6S341v1zd2Q9bts8-zrKxU59kieJTJJ=nHQ5w4oQZg=t_cA@mail.gmail.com> <CALx6S34VRS4GumsFSqN8uDkv4TOLC8q+rOvyN=evUk83KPeHHg@mail.gmail.com> <20171019211637.GB878@faui40p.informatik.uni-erlangen.de> <296dd642b31741cc8ec4aa4b52913037@XCH15-06-11.nw.nos.boeing.com> <CALx6S36s_SoTqpPo=jXmrFC+pgUkEmF8UB_sx_0zGcK-G8JeTQ@mail.gmail.com> <20171019220935.GD878@faui40p.informatik.uni-erlangen.de> <33ff8930-d1af-ea54-7bb4-a6a9b289269e@gmail.com> <20171020144015.GA3093@faui40p.informatik.uni-erlangen.de> <8AE3421D-304B-42F9-B12A-361E21DFF069@employees.org> <CALx6S35nr8JapogAC5Gsi0iPxXhJa9NKOHhzUAnJtmqTwEGtgg@mail.gmail.com> <CDAEBFFD-3B70-41D3-BB41-FCF40ADA2115@employees.org> <CALx6S35Y7OVFFSiw4-ei84HEk0FjEXmS8TnNx8Uex9-0rAxdfg@mail.gmail.com> <2C4B0FD6-418E-441F-8B43-6C60451E3A51@cable.comcast.com> <CALx6S34918E7jJtwezMBtqWE2sL5AGowNYUuHpYBSzOt0JW1-Q@mail.gmail.com> <67148eca-0764-3b32-69d6-3e198c5e610c@gmail.com> <CALx6S35hJ5nWGOT6KHC2b3zRyvYrjJVt5P=uwngR7TVhK+7JZg@mail.gmail.com> <631451d4-9c3f-7b2e-d7ea-14648c91f07c@gmail.com>
From: Tom Herbert <tom@herbertland.com>
Date: Fri, 20 Oct 2017 18:30:09 -0700
Message-ID: <CALx6S34pdk5y1KkNrwzNmxL5Ja3jrR7uvLrxfHSSasWOe136QA@mail.gmail.com>
Subject: Re: Flow label [not draft-han-6man-in-band-signaling-for-transport-qos-00.txt]
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
Cc: "ipv6@ietf.org" <ipv6@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/zGMO6CEGzBKZno_nXaXnB4mY1GE>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.22
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: Sat, 21 Oct 2017 01:30:13 -0000

On Fri, Oct 20, 2017 at 5:42 PM, Brian E Carpenter
<brian.e.carpenter@gmail.com> wrote:
>
> On 21/10/2017 11:13, Tom Herbert wrote:
> > On Fri, Oct 20, 2017 at 2:41 PM, Brian E Carpenter <
> > brian.e.carpenter@gmail.com> wrote:
> >
> >> On 21/10/2017 09:53, Tom Herbert wrote:
> >>> On Fri, Oct 20, 2017 at 12:06 PM, Leddy, John <John_Leddy@comcast.com>
> >>> wrote:
> >>>
> >>>> In order packet delivery requirements considered harmful to the
> >> Internet…
> >>>>
> >>>>
> >>>>
> >>>> I’m assuming random per packet flow label assignments are within spec as
> >>>> long as they are set by the source.
> >>>>
> >>>>
> >>>>
> >>>
> >>> Yes, there is no requirement that the flow label be persistent at all in
> >> a
> >>> flow.
> >>
> >> http://mailman.postel.org/mailman/listinfo/internet-history says:
> >>
> >>    To enable Flow-Label-based classification, source nodes SHOULD assign
> >>    each unrelated transport connection and application data stream to a
> >>    new flow.  A typical definition of a flow for this purpose is any set
> >>    of packets carrying the same 5-tuple {dest addr, source addr,
> >>    protocol, dest port, source port}.  It should be noted that a source
> >>    node always has convenient and efficient access to this 5-tuple,
> >>    which is not always the case for nodes that subsequently forward the
> >>    packet.
> >>
> >> So, technically it's a recommendation, not a requirement. But for load
> >> balancing or ECMP to actually work, it's a requirement.
> >>
> >
> > Brian,
> >
> > I don't think that says anything that the flow label has to be persistent
> > for the life of the connection. It is incorrect, though, if any nodes
> > assume that the flow label is persistent. The soft state approach like in
> > this QoS draft doesn't require the flow label to be persistent.
> >
> > Load balancing only fails when the destination address is being treated as
> > an anycast and the address is being used as an endpoint of connections that
> > are on different hosts. But such stateful load balancing becomes obsolete
> > as the externally visible flow information is decoupled from the end-to-end
> > identification of the flow like happens in QUIC, ESP, etc.
>
> That's not really true for server load balancing. Delivering all packets
> in the flow to the same *instance* of the host is essential to be
> able to complete transactions. Whoever unwraps the flow identification
> has to be able to select the required server instance, at line speed.

Brian,

The 5-tuple hashing for forwarding to VIPs only works to the extent
that the 5-tuple hash identifies the transport flow and is readily
visible. That may be true for plain TCP, but not necessarily other
protocols. For instance, in QUIC the end points identify a connection
by a connection ID that is separate from the 5-tuple. One of the goals
is to be resilient to NAT so that even if the 5-tuple changes, like
when the source address or port changes because NAT evicted a UDP
binding, the QUIC connection is still viable
(draft-ietf-quic-transport-07). So a load balancer just looking at UDP
5-tuples won't work for QUIC. There's a similar issue with MPTCP in
that all of the sub-flows have different hashes but need to be
delivered to the same server instance
(draft-duchene-mptcp-load-balancing-00).

>
> https://tools.ietf.org/html/rfc7098 sort of hints at this and we
> tried to go further in
> https://tools.ietf.org/html/draft-tarreau-extend-flow-label-balancing
> but that faded away. And there's
> https://tools.ietf.org/html/draft-wang-v6ops-flow-label-refelction
>
> Nothing seems to quite work.
>
For IPv6, I am wondering if each server instance could just be given a
few million unique addresses and then replace load balancers with
simple routing...

In any case, I still don't see a protocol issue with flow labels.
Maybe further discussion on this topic should be on tsvwg list?

Tom