Re: Server's Preferred Address

Ian Swett <ianswett@google.com> Thu, 05 April 2018 17:27 UTC

Return-Path: <ianswett@google.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 81AC112DA4E for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 10:27:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.709
X-Spam-Level:
X-Spam-Status: No, score=-2.709 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 deCr_iAEDzEI for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 10:27:43 -0700 (PDT)
Received: from mail-io0-x231.google.com (mail-io0-x231.google.com [IPv6:2607:f8b0:4001:c06::231]) (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 EB923126D3F for <quic@ietf.org>; Thu, 5 Apr 2018 10:27:42 -0700 (PDT)
Received: by mail-io0-x231.google.com with SMTP id q80so31493231ioi.13 for <quic@ietf.org>; Thu, 05 Apr 2018 10:27:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dLgxs+7kSM9btmfAVoSsTqUpcvsXcItpVds7UjHitPk=; b=vRdSVkCbC+FVNVRdlU6ptxKvCRnGtkZuhMNML9HqYN1DszxG2IPt4SZtp+0iBTEjbR s9QliqZE33mTuZzXEHJ9zAk9u3R/P2VFHQSlh7cJJr1+yS8hAsVBwXMNulsV6ong1T0f ob64ujYo8cZJ7e/q8OKJD2oYor7ylhC2N0Wxa0W67kLjHE9+h4nvayhn1pIlcYFrs3lV dE7//LMxCAkVysBcXiHCfo9yg5lWXU6n4aPOrPceJ2CC981btnVZGZ5vHhKMNsWr8fh8 Uk8xj+seYMVe+vNyCmkSD/IC8C+WexgXvwJ7381E6WL8ztsKPzhxUGdC8uVdiHO/QvYy ZXpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dLgxs+7kSM9btmfAVoSsTqUpcvsXcItpVds7UjHitPk=; b=e9Ci4/5v1VoG20BpwzkJ/Dria87kSxzMh2w7eehk/nZFWHG2iQBLUNfCtK1Qr3cq5m yZi5zCt/0yP8jY/XAQMGUl5Av+ZuSAaEzKm+iwHBqIyPvvmBMEbwx0427TNctboTgxYu EEBI102JJmk8o5btbF+H9LS6oHYVOQeuG4o9OsAMjchJw4RsAJYpHKNv92T0IQgttCOG ScVNKf2LJXgziYyG5qq2Yyw/0zRxSYkfXAblJxIL81Q3jeMJRtCuhEK8GyFUPACMT7R+ oc1WNY0La94SQOVSbh/jcgE2gYXDo+rvlZYQqLSoh/ZC2+ipvGLy/R6lREqNSX9TB0K1 wBbA==
X-Gm-Message-State: ALQs6tBeXezPYlrH7fWTIy0kDICarIgWStkMRLlWZ2MdD7eJP3nc4ktV RwIrVW5gypfSkJAipOH2qqCDCGttI5mg0J2K/ED6tg==
X-Google-Smtp-Source: AIpwx492TalzpvA2ObWuVsrKtivu/mZiORkDMpQUGa6DLvNHhiab1eXaq/qD3gnz17FOjZMoME3/nj1JUbt8QHSuACs=
X-Received: by 10.107.131.83 with SMTP id f80mr20929841iod.102.1522949257823; Thu, 05 Apr 2018 10:27:37 -0700 (PDT)
MIME-Version: 1.0
References: <SN1PR08MB185489DC70881C810110B987DABB0@SN1PR08MB1854.namprd08.prod.outlook.com>
In-Reply-To: <SN1PR08MB185489DC70881C810110B987DABB0@SN1PR08MB1854.namprd08.prod.outlook.com>
From: Ian Swett <ianswett@google.com>
Date: Thu, 05 Apr 2018 17:27:24 +0000
Message-ID: <CAKcm_gOxWR3Eo4=TAhJaeEy9RcoGAHcRuLRM5m26mt4bFCW_jQ@mail.gmail.com>
Subject: Re: Server's Preferred Address
To: Mike Bishop <mbishop@evequefou.be>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a113f998a8b383805691d419c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ploOxwAAx2JYxowQd9f52cU-mp8>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Apr 2018 17:27:45 -0000

I and the traffic engineers I work with would REALLY like to have this
feature.  Also, in practice it's required to make connection migration work
with anycast.

At Google, we've started experimenting with this already in gQUIC, and it
works as expected, though you do need to probe before jumping to the new
server IP(as described in Mike's PR), or you risk a small but visible
number of connection failures post-handshake.

On Thu, Apr 5, 2018 at 1:19 PM Mike Bishop <mbishop@evequefou.be> wrote:

> As we walk along the spectrum from fixed 4-tuple for the life of a
> connection to full multipath, #560 requested a solution to the problem of
> Anycast IP addresses.  There are some large server deployments where the
> front-end addresses are Anycast-based.  However, for a connection-oriented
> protocol, you want to be “sticky” to the server endpoint that you did the
> handshake with.  Currently, that’s addressed with some amount of
> re-forwarding internally and some amount of tolerated connection breakage.
> This gets more painful if we support connection migration, as the same
> Anycast address likely hits a different server from your new IP address.
>
>
>
> PR#1251 builds on the path verification approach to enable servers to hand
> off to a unicast IP address if desired.  It adds a transport parameter in
> which the server supplies:
>
>    - IP version
>    - IP address
>    - UDP port
>    - Connection ID (possibly empty)
>    - Stateless Reset Token
>
>
>
> At the end of the handshake, the client SHOULD perform path validation on
> the supplied address; if it succeeds, it transitions to the new address.
> If it fails, it just stays on the original (presumably Anycast) address and
> takes the risk that the connection will fail when routing changes.  (The
> SHOULD is a matter of some contention – servers want to be able to rely on
> this, but can’t actually tell whether the client’s path validation failed
> or was never attempted.)
>
>
>
> It’s important to note that this isn’t full server migration – it’s a step
> in that direction, but this is scoped strictly to the server making one
> change attempt to an address it provides at a specified time.  However,
> this isn’t something that has seen broad discussion, so I wanted to raise
> it for the WG’s consideration.
>
>
>
> (If we want to tackle server migration, I think the next piece would be a
> frame that carries essentially the same information, requesting the client
> to make a probe attempt.  This helps deal with NATs by making clients speak
> first, but it assumes that the server always maintains control of both
> addresses during a transition.  To support full P2P, where both sides could
> be make-after-break, you basically need something like ICE.)
>