Re: [IPv6] First hop selection [was: Adoption call for draft-bctb-6man-rfc6296-bis]

Nick Buraglio <buraglio@forwardingplane.net> Wed, 27 March 2024 19:20 UTC

Return-Path: <buraglio@forwardingplane.net>
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 06189C1519B1 for <ipv6@ietfa.amsl.com>; Wed, 27 Mar 2024 12:20:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, 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 (1024-bit key) header.d=forwardingplane.net
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 V57hjUziTkEt for <ipv6@ietfa.amsl.com>; Wed, 27 Mar 2024 12:20:27 -0700 (PDT)
Received: from mail-oo1-xc35.google.com (mail-oo1-xc35.google.com [IPv6:2607:f8b0:4864:20::c35]) (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 6E2CCC14F685 for <ipv6@ietf.org>; Wed, 27 Mar 2024 12:20:27 -0700 (PDT)
Received: by mail-oo1-xc35.google.com with SMTP id 006d021491bc7-5a56710cdccso50981eaf.3 for <ipv6@ietf.org>; Wed, 27 Mar 2024 12:20:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=forwardingplane.net; s=google; t=1711567226; x=1712172026; darn=ietf.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=UCo7Gisyn0MiIgm1mYxTVj1hMYMwBPpYk5YLGLna8Kc=; b=kb2C/DNDWMCI/SrVzJQsHxiUrA1RoM2FoD8Ky/2E4UPwoWow9/nobTFjCJzoCwN7Os Dt6iGwLr7DzzM8glUtrnAlrJkBkN0bS1CUtDZodMAegoOYeiz3O/DXRf9PFTog0Ck/XI 0V3t+nYtwH09gh5sWfFSnE+X5aU/KVK0zne0U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711567226; x=1712172026; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UCo7Gisyn0MiIgm1mYxTVj1hMYMwBPpYk5YLGLna8Kc=; b=vL3ZdA0n+MfNrOj+iUZPUWngd43FNZuXoMrCZ/R5yVj87/EjdhfQvy+TXZn/Lpti3N TPCbvyqb9N+WiIUJt+vhaPP0nBBB2YPfeW4lceSTqWILuiqO92+AndQc9juic6MDfWEW xFwqbpCJSdiZYEbWV2tOSl/VvA36KggvDvlPR0ON7QsGkUsBVq5g4gT2PaTrG9hvoC1R vS8HGoC4u7+BQybzqj6PV7d6UVcKYAybixdkvRBQqiw55Q1onQ8wvLHSucSq6eCqOOKl Wm4D/P+N5XlkbWZQIDP+wbZnJVo9XfsoE28WfDE5RGmRlxpv11l3iAXO7yjs0Pv2MIw1 hu3Q==
X-Forwarded-Encrypted: i=1; AJvYcCUbiDBzJxljQZOr1DrFwwRmqy6jfGwOEc5289w6hoKb9GCjNocZwOFWxAs2ms8Pf07jmw6amG+9LMIDBS8h
X-Gm-Message-State: AOJu0Yy5NqfO3ZeGcj7dxvPQ9KbFsL8J7a1npLnHCwARcOtAp65VOwNy K5WJIoMb7AFsfIQQ0GVQShN11ec+jOHBhrLYaVMduM4hlh+4byf766olm3STXD4tkLQnFM9EBu4 eS8SNvqvcpW+3s99f7ROAeyjfs4aIouiGViHA
X-Google-Smtp-Source: AGHT+IGPRcE31gmGRs64QA8XfO5EXBZP6OSs7bQDbLkcziWDG+CHfnCL9XejiNA8m486AbAeMez8CxPQQYr8nTT15vQ=
X-Received: by 2002:a05:6820:2715:b0:5a5:1f92:ba2b with SMTP id db21-20020a056820271500b005a51f92ba2bmr572261oob.2.1711567226148; Wed, 27 Mar 2024 12:20:26 -0700 (PDT)
MIME-Version: 1.0
References: <CAPt1N1=eFFOkuJShykJn1_BZuY3BAGTgza=a7Hnp4JKZetxiCA@mail.gmail.com> <2A798A60-1934-488B-8FA8-E6E68AE95EE9@consulintel.es> <64ffe90f-8aea-ecbf-de1c-73d880a7ddd5@gmail.com> <CAPt1N1kkMzZgkJfykyZ1cffPhYFmEMOaRLP450jWmHoBvAj8Zw@mail.gmail.com> <CAKD1Yr3U7_Lk_MumEEFjHyfT2YR0u2DRpr9sPXB+Ziy6cO4C5Q@mail.gmail.com> <ZfvTkBLdMf873H2d@eidolon.nox.tf> <d131e3a5-9ec0-468b-9f62-9cf131d12b55@gmail.com> <ZgEltLsdDiqq9R2e@eidolon.nox.tf> <22ef98a2-e310-46f6-ab10-0b41454d8310@gmail.com> <CAKD1Yr1Gw3LmL-wv6YxcZbfRJUvVTBU6CdaQtOjR8FC8tsSvyQ@mail.gmail.com> <01B108A8-B94B-4964-A5B0-0F1657A8CCDC@employees.org> <CAPt1N1mkOKxEivsj-om+caiSD_AVChLLWxuOgKSrvbZO7wQ1wQ@mail.gmail.com> <m1rp9xB-0000KeC@stereo.hq.phicoh.net> <CAPt1N1ndW9=Moc12RrWOCOxrThZXc=yg9j6yRd1oOB+zrXMtZQ@mail.gmail.com> <e6e78e01-c74d-49b0-8623-4ae32c5a32f2@gmail.com> <CAPt1N1kJ5CjdJzUh3R0cY1wunjHdonFzTPjsx6hVmUfvgOgGXw@mail.gmail.com> <afdd79df453c49029a498f0da4239867@huawei.com> <f0b317a8-c124-489b-bf52-b04a722294f2@gmail.com>
In-Reply-To: <f0b317a8-c124-489b-bf52-b04a722294f2@gmail.com>
From: Nick Buraglio <buraglio@forwardingplane.net>
Date: Wed, 27 Mar 2024 14:20:15 -0500
Message-ID: <CACMsEX9bSV_nMQFeu0NbpD6J23XEi06EcdnvMeVSChOi1CS91A@mail.gmail.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
Cc: Vasilenko Eduard <vasilenko.eduard@huawei.com>, Ted Lemon <mellon@fugue.com>, "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/pzciF6dTYfo2B21Rgt74TMnugsc>
Subject: Re: [IPv6] First hop selection [was: Adoption call for draft-bctb-6man-rfc6296-bis]
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.39
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: Wed, 27 Mar 2024 19:20:32 -0000

On Wed, Mar 27, 2024 at 1:29 PM Brian E Carpenter
<brian.e.carpenter@gmail.com> wrote:
>
> On 27-Mar-24 20:17, Vasilenko Eduard wrote:
> > Brian is replacing happy eyeballs
>
> Not exactly. Some apps will still want to make their own optimization. My thinking is that the more that information about the best {source, destination} pairs can be shared the better, so having the pairs ranked by the o/s itself will give the best possible results.

I agree with this.

>
>     Brian
>
>
> > because he is proposing to check DA properties in some tests. If we know enough about DA quality then we do not need happy eyeballs race/competition/duplicate_traffic.
> >
> > It is indeed better to cache and share such information per host, not per session.
> >
> > Ed/
> >
> > *From:* ipv6 <ipv6-bounces@ietf.org> *On Behalf Of * Ted Lemon
> > *Sent:* Tuesday, March 26, 2024 22:51
> > *To:* Brian E Carpenter <brian.e.carpenter@gmail.com>
> > *Cc:* ipv6@ietf.org
> > *Subject:* Re: [IPv6] First hop selection [was: Adoption call for draft-bctb-6man-rfc6296-bis]
> >
> > Right. Such APIs exist, but socket/getaddrinfo isn’t that. I guess getaddrinfo could return a sorted list? But you still need to do happy eyeballs and track changes, so it’s not really adequate to do a synchronous API no matter what.
> >
> > Op di 26 mrt 2024 om 14:46 schreef Brian E Carpenter <brian.e.carpenter@gmail.com <mailto:brian.e.carpenter@gmail.com>>
> >
> >     On 27-Mar-24 06:15, Ted Lemon wrote:
> >      >
> >      >
> >      > Op di 26 mrt 2024 om 12:47 schreef Philip Homburg <pch-ipv6-ietf-10@u-1.phicoh.com <mailto:pch-ipv6-ietf-10@u-1.phicoh.com> <mailto:pch-ipv6-ietf-10@u-1.phicoh.com <mailto:pch-ipv6-ietf-10@u-1.phicoh.com>>>
> >      >
> >      >      >It seems like in order for this to work each possible destination address
> >      >      >has to be evaluated for reachability and then the set of source addresses
> >      >      >that could combine with it can be constrained using the selected interface
> >      >      >for that destination. And then you use source/dest address selection to
> >      >      >pick the source/destination pair from each of these result sets, and do
> >      >      >Happy Eyeballs to prioritize which S,D pairs you try. I don't see how you
> >      >      >could do this right if you start by picking a destination address.
> >      >
> >      >     When it comes to destination addresses we can make one of two assumptions:
> >      >     1) The Internet is professionally maintained and in general every destination
> >      >         address you find is reachable. In that case, order destination addresses
> >      >         in some way and try them in order. Of course sometimes there may be an
> >      >         issue, but if that is rare it is fine. And operators like users who
> >      >         complain because many operators are using user to detect problems. That
> >      >         why there is a push for IPv6-mostly.
> >      >     2) Whether a destination address works or not is mostly random. In that case
> >      >         get advanced forms of happy eyeballs to dynamically pick the most likely
> >      >         destination address and quickly try other ones as well to minimize
> >      >         impact on the user.
> >      >
> >      >     For each destination address you try, there is essentially the same reasoning
> >      >     for source addresses: in a well maintained network there is an algorithm
> >      >     to select source addresses. If there is more randomness then trying multiple
> >      >     source addresses for each destination address might be required.
> >      >
> >      >
> >      > Oh, right, rule 5.5 means we have multiple possible routes per destination to deal with. So we have an extra iteration to do there. But still, ideally if all upstreams are working, the first s,d pair that you choose this way will work.
> >
> >     To me, this very interesting discussion underlines that the model presented to the application by the BSD socket model via getaddrinfo() is at best unfriendly and at worst wrong. The app needs a sorted list of address pairs, not a sorted list of destination addresses with no information about the source addresses that will be used.
> >
> >         Brian
> >     --------------------------------------------------------------------
> >     IETF IPv6 working group mailing list
> >     ipv6@ietf.org <mailto:ipv6@ietf.org>
> >     Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6 <https://www.ietf.org/mailman/listinfo/ipv6>
> >     --------------------------------------------------------------------
> >
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> ipv6@ietf.org
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------