Re: [v6ops] [tcpm] Flow Label Load Balancing

Fernando Gont <> Thu, 03 December 2020 19:42 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4FD4D3A0C01; Thu, 3 Dec 2020 11:42:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
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 ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id mYbz3k9XNrk3; Thu, 3 Dec 2020 11:42:38 -0800 (PST)
Received: from ( [IPv6:2001:67c:27e4::14]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id C28343A0BCC; Thu, 3 Dec 2020 11:42:37 -0800 (PST)
Received: from [IPv6:2800:810:464:8164:9c91:27c0:253d:5241] (unknown [IPv6:2800:810:464:8164:9c91:27c0:253d:5241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id 6304B283B84; Thu, 3 Dec 2020 19:42:34 +0000 (UTC)
To: Tom Herbert <>, Erik Kline <>
Cc: Fernando Gont <>, IPv6 Operations <>, tcpm <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
From: Fernando Gont <>
Message-ID: <>
Date: Thu, 3 Dec 2020 16:40:21 -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: <>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <>
Subject: Re: [v6ops] [tcpm] Flow Label Load Balancing
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: v6ops discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 03 Dec 2020 19:42:49 -0000

On 3/12/20 14:30, Tom Herbert wrote:
> There are two apropos statements in RFC6437:
> "There is no way to verify whether a flow label has been modified en
> route or whether it belongs to a uniform distribution.  Therefore, no
> Internet-wide mechanism can depend mathematically on unmodified and
> uniformly distributed flow labels; they have a "best effort" quality."
> "From an upper-layer viewpoint, a flow could consist of all packets in
> one direction of a specific transport connection or media stream.
> However, a flow is not necessarily 1:1 mapped to a transport
> connection."
> So building a load balancer, or any other intermediate network device,
> that *depends* on the flow label to be consistent for the life of a
> transport connection and 1:1 mapped to a transport connection is
> contrary to this guidance. 

We don't need 1:1. We just need 1:N where N is how flows would be 
aggregated/grouped for the purpose of load-sharing.

> The ship has already sailed on this in
> deployment, and even if the protocol requirements were to be
> sufficiently tightened that would take years to reach full effect and
> that would preclude other use cases where modifying the flow label is
> useful. If a stable 1:1 mapped identifier for transport ports is
> needed in the network layer, it might make sense to create a new HBH
> option for that.

The above said, I would probably agree that if havinga non-stable FL 
breaks something, whatever it breaks is probably already broken, since 
there's not even a checksum to try to detect whether the IPv6 header has 
been corrupted.

> Personally, if I were building a load balancer I'd
> use neither the flow label nor transport ports for entropy, I'd look
> at using the destination address since 128 bits allows plenty of bits
> of entropy, it's consistent per transport flow and always set in an
Problem is that if you have two systems that need a lot of banswitdth 
(e.g., they are transferring file via several TCP connections)< you 
wouldn't be able to load-share them -- since the result of the hash 
would be the sme for all TCP connections....

Fernando Gont
SI6 Networks
PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492