[pcp] draft-ietf-pcp-proxy-05 + homenet (notably multihoming)

Markus Stenberg <markus.stenberg@iki.fi> Thu, 24 April 2014 09:26 UTC

Return-Path: <markus.stenberg@iki.fi>
X-Original-To: pcp@ietfa.amsl.com
Delivered-To: pcp@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BBAE01A07EF for <pcp@ietfa.amsl.com>; Thu, 24 Apr 2014 02:26:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.099
X-Spam-Level: ***
X-Spam-Status: No, score=3.099 tagged_above=-999 required=5 tests=[BAYES_50=0.8, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ePWupi_b49aU for <pcp@ietfa.amsl.com>; Thu, 24 Apr 2014 02:26:29 -0700 (PDT)
Received: from jenni2.inet.fi (mta-out.inet.fi [195.156.147.13]) by ietfa.amsl.com (Postfix) with ESMTP id B43341A07DC for <pcp@ietf.org>; Thu, 24 Apr 2014 02:26:28 -0700 (PDT)
Received: from kosame.lan (80.220.67.193) by jenni2.inet.fi (8.5.140.03) (authenticated as stenma-47) id 534D2ABA00A6CE1B; Thu, 24 Apr 2014 12:26:21 +0300
From: Markus Stenberg <markus.stenberg@iki.fi>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable
Date: Thu, 24 Apr 2014 12:26:21 +0300
Message-Id: <DA35A826-938E-49EF-8E23-9242535B7538@iki.fi>
To: pcp@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
X-Mailer: Apple Mail (2.1874)
Archived-At: http://mailarchive.ietf.org/arch/msg/pcp/_EwNEQL7SjXlWNrmKaycvFfWBms
Subject: [pcp] draft-ietf-pcp-proxy-05 + homenet (notably multihoming)
X-BeenThere: pcp@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: PCP wg discussion list <pcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pcp>, <mailto:pcp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/pcp/>
List-Post: <mailto:pcp@ietf.org>
List-Help: <mailto:pcp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pcp>, <mailto:pcp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Apr 2014 09:26:30 -0000

I’m somewhat confused (nothing new there). Section 3.5 (manual repair) states that local mapping cache is not mandatory. However, section 3 seems to assume it, and describes the NAT-only case. I think this part use some clarification. Especially as mapping cacheless proxy would be quite different beast from just ‘logical back to back client and server’ (see below).

At the moment I’m thinking of implementing very lightweight pcp proxy for homenet style use _within home_, which doesn’t even have firewalls _or_ NATs among consenting inner routers. However, the reason proxy is needed is that:

a) there’s lots of legacy hosts there that don’t support pcp-dhcp, pcp-zones, and pcp-server selection, <solution of the day>, and

b) in case of IPv4, the CPE(s) are most likely NATting, and outbound from inner routers affects where traffic will wind up anyway.

As I don’t see any way of addressing b) even with the existing set of drafts for server selection (unless you assume you have some sort of coupling of IPv4 routing state and PCP that works beyond next-hop routing), there seems to be some sort of gap in the drafts to me. Please explain to me if there isn’t, I’d appreciate that too. [1]

To me the simple choice seems to do _very_ lightweight pcp proxy per-hop, and do server selection based on current IPv4/IPv6 routing state (=where the packets with given source(+destination if PEER) would wind up in any case). Given lack of firewalls and NATs, only state it would need to track is the set of next hops for IPv6 source prefixes, and IPv4 default route. If any of those change, epoch=0, and multicast ANNOUNCEs (and conservatively forward announces on links not heard on recently, or using some tree topology available from some other source).

With that sort of solution, there would be no cache of mappings on the lightweight proxy, but just idea of upstream connectivity (per-prefix IPv6 / default route for IPv4), and some ANNOUNCE multicast spam if that changes.

I think the design could work at least given routing is moderately stable. Comments?

Alternative design is of course to do what the current draft mainly describes - keep full mapping state, and cleverly try to repair it (in event of routing state change) and reset epoch only if you have to, and unicast ANNOUNCEs to clients if they should do something. With that design, low-power devices are spared from extra spam, which is nice, at cost of some implementation complexity and state on the routers.

Still, I can’t wrap my head around non hop-by-hop PCP unless it’s “one tube to internet” home which isn’t really interesting from my point of view. 

Cheers,

-Markus

[1] I know RFC6887 assumes single-homed network, but I’d rather see multi-homed solution work in some way too.