RE: Implications of default-only SADR (was: Re: multi-homing for provider-assigned IPv6 addresses)

Chris Bowers <cbowers@juniper.net> Tue, 12 April 2016 00:14 UTC

Return-Path: <cbowers@juniper.net>
X-Original-To: rtgwg@ietfa.amsl.com
Delivered-To: rtgwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DF70912D716 for <rtgwg@ietfa.amsl.com>; Mon, 11 Apr 2016 17:14:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=junipernetworks.onmicrosoft.com
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 80jHedpC-HBn for <rtgwg@ietfa.amsl.com>; Mon, 11 Apr 2016 17:14:41 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0768.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::768]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3618312D6D4 for <rtgwg@ietf.org>; Mon, 11 Apr 2016 17:14:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=junipernetworks.onmicrosoft.com; s=selector1-juniper-net; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=rdEv79/WdzEBRXAGp2ghPqyPH31oPjcfT3CLGwzYtBs=; b=TfKEhQeAYc03Uc31yjOiKfEmh6iqQYPaasjIH5uzenMap73JNBnl53v0OsXgXBJZ18Rfp8w/iveqksYRqzcDHdriphXI0TOXX4OWf3YHb4f3+NsbQ7HsZYwYLVATeX2ZT9BfvDifXXG6AFaxaU3hR/pVCvnnzkGwUNy6j2vS+oY=
Received: from DM2PR05MB623.namprd05.prod.outlook.com (10.141.157.24) by DM2PR05MB622.namprd05.prod.outlook.com (10.141.157.20) with Microsoft SMTP Server (TLS) id 15.1.447.15; Tue, 12 Apr 2016 00:14:25 +0000
Received: from DM2PR05MB623.namprd05.prod.outlook.com ([10.141.157.24]) by DM2PR05MB623.namprd05.prod.outlook.com ([10.141.157.24]) with mapi id 15.01.0447.029; Tue, 12 Apr 2016 00:14:25 +0000
From: Chris Bowers <cbowers@juniper.net>
To: David Lamparter <equinox@diac24.net>, "rtgwg@ietf.org" <rtgwg@ietf.org>
Subject: RE: Implications of default-only SADR (was: Re: multi-homing for provider-assigned IPv6 addresses)
Thread-Topic: Implications of default-only SADR (was: Re: multi-homing for provider-assigned IPv6 addresses)
Thread-Index: AQHRkN18eNXxcwTD7UKHbaSzuHwX95+E1wrw
Date: Tue, 12 Apr 2016 00:14:25 +0000
Message-ID: <DM2PR05MB623C6B4A94FE8BF2A179620A9950@DM2PR05MB623.namprd05.prod.outlook.com>
References: <BY2PR05MB614108C29A178E43A88B9D0A9890@BY2PR05MB614.namprd05.prod.outlook.com> <20160407145506.GD518778@eidolon>
In-Reply-To: <20160407145506.GD518778@eidolon>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: diac24.net; dkim=none (message not signed) header.d=none;diac24.net; dmarc=none action=none header.from=juniper.net;
x-originating-ip: [66.129.239.15]
x-ms-office365-filtering-correlation-id: c249bca0-61d9-4be8-cc35-08d36267680a
x-microsoft-exchange-diagnostics: 1; DM2PR05MB622; 5:ntCwrjmiPtutNkGhv7PTyYEoG1S8ay/drW5I8/FGLDzy0WcOgaFozS7bxvJ9DyRZjagh92woVHfm9PWv2BBUDfOnPGvfTKN/dCji+L6kvTusH89HYs7krTy7ZQirWPdGDMUryIeUCqg6jJZ53za1iQ==; 24:dp8mkP7GdMNS6KtlpnnbEfQ32pj/AEsZMVDJnDV3kAK2MaDnL9LX1QbOs4tzp6wTMCx0Al+BTUSOrxO/8HGRgkaTzRQnJN1u/yxyrtNpulM=
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR05MB622;
x-microsoft-antispam-prvs: <DM2PR05MB622E4A12B1C424641DEA5B5A9950@DM2PR05MB622.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(138986009662008)(95692535739014);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:DM2PR05MB622; BCL:0; PCL:0; RULEID:; SRVR:DM2PR05MB622;
x-forefront-prvs: 0910AAF391
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(52044002)(377454003)(13464003)(51444003)(53754006)(51914003)(5004730100002)(9686002)(66066001)(81166005)(86362001)(11100500001)(33656002)(92566002)(5008740100001)(5001770100001)(77096005)(76176999)(50986999)(2900100001)(54356999)(3280700002)(74316001)(164054004)(10400500002)(3660700001)(76576001)(1220700001)(2906002)(15975445007)(122556002)(106116001)(2950100001)(19580405001)(99286002)(6116002)(5002640100001)(1096002)(19580395003)(586003)(3846002)(5003600100002)(87936001)(102836003)(4326007)(2501003)(189998001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR05MB622; H:DM2PR05MB623.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en;
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2016 00:14:25.0438 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR05MB622
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtgwg/TPdSWp_9HPjwlcLAKjl4EcR23ZE>
X-BeenThere: rtgwg@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Routing Area Working Group <rtgwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtgwg/>
List-Post: <mailto:rtgwg@ietf.org>
List-Help: <mailto:rtgwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Apr 2016 00:14:44 -0000

David,

I've responded to two of the points raised / questions asked below.  Feel free to break these responses into separate threads or to resend any of the points/questions as separate threads as well.  

===================

Thanks for the example of the ISP-provided cloud device.  I think that I am starting to better understand one of the sources of disagreement on this topic.  If one assumes that a host can magically choose the correct source address for a packet, then I think even this example can be handled with default-only SADR.  However,  if we also want to use SADR to distribute information to the hosts to allow them to choose the correct source address to put on the packet in the first place, then I agree that default-only SADR will not work.  If this is the case, then I think we need to be more explicit about how we expect the host to get information about the correct source address to select.

This is my best understanding at this point about how this could work.  Please correct me if I am wrong.

Using the example below, for a host (H55) which is a few router hops away from the ISP A's cloud device, we want to put the route for (D=cloud, S=ISP-A-PA) into the IGP.  This IGP advertisement is received by a router (R50) on the same LAN as H55.  I assume that R55 would use Neighbor Discovery Router Advertisements to communicate information about  (D=cloud, S=ISP-A-PA) to H55.  I don't think that PIO and RIO in ND Router Advertisements currently have the semantics to advertise associate arbitrary source and destination prefixes, so I think that ND Router Advertisements would need to be extended.  This is basically what draft-sarikaya-6man-sadr-ra-03 is proposing.  

I think that different participants in this discussion may have different ideas about how this should be done.  The homenet architecture principles document (RFC 7368) and draft-ietf-6man-multi-homed-host-06 both point to RFC 6724 as providing a solution for source address selection with multi-homing, but both documents also seem to acknowledge that RFC 6724 doesn't provide a complete answer.  In the discussion in RTGWG on Thursday, Fred Baker said that thinks a Happy Eyeballs RFC 6555 should play a roll as well.  There was also a mention of having the host use ICMP to detect failures.

I think we need to be very explicit about our assumptions about how the host is going to select the source address, especially if we expect the host to use dest/source route information.   This is also consistent with Alvaro Retana's more general request in RTGWG that we consider a complete solution to the PA multi-homing problem, as opposed to just considering individual pieces of a potential solution in isolation.

==========

Responding to a another question below, I can clarify my concerns about the scalability and implementation of dest/source routing that allows pairing of arbitrary destination and source prefixes. Dest/source routing has been proposed as a solution for several different problems or use cases.  So I'll state my concerns for each use case.

1) PA multi-homing for homenet - I don't have much concern regarding scalability and implementation for PA multi-homing for homenet. This is not my area of expertise, but I would expect most forwarding implementations for homenet to be software based.  So it seems like existing equipment should be able to deal with new forwarding requirements, possibly with some performance penalty. 

2) PA multi-homing for mid-size enterprise networks - My main concern with PA multi-homing for mid-size enterprises is that existing routers deployed in these networks will not be able to support forwarding based on pairing of arbitrary destination and source prefixes.  In mid-size enterprise networks, I would imagine that there is a broad range of existing deployed equipment, some of which may have forwarding hardware that cannot be modified to support arbitrary dest/source route lookups on packets.  I think it is likely that more deployed equipment would be able to be upgraded via software to support a more simplified form of dest/source routing. 

3) Dest/source routing in IGPs as a general tool for service provider infrastructure routing - One example of this kind of use case can be found in draft-baker-rtgwg-src-dst-routing-use-cases-01 under " Intra-domain access control".  Slide 4 of https://www.ietf.org/proceedings/95/slides/slides-95-rtgwg-9.pdf also discusses some uses in CERNET2 of dest/source routing in OSPF (draft-xu-ospf-multi-homing-ipv6-00).  These use cases are very different from PA multi-homing.  My main concern here is that there are existing standardized and deployed solutions addressing these use cases.  That doesn't mean that the IETF can't standardize another solution to the same problem, but I think there is generally a higher bar with respect to demonstrating the need for another solution, and analyzing the costs and benefits relative to existing solutions.

4) Dest/source routing in BGP - draft-xu-src-dst-bgp-00 proposes extending dest/source routing to BGP with arbitrary matching of destination and source prefixes.  The draft doesn't discuss the use cases, but on the surface, it seems like some uses of this could result in a significant increase in routes in the global internet.  

Thanks,
Chris

-----Original Message-----
From: David Lamparter [mailto:equinox@diac24.net] 
Sent: Thursday, April 07, 2016 11:55 AM
To: rtgwg@ietf.org
Cc: Chris Bowers <cbowers@juniper.net>; Fred Baker (fred) <fred@cisco.com>; Anton Smirnov <asmirnov@cisco.com>
Subject: Implications of default-only SADR (was: Re: multi-homing for provider-assigned IPv6 addresses)

TL;DR:  note at end about "abort as unreachable" as alternative way to get rid of complicated backtracking.  (Jump to second/last ----- line.)


Hi all,

here is another shot at my somewhat confusing (sorry) in-room comment on the policy aspect of limiting to D=::/0.

The scenario I'm thinking of is this:

User (let's say, small-to-medium-ish business, for illustration let's say the internal network has 2-3 OSPF routers or something.)
\- ISP A, assigned PA prefix, internet/default connectivity
\- ISP B, assigned PA prefix, internet/default connectivity

So far so good, we have two D=::/0 routes with different S.

Now, let's say the CEO of the company heard that clouds are great for putting your calendar and mails into.  She decides ISP A's "Cirrus Castellanus" product is great because it comes with some great security and confidentiality bulletpoints.

For the Cirrus Castellanus service, ISP A installs a separate device in the user's network, which routes a specific prefix for the cloud.  Could be some encrypted VPN foobar, physical separate line, doesn't really matter.  Since it's ISP A, they're aware of their PA assignment to the customer and push a route for that into the cloud product.  The cloud product could implement BCP 38, but it could also just not have a route towards the internet - it doesn't need to and it's "secure".

Now, the installation instructions for the product says "this is the prefix your cloud service has, put a route for it in your domain".

So, now the User's netadmin is essentially screwed since that's a D!=default S!=default route.  More correct, it's in fact 2 routes:
- D=cloud, S=ISP-A-PA => via installed cloud termination device
- D=cloud, S=::/0 => unreachable
Which goes to represent that the cloud service is only reachable from ISP-A's PA prefix assigned to the User.

----------
This, I hope, illustrates how this is a significant policy decision to make.  It's IETF consensus (I hope) that NAT is a bad thing.  It also seems to be IETF consensus (as discussed in Fred's slides) that PA is preferable over PI, and we want to keep tables small.  We've received feedback -the v6ops request- that PA has some issues to be solved.  If we now say "we're doing D=::/0 only", we're deciding to solve only part of the problem posed to us.  (see note below about divide&conquer / "do
D!=::/0 separately")

What's the message to operators here?
"get PI space for that setup"?
"you'll need a cooperative ISP for that setup"?
"don't do this setup, it's stupid"?

In any case, any solution that resticts to D=::/0 carries an implication
of:
   "If you're using PA, the only thing you can rely on being able to
    route is the internet as a whole.
If we're making this policy assumption (which is really a decision), we need to be aware we're making it.

On Divide&Conquer:
splitting this up into a two-part approach resulting in the 3 levels:
- classic router, (D) lookup
- level-1 SADR, (::/0, S) support
- level-2 SADR, (D, S) support
is certainly possible to write down, but complicates the compatibility mechanisms in the routing protocols since level-1 and level-2 routers are not compatible to be in the same link-state/SPF topology.

----------
If we still want the backtracking behaviour (going to less specific D when not finding a S match under a particular D) gone, I'd prefer looking at specifying "terminate as unreachable" instead of completely removing D!=::/0 support.  I haven't thought through use-case impact of this yet, but in any case the backtracking behaviour could be restored by advertising additional routes to the same effect.

(The same approach of installing additional routes can be used to eliminate the performance hit of backtracking by consuming more memory / hardware route resources through installing additional synthetic routes.
I'll add that to the next version of the draft.)


On a closing note, I'll repeat my mic request for feedback:  could people provide feedback which part of backtracking they're concerned about?  Specification complexity?  Implementation complexity?
Performance penalities?  Something else?


-David