Happy Eyeballs for the DNS Geoff Huston, George Michaelson APNIC Labs October 2015.

Slides:



Advertisements
Similar presentations
Stacking it Up Experimental Observations on the operation of Dual Stack Services in todays Network Geoff Huston APNIC R&D February
Advertisements

Stacking it Up Experimental Observations on the operation of Dual Stack Services Geoff Huston IETF-80 March
Measuring IPv6 Deployment Geoff Huston George Michaelson
Stacking it Up Experimental Observations on the operation of Dual Stack Services Geoff Huston IETF-80 March
Applications Test Results in MIF environment draft-zheng-mif-apps-test-02.txt IETF 81 Quebec City.
1 Addition of IPv6 servers to in-addr.arpa tree DNS Operations Sig APNIC 18 2 September 2004, Fiji.
Measuring IPv6 Geoff Huston APNIC Labs, February 2014.
IPv6 Glue Why registrars need to support it Elise Gerich VP, IANA.
Sergei Komarov. DNS  Mechanism for IP hostname resolution  Globally distributed database  Hierarchical structure  Comprised of three components.
Some Observations on CGNs Geoff Huston Chief Scientist APNIC.
Measuring IPv6 Geoff Huston George Michaleson APNIC Labs, May 2013.
Measuring the DNS from the Users’ perspective Geoff Huston APNIC Labs, May 2014.
Sweeping lame DNS reverse delegations APNIC16 – DNS Operations SIG Seoul, Korea, 20 August 2003.
A Question of Protocol Geoff Huston APNIC. Originally there was RFC791:
Domain Name System. DNS is a client/server protocol which provides Name to IP Address Resolution.
The Domain Name System Overview Introduction DNS overview How DNS helps us? Summary.
EEC-484/584 Computer Networks Lecture 6 Wenbing Zhao
DirectAccess is an Enterprise Solution: No support for Windows 7 Professional Requires two consecutive public IP addresses Cannot NAT to the DirectAccess.
Experiences of host behavior in broken IPv6 networks IETF#80 Prague – v6ops WG 31 st March 2011 Slide about Rogue RA relation to Happy Eyeballs:
A Study of DNS Lameness Edward Lewis. July 14, 2002 IETF 54 Slide 2 Agenda Lameness Why (Surprise:) Spotty(?) results Approach Plans.
IPv6 end client measurement George Michaelson
Application Layer. Domain Name System Domain Name System (DNS) Problem – Want to go to but don’t know the IP addresswww.google.com Solution.
A question of protocol Geoff Huston APNIC 36. Originally there was RFC791: “All hosts must be prepared to accept datagrams of up to 576 octets (whether.
Advanced Module 3 Stealth Configurations.
DHCP: Dual-Stack Issues draft-ietf-dhc-dual-stack-01 Tim Chown dhc WG, IETF 60, San Diego, August 2, 2004.
Microsoft Windows Server 2003 TCP/IP Protocols and Services Technical Reference Slide: 1 Lesson 17 Domain Name System (DNS)
Geoff Huston APNIC Labs
Analysing Dual Stack Behaviour and IPv6 Quality Geoff Huston & George Michaelson APNIC.
SAINT ‘01 Proactive DNS Caching: Addressing a Performance Bottleneck Edith Cohen AT&T Labs-Research Haim Kaplan Tel-Aviv University.
Tyre Kicking the DNS Testing Transport Considerations of Rolling Roots Geoff Huston APNIC.
Zone Properties. Zone Properties Continued Aging allows zone to remove “stale” or “old” records for clients who have not updated within a certain period.
1 Simplified DNS Query under IPv4/IPv6 Mixed Environment Hiroshi KITAMURA NEC Corporation
Measuring IPv6 Deployment Geoff Huston George Michaelson
Measuring IPv6 Deployment Geoff Huston George Michaelson
APNIC Update The state of IP address distribution and IPv6 deployment status Miwa Fujii Senior IPv6 Program Specialist APNIC.
Measuring DNSSEC Geoff Huston APNIC Labs, June 2014.
Status report on Lame Delegations (work in progress) George Michaelson DB SIG APNIC17/APRICOT 2004 Feb KL, Malaysia.
Measuring IPv6 Deployment Geoff Huston George Michaelson
Measuring DNSSEC Use Geoff Huston & George Michaelson
Rolling the Keys of the DNS Root Zone Geoff Huston APNIC Labs.
Measuring DNSSEC Use Geoff Huston APNIC Labs. We all know…
DNSSEC – Issues and Achievements Geoff Huston APNIC Labs.
DNS Security 1. Fundamental Problems of Network Security Internet was designed without security in mind –Initial design focused more on how to make it.
What if Everyone Did It? Geoff Huston APNIC Labs.
1 CMPT 471 Networking II DNS © Janice Regan,
PacINET 2011 The state of IP address distribution and its impact Elly Tawhai Senior Internet Resource Analyst/Liaison Officer, Pacific, APNIC 1.
&. & DNS and IPv6 IPv6 Summit, Canberra 31st October & 1 st November 2005 Chris Wright, Chief Technology Officer &
WHAT IS DNS??????????.
So DNS is A client-server application that maps domain names into their corresponding IP addresses with the help of name servers. Mapping domain names.
Draft-wing-v6ops-happy-eyeballs-ipv6 Happy Eyeballs: Trending Towards Success with Dual-Stack Hosts Dan Wing Andrew Yourtchenko {dwing,
Monitoring, analyzing and cleaning DNS configuration errors across European NRENs Slavko Gajin University of Belgrade, Serbia
Geoff Huston APNIC March 2017
Geoff Huston APNIC October 2016
George Michaelson Geoff Huston Joao Damas APNIC Labs
Measuring IPv6 Performance
Measuring IPv6 ISP Performance
Geoff Huston APNIC Labs
Geoff Huston APNIC Labs September 2017
Are we there yet? Measuring iPv6 in 2016
IPv6 Performance (revisited)
Joao Damas, Geoff Labs March 2018
Geoff Huston, Joao Damas APNIC Roy Arends ICANN
IPv6: Are we really ready to turn off IPv4?
Measuring KSK Roll Readiness
Geoff Huston APNIC Labs
IPv6 Reliability Measurements
Going IPv6 only For profit and for fun
IPv6 Performance Measurement
ECDSA P-256 support in DNSSEC-validating Resolvers
What part of “NO” is so hard for the DNS to understand?
Presentation transcript:

Happy Eyeballs for the DNS Geoff Huston, George Michaelson APNIC Labs October 2015

Recap: “Happy Eyeballs” Plan A: If you are Dual Stack and the service you are attempting to connect to is Dual Stack then try to connect using V6 first, and if the connection attempt fails then try using V4 Which “naturally” propels the V6 transition – as more clients and services support Dual Stack then more transactions will shift to use V6

Recap: “Happy Eyeballs” But Connection Failure took forever: Windows: 21 seconds BSD: 75 seconds Linux: 189 seconds So what we wanted in the Web was a “fast fail” to keep the eyeballs on the content

Recap: “Happy Eyeballs” Plan B: If you are Dual Stack and the service you are attempting to connect to is Dual Stack then try to connect using both protocols, but give V6 a (small) head start The V6 SYN is typically given a head start of 300ms over the V4 SYN, and the first protocol to complete the TCP handshake is used for the ensuing session

Happy DNSballs? y.dotnxdomain.net. IN NS ns y.dotnxdomain.net. ns y.dotnxdomain.net. IN A IN AAAA 2607:fc50:1001:9500::2 This zone is served by an authoritative name server that has both a V4 and a V6 address How should a “Happy Eyeballs” DNS resolver behave? How do resolvers behave today?

Fast Failover in the DNS? Plan A: Wait for timeout? Resolver timeout / retry algorithm is specific to the DNS resolver implementation: RFC1034: “Send them queries until one returns a response.”

Observed DNS Resolver Re-Query Times 1 Second Retry 0.8 Second Retry 0.37 Second Retry

Fast Failover in the DNS? If the DNS were to behave like the Web: – assemble a sorted list of V4 and V6 addresses – launch a query to the “best” V6 server – wait for – launch a query to the “best” V4 server But this is not what typically happens today. What does happen? Where is around the order of an expected RTT for the query

Measuring DNS Resolver Behaviour

Aside: Understanding DNS Resolvers is “tricky” What we would like to think happens in DNS resolution! Client DNS Resolver x.y.z? Authoritative Nameserver x.y.z? x.y.z?

Aside: Understanding DNS Resolvers is “tricky” A small sample of what appears to happen in DNS resolution

Aside: Understanding DNS Resolvers is “tricky” The best model we can use for DNS resolution in these experiments We can measure the behaviour of these resolvers We can measure the DNS resolution of these clients All this DNS resolver infrastructure is opaque

Aside: Understanding DNS Resolvers is “tricky” The best model we can use for DNS resolution in these experiments We can measure the behaviour of these resolvers We can measure the DNS resolution of these clients All this DNS resolver infrastructure is opaque Maybe we can improve on this

Glueless Delegation

DNS OARC 2015 Spring Workshop

1 2 3 The resolver can only ask question 3 if it receives answer 2

Glueless Delegation We can change the behaviour of the DNS response to the NS domain query And we observe that the resolver has received the response by the subsequent query to the child domain

Testing V6 Preference in the DNS We set up three domain structures: Glueless V4 only - NS name has only an A RR Glueless V6 only – NS name has only a AAAA RR Glueless Dual Stack – NA name has both A and AAAA RRs And tested this in an online Ad campaign using a pool of unique names to circumvent DNS name caching in resolvers

The Experiment 25 July 2015 – 31 August ,679,222 completed experiments Web results: DNS V4 Only42,515,729 97% DNS V6 Only16,605,301 38% DNS Dual Stack41,653,531 95% 38% of tests involved using DNS resolvers that were able to perform DNS queries over IPv6

The Experiment 25 July 2015 – 31 August ,679,222 completed experiments Web results: DNS V4 Only42,515,729 97% DNS V6 Only16,605,301 38% DNS Dual Stack41,653,531 95% 38% of tests involved using DNS resolvers that were able to perform DNS queries over IPv6 So if resolvers were “neutral” with respect to A and AAAA RRs in name servers, then we would see approximately 19% of queries to the Dual Stack structure take place over IPv6 – yes?

DNS Query Behaviours per Experiment Experiment Behaviour Total V4 only 38,104,161 V6 only 15,116 V4 and V629,546,165 Yes, that’s a total of 67,665,443 experiments in the DNS, while only 43,679, 222 completed the web fetch cycle (64% completion rate) Number of experiments that had >= 1 DNS query observed at the server

DNS Query Behaviours per Experiment Experiment Behaviour Total V4 only 38,104,161 V6 only 15,116 V4 and V629,546,165 Dual Stack DNS object fetch behaviour Exclusively used V4: 24,257,143 82% Exclusively used V6: 1,982,312 7% Used V4 and v6: 3,193,945 11%

DNS Queries Resource v4 Queriesv6 Queries 4-only110,265, only 0 61,601,964 Dual-stack101,897,693 7,346,050 Total number of DNS queries for A and AAAA RRs seen at the authoritative server for The DNS name

DNS Queries Resource v4 Queriesv6 Queries 4-only110,265, only 0 61,601,964 Dual-stack101,897,693 7,346,050 In a glueless structure we saw 7% of queries for a dual stack resource. From the Web results we were expecting something closer to 19%

DNS Resolvers Let’s switch from the queries make by resolvers to the visible resolvers themselves Resolvers seen: IPv4-Only Resolvers: IPv6-Only Resolvers: Dual Stack Resolvers:

Aside: Identifying DNS Dual Stack Resolvers Identifying a resolver as a dual stack resolver involves some assumptions, as the logged queries do not implicitly reveal that a V4 and a V6 address are actually addresses of the same resolver: – If a test query set involved a single V4 and single V6 address then I tentatively “join them” to a single resolver – 6-to-4 addresses are “joined” to each other – Loops are preferred – If a v4 address is “joined” to multiple V6 addresses in this way (or vv) then I undo the join except in those cases where the V4 and V6 addresses share a common final octet/nibble a.b.c.15 d::15 e.f.g.20

DNS resolvers Let’s switch from the queries make by resolvers to the visible resolvers themselves Resolvers seen: 464,950 IPv4-Only Resolvers: 446,173 (96%) IPv6-Only Resolvers*: 11,377 ( 2%) Dual Stack Resolvers: 7,040 ( 2%) * Could not uniquely associate the IPv6 address with a single IPv4 address

DNS Dual Stack Resolvers 282 dual stack resolvers use 6-to-4 for their IPv6 connections – None of these resolvers prefer IPv6 when querying a dual stack auth server 4 dual stack resolvers used Teredo (!) – They made a mix of V4 and V6 queries (63% v4) 6,759 dual stack resolvers used non-mapped V6 addresses – 58% of queries using V4, 42% using V6

DNS Dual Stack resolvers Lets look the queries made by the visible dual stack resolvers: Dual Stack Resolvers: 7,290 Always Prefer 4: 1,074 (15%) Always Prefer 6: 197 ( 3%) Mixed: 6,001 (82%) Did not query DS name: 18 ( 0%)

DNS V6 Capable resolvers V6 Capable Resolvers: 18,421 Did not use V6 for Dual Stack: 5,088 (28%) Always Preferred V6: 1,458 ( 8%) Mixed V6/V4 for Dual Stack: 11,875 (64%) Of the mixed V4/V6 situation V6 was used to resolve the dual stack glue record for 5,651,796 identifiers of a total of 38,782,137 identifiers, or 15% of the time

DNS Protocol Switch Times

What Does Google’s Public DNS Do? Observed V6 resolver addresses for Google PDNS: 566 Observed preference for V6 dual stack: 0 (using glueless delegation)

What does Bind Do? Can we see Bind? – Well, as far as I am aware (please correct me) Bind is the only resolver that will not follow a CNAME in a NS record – So lets use that as a working definition for Bind and see what Bind does

What does Bind do? Experiments using dual stack BIND resolvers: Asked for Dual Stack using V4: 4,075,246 (52%) Asked for Dual Stack using V6: 690,566 (17%) Asked for Dual Stack using V4 and V6: 1,263,312 (31%)

What does Bind do? Number of resolvers: 264,501 of 479,468 (55%) (These are the resolvers who do not follow a CNAME RR) Compare V4 only to V4 Dual Stack Used IPv4 to query a dual stack resource: 123,339 / 136,946 (90%) Compare V6 only to V6 Dual Stack Used IPv6 to query a dual stack resource: 9,402 / 11,950 (79%)

What does NON-Bind do? Experiments using dual stack NON-BIND resolvers: Asked for Dual Stack using V4: 22,135,775 (87%) Asked for Dual Stack using V6: 1,291,746 ( 5%) Asked for Dual Stack using V4 and V6: 1,930,633 ( 8%)

What does NON-Bind do? Number of resolvers: 214,967 of 479,468 (45%) (These are the resolvers who do follow a CNAME RR) Compare V4 only to V4 Dual Stack Used IPv4 to query a dual stack resource: 136,039 / 139,834 (98%) Compare V6 only to V6 Dual Stack Used IPv6 to query a dual stack resource: 2,554 / 2,693 (94%)

Happy DNS Eyeballs? Not really. Only 4% of resolvers appear to be dual stack capable  And of those that do, they are not favoring IPv6 over IPv4  And there is not clear evidence of the use of a fast failover approach from IPv6 to IPv4 

Does it matter? How can you tell when you no longer need to keep running IPv4 on an authoritative name server? When there are no longer any queries made using IPv4 But this answer assumes that dual stack resolvers have a clear preference to use IPv6 first and perform a fast failover to IPv4 Which is not happening today in the DNS 

That’s it!