RE: [EXTERNAL] Re: HTTP Alternative Services Best Practices?

Cory Nelson <Cory.Nelson@microsoft.com> Wed, 18 December 2019 10:37 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 586671200F6 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 18 Dec 2019 02:37:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.651
X-Spam-Level:
X-Spam-Status: No, score=-2.651 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 NlC59EPaWc6J for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 18 Dec 2019 02:37:07 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [IPv6:2603:400a:ffff:804:801e:34:0:38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9BCD51200FE for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 18 Dec 2019 02:37:06 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.89) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1ihWeo-0001K1-FA for ietf-http-wg-dist@listhub.w3.org; Wed, 18 Dec 2019 10:34:18 +0000
Resent-Date: Wed, 18 Dec 2019 10:34:18 +0000
Resent-Message-Id: <E1ihWeo-0001K1-FA@frink.w3.org>
Received: from uranus.w3.org ([128.30.52.58]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <Cory.Nelson@microsoft.com>) id 1ihWek-0001JF-CX for ietf-http-wg@listhub.w3.org; Wed, 18 Dec 2019 10:34:14 +0000
Received: from www-data by uranus.w3.org with local (Exim 4.92) (envelope-from <Cory.Nelson@microsoft.com>) id 1ihWek-00033e-8e for ietf-http-wg@listhub.w3.org; Wed, 18 Dec 2019 10:34:14 +0000
Received: from titan.w3.org ([2603:400a:ffff:804:801e:34:0:4c]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <Cory.Nelson@microsoft.com>) id 1ihLcA-0007Dv-MV for ietf-http-wg@listhub.w3.org; Tue, 17 Dec 2019 22:46:50 +0000
Received: from mail-co1nam11on2124.outbound.protection.outlook.com ([40.107.220.124] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by titan.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <Cory.Nelson@microsoft.com>) id 1ihLc8-0006h7-Er for ietf-http-wg@w3.org; Tue, 17 Dec 2019 22:46:50 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WDfVeAcjpAoI96Ocy9rgQQLWalzu9a9DL3qEkJsi8/PLmKGargBP4A2kaFKwUv4Gm6bsQ4Qff0wm/Sk/FMEOAS4DutTN6Qvgn3AzXeLf+3QQwpkw/9vF7QypF5xxzpU0RvL9Mny6R7V3CYhCiOwTnrb8I03twavM8Itx9gC5iOr6K2ZI3pApJyaB/hNUlj8Jb9lxSE7T1wrhj2uXeWoJtaokXy8V705zJWpQ/1dMSC5ykOE7mzIDo1wn3qYzpIXuMbMzTSRuEtxTvB0Zjw/JWFLQWsfGtpOW9YJZL87ln7nufsZZdGtZJrU/o/XXpH0bLGWcT3JlIo3yjv7s+RHOFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=32kx+lj4Xi2SKHRoRTTAo1P2E/lccRfrpKgp9502Dng=; b=K0zIL3+b9W8wZUZbYDkV3MJZerrLKUgEfu5Pc60Wop4uBlU8NQROAk6h0shcENW0B//bXwZ9j1SVzv28im0AJT9yUt0E8Tr85SkNAOhB5LMo89sKIXoCJ9pBGPyR1QYQV4hkL+hnBIcT/bYmffrm3WxZWgCFYEye0tyRw00gShxS+hYesmksuzqfrZNB6TaMIPbskqhQmbA/jzHlJk7d2x041Qv/GMzHcdNcapv4IfHcafOh72CeuNMz+SG3yuviW+JI3fE0N2l5BZxTLQ3OsowMKjpoE5HXfcn67irJg8W3h9nCmflz7MuZiy9Fc6UZ6+rEDPu/ws6SmFxfM4Q0bg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=32kx+lj4Xi2SKHRoRTTAo1P2E/lccRfrpKgp9502Dng=; b=RW2kaUyBIEUT2rFBsQV0+zOz2yRiVP+oo7Y22jd14DD30mDAzdZ53TIuTa0bqbGCvlsEO/INXHgAtAJ3ytCGtYgWZIJ4CS2TRuR3luKntuJEWX9hUq3MsRKG8LPN7PEzwub3XEsEDvA6qr25d1AwU4sFVnk77Fz+KbtrFf+A/0A=
Received: from DM5PR21MB0841.namprd21.prod.outlook.com (10.173.172.139) by DM5PR21MB0777.namprd21.prod.outlook.com (10.173.172.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.7; Tue, 17 Dec 2019 22:46:45 +0000
Received: from DM5PR21MB0841.namprd21.prod.outlook.com ([fe80::b170:51e9:1e93:bf2f]) by DM5PR21MB0841.namprd21.prod.outlook.com ([fe80::b170:51e9:1e93:bf2f%14]) with mapi id 15.20.2581.001; Tue, 17 Dec 2019 22:46:45 +0000
From: Cory Nelson <Cory.Nelson@microsoft.com>
To: Lucas Pardue <lucaspardue.24.7@gmail.com>, Mike Bishop <mbishop@evequefou.be>
CC: Ryan Hamilton <rch=40google.com@dmarc.ietf.org>, QUIC WG <quic@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>
Thread-Topic: [EXTERNAL] Re: HTTP Alternative Services Best Practices?
Thread-Index: AQHVtRCMmswLB9xJKEedGew9B/dgV6e+utUAgAAxhzA=
Date: Tue, 17 Dec 2019 22:46:45 +0000
Message-ID: <DM5PR21MB084181A43FC4A8CFEEB35151FD500@DM5PR21MB0841.namprd21.prod.outlook.com>
References: <CALGR9oaCNigDAZP=ue-sORxCJFzkVynhaJszjjY_ohN56ewy8g@mail.gmail.com> <CAJ_4DfQDgaouwoMyG1f2v4_CndWWNpqft+9=zbOfeM_ek7mSHA@mail.gmail.com> <DM6PR22MB20105A0DA471BB9419E6BDEADA500@DM6PR22MB2010.namprd22.prod.outlook.com> <CALGR9oYAURH4KnzHKmASQdOA6-rH+V-v2Ro2cekVQpnzZS-XNA@mail.gmail.com>
In-Reply-To: <CALGR9oYAURH4KnzHKmASQdOA6-rH+V-v2Ro2cekVQpnzZS-XNA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Owner=conelso@microsoft.com; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2019-12-17T22:46:43.7061226Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Application=Microsoft Azure Information Protection; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=4c011169-7341-4128-b550-01fda97168bb; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Extended_MSFT_Method=Automatic
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Cory.Nelson@microsoft.com;
x-originating-ip: [2001:4898:80e8:0:ad75:97c9:4e01:4eb3]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 8d3cc74e-c2d6-42ba-82ce-08d78342fe48
x-ms-traffictypediagnostic: DM5PR21MB0777:
x-microsoft-antispam-prvs: <DM5PR21MB07775075B0ECD72A8296376FFD500@DM5PR21MB0777.namprd21.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-forefront-prvs: 02543CD7CD
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(376002)(136003)(346002)(366004)(396003)(54094003)(199004)(189003)(4326008)(52536014)(71200400001)(9686003)(966005)(478600001)(54906003)(110136005)(186003)(2906002)(316002)(86362001)(66946007)(64756008)(66556008)(66476007)(66446008)(76116006)(55016002)(53546011)(33656002)(8990500004)(81156014)(5660300002)(7696005)(81166006)(8936002)(66574012)(6506007)(8676002)(10290500003); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR21MB0777; H:DM5PR21MB0841.namprd21.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 5qa6YVpWxn0UK1YkHGdffhYxS+m2KwrekeAgtVr7pBteVdVdzhWaYn4/vLKeuIayiRWhEWjb/NvlgpDjK6QMj6PNaQ/U4i/y8M2HbgtszQWvMmcreYUtuSY4AJMbyND6OFfPL7LiWjAosr90IavrWuTBsLm5IHQiYPU1mZTvkBiead1LbqP5IEzbQvas8jyi32sZabpTOkhdb/hmPVoqwBjoktKHNw13YJy0cbewnLGHCfGvNJ8nBilL74j/mUNhSLiSwJjZnwoRSFZoSe8dArFtCsLiqivliDd6enXNTe71HC+NE94bM9KSSfIcX66tP0YJfvEM17a3Q3tRR0ypY0zr9EI5xxb/pX6PUONF7HNeva2pzGP/y43SmOExG2lGP3Noa4okan9lvdE/LgdFVyPTm06XV4+Q9DWKZtR9S1vF8h2GdAhm3wqZoJa9pvBobgboNHTf8zRdakeXB3OYL/CSz0R8xq2ecilIC6LrRXl8XslS8WybleZDx72ZYSUL+E10LdJucsWY5Exc46dspjJ/YtSnaJi9JlaVPY78NlQ=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM5PR21MB084181A43FC4A8CFEEB35151FD500DM5PR21MB0841namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d3cc74e-c2d6-42ba-82ce-08d78342fe48
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2019 22:46:45.2849 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: T0c+r+2xjwYEoVxJM5t80KIjq6pTrrOgHPWU8eOVJIuZ1hak4o/kYfbGSJptotRDxVDWC+ZA1VNzTW8pZGIh/A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR21MB0777
Received-SPF: pass client-ip=40.107.220.124; envelope-from=Cory.Nelson@microsoft.com; helo=NAM11-CO1-obe.outbound.protection.outlook.com
X-W3C-Hub-Spam-Status: No, score=-1.5
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_NW=0.5
X-W3C-Scan-Sig: titan.w3.org 1ihLc8-0006h7-Er 6655b2d20da2ebbc3999e06066e7e991
X-caa-id: 1842e466ae
X-Original-To: ietf-http-wg@w3.org
Subject: RE: [EXTERNAL] Re: HTTP Alternative Services Best Practices?
Archived-At: <https://www.w3.org/mid/DM5PR21MB084181A43FC4A8CFEEB35151FD500@DM5PR21MB0841.namprd21.prod.outlook.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/37231
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Two questions I had while implementing Alt-Svc, and ended up looking at other implementations for guidance:

Is it valid to have Alt-Svc: clear followed by, on another line, more Alt-Svc to replace the old services?
Is it valid for an authority to extend their lease by sending an Alt-Svc for themselves?

Would be nice if spec could get updated to clarify these and other best practices.

From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Sent: Tuesday, December 17, 2019 11:45 AM
To: Mike Bishop <mbishop@evequefou.be>
Cc: Ryan Hamilton <rch=40google.com@dmarc.ietf.org>; QUIC WG <quic@ietf.org>; HTTP Working Group <ietf-http-wg@w3.org>
Subject: [EXTERNAL] Re: HTTP Alternative Services Best Practices?

I agree with both of your points. IMHO there are a few patterns of deployment that likely benefit from different approaches to Alt-Svc usage. RFC7540 provides the toolkit but not everything is a hammer nor a nail.

In my original email I also neglected to mention the Alt-Used header or the "clear" special value, which may have different considerations applicable to different deployments. Is there much experience with these at Internet scale?

Lucas

On Tue, 17 Dec 2019, 19:27 Mike Bishop, <mbishop@evequefou.be<mailto:mbishop@evequefou.be>> wrote:
Saying that “persist=false would be deleterious” is a bit simplistic.  You wouldn’t use persist=false for your scenarios, true enough.  Persist=true is intended for alternatives that aren’t derived from the user’s network location, and therefore don’t need to be flushed when the network location changes.  (For example, this host also supports QUIC.)

However, there are other scenarios where it is location-dependent – a CDN routing you to a closer node because DNS or Anycast didn’t get you close enough, for example.  If you change networks, not only is the node you were directed to no longer your closest, it might actually be prohibited from serving users on other networks.

The right answer here is that you need to know which type of Alt-Svc you’re issuing.

From: QUIC <quic-bounces@ietf.org<mailto:quic-bounces@ietf.org>> On Behalf Of Ryan Hamilton
Sent: Monday, December 16, 2019 3:24 PM
To: Lucas Pardue <lucaspardue.24.7@gmail.com<mailto:lucaspardue.24.7@gmail.com>>
Cc: QUIC WG <quic@ietf.org<mailto:quic@ietf.org>>; HTTP Working Group <ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org>>
Subject: Re: HTTP Alternative Services Best Practices?

Thanks for raising this issue! I think documenting best practices/guidance would be a great idea. I think the Google servers advertise a 30 day expiration (because 24 hours is *really* short). Further, it turns out that Chrome implicitly assumes persist = true (because Chrome incorrectly doesn't implement persist = false). We have a bunch of deployment experience with this model which I think suggests that shorter ttls and persist = false would be have a deleterious impact on performance.

On Mon, Dec 16, 2019 at 4:02 AM Lucas Pardue <lucaspardue.24.7@gmail.com<mailto:lucaspardue.24.7@gmail.com>> wrote:
Hello QUIC and HTTP members,

HTTP Alternative Services (Alt-Svc) is specified in RFC 7838 which was published in 2016 [1].. Many of us are starting to use Alt-Svc and I wonder if its appearance of simplicity might cause some unintended effects on the Internet. In the 3 or so years since it was published, have any best practices emerged that might be useful to capture.

Major uses of Alt-Svc today in no particular order: switching to gQUIC (typically on the same port), switching to HTTP/3, Opportunistic Encryption (RFC 8164) [2], Opportunistic Onion (advertising .onion [3]), and traffic management by advertising alternatives with different destination IPs or network path characteristics..

Arguably, HTTP/3 will be the largest-scale deployed use case of Alt-Svc both in terms of advertisements and clients that take them up. Alt-Svc for this can be deceptively simple, which may lead to unexpected outcomes. For example, the minimal expression:

Alt-Svc: h3-24=":443"

invokes default values for parameters, "ma" is fresh for 24 hours and "persist" is false (i.e. clear alternative cache on network changes). One could imagine how this could cause bursts of activity at regular periods, or cascades due to end-user local conditions such as flocking or hopping.

Finally, the proposal for an HTTPSVC DNS record [4] might attract a different population of operator that is less familiar with the expected behaviour of Alt-Svc implementations.

Does anyone think it would be useful to share or document some guidance?

Cheers
Lucas

[1] https://tools.ietf.org/html/rfc7838<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc7838&data=02%7C01%7CCory.Nelson%40microsoft.com%7C77afde374a174f49929608d7832a0332%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637122088801114286&sdata=fVy2O5a31U%2BT41Qnp4TtAGbDyJr%2B8RZzfGoPYTkctIE%3D&reserved=0>
[2] https://tools.ietf.org/html/rfc8164<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8164&data=02%7C01%7CCory.Nelson%40microsoft.com%7C77afde374a174f49929608d7832a0332%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637122088801123984&sdata=pHhXebysCX7H8ywUVRFn6du%2BUL46MyBV64hInK%2BOcAk%3D&reserved=0>
[3] https://tools.ietf.org/html/rfc7686<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc7686&data=02%7C01%7CCory.Nelson%40microsoft.com%7C77afde374a174f49929608d7832a0332%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637122088801123984&sdata=vobQdfgEayQ3MK%2FXzNB%2FFqtWmun7JFyfozBkFgJjAvs%3D&reserved=0>
[4] https://tools.ietf.org/html/draft-ietf-dnsop-svcb-httpssvc-01<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-ietf-dnsop-svcb-httpssvc-01&data=02%7C01%7CCory.Nelson%40microsoft.com%7C77afde374a174f49929608d7832a0332%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637122088801133979&sdata=o8dZyNm8YjM7ybwxLZRF7xpZyLpB5%2BLXjVbXgW1dgxI%3D&reserved=0>