[v6ops] OSX Lion IPv6 changes

"Dan Wing" <dwing@cisco.com> Sat, 23 July 2011 07:56 UTC

Return-Path: <dwing@cisco.com>
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 CE2E921F84E1 for <v6ops@ietfa.amsl.com>; Sat, 23 Jul 2011 00:56:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -104.048
X-Spam-Level:
X-Spam-Status: No, score=-104.048 tagged_above=-999 required=5 tests=[AWL=-2.623, BAYES_00=-2.599, FB_NO_MORE_ADS=1.174, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KwXKu3i43CTM for <v6ops@ietfa.amsl.com>; Sat, 23 Jul 2011 00:56:08 -0700 (PDT)
Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) by ietfa.amsl.com (Postfix) with ESMTP id 24F6821F84DF for <v6ops@ietf.org>; Sat, 23 Jul 2011 00:56:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=dwing@cisco.com; l=3164; q=dns/txt; s=iport; t=1311407768; x=1312617368; h=from:to:subject:date:message-id:mime-version: content-transfer-encoding; bh=IxvPZR7Hqf53MOuVf9Hl0qs8UIi3YhoyE8ugmLkZH/8=; b=eXf/IQZV0rb5G6VcJ2tXhiZ4f2YsLObhO8WhZVqrQuPdfSPicaCaIjQv 0Gac5z7xEImGUtebnrxYRF1XrT5soM/Tkk0h2OIyJm7wWCr6zhhrk2fIN PnfqIkU4lwdiQ8z7/J0Y8GBzCh3uUauL2b1g14kLBh7COGL0tsvpdu6XG U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AjgHAGp9Kk6rRDoJ/2dsb2JhbAA1AQEBAQIBAQIFDAEbEFIGGVcGExUkAQUmGJgkgSeNZXeIfASeYIEjnX+GPwSHVYkPkww
X-IronPort-AV: E=Sophos;i="4.67,252,1309737600"; d="scan'208";a="5721678"
Received: from mtv-core-4.cisco.com ([171.68.58.9]) by rcdn-iport-4.cisco.com with ESMTP; 23 Jul 2011 07:56:07 +0000
Received: from dwingWS ([10.32.240.196]) by mtv-core-4.cisco.com (8.14.3/8.14.3) with ESMTP id p6N7u7HN007617 for <v6ops@ietf.org>; Sat, 23 Jul 2011 07:56:07 GMT
From: Dan Wing <dwing@cisco.com>
To: v6ops@ietf.org
Date: Sat, 23 Jul 2011 00:56:06 -0700
Message-ID: <025b01cc490d$fa73b030$ef5b1090$@com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcxJDfotbwsqfGrMR1iZBRQMRXlHTQ==
Content-Language: en-us
Subject: [v6ops] OSX Lion IPv6 changes
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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: Sat, 23 Jul 2011 07:56:08 -0000

http://lists.apple.com/archives/Ipv6-dev/2011/Jul/msg00009.html

    > Has anyone played around with IPv6 since installing Lion.
    > Any interesting observations?

    There are some significant changes in Lion.

    Results from getaddrinfo are now sorted using routing
    statistics (destination with the lowest min round trip time
    wins). If the statistics can not determine which destination
    is better, an implementation of RFC3484 is used. The default
    RFC3484 policy is read only.

    CF and NS layer frameworks that use CFSocketStream do not use
    getaddrinfo. Those APIs use something similar to happy
    eyeballs. The A and AAAA queries are started at the same time
    but the responses are handled as they are received. When an
    answer is received, it is sorted in to a list of destination
    addresses. If there are no more addresses coming in (this was
    the last answer in the DNS packet or mDNSResponder has no
    more answers in the cache), a connection is started to the
    first destination on the sorted list. The DNS resolve
    operation is left running and more answers are processed as
    they arrive. A timer is setup for a period of time in which
    we would expect the connection to complete, based on the
    routing statistics. If the timer fires before the connection
    is established, a connection to the next best address will be
    started while the existing connection continues to try and
    make progress. A similar timer is setup and the process
    repeats until a connection is established or we run out of
    addresses to try. The code keeps track of whether or not it
    has received both A and AAAA response (whether the answer was
    a list of addresses or no address). If the connection is
    established before both A and AAAA responses come back, the
    resolve is kept open for up to a second to allow
    mDNSResponder to receive a slow response and store it in the
    cache. This way, subsequent connections to the same host in a
    short period of time will have all answers in the cache.

    Most users that aren't on this list don't care if they
    connect over IPv4 or IPv6. They just care that they connect.
    The code in CF and NS aims to make sure the user always gets
    a connection quickly. The code above also addresses issues
    where a AAAA response is never received (doesn't hold up
    connecting to IPv4) and issues where the user has some busted
    equipment that sends routing advertisements for a prefix even
    though the equipment has no way to route IPv6 traffic. The
    trade off is that it may be hard to predict whether a
    connection will occur over IPv6 or IPv4. If an option were
    added to prefer one address family over the other, it would
    need to indicate how much longer the user was willing to wait
    to get the address family of their choice.

    You can use the command line tool "nettop -n -m route" to
    dump a live view of the routing statistics. You can use
    "nettop -n" to dump a live view of all TCP and UDP sockets on
    the system.

    -josh

-d