Re: [homenet] Routing between hosts in ULA subnets

Fred Baker <fred@cisco.com> Fri, 23 March 2012 23:18 UTC

Return-Path: <fred@cisco.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8272321F8552; Fri, 23 Mar 2012 16:18:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.499
X-Spam-Level:
X-Spam-Status: No, score=-110.499 tagged_above=-999 required=5 tests=[AWL=0.099, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7BC2PrSTAhPT; Fri, 23 Mar 2012 16:18:36 -0700 (PDT)
Received: from ams-iport-2.cisco.com (ams-iport-2.cisco.com [144.254.224.141]) by ietfa.amsl.com (Postfix) with ESMTP id 3E78221F854D; Fri, 23 Mar 2012 16:18:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=fred@cisco.com; l=4543; q=dns/txt; s=iport; t=1332544716; x=1333754316; h=subject:mime-version:from:in-reply-to:date:cc:message-id: references:to:content-transfer-encoding; bh=iIxCD6vq29ipb7Ter8Hain3bjR/qPW2STxKbrZl5Eto=; b=caLFMCTSr60QibdS5c+cDUPOn+GAG+uI29MImd6SoGdj65X/9dmlc2vZ X8R2im5FuFb6iDKxVr+8Q7uNa2UdTGv94MDGShs3JoCl/7LCZTjE2Gk1G o9aea/HlQghTwm7d5sntxPaMvVATDgOmsHlQTpPlNZRo4ZrBSoRpQInQn k=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: Av0EACcEbU+Q/khL/2dsb2JhbABEuBqBB4IJAQEBAwESASc/BQsLEjRJDgYuBQKHYwWZZ55skCJjBJVghW6IVoFogmg
X-IronPort-AV: E=Sophos;i="4.73,639,1325462400"; d="scan'208";a="69228948"
Received: from ams-core-2.cisco.com ([144.254.72.75]) by ams-iport-2.cisco.com with ESMTP; 23 Mar 2012 23:18:34 +0000
Received: from Freds-Computer.local (ams3-vpn-dhcp4219.cisco.com [10.61.80.122]) by ams-core-2.cisco.com (8.14.3/8.14.3) with ESMTP id q2NNIXBg026352; Fri, 23 Mar 2012 23:18:34 GMT
Received: from [127.0.0.1] by Freds-Computer.local (PGP Universal service); Sat, 24 Mar 2012 00:18:34 +0100
X-PGP-Universal: processed; by Freds-Computer.local on Sat, 24 Mar 2012 00:18:34 +0100
Subject: Re: [homenet] Routing between hosts in ULA subnets
Mime-Version: 1.0 (Apple Message framework v1084)
From: Fred Baker <fred@cisco.com>
In-Reply-To: <03F31C213F2C6941BFDDBB4336E9E6CD0ABC216F@cph-ex1>
Date: Sat, 24 Mar 2012 00:18:18 +0100
Message-Id: <2834C1C8-DCCB-4D91-8CD4-B5E48EB6AC0A@cisco.com>
References: <03F31C213F2C6941BFDDBB4336E9E6CD0ABC216F@cph-ex1>
To: Anders Brandt <Anders_Brandt@sigmadesigns.com>
X-Mailer: Apple Mail (2.1084)
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Cc: 6man <ipv6@ietf.org>, Ray Hunter <v6ops@globis.net>, Tim Chown <tjc@ecs.soton.ac.uk>, Thomas Herbst <therbst@silverspringnet.com>, "homenet@ietf.org Group" <homenet@ietf.org>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ipv6>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 23 Mar 2012 23:18:37 -0000

On Mar 22, 2012, at 11:00 AM, Anders Brandt wrote:

> As a branch of the discussion [homenet] ULA scope [draft-ietf-6man-rfc3484-revise-05.txt],
> I would like some clear explanation of the actual issues related to routing between hosts in ULA subnets.
> Some people seems to be concerned for a reason that seems pretty unclear to me.

Speaking strictly for myself here...

From my perspective, you need at least one prefix for use for addressing systems in your home/SOHO/whatever. Multiple prefixes are explicitly supported by the architecture. If you have multiple LANs within the home, they should under normal circumstances be separate /64s taken out of a common less specific prefix, such as a /48, /56, /60, etc.

There are arguments for link-local (fe80::/10) as *the* prefix if you have no upstream and and exactly one LAN. I'm not sure I would recommend it for the long term, because it can be unmanagable. But for the special case in which one is configuring a router that has never been connected to another network, I could well imagine finding a way to address it using its link-local address. You could use mDNS to translate it from a well-known name like BRAND-SPANKING-NEW-BRAND-X-ROUTER.

If the network has no global prefix (has not ever, or not recently, been connected to an IPv6 upstream), and either you WANT to have a non-link-local prefix or you have more than one LAN, ULAs are your friend, and I'm not sure what else you would use. A ULA is a /48 prefix.

If you do have an assigned prefix from one or more upstreams (or, I suppose, have a PI prefix, which would surprise me), you have at least one prefix to use that isn't a ULA. It might be a /48, a /56, a /60, or whatever you were assigned.

So, you have one of three obvious prefixes: link-local, a /48 ULA, and s globally-routed prefix. Each of those, BTW, has a lifetime. The link-local prefix has an infinite lifetime (infinity is still a number), you got a lifetime when you got the PA/PI prefix, and you can pick one for your ULA.

Given a prefix, I expect you to allocate a /64 from it for each LAN in your home. True whether you are using link-local on one LAN, a ULA, or a global prefix.

I can think of error conditions - race conditions - in which a home might get two or more /48 ULAs floating around in it. I would expect that the lifetime you place on a ULA eventually clears that up. Until it does, every LAN in your home has a /64 from each ULA. However, a persistent condition in which your home has more than one /48 ULA floating around in it is a bug. Someone needs to fix their code.

The $64,000 question is how /64s will be allocated from the prefix(es) in question. If you use DHCP/DHCPv6 (Ralph and my DHCP draft), a system is somehow chosen to be the place that DHCP server application runs, and I would suggest the CPE router that received the DHCP-PD prefix from the upstream ISP. If you're running ZOSPF, some router (and I would suggest the same one) is generating an LSA that informs the routers in the home of the prefix they should allocate from. If you're doing it manually, do it manually. Whatever the mechanism, and whatever the prefix is (or prefixes are), the expectation is the same.

Speaking strictly for myself, I think the reason we have had so much trouble getting 3484bis right is that it depends on the host to make what amounts to a routing decision. The destination address you pick for your peer system forces the packet to be delivered to that ISP and to your peer through that ISP's interface to the remote network. In a BCP 38 world, the source address you pick says that the only exit from your network that actually works is through the ISP that allocated that prefix to you (RFC 3704). So, the choice of a source and a destination address fixes two points on a line connecting your two systems, and that line is a route. But hosts know little to nothing about routing, and cannot even predict which egress (if there are more than one) a given packet will take. So the host fundamentally lacks the information to make an informed choice. RFC 3484 can't be fixed without changing that.

So to my way of thinking, the right solution is Happy Eyeballs, for all applications (or, preferably, as an OS API service). It will try routes (source/destination pairs) until it finds a pair that works or runs out of options.