Re: [tcpm] [v6ops] Flow Label Load Balancing
Fernando Gont <fernando@gont.com.ar> Fri, 27 November 2020 20:42 UTC
Return-Path: <fernando@gont.com.ar>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3E5D83A0E87; Fri, 27 Nov 2020 12:42:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 BC9DmJ34equ1; Fri, 27 Nov 2020 12:42:00 -0800 (PST)
Received: from fgont.go6lab.si (fgont.go6lab.si [IPv6:2001:67c:27e4::14]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 955643A0E84; Fri, 27 Nov 2020 12:41:57 -0800 (PST)
Received: from [IPv6:2800:810:464:8164:d564:510f:6fb3:4524] (unknown [IPv6:2800:810:464:8164:d564:510f:6fb3:4524]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by fgont.go6lab.si (Postfix) with ESMTPSA id 3C33C283BC9; Fri, 27 Nov 2020 20:41:52 +0000 (UTC)
To: Tom Herbert <tom@herbertland.com>
Cc: Alexander Azimov <a.e.azimov@gmail.com>, tcpm <tcpm@ietf.org>, IPv6 Operations <v6ops@ietf.org>
References: <CAEGSd=DY8t8Skor+b6LSopzecoUUzUZhti9s0kdooLZGxPEt+w@mail.gmail.com> <d29042a7-742b-a445-cf60-2773e5515ae5@gont.com.ar> <CALx6S37+1duoNGR3dZWesHsZvx15kX9wCWufPMh=esvMaSMF_g@mail.gmail.com> <63e7aad3-7094-7492-dbe4-3eefb5236de3@gont.com.ar> <CALx6S37t4jump6S-R5_xdo5DF+RnHtT4rU5-RuiC-2GQ0PXxkQ@mail.gmail.com>
From: Fernando Gont <fernando@gont.com.ar>
Message-ID: <96b6d04b-e5bb-ba79-0281-e9599109be95@gont.com.ar>
Date: Fri, 27 Nov 2020 17:41:40 -0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <CALx6S37t4jump6S-R5_xdo5DF+RnHtT4rU5-RuiC-2GQ0PXxkQ@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/Pi2AF6JgIq8DZqjES4kMo6KyeNk>
Subject: Re: [tcpm] [v6ops] Flow Label Load Balancing
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 27 Nov 2020 20:42:03 -0000
Hello, Tom, On 25/11/20 16:35, Tom Herbert wrote: > Hi Fernando, comments in line... > > On Wed, Nov 25, 2020 at 12:13 AM Fernando Gont <fernando@gont.com.ar> wrote: >> >> Hi, Tom, >> >> On 24/11/20 16:43, Tom Herbert wrote: >> [....] >>> Modulating the flow label is a means to affect the routing of packets >>> through the network that uses flow labels as input to the ECMP hash. >> >> What's the point? >> >> 1) You cannot tell *if* the FL is being used. >> > Generally true, but in a limited domain this information could be > discerned. I'd note that it's also generally true that we don't know > if there is a load balancer or stateful firewall in the path that > requires consistent routing, but in a limited domain we could know > that also. Exactly. So my take is that the drawbacks for the general case outweigh the benefits of the specific case. >> 2) Changing the FL does not necessarily mean that packets will employ a >> different link. > > It's an opportunistic mechanism. If a connection is failing and we get > a better path that fixes it by simply changing the flow label then > what's the harm? Complexity, and the possible negative implications for the general case. That said, why don't you fix the problem where you should (i.e., routing)? >> 3) If the network is failing, shouldn't you handle this via routing? >> > Sure, but then that requires an out of band feedback loop from a TCP > implementation to the network infrastructure to indicate there is a > problem and then the network needs to respond. Not really. TCP does not deal with paths (not should it). If the network detects a link is failing, it should route around the problem. > That's significant > infrastructure and higher reaction time than doing something in TCP > and IP. Think of modulating the flow label is an inexpensive form of > source routing within a limited domain that doesn't need any > infrastructure or heavyweight protocols or something like segment > routing. Downsides: * It breaks load balancing * It depends on the source doing something -- but you don't necessarily control the source -- and you cannot tell if the source implements it * It doesn't solve the problem for nodes that do not behave as expected My take is that if you really care about this, you're already (or should!) be solving the problem in a different (and more general) way. >>> The basic idea is that the flow label associated with a connection is >>> randomly changed when the stack observes that the connection is >>> failing (e.g. and an RTO). There is nothing in the specs that prevents >>> this since the source is at liberty to set the flow label as it sees >>> fit. >> >> The FL is expected to remain constant for the life of a flow. A >> retransmitted packet is part of the same flow as the >> originally-transmitted packet. So this seems to be contradicting the >> very specification of the FL. >> >> For instance, If a RTO for a flow causes the FL to change, then one may >> possibly argue that the FL is not naming/labeling what is said/expected >> to be anming/labeling. > > Specifically, RFC6437 states: > > "It is therefore RECOMMENDED that source hosts support the flow label > by setting the flow label field for all packets of a given flow to the > same value chosen from an approximation to a discrete uniform > distribution." > > So that is clearly a just recommendation, and not a requirement (and > definitely not a MUST). Furthermore, RFC6437 states: > > "A forwarding node MUST either leave a non-zero flow label value > unchanged or change it only for compelling operational security > reasons as described in Section 6.1." My concern is that we may leave the FL unusable. > So there's no guarantee in the protocol specs that flow labels are > consistent for the life of the connection, which means that the > network cannot assume that and thus it would be incorrect if the > network tried to enforce flow label consistency as a protocol > requirement. You're probably right in that respect. And, in retrospective, I think it would have been better if we had specified the FL to be unmutable. > As I said, it is prudent to try to be consistent with > flow labels and the default behavior in Linux should be changed, Sorry: is the current Linux behavior to modulate the FL? > however I do not believe there's a valid claim of non-conformance that > motivates removal of the feature that is already deployed. I personally consider the changing the FL for a flow to be a bug. That said, if the default setting is the correct/compliant behavior, at the end of the day we're all adults, and whoever overrides the default behavior is supposed to know what he/she does -- and if they don't, they get what they deserve ;-) So, in that light, I wouldn't push to remove the optional behavior, *provided* the default behavior is correct. Thanks, -- Fernando Gont e-mail: fernando@gont.com.ar || fgont@si6networks.com PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076 FFF1
- [tcpm] Flow Label Load Balancing Alexander Azimov
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Alexander Azimov
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Alexander Azimov
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Brian E Carpenter
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Joel M. Halpern
- Re: [tcpm] [v6ops] Flow Label Load Balancing Brian E Carpenter
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Joel M. Halpern
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Brian E Carpenter
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Alexander Azimov
- Re: [tcpm] [v6ops] Flow Label Load Balancing Yuchung Cheng
- Re: [tcpm] [v6ops] Flow Label Load Balancing Brian E Carpenter
- Re: [tcpm] [v6ops] Flow Label Load Balancing Alexander Azimov
- Re: [tcpm] [v6ops] Flow Label Load Balancing Brian E Carpenter
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Mark Smith
- Re: [tcpm] [v6ops] Flow Label Load Balancing Joseph Touch
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Mark Smith
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Alexander Azimov
- Re: [tcpm] [v6ops] Flow Label Load Balancing Michael Tuexen
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Erik Kline
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Brian E Carpenter
- Re: [tcpm] [v6ops] Flow Label Load Balancing Tom Herbert
- Re: [tcpm] [v6ops] Flow Label Load Balancing Fernando Gont