[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
- [v6ops] OSX Lion IPv6 changes Dan Wing