Internet Engineering Task Force I. Varlashkin Internet-DraftEasynet Global ServicesGoogle Intended status: Standards Track R. Raszuk Expires:September 28, 2012 NTT MCLNovember 16, 2015 Mirantis Inc.March 27, 2012K. Patel M. Bhardwaj S. Bayraktar Cisco Systems May 15, 2015 Carrying next-hop cost information in BGPdraft-ietf-idr-bgp-nh-cost-01draft-ietf-idr-bgp-nh-cost-02 AbstractThis document describesBGPLS provides a mechanism by which Link state and traffic engineering information can be collected from internal networks and shared with external network routers using BGP. BGPLS defines a new Address Family to exchange this information using BGP. BGPSAFIOptimal Route Reflection (ORR) provides a mechanism for a centralized BGP Route Reflector to acheive requirements of a Hot Potato Routing as described in Section 11 of [RFC4456]. Optimal Route Reflection requires BGP ORR to overwrite the default IGP location placement of the route reflector; which is used for determining cost to the nexthop contained in the path. This draft augments BGPLS and defines a new extensions to exchange cost information to next-hops for the purpose of calculating best path from a peer perspective rather than local BGP speaker own perspective. Status ofthisThis Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire onSeptember 28, 2012.November 16, 2015. Copyright Notice Copyright (c)20122015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.Table of Contents 1.Motivation .Introduction . . . . . . . . . . . . . . . . . . . . . . . .. 32 2. NEXT-HOP INFORMATION BASE . . . . . . . . . . . . . . . . . ..3 3. BGPBEST PATH SELECTION MODIFICATIONBestpath Selection Modification . . . . . . . . . . . . .34 4.USING BGP TO POPULATE NHIB .BGPLS Extensions . . . . . . . . . . . . . . . . .4 4.1. NEXT-HOP SAFI. . . . . 4 4.1. RIB Metrics Prefix Descriptor . . . . . . . . . . . . . . 4 4.2. RIB Protocol ID . . . .4 4.2. CAPABILITY ADVERTISEMENT. . . . . . . . . . . . . . . . . 4 4.3.INFORMATION ENCODING .Information Exchange . . . . . . . . . . . . . . . . . .45 4.4.SESSION ESTABLISHMENT . . . . . . . . . . . . . . .Termination of the session carrying next-hop cost . . . . 5 4.5.INFORMATION EXCHANGE . . . . . . . .Graceful Restart and Route-Refresh . . . . . . . . . . . 54.6. TERMINATION OF NH SAFI SESSION . . . . . . . . . . . . . . 6 4.7. GRACEFUL RESTART AND ROUTE REFRESH . . . . . . . . . . . . 65. Security considerations . . . . . . . . . . . . . . . . . . .. 65 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . .. 65 7.AcknowledgmentAcknowledgements . . . . . . . . . . . . . . . . . . . . . .. . 76 8. References . . . . . . . . . . . . . . . . . . . . . . . . .. 76 8.1. Normative References . . . . . . . . . . . . . . . . . .. 76 8.2. Informative References . . . . . . . . . . . . . . . . ..7 Appendix A. USAGE SCENARIOS . . . . . . . . . . . . . . . . . ..7 A.1. Trivial case . . . . . . . . . . . . . . . . . . . . . ..7 A.2. Non-IGP based cost . . . . . . . . . . . . . . . . . . .. 87 A.3. Multiple route-reflectors . . . . . . . . . . . . . . . ..8 A.4. Inter-AS MPLS VPN . . . . . . . . . . . . . . . . . . . .. 98 A.5. Corner case . . . . . . . . . . . . . . . . . . . . . . ..9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . ..9 1.MotivationIntroduction In a certainsituationsituation, route-reflector clients may not get optimum path to certain destinations. ADDPATH solves this problem by letting route-reflector to advertise multiple paths for a given prefix. If number of advertised paths are sufficiently big, route-reflector clients can choose same route as they would in case of full-mesh. This approach however places an additional burden on the control plane. Solutions proposed by [BGP-ORR] use different approach - instead of calculating best path from the localspeakerspeaker's own perspective the calculations are done using cost from the client to the next-hops. Although they eliminate need for transmitting redundant routing information between peers, there are scenarios where cost to the next-hop cannot be obtained accurately usingthisthese methods. For example, if next-hop information itself has been learned via BGP then simple SPF run on link-state database won't be sufficient to obtain cost information. There are also scenarios where while a Route Reflector can reach its clients, the client to client connectivity MAY be down. BGPLS [I-D.ietf-idr-bgp-orr] provides a mechanism by which Link state and traffic engineering information can be collected from internal networks and shared with external network routers using BGP. BGPLS defines a new Address Family to exchange this information using BGP. To address suchscenariosscenarios, thisdocument proposes a solution wheredraft defines extensions to BGPLS to carry cost information of the next-hops. In particular, this draft defines a new Protocol ID to announce a Router's IGP routes, and a Prefix Descriptor to carry thenext-hops is carried within BGP itself using dedicated SAFI.cost information of the IGP routes used towards resolving next-hops. 2. NEXT-HOP INFORMATION BASE To facilitate further description of the proposed solution we introduce a new table for all knownnext hopsnext-hops and costs to it from various routers on the network. Next-Hop Information Base (NHIB) stores cost to reach next-hop from an arbitrary router on the network. This information is essential for choosing best path from a peer perspective rather thanBGP-speakerBGP- speaker own perspective. In canonical form NHIB entry is triplet (router, next-hop, cost), however this specification does not impose any restriction on how BGP implementations store that information internally. The cost in NHIB is does not have to be an IGP cost, but all costs in NHIB MUST be comparable with each other. NHIB can be populated from various sourcesbothincluding static routing anddynamic. Thisdynamic routing. However, this document focuses on populating NHIB using BGP.However it is possible that protocols other thanAn implementation implementing the BGP extension described in this draft MAY provide an operator-controlled configuration knob significant to an individual BGP speaker that treats next-hop cost information received from two or more clients as equivalent. For example a route-reflector couldbereceive next-hop cost only from R1 but it will use it while calculating best-path alsousedfor R2, R3, Rn because it has been instructed topopulate NHIB.do so by locally-significant configuration. Multiple sources can be used for redundancy purpose. 3. BGPBEST PATH SELECTION MODIFICATIONBestpath Selection Modification This section applies regardless of method used to populate NHIB. When BGP speaker conforming to this specification selects routes to be advertised to a peer it SHOULD use cost information from NHIB rather than its own IGP cost to the next-hop after step (d) of 9.1.2.2 in [RFC4271]. 4.USING BGP TO POPULATE NHIB This section describes extension to base BGP specification that allows BGP to be used for exchanging next-hop information between BGP speakers via new SAFI in order to populate NHIB. Although next-hops costs are exchanged via dedicated SAFI, this information is vital to best path selection process for other AFI/SAFI (e.g. IPv4 and IPv6 unicast). It's therefore recommended that next-hop cost information is exchanged before other AFI/SAFI.BGPLS Extensions 4.1.NEXT-HOP SAFIRIB Metrics Prefix Descriptor Thisdocument introduces Next-Hop SAFI (NH SAFI)draft defines a new Prefix Descriptor known as a Cost Prefix Descriptor with a TLV code point value to be assigned byIANA and purpose of exchanging information about cost to next-hops. 4.2. CAPABILITY ADVERTISEMENT A BGP speaker willing to exchange next-hop information MUST advertise this in the OPEN message using BGP CapabilityIANA. The Cost descriptor looks like: +--------------+-----------------------+----------+-----------------+ | TLV Code1 (Multiprotocol Extensions, see [RFC4760]) setting AFI appropriately to indicate IPv4 or IPv6 and SAFI to the| Description | Length | Value defined | | Point | | | in: | +--------------+-----------------------+----------+-----------------+ | TBD | Cost | 4 bytes | Cost Value | +--------------+-----------------------+----------+-----------------+ Cost Value is a 4 byte Metric valueassignedcomputed byIANA for NH SAFI. Note that if BGP speaker whishes to exchange cost information for both IPv4 and IPv6, then it MUST advertise two capabilities: one NH SAFI for IPv4 and one NH SAFI for IPv6. 4.3. INFORMATION ENCODING Routers use standard BGP UPDATE messages to exchange NH SAFI information.a Router's local RIB. The Costto reachable next-hopsvalue iscommunicated using MP_REACH_NLRI (attribute 14) with NLRI part as described below. Requests are also sent using MP_REACH_NLRI. Informinganeighbour about unreachable next-hop is done using MP_UNREACH_NLRI. All NH SAFI messages MUST contain BGP COMMUNITY attribute with value NO_ADVERTISE (0xFFFFFF02) and their propagation MUST follow normal BGP rules (i.e. they're not to be propagated). To requestcosttoassociated with anext-hop from peer or to inform peer about cost toprefix by anext-hop BGP attribute 14 is used as follow: 1. AFIRouter. The cost isset to indicatetypically computed by the routing procotols that owns a route. 4.2. RIB Protocol ID This draft defines a new protocol ID for IPv4orand IPv6(whichever is appropriate) 2. SAFI is set to NH SAFI 3. Network Address of Next-Hop field is zeroed out 4.Topology Prefix NLRIfield is encoded as shown in the next figure Format of NH SAFI NLRI isknown asfollow: +-----+------+-------+----------+------+ | AFI | SAFI | Flags | NEXT_HOP | cost | +-----+------+-------+----------+------+ Flags - 1 octet field. Least significant bit MUST be set to 1 for Request anda RIB Protocol ID. The RIB Protocol ID has a value tozero for Response AFI/SAFI fields canbeset eitherassigned by IANA. The Prefix NLRI with RIB Protocol ID is used toone ofannounce all theregistered values to indicatelocal and IGP computated routes thatnext-hop cost info applies only to specified AFI/SAFI. Alternatively when both fieldsarebe set to zero,installed in thecost information applies to any compatible AFI/SAFI negotiatedRIB along withgiven peer. Next-hop - IPv4 or IPv6 address for which cost is being communicated or requested. Type is determined from context, and length is inferred from total length of attribute.its Costis 32-bit unsigned integer (value described below), and NEXT_HOP is AFI-specific address of the next-hop cost to which is being communicated or requested. Size of NEXT_HOP field is inferred from total length of attribute 14. To inform peer that particular next-hop is unreachable MP_UNREACH_NLRI attribute is used with same NLRI format as described above. In this case cost field SHOULD be set to 0xFFFFFFFF. 4.4. SESSION ESTABLISHMENT BGP speakers willing to exchange next-hop information SHOULD NOT establish more then one session for given AFI and NH SAFI, even using different transport addresses. This can be ensured for example by checking peer's Router Id. 4.5. INFORMATION EXCHANGEvalue. 4.3. Information Exchange TypicallyNH SAFIBGPLS sessions will be established betweenroute- reflectorsroute-reflectors and its internal peers (both clients and non-clients). As soon as theNH SAFIBGPLS session isESTABLISHED requests forESTABLISHED, all the RIB routes used to resolve next-hop cost and informationinformationabout next-hop costs MAY be sentindependently. That is, route-reflector MAY send multiple requests without waiting for response, andimmediately by clients to itspeers MAY send cost information before or after receiving such request. On the other hand, Router Reflectors SHOULD request cost information from their internal peers as soon as possible (dueroute-reflector. Implementations are advised toreasons stated in section "BGP best path selection modification").announce BGPspeaker does not needupdates for this SAFI before any other SAFIs totrack outstanding requestsfacilitate faster convergence of other SAFIs on Route Reflectors. Each internal neighbor of a route-reflector announces its IGP RIB Prefix information and its RIB metrics to thepeer. WhenRoute Reflector using aBGP speaker receives request for cost information it MUST replyBGPLS session and a new NLRI Protocol ID and RIB metric Prefix Descriptor. Each neighbor updates Route Reflector withactual cost (not necessarilyits IGPcost, but whatever has been chosen to be carried in NH SAFI) to given next-hop or withprefix cost everytime a costsettoall-ones indicating that next-hop is unreachable. If next-hop information is obtained from sender's routing table, then sender MUST perform lookup exactly the same way as it would for resolving next- hop in BGP UPDATE message. For example, for non-labelled destinations (e.g. AFI/SAFI 1/1 or 2/1) lookup would be done using longest match, whereas for labelled IPv4 (AFI/SAFI 1/4, 1/128 or 2/4) exact-match would be used. Whenan IGP route changes. Upon aBGP speaker detects changereceipt of a BGPLS route and its associated cost, a Route Reflector stores the prefix, cost, and neighbor information in its local NHRIB database. It then uses the received cost towards calculation of bestpath from the respective clients perpective as opposed topreviously advertisedits own IGP cost. 4.4. Termination of the session carrying next-hopwith delta equal or exceeding configured advertisement threshold, it SHOULD inform peer by sending MP_UNREACH_NLRI as described earlier.cost Whena BGP speaker discovers newthe BGPLS session carrying next-hopamong candidate routes it SHOULD requestcostinformation from the peer. 4.6. TERMINATION OF NH SAFI SESSION When BGP speakerterminates (for whateverreason) NH SAFI session with a peer, itreason), the BGP speaker SHOULDremoveinvalidate all the next-hop cost informationreceived from(i.e same treatment thatpeer unless instructed by configurationapplies todo otherwise. 4.7. GRACEFUL RESTART AND ROUTE REFRESH NH SAFIthe next-hop cost as to any other BGP learned information). 4.5. Graceful Restart and Route-Refresh BGPLS sessions carrying next-hop cost could usegraceful restartGraceful Restart [RFC4724] androute refreshRoute Refresh [RFC7313] mechanisms in the same way as it's used for IPv4 and IPv6unicast - preservation and purge of next-hop cost information follows normal GR rules.unicast. 5. Security considerationsNoThis document does not introduce new securityissues are introduced to the BGP protocol by this specification.considerations above and beyond those already specified in [RFC4271], [I-D.ietf-idr-bgp- orr] and [I-D.ietf-idr-bgp-ls]. 6. IANA Considerations This draft defines a new protocol id value for RIB Protocol ID. This draft requests IANAis requestedto allocate a value forNext-Hop Subsequent Address Family Identifier.a RIB Protocol ID from BGPLS Protocol ID Registry. This draft defines a new RIB Metrics Prefix Descriptor value. This draft request IANA to allocate a TLV code value for the new descriptor from the Prefix Descriptor registry. 7.Acknowledgment AuthorsAcknowledgements The authors would like tothank Keyur Patel,acknowledge David Ward, Anton Elita, Nagendra Kumar and Burjiz Pithawala for their critical reviews and feedback. 8. References 8.1. Normative References [I-D.ietf-idr-bgp-optimal-route-reflection] Raszuk, R., Cassar, C., Aman, E., Decraene, B., and S. Litkowski, "BGP Optimal Route Reflection (BGP-ORR)", draft-ietf-idr-bgp-optimal-route-reflection-09 (work in progress), April 2015. [I-D.ietf-idr-ls-distribution] Gredler, H., Medved, J., Previdi, S., Farrel, A., and S. Ray, "North-Bound Distribution of Link-State and TE Information using BGP", draft-ietf-idr-ls-distribution-10 (work in progress), January 2015. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route Reflection: An Alternative to Full Mesh Internal BGP (IBGP)", RFC 4456, April 2006. [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, January 2007. [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, "Multiprotocol Extensions for BGP-4", RFC 4760, January 2007.8.2. Informative References [I-D.raszuk-bgp-optimal-route-reflection] Raszuk, R., Cassar, C., Aman,[RFC7313] Patel, K., Chen, E., and B.Decraene, "BGP OptimalVenkatachalapathy, "Enhanced RouteReflection (BGP-ORR)", draft-raszuk-bgp-optimal-route-reflection-01 (work in progress), March 2011.Refresh Capability for BGP-4", RFC 7313, July 2014. 8.2. Informative References [RFC2918] Chen, E., "Route Refresh Capability for BGP-4", RFC 2918, September 2000. Appendix A. USAGE SCENARIOS A.1. Trivial case --+---NetA---+-- | | r1 r2 | | R1--RR-----R2 | \ | | +------R4 R3 In this scenario r1 and r3 along with NetA are part of AS1; and R1-R4 along with RR are in AS2. If RR implements non-optimized route-reflection, then it will choose path to NetA via R1 and advertise it to both R3 and R4. Such choice is good from R3 perspective, but it results in suboptimal traffic flow from R4 to NetA. UsingNH SAFIthe proposed BGPLS extensions, the route-reflector will learn that cost from R4 to R1 is 8 whereas to R2 it's only 1. RR will announce NetA to R4 with next-hop set to R2, while its announce to R3 will still have R1 as next-hop. Both R3 and R4 now will send traffic to NetA via closest exit, achieving same behaviour as if full iBGP mesh would have been configured. A.2. Non-IGP based cost When it's desirable to direct traffic over an exit other than the one with smallest IGP cost,NH SAFIBGPLS extensions can be used to convey cost which is not based on IGP. For example, network operator may arrange exit points in order of administrative preference and configure routers to send this instead of IGP cost. Route reflector then will then calculate best path based on administrative preference rather than IGP metrics. Network operators should excercise care to ensure that all routers up to and including exit point do not devert packets on to a different path, otherwise routing loops may occur. One way to achieve this is to have consistent administrative preference among all routers. Another option is to use a tunneling mechanism (e.g. MPLS-TE tunnel) between source and the exit point, provided that the router serving as exit point will send packets out of the network rather than diverting them to another exit point. A.3. Multiple route-reflectors This example demonstrates thatNH SAFI peeringsBGPLS extensions are necessary only between routers that already exchange other AFI/SAFI. | R1----R3---------R5----R7--+ | | | RR1 | NetA | RR2 | | | | R2----R4---------R6----R8--+ | In the above network the routers R1-R4 are clients of RR1, and R5-R8 are clients of RR2. RR1 and RR2 also peer with each other and use ADDPATH. RR2 learns about NetA from R7 and R8. Since it sends not just best- path but all prefixes to RR1, there is no need for RR2 to learn cost information from R1 and R2 towards R7 and R8. On the other hand RR1 does exchangeNH SAFIcost information using BGPLS with R1 and R2 so that each of them can receive routes, which are best from their perspective. As addition to ADDPATH a mechanism could be devised that would allow RR2 to learn how many alternative routes does it need to send to RR1. For example, if NetA would also be connected to R9 (not shown) but all clients of RR1 prefer R7 as exit point and R9 as next-best, then there is no need for RR2 to send NetA routes with next-hop R8 to RR1. Discussion: authors would like to solicit discussion whether there is sufficient interest in such mechanism. A.4. Inter-AS MPLS VPN Previous example could be transposed to Inter-AS MPLS VPN Option C scenario. In this case route reflectors RR1 and RR2 can be from different autonomous system. Essentially the behaviour of routers remains as already described. A.5. Corner case --+---NetA--+-- | | RR---R1 R2 \ / R3---R4 In the above network cost from R3 to R1 is 10, all other costs are 1. If RR advertises NetA to R3 based on cost information received from R3, but uses its own cost when advertising NetA to R4, there will be a loop formed. This is the reason why section "BGP best path selection modification" requires RR to have next-hop cost information for every next-hop and every peer. Note that the problem is the same as if RR would not use extensions described in this document and R3 would peer directly with R1 and R2, while R4 would peer only with RR. Authors' Addresses Ilya VarlashkinEasynet Global ServicesGoogle Email:ilya.varlashkin@easynet.comilya@nobulus.com Robert RaszukNTT MCLMirantis Inc.101 S Ellsworth Avenue Suite 350 San Mateo,615 National Ave. #100 Mt View, CA94401 US94043 USA Email: robert@raszuk.net Keyur Patel Cisco Systems 170 W. Tasman Drive San Jose, CA 95124 95134 USA Email: keyupate@cisco.com Manish Bhardwaj Cisco Systems 170 W. Tasman Drive San Jose, CA 95124 95134 USA Email: manbhard@cisco.com Serpil Bayraktar Cisco Systems 170 W. Tasman Drive San Jose, CA 95124 95134 USA Email: serpil@cisco.com