RE: multi-homing for provider-assigned IPv6 addresses

Chris Bowers <cbowers@juniper.net> Mon, 04 April 2016 14:51 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 A34CB12D78A for <rtgwg@ietfa.amsl.com>; Mon, 4 Apr 2016 07:51:29 -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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, 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 yiyL3gxOoD8m for <rtgwg@ietfa.amsl.com>; Mon, 4 Apr 2016 07:51:25 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0108.outbound.protection.outlook.com [207.46.100.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AAD3712D788 for <rtgwg@ietf.org>; Mon, 4 Apr 2016 07:51:25 -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=k4GNwB9vKuvECqv/GNrEXiQDL/xeJaA8FI0xurdXxrc=; b=KYph59JI0jThgiTuaEFjoy4qUYAIFwkw/cVJfYR1Ieb0msR+kUKnEjP2ZmJq9Ra9LktanHdn5srQluOChPY/6Y4cKslXkdf3C4o0ZGCiJUCkyGhfMrPo1YYxusGa5iYFnL8a1xGI0c4txOluMFZ4Cj/E2AwVnWhoHMkazw04Pw4=
Received: from BY2PR05MB614.namprd05.prod.outlook.com (10.141.218.148) by BY2PR05MB614.namprd05.prod.outlook.com (10.141.218.148) with Microsoft SMTP Server (TLS) id 15.1.447.15; Mon, 4 Apr 2016 14:51:24 +0000
Received: from BY2PR05MB614.namprd05.prod.outlook.com ([10.141.218.148]) by BY2PR05MB614.namprd05.prod.outlook.com ([10.141.218.148]) with mapi id 15.01.0447.027; Mon, 4 Apr 2016 14:51:24 +0000
From: Chris Bowers <cbowers@juniper.net>
To: "Fred Baker (fred)" <fred@cisco.com>
Subject: RE: multi-homing for provider-assigned IPv6 addresses
Thread-Topic: multi-homing for provider-assigned IPv6 addresses
Thread-Index: AdF+uwDrcP0DGOmLTI2DpIRz9JHSSAHYdCQgABcYAIAAAC5+gAANlbvQAKkRhYAAi/14sA==
Date: Mon, 04 Apr 2016 14:51:24 +0000
Message-ID: <BY2PR05MB614820696D8060BB69D83E8A99D0@BY2PR05MB614.namprd05.prod.outlook.com>
References: <BY2PR05MB614108C29A178E43A88B9D0A9890@BY2PR05MB614.namprd05.prod.outlook.com> <BY2PR05MB6149CE3235088E8010AE616A9820@BY2PR05MB614.namprd05.prod.outlook.com> <DB45D156-370C-4F96-BB23-B6DB385EE913@cisco.com> <913C1037-718D-4026-9C15-A0A2F8CB95E6@cisco.com> <BY2PR05MB614A27E17CB2E5189224E8FA9850@BY2PR05MB614.namprd05.prod.outlook.com> <952CDE11-C5D6-4B19-BD22-86916222E605@cisco.com>
In-Reply-To: <952CDE11-C5D6-4B19-BD22-86916222E605@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: cisco.com; dkim=none (message not signed) header.d=none;cisco.com; dmarc=none action=none header.from=juniper.net;
x-originating-ip: [66.129.239.15]
x-ms-office365-filtering-correlation-id: 06aaeb0a-b169-41e3-530f-08d35c98980f
x-microsoft-exchange-diagnostics: 1; BY2PR05MB614; 5:ztlEGlpEp1smIhL8gGIY8RW86mb9Qe3wrgy2YGzgT0MBU0s66BBXM5CSDzcem8CHlTz8MnPkfysxM9lhle5kU+QQi/in/Ia6+mhLBr5fjLnaEN5K/gW/Uvb6KzXBnvCZmNmQFUg7Kx5zrV259arYKg==; 24:NC+1xcnNFO6FY+PJY6z/KIElAVxl3to7nRoPjNM/y6dO9AM5MpJfwrB9t9K/KwYUy7IfH34MMZaHrrJ0mw07Q/UXO8VZGaI1Hni89aen+O4=
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR05MB614;
x-microsoft-antispam-prvs: <BY2PR05MB6141D2FA44E0F3DFEA46912A99D0@BY2PR05MB614.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)(5005006)(8121501046)(10201501046)(3002001); SRVR:BY2PR05MB614; BCL:0; PCL:0; RULEID:; SRVR:BY2PR05MB614;
x-forefront-prvs: 0902222726
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(377454003)(24454002)(51444003)(164054003)(13464003)(2950100001)(2900100001)(2906002)(87936001)(3280700002)(3660700001)(5002640100001)(19609705001)(93886004)(6116002)(790700001)(19625215002)(16236675004)(561944003)(33656002)(66066001)(76176999)(92566002)(50986999)(86362001)(4326007)(77096005)(54356999)(11100500001)(110136002)(189998001)(5004730100002)(15975445007)(122556002)(586003)(10400500002)(1220700001)(1096002)(3846002)(81166005)(102836003)(19580405001)(19580395003)(74316001)(5008740100001)(76576001)(19300405004)(5003600100002)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR05MB614; H:BY2PR05MB614.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en;
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BY2PR05MB614820696D8060BB69D83E8A99D0BY2PR05MB614namprd_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Apr 2016 14:51:24.4203 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR05MB614
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtgwg/3pWtWOCkKFYanm43n3riHTU8aqk>
Cc: "rtgwg@ietf.org" <rtgwg@ietf.org>
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: Mon, 04 Apr 2016 14:51:29 -0000

Fred,

I don't follow the argument made in the previous email against the proposal to use a simplified form of dest/src routing.  The argument seems to assume that the destination prefix is completely ignored, which is not the case.  With this proposal, a packet is first routed based on longest match for destination prefix.  The source prefix is only considered when the destination route lookup reaches ::/0.  Therefore, communication within the customer network works as expected since there will be destination prefix matches corresponding to the customer network.

In order to understand all of the details, I created an example topology below that I believe covers most of the relevant PA multi-homing scenarios.  The customer site connects using four different ISPs.  ISP1 just offers Internet connectivity.  ISP2 just offers a service corresponding to destination address B2.  ISP3 offers both Internet connectivity and a service corresponding to B3.  ISP4 offers internet connectivity and a service corresponding to B4.  The customer site has a provider-assigned subnet from each of the ISPs (A1, A2, A3, and A4).  The customer site has two LANs.  LAN-Y (with hosts H21 and H22) is directly connected to R1, R2, and R3.  LAN-X (with hosts H31 and H32) has to go through a routed hop (R7 or R8) to reach R1, R2, or R3.  The only way for any of the hosts to reach R4 (and ISP4) is through R8.  The hosts on LAN-X have addresses from a subnet of each of the provider assigned block ( subnets A1x, A2x, A3x, and A4x), while the hosts on LAN-Y have addresses from a subnet of each of the provider assigned block ( subnets A1y, A2y, A3y, and A4y).  B0 represents a destination address somewhere on the Internet unrelated to any of the ISPs.

                                             -----------------
   LAN-X        LAN-Y          ,-----.      /                 \
          +--+         +--+  ,'       `.   :                   :
       +--+R7+-----+---+R1+-+   ISP 1   ---+--                 :
       |  +--+     |   +--+  `.       ,'   :                   :
   H31-+       H21-+           `-----'     :   The Internet    :
       |           |           ,-----.     :                   :
   H32-+  +--+ H22-+   +--+  ,'       `.   :                   :
       +--+R8+-----+---+R2+-+   ISP 2   )  :                   :
          ++-+     |   +- +  `.       ,'   :                   :--B0
           |       |           `--+--'     :                   :
           |       |              |        :                   :
           |       |              B2       :                   :
           |       |                       :                   :
           |       |           ,-----.     :                   :
           |       |   +--+  ,'       `.   :                   :
           |       +---+R3+-+   ISP 3   ---+---                :
           |           +--+  `.       ,'   :                   :
           |                   `--+--'     :                   :
           |                      |        :                   :
           |                      B3       :                   :
           |                               :                   :
           |                   ,-----.     :                   :
           |           +--+  ,'       `.   :                   :
           +-----------+R4|-+   ISP 4   ---+---                :
                       +--+  `.       ,'   :                   :
                               `--+--'     :                   :
                                  |         \                 /
                                  B4         -----------------

We consider how H31 and H21 reach various destinations.  The destinations to consider are B0, B2, B3, B4, H32 and H22.

First, we look at the information that the routers distribute among themselves using an IGP.

R1 originates a route for (D=::/0, S=A1).

R2 originates a route for (D=B2).

R3 originates routes for (D=::/0, S=A3) and (D=B3).

R4 originates routes for (D=::/0, S=A4) and (D=B4).

R7 and R8 originates routes for (D=A1x), (D=A2x), (D=A3x), and (D=A4x), and (D=A1y), (D=A2y), (D=A3y), and (D=A4y).

Next, we look at the information that the routers distribute to hosts on the LAN using the Neighbor Discovery protocol.  From Prefix information Options (PIOs) in Router Advertisements, hosts on LAN-X learn that A1x, A2x, A3x, and A4x are on-link, while hosts on LAN-Y learn that A1y, A2y, A3y, and A4 are on-link.

A router indicates that it acts as a default router by advertising a non-zero Router Lifetime in a Router Advertisement. Or that it doesn't act as a default router by advertising a Router Lifetime value of zero.  A reasonable choice in this network would be to have R1 and R3 advertise that they are default routers on LAN-Y and have R7 and R8 advertise that they are default routers on LAN-X.

It appears to me that with just the information described above (that is, destination routes and simplified dest/source routes distributed among the routers, and the Router Advertisements on the LANs indicated default routers),  packets from H31 and H21 can reach all six destinations, assuming the host uses an acceptable source address for the given destination.  However, the next-hop chosen by the host may not be optimal.

For example, for a packet to get from H21 to H32, it may take the path H21->R1->R7->H32, instead of the more direct path H21->R7->H32.  However, this situation can be improved using existing mechanisms by having R7 advertise Route information Options (RIOs) for prefixes A1x, A2x, A3x, and A4x into LAN-Y so that H21 can choose R7 as its next-hop to directly reach H32.

draft-ietf-6man-multi-homed-host-06 points out an example of a host making a sub-optimal choice of next-hop related to multi-homing.  In the topology above, when H21 sends a packet with src in A1y and dest = B0, it could choose next-hop R3.  This would require R3 to forward the packet to R1 based on the fact that R1 originated an IGP route for (D=::/0, S=A1).  draft-ietf-6man-multi-homed-host-06 proposes to have hosts use the PIOs in Router Advertisements to make better choices of next-hops.  Assuming that only R1 advertises a PIO for A1y, then H21 can use that information to send a packet with src in A1y to R1 as its default next-hop.  This seems like a reasonable optimization.

I would like to make two observations about the analysis above.  First, the solution proposed in draft-ietf-6man-multi-homed-host-06 is consistent with the proposed simplified form of dest/source routing.  draft-ietf-6man-multi-homed-host-06 only allows one to choose a default router based on source prefix.  It doesn't provide a way to pair an arbitrary RIO with a source prefix.

Second, in the solution described above, which would seem to cover most multi-homing scenarios, the routes exchanged between routers using the IGP do not require source addresses to be paired with arbitrary destination prefixes.  The simplified form of dest/source routing (only pairing a source prefix with the default destination route) is sufficient for the routing done by the routers.

At this point, I have not seen a PA multi-homing scenario that I believe would benefit from using arbitrary dest/source routing.  Instead, I think that PA multi-homing scenarios can be efficiently addressed by simplified dest/source routing.  To be clear, this is not an argument against the mechanism in draft-ietf-6man-multi-homed-host-06. Instead, it is an argument against the mechanism in draft-baker-ipv6-isis-dst-src-routing-04, which specifies a general mechanism for pairing arbitrary destination prefixes with arbitrary source prefixes. I think that a simplified mechanism that only pairs source prefixes with the default destination route in the IGP would work just as well for PA multi-homing scenarios.

If there is an error in the above analysis or there is a useful PA multi-homing scenario not covered by the above example, then I look forward to discussing it.

Thanks,
Chris


From: Fred Baker (fred) [mailto:fred@cisco.com]
Sent: Monday, March 28, 2016 2:47 PM
To: Chris Bowers <cbowers@juniper.net>
Cc: rtgwg@ietf.org
Subject: Re: multi-homing for provider-assigned IPv6 addresses


On Mar 27, 2016, at 9:03 AM, Chris Bowers <cbowers@juniper.net<mailto:cbowers@juniper.net>> wrote:

Fred,

I would like to better understand the particular use case offered as a counter-example.  One version of this counter-example is described in Section 2.3 of draft-baker-rtgwg-src-dst-routing-use-cases-01 (Specialized Egress Routing).  I have copied figure 3 from that draft below.

                                                ,-------.
                                             ,-'         `-.
             ,---.            ,-----.      ,'               `.
            /     \    +-+  ,'       `.   /                   \
           /       +---+R+-+   ISP 1   --+---                  \
          /         \  +-+  `.       ,' ;                       :
         ; Customer  :        `-----'   |       The Internet    |
         | Network   |        ,-----.   :                       ;
         :           ; +-+  ,'       `.  \                     /
          \         +--+R+-+   ISP 2   )  \                   /
           \       /   +-+  `.       ,'    `.               ,'
            \     /           `--+--'        '-.         ,-'
             `---'               |              `-------'
                           Some specialized
                              Service

       Figure 3: Egress Routing with a specialized upstream network


If a customer network homed to ISP1 and ISP2 (with PA prefixes S1 and S2) needs to reach a destination prefix (D2) associated with a service offered by ISP2, then the customer network can route all traffic with destination address in D2 to ISP2 using existing destination-based routing.

Yes, if the packet first goes through a router that is not depicted in the diagram (I didn't describe the interior of the customer network, which could be as simple as a LAN and as complex as you care to imagine). If the only routing is done by the host itself, the packet will go to the router the host considers to be its default router, which is pretty likely to be the other router in this example. That is the subject of draft-ietf-6man-multi-homed-host. Note, BTW, that the picture is essentially NTT's BFLETS configuration, with the exception that (as I understand it) the two ISPs are served by the same managed router, deployed by NTT and configured to route appropriately.


Therefore, it seems to me that pairing a source prefix with an arbitrary destination prefix is not required to support the Specialized Egress Routing use case in draft-baker-rtgwg-src-dst-routing-use-cases-01. In any case, it would be useful to come to agreement about what is required to address the Specialized Egress Routing use case described in draft-baker-rtgwg-src-dst-routing-use-cases-01.

I'm happy to discuss that. I think it misses the point, however. If the use case described isn't a good one, let's think of a better use case, perhaps one that doesn't involve a PA prefix from an ISP. Perhaps the biggest issue with your proposal, which was to take all traffic using a given source prefix to an appropriate egress router, is that it precludes the use of the address to communicate within the customer network. All traffic would dogleg through the egress router, and I'm not sure I see how packets get from that router to a point inside without looping. There has to be a way to prefer to destination-address route some traffic and source-address route some other traffic. The simplest way I can think of is to use both addresses in every route lookup, interpreting a traditional destination route as a source/destination route from ::/0 to the stated destination, or (if there are multiple route tables by source prefix) duplicate the destination route table in each.

If instead the counter-example use case described below is different from Specialized Egress Routing use case in draft-baker-rtgwg-src-dst-routing-use-cases-01, it would be useful to describe that use case in more detail so that we can evaluate it more thoroughly.

I'll take a look at that. Of course, I can't update the draft until next week.

Thanks,
Chris

-----Original Message-----
From: Fred Baker (fred) [mailto:fred@cisco.com]
Sent: Thursday, March 24, 2016 11:37 PM
To: Chris Bowers <cbowers@juniper.net<mailto:cbowers@juniper.net>>
Cc: rtgwg@ietf.org<mailto:rtgwg@ietf.org>
Subject: Re: multi-homing for provider-assigned IPv6 addresses


> On Mar 24, 2016, at 9:32 PM, Fred Baker (fred) <fred@cisco.com<mailto:fred@cisco.com>> wrote:
>
>
>> On Mar 24, 2016, at 4:34 PM, Chris Bowers <cbowers@juniper.net<mailto:cbowers@juniper.net>> wrote:
>>
>> It seems to me that most use cases for ipv6 multi-homing with provider-assigned addresses only need to route based on source address when the destination prefix is the default route.  So why not require that source prefixes can only be paired up with the default destination prefix ::/0?
>
> When what one has in mind is an egress route, that probably makes sense. However, it precludes an entire class of use cases mentioned in the use case draft. Why do that?

Let me give you an obvious variant. Imagine, if you will, that I have a PA prefix from each of N ISPs, and therefore a default route to each of N ISPs. Imagine also that I have a particular prefix that I would like to route through via a given one of those N ISPs, in the special case that I happen to have been smart enough to use that source prefix. So now I have N+1 source/destination routes - unless you tie it to default routes.

A premature optimization usually breaks things...