Re: [v6ops] An Update to Happy Eyeballs

Mark Andrews <marka@isc.org> Thu, 16 March 2017 21:11 UTC

Return-Path: <marka@isc.org>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9849E129A99 for <v6ops@ietfa.amsl.com>; Thu, 16 Mar 2017 14:11:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.901
X-Spam-Level:
X-Spam-Status: No, score=-6.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, PP_MIME_FAKE_ASCII_TEXT=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001, SPF_PASS=-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 N5BG-UfiFFWA for <v6ops@ietfa.amsl.com>; Thu, 16 Mar 2017 14:11:32 -0700 (PDT)
Received: from mx.pao1.isc.org (mx.pao1.isc.org [IPv6:2001:4f8:0:2::2b]) (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 D1830129A97 for <v6ops@ietf.org>; Thu, 16 Mar 2017 14:11:32 -0700 (PDT)
Received: from zmx1.isc.org (zmx1.isc.org [149.20.0.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.pao1.isc.org (Postfix) with ESMTPS id A335E349919; Thu, 16 Mar 2017 21:11:28 +0000 (UTC)
Received: from zmx1.isc.org (localhost [127.0.0.1]) by zmx1.isc.org (Postfix) with ESMTPS id 924CA160076; Thu, 16 Mar 2017 21:11:28 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1]) by zmx1.isc.org (Postfix) with ESMTP id 7E40516007D; Thu, 16 Mar 2017 21:11:28 +0000 (UTC)
Received: from zmx1.isc.org ([127.0.0.1]) by localhost (zmx1.isc.org [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id QQNYCyOfdLPL; Thu, 16 Mar 2017 21:11:28 +0000 (UTC)
Received: from rock.dv.isc.org (c27-253-115-14.carlnfd2.nsw.optusnet.com.au [27.253.115.14]) by zmx1.isc.org (Postfix) with ESMTPSA id B0E5B160076; Thu, 16 Mar 2017 21:11:26 +0000 (UTC)
Received: from rock.dv.isc.org (localhost [IPv6:::1]) by rock.dv.isc.org (Postfix) with ESMTP id 45F5566F10C2; Fri, 17 Mar 2017 08:11:23 +1100 (EST)
To: Stuart Cheshire <cheshire@apple.com>
Cc: David Schinazi <dschinazi@apple.com>, IPv6 Operations <v6ops@ietf.org>
From: Mark Andrews <marka@isc.org>
References: <148899860042.20118.391380898590855642.idtracker@ietfa.amsl.com> <A609BABB-BDF2-4CCB-8452-F489C019748C@apple.com> <m1clvfj-0000FCC@stereo.hq.phicoh.net> <ABE752F6-895B-431C-9E94-E0CD2FDDB2E3@apple.com> <m1cmTQX-0000IcC@stereo.hq.phicoh.net> <92EEB875-288D-4CF9-B81F-3B5C8EA49F53@apple.com> <CAKC-DJjeUX1rRB_e99SGJS06RoFZ6E6A8Tpj0hPAvfS6+L+XWA@mail.gmail.com> <BAEBBDCE-790E-43D7-BD2A-AE1BF9B81B34@apple.com> <20170315034622.0EAB566D1CED@rock.dv.isc.org> <73FB4EA3-98CE-47F7-AE3D-A010A321A906@apple.com>
In-reply-to: Your message of "Thu, 16 Mar 2017 13:05:56 -0700." <73FB4EA3-98CE-47F7-AE3D-A010A321A906@apple.com>
Date: Fri, 17 Mar 2017 08:11:23 +1100
Message-Id: <20170316211123.45F5566F10C2@rock.dv.isc.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/q4s0e7oo9f0Mg0XhG5YrgHLCgcg>
Subject: Re: [v6ops] An Update to Happy Eyeballs
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: v6ops discussion list <v6ops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/v6ops>, <mailto:v6ops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/v6ops/>
List-Post: <mailto:v6ops@ietf.org>
List-Help: <mailto:v6ops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/v6ops>, <mailto:v6ops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Mar 2017 21:11:34 -0000

In message <73FB4EA3-98CE-47F7-AE3D-A010A321A906@apple.com>, Stuart Cheshire wr
ites:
> On 14 Mar 2017, at 20:46, Mark Andrews <marka@isc.org> wrote:
>
> > So you now want Happy Eyeballs, which was designed to remove delays
> > of 10's - 100's of seconds before failover, to now override address
> > selection policies because the DNS's cache has one address type
> > present and not the other.  That is what the 50ms timer achieves.
> > It takes ~200ms to get a answer from the other side of the world
> > with terrestial links.
> >
> > Happy Eyeballs was never about having the absolute fastest time to
> > connect.  It was about establishing a connection in a reasonable
> > amount of time in presence of network / server failures without
> > having ridiciously long failover delays.
>
> What an utterly absurd statement, to claim to speak for the authors
> “Happy Eyeballs”, and tell us what our invention was or was not designed
> to do.

Happy Eyeballs is working group consensus.  It's a product of the
working group.

> Back in 2007 and 2008 at Apple we started to get real-world bug reports
> about web sites being unusable. These were major web sites, whose DNS
> servers simply failed to answer AAAA queries, causing unusably long
> timeouts before getaddrinfo() completed. I won’t name names, because
> incredibly, some of these major web sites still have broken DNS servers.
> Some fixed their DNS servers, only then later to break them again.

And that isn't a server failure?  https://www.kb.cert.org/vuls/id/714121
was issued in 2003 about this.  We have similar issues with TLSA
today.

> Without some workaround in place, any ISP attempting to turn on IPv6
> support would have caused client devices to start doing AAAA queries,
> which time out, which make web sites unusable, which results in
> complaints from customers, which results in the ISP turning off IPv6
> support. So it was vital that we work out how to allow an ISP to enable
> IPv6 without enraging their customers.

Actually most AAAA queries have always worked.  The ones that failed
were those directed at load balancers.

> In July 2008 I gave a presentation at the Technical Plenary at IETF 72 in
> Dublin about how Apple fixed this problem, recommending that others do
> the same. If you haven’t watched the presentation, please do, before
> telling us what our invention was designed to do. It’s not very long.
>
> <http://www.stuartcheshire.org/IETF72/>
>
> Dan Wing and Andrew Yiurtchenko decided to write up a subset of my
> recommendations as RFC 6555. Inexplicably they decided to document the
> asynchronous TCP connection racing, but not the asynchronous DNS query
> racing, which is odd, given that, at the time, DNS failure to answer AAAA
> queries was the dominant problem.
>
> Still, Dan Wing and Andrew Yiurtchenko wrote a good, if incomplete, RFC.

Which is Happy Eyeballs.  Just because HE isn't what Apple experimented
with doesn't make my statement was wrong.  Apple has never implemented
HE.  It's implemented something that is HE like but not HE.  Apple
actually got complaints about that.

A bit like the load balancers implemented something that was like
a DNS server but wasn't actually a DNS server. They implements a A
record server and failed to handle all the other types as required
by RFC 1034.

> Now, nine years later, Tommy Pauly and David Schinazi thought it was
> about time we shared the remainder of the relevant information with the
> community.

And we are pushing back because it goes too far.

> Like it or not, this is in fact what Apple networking products do, and
> have done for many years, and, regardless of what you think, it does
> provide a better user experience than a synchronous blocking call to
> getaddrinfo().
>
> Stuart Cheshire

-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka@isc.org