[DNSOP] opportunistic refresh and Happy Eyeballs

Mikael Abrahamsson <swmike@swm.pp.se> Tue, 15 August 2017 07:25 UTC

Return-Path: <swmike@swm.pp.se>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D48C1132576 for <dnsop@ietfa.amsl.com>; Tue, 15 Aug 2017 00:25:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.3
X-Spam-Level:
X-Spam-Status: No, score=-4.3 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=swm.pp.se
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 OJwGldyBG5EH for <dnsop@ietfa.amsl.com>; Tue, 15 Aug 2017 00:25:58 -0700 (PDT)
Received: from uplift.swm.pp.se (ipv6.swm.pp.se [IPv6:2a00:801::f]) (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 E170F1200B9 for <dnsop@ietf.org>; Tue, 15 Aug 2017 00:25:57 -0700 (PDT)
Received: by uplift.swm.pp.se (Postfix, from userid 501) id 236B0AF; Tue, 15 Aug 2017 09:25:55 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=swm.pp.se; s=mail; t=1502781955; bh=tTySGLJ00DfweznmDpm3dCj2QXZt1xJ8SzdGuicLqJA=; h=Date:From:To:Subject:From; b=ot98oT0gihv2g+bVleEloRg5PL+D0bsSp/mu8J5HHe7Vty5K3BKgKmeAyuqVIYw+8 EZl6Q4chDbFZ51GcPOxMo1x+EPscHkaqU2POZ8yZ5Fn6obUp7XK07IQW6oOxv5wr+q OKLpPl8gyiUYXBp+jFm2hRmIPFP32sBn/6sJlxnk=
Received: from localhost (localhost [127.0.0.1]) by uplift.swm.pp.se (Postfix) with ESMTP id 1F19784 for <dnsop@ietf.org>; Tue, 15 Aug 2017 09:25:55 +0200 (CEST)
Date: Tue, 15 Aug 2017 09:25:55 +0200
From: Mikael Abrahamsson <swmike@swm.pp.se>
To: dnsop@ietf.org
Message-ID: <alpine.DEB.2.20.1708150911470.3655@uplift.swm.pp.se>
User-Agent: Alpine 2.20 (DEB 67 2015-01-07)
Organization: People's Front Against WWW
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="US-ASCII"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/eM0cHSdMu602GqUiNomkbufLXBw>
Subject: [DNSOP] opportunistic refresh and Happy Eyeballs
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Aug 2017 07:26:00 -0000

Hi,

we've had a discussion on V6OPS 
(https://www.ietf.org/mail-archive/web/v6ops/current/msg27337.html) where 
Mark Andrews has brought up the topic of caching DNS resolvers not being 
populated with A and AAAA information at the same time, or the TTL might 
expire at different points in time, thus causing the Happy Eyeballs 
algorithm to use IPv4 more than IPv6 because of the 50ms total timer of 
DNS lookup+TCP initation.

I had a look into this, and there are some drafts regarding opportunistic 
refresh of information to try to avoid records expiring, and instead 
refreshing them before they expire.

One I have found is 
https://tools.ietf.org/html/draft-muks-dnsop-dns-opportunistic-refresh-00

There was another opinion in the discussion 
(https://www.ietf.org/mail-archive/web/v6ops/current/msg27356.html) that 
caching resolvers should try to keep AAAA and A cached as long as one of 
them is being asked for. Currently I believe there is no such "coupling" 
between RR types?

What is the opinion of this wg on that topic? I believe the best solution 
for the problem statement in Happy Eyeballs is a solution that needs to 
change behaviour both in the client (DNS lookups and TCP session 
initiation) but also in the resolver.

If we can have a reasonable expectation that the caching resolver is 
always "hot" when it comes to frequently used A and AAAA records, that 
would mean we'd need less DNS lookup delay, waiting for both lookups to 
complete before deciding what to do regarding IPv6 and IPv4 TCP session 
initiation.

Right now RFC6555bis proposes a 50ms head start for IPv6 (DNS lookup+TCP 
init), which IPv6 will lose if the DNS resolver AAAA is expired and the A 
is cached, and the authoritative DNS server is far away TTL-wise.

However, introducing a really high head start for IPv6 in this setup is 
not desireable either, let's say 500ms head start to handle that the 
authoritative DNS server is 400ms RTT away. This would give a bad user 
experience in some other cases.

Thoughts?

-- 
Mikael Abrahamsson    email: swmike@swm.pp.se