IPv6 Operations                                                 F. Baker
Internet-Draft                                             Cisco Systems
Intended status: Informational                          November 7, 2010
Expires: May 11, 2011


                       Testing Eyeball Happiness
             draft-baker-bmwg-testing-eyeball-happiness-00

Abstract

   A barrier to the deployment of IPv6 is the amount of time it takes to
   open a session using common transport APIs in dual stack networks and
   networks with filtering such as proposed in BCP 38.  This note
   describes a test that can be used by a manufacturer or network
   operator to determine whether an application adequately meets the
   "happy eyeballs" requirements.  This test is not a test of a specific
   algorithm, but of the external behavior of the system as a black box.
   Any algorithm that has the intended external behavior will be
   accepted by it.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on May 11, 2011.

Copyright Notice

   Copyright (c) 2010 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect



Baker                     Expires May 11, 2011                  [Page 1]


Internet-Draft          Testing Eyeball Happiness          November 2010


   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Generic Test  . . . . . . . . . . . . . . . . . . . . . . . . . 3
     2.1.  In more detail  . . . . . . . . . . . . . . . . . . . . . . 4
   3.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
   4.  Security Considerations . . . . . . . . . . . . . . . . . . . . 7
   5.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 7
   6.  Change Log  . . . . . . . . . . . . . . . . . . . . . . . . . . 7
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 7
     7.1.  Normative References  . . . . . . . . . . . . . . . . . . . 7
     7.2.  Informative References  . . . . . . . . . . . . . . . . . . 7
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 7
































Baker                     Expires May 11, 2011                  [Page 2]


Internet-Draft          Testing Eyeball Happiness          November 2010


1.  Introduction

   The Happy Eyeballs [I-D.wing-v6ops-happy-eyeballs-ipv6] draft
   observes on an issue in deployed IPv6-only and dual stack networks,
   and proposes a correction.  [RFC5461] similarly looks at TCP's
   response to so-called "soft errors" (ICMP host and network
   unreachable messages), pointing out an issue and a set of solutions.
   In short, in a network that contains both IPv4 [RFC0791] and IPv6
   [RFC2460] prefixes and routes, the fact that two hosts that need to
   communicate have an addresses using the same architecture doesn't
   imply that the network has usable routes connecting them, or that
   those addresses are useful to the applications in question.  In
   addition, the process of opening a session using the Sockets API
   [RFC3493] is generally described in terms of obtaining a list of
   possible addresses for a peer (which will normally include both IPv4
   and IPv6 addresses) using getaddrinfo() and trying them in sequence
   until one succeeds or all have failed.  This naive algorithm, if
   implemented as described, has the side-effect of making the worst
   case delay in opening a session far longer than human patience
   normally allows.

   This note describes a test that can be used by a manufacturer or
   network operator to determine whether an application adequately meets
   the "happy eyeballs" requirements.  This test is not a test of a
   specific algorithm, but of the external behavior of the system as a
   black box.  Any algorithm that has the intended external behavior
   will be accepted by it.


2.  Generic Test

   The proposed test assumes that the application works in an IPv4
   network; the IPv4 option has to be part of the test.  That question
   devolves to whether the application can open a session in a timely
   fashion.  The issue that ISPs are reporting is that a host (MacOSX,
   Windows, Linux, FreeBSD, etc) that has more than one address (an IPv4
   and an IPv6 address, two global IPv6 addresses, etc) may serially try
   addresses, allowing the TCP setup to expire (3 seconds or
   thereabouts) for each attempt.  There have been reports of a session
   setup taking as long as 40 seconds as a result.  In addition, at
   least Apple and apparently some versions of Windows wonder about A
   and AAAA records, and if there is a AAAA record try to use the
   indicated IPv6 address and *never*fail*over*to*IPv4*.  As a result,
   there is at least one ISP that has told me that it can't advertise
   AAAA records for its mail services because the neighboring (and
   dominant) ISP runs IPv6 as a walled garden.

   What I have proposed as a test is essentially this: consider two



Baker                     Expires May 11, 2011                  [Page 3]


Internet-Draft          Testing Eyeball Happiness          November 2010


   computers, Alice and Bob, as shown in Figure 1.

                     |192.0.2.0/24
             +-----+ |2001:DB8:1:0::/64     | +-----+
             |Alice+-+2001:DB8:0:1::/64     +-+ Bob |
             +-----+ | +-------+  +-------+ | +-----+
                     +-+Router1|  |Router2+-+
             +-----+ | +-----+-+  +-+-----+ |198.51.100.0/24
             | DNS +-+       |      |       |2001:DB8:0:2::/64
             +-----+ |      -+------+-      |2001:DB8:1:4::/64
                          203.0.113.0/24    |2001:DB8:2:4::/64
                          2001:DB8:0:3::/64

                    Figure 1: Generic Test Environment

   Alice and Bob each have a set of one or more IPv4 and two or more
   IPv6 addresses in DNS, and the router is configured to route the
   relevant prefixes.  The test plays with an ACL in the router that
   would prevent traffic Alice->Bob using each of Bob's addresses.  If
   Bob has a total of N addresses, we run the test N times, permitting
   exactly one of the addresses each time.  The test is presumed to have
   passed if, on each attempt, the session can be set up within a stated
   interval, on the order of 500 ms perhaps.

   Multiple routers are used to facilitate the use of null routing or
   the removal of routes in Router1 that Router would serve as local and
   therefore non-removable routes.  In some operating systems, this can
   be simulated within a single router.

   In addition, for some applications, a more elaborate test environment
   may be necessary.  For example, when testing an application that uses
   IP multicast, it may be appropriate to provide multiple instances of
   Bob, perhaps on different LANs, in order to test the application
   behavior adequately.  This is considered beyond the scope of this
   present note, as it is very specific to the application, but test
   engineers should ask themselves that question when designing a test
   for a new application.

2.1.  In more detail

   As initial conditions, as shown in Figure 1,

   o  Alice, DNS, and Router1 each have addresses in 192.0.2.0/24, 2001:
      DB8:1:0::/64, and 2001:DB8:0:1::/64 on the same LAN,

   o  Router1 and Router2 each have addresses in 203.0.113.0/24 and
      2001:DB8:0:3::/64 on the same LAN,




Baker                     Expires May 11, 2011                  [Page 4]


Internet-Draft          Testing Eyeball Happiness          November 2010


   o  Router2 and Bob have addresses in 198.51.100.0/24, 2001:DB8:0:
      2::/64, 2001:DB8:1:4::/64, and 2001:DB8:2:4::/64 on the same LAN,

   o  Router1 has routes to 198.51.100.0/24 2001:DB8:0:2::/64 2001:DB8:
      1:4::/64 2001:DB8:2:4::/64 via Router2

   o  Router2 has routes to 192.0.2.0/24, 2001:DB8:1:0::/64, and 2001:
      DB8:0:1::/64 via Router1,

   o  DNS has appropriate A and AAAA records for Alice and Bob listing
      their addresses.

   The means of accomplishing this configuration - static configuration
   of addresses and prefixes, DHCP/DHCPv6, and SLAAC, and the routing
   protocol or static route configuration - are irrelevant beyond noting
   them in the test report.  If only DHCPv6 is tested, the test report
   should say so, for example.

   In addition, there are three means of disrupting routes:

   o  An ACL filter, configured to respond with no ICMP response

   o  An ACL filter, configured to result in an ICMP "administratively
      unreachable"

   o  A null or lacking route, which would result in an ICMP destination
      unreachable.

   Alice is the unit under test.  Most of the applications in real world
   obtain the addresses their correspondents from DNS.  Therefore, the
   IPv4 and IPv6 addresses for Alice and Bob need to be stored within a
   test DNS server, and the communication done by name.  The test is
   conducted several times with varying routing and filtering
   combinations, testing if not every combination of addresses, every
   combination of relevant condition sets.  If the ordering received
   from DNS is deterministic, the test simply requires testing of each
   scenario.  However, the order of the addresses within the DNS reply
   is not always deterministic; in such a case, there SHOULD be enough
   iterations of the test performed to ensure that the set of scenarios
   is adequately tested.

   The test is first conducted with no disruptions.  One should be able
   to observe the application working as expected between Alice and Bob;
   if it is a web service, for example, one should be able to load a web
   page, and if it is instant messaging, one should be able to have a
   breif conversation.  Which set of addresses is chosen is irrelevant.
   What is important is an observation that the application works as
   expected under some set of sircumstances, and the duration from



Baker                     Expires May 11, 2011                  [Page 5]


Internet-Draft          Testing Eyeball Happiness          November 2010


   Alice's initial DNS request for Bob's addresses to the arrival of
   Bob's first application response at Alice.

   Subsequent instances of the test should test a variety of scenarios
   including:

   o  Bob is unreachable from Alice, for each of the various reasons,
      using IPv4.

   o  Bob is unreachable from Alice, for each of the various reasons,
      using IPv6 at any address.

   o  Bob is reachable from Alice using only one IPv6 address (testing
      each address assigned to Bob in the setup), with various kinds of
      blockage.

   It would be worthwhile to go through the test once clearing all state
   in the UUT (Alice) between tests, and again ensuring that Alice is
   unaware of any changes in the network so that memory effects between
   tests can be explored.  In at least one case, the DNS resource
   records obtained by Alice's resolver should be permitted to time out,
   testing whether Alice will re-retreive them.  The fact that Alice was
   able to contain Bob at a given address should not preclude Alice
   trying other addresses on subsequent attempts.

   One would expect, in the worst case in an environment with nominal
   end to end delay, for an application to be set up in the time
   measured in the first instance of the test plus at most one inter-
   attempt interval per address that Bob has.  One might allow an
   additional 50 ms for natural host variability.  The
   [I-D.wing-v6ops-happy-eyeballs-ipv6] section 4.1, calls this "p*10"
   for some value of p, which must not exceed 4 seconds in the worst
   case.  The test is considered to have been passed if, on each pass
   through the test, an application session succeeded in opening, and
   they each took approximately the same amount of time within the
   parameters of the Happy Eyeballs draft.


3.  IANA Considerations

   This memo asks the IANA for no new parameters.

   Note to RFC Editor: This section will have served its purpose if it
   correctly tells IANA that no new assignments or registries are
   required, or if those assignments or registries are created during
   the RFC publication process.  From the author"s perspective, it may
   therefore be removed upon publication as an RFC at the RFC Editor"s
   discretion.



Baker                     Expires May 11, 2011                  [Page 6]


Internet-Draft          Testing Eyeball Happiness          November 2010


4.  Security Considerations

   This note doesn't address security-related issues.


5.  Acknowledgements

   This note was discussed with Dan Wing, Andrew Yourtchenko, and
   Fernando Gont.


6.  Change Log

   -00 Version:  Initial version - November, 2010


7.  References

7.1.  Normative References

   [I-D.wing-v6ops-happy-eyeballs-ipv6]
              Wing, D. and A. Yourtchenko, "Happy Eyeballs: Trending
              Towards Success with Dual-Stack Hosts",
              draft-wing-v6ops-happy-eyeballs-ipv6-01 (work in
              progress), October 2010.

   [RFC5461]  Gont, F., "TCP's Reaction to Soft Errors", RFC 5461,
              February 2009.

7.2.  Informative References

   [RFC0791]  Postel, J., "Internet Protocol", STD 5, RFC 791,
              September 1981.

   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", RFC 2460, December 1998.

   [RFC3493]  Gilligan, R., Thomson, S., Bound, J., McCann, J., and W.
              Stevens, "Basic Socket Interface Extensions for IPv6",
              RFC 3493, February 2003.











Baker                     Expires May 11, 2011                  [Page 7]


Internet-Draft          Testing Eyeball Happiness          November 2010


Author's Address

   Fred Baker
   Cisco Systems
   Santa Barbara, California  93117
   USA

   Email: fred@cisco.com











































Baker                     Expires May 11, 2011                  [Page 8]