--- 1/draft-ietf-grow-bmp-local-rib-09.txt 2021-03-22 13:38:37.755534094 -0700 +++ 2/draft-ietf-grow-bmp-local-rib-10.txt 2021-03-22 13:38:37.787534890 -0700 @@ -1,21 +1,21 @@ Global Routing Operations T. Evens Internet-Draft S. Bayraktar Updates: 7854 (if approved) M. Bhardwaj Intended status: Standards Track Cisco Systems -Expires: 18 July 2021 P. Lucente +Expires: 9 September 2021 P. Lucente NTT Communications - 14 January 2021 + 8 March 2021 Support for Local RIB in BGP Monitoring Protocol (BMP) - draft-ietf-grow-bmp-local-rib-09 + draft-ietf-grow-bmp-local-rib-10 Abstract The BGP Monitoring Protocol (BMP) defines access to various Routing Information Bases (RIBs). This document updates BMP (RFC 7854) by adding access to the Local Routing Information Base (Loc-RIB), as defined in RFC 4271. The Loc-RIB contains the routes that have been selected by the local BGP speaker's Decision Process. Status of This Memo @@ -26,21 +26,21 @@ 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 https://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 on 18 July 2021. + This Internet-Draft will expire on 9 September 2021. Copyright Notice Copyright (c) 2021 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 (https://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 @@ -112,24 +112,24 @@ | V V | | +-----------------------------------------+ | | | Loc-RIB | | | +-----------------------------------------+ | | | | ROUTER/BGP Instance | \----------------------------------------------------/ Figure 1: BGP peering Adj-RIBs-In into Loc-RIB - As shown in Figure 2, Locally originated section 9.4 of [RFC4271] - follows a similar flow where the redistributed or otherwise - originated routes get installed into the Loc-RIB based on the - decision process selection. + Figure 2 (Locally Originated into Loc-RIB) illustrates how + redistributed or otherwise originated routes get installed into the + Loc-RIB based on the decision process selection in RFC 4271 + [RFC4271]. /--------------------------------------------------------\ | | | +----------+ +----------+ +----------+ +----------+ | | | IS-IS | | OSPF | | Static | | BGP | | | +----------+ +----------+ +----------+ +----------+ | | | | | | | | | | | | | Redistributed or originated into BGP | | | | | | @@ -153,28 +153,28 @@ flow records to Loc-RIB entries, only need to collect and monitor the routes that are actually selected and used. Requiring the applications to collect all Adj-RIB-In Post-Policy data forces the applications to receive a potentially large unwanted data set and to perform the BGP decision process selection, which includes having access to the IGP next-hop metrics. While it is possible to obtain the IGP topology information using BGP-LS, it requires the application to implement SPF and possibly CSPF based on additional policies. This is - overly complex for such a simple application that only needed to + overly complex for such a simple application that only needs to have access to the Loc-RIB. * It is common to see frequent changes over many BGP peers, but those changes do not always result in the router's Loc-RIB changing. The change in the Loc-RIB can have a direct impact on the forwarding state. It can greatly reduce time to troubleshoot - and resolve issues if operators had the history of Loc-RIB + and resolve issues if operators have the history of Loc-RIB changes. For example, a performance issue might have been seen for only a duration of 5 minutes. Post troubleshooting this issue without Loc-RIB history hides any decision based routing changes that might have happened during those five minutes. * Operators may wish to validate the impact of policies applied to Adj-RIB-In by analyzing the final decision made by the router when installing into the Loc-RIB. For example, in order to validate if multi-path prefixes are installed as expected for all advertising peers, the Adj-RIB-In Post-Policy and Loc-RIB needs to be @@ -229,33 +229,34 @@ Figure 3: Alternative method to monitor Loc-RIB The setup needed to monitor the Loc-RIB of a router requires another router with a peering session to the target router that is to be monitored. As shown in Figure 3, the target router Loc-RIB is advertised via Adj-RIB-Out to the BMP router over a standard BGP peering session. The BMP router then forwards Adj-RIB-In Pre-Policy to the BMP receiver. - The current method introduces the need for additional resources: + BMP lacking access to Loc-RIB introduces the need for additional + resources: * Requires at least two routers when only one router was to be monitored. * Requires additional BGP peering to collect the received updates when peering may have not even been required in the first place. For example, VRFs with no peers, redistributed BGP-LS with no peers, segment routing egress peer engineering where no peers have link-state address family enabled. - Complexities introduced with current method in order to derive (e.g. - correlate) peer to router Loc-RIB: + Complexities introduced by the lack of access to Loc-RIB in order to + derive (e.g. correlate) peer to router Loc-RIB: * Adj-RIB-Out received as Adj-RIB-In from another router may have a policy applied that filters, generates aggregates, suppresses more specifics, manipulates attributes, or filters routes. Not only does this invalidate the Loc-RIB view, it adds complexity when multiple BMP routers may have peering sessions to the same router. The BMP receiver user is left with the error prone task of identifying which peering session is the best representative of the Loc-RIB. @@ -279,21 +280,21 @@ 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 RFC 2119 [RFC2119] RFC 8174 [RFC8174] when, and only when, they appear in all capitals, as shown here. 3. Definitions - * BGP Instance: it refers to an instance of an instance of BGP-4 + * BGP Instance: refers to an instance of an instance of BGP-4 [RFC4271] and considerations in section 8.1 of [RFC7854] do apply to it. * Adj-RIB-In: As defined in [RFC4271], "The Adj-RIBs-In contains unprocessed routing information that has been advertised to the local BGP speaker by its peers." This is also referred to as the pre-policy Adj-RIB-In in this document. * Adj-RIB-Out: As defined in [RFC4271], "The Adj-RIBs-Out contains the routes for advertisement to specific peers by means of the @@ -322,67 +323,69 @@ Section 4.2 of [RFC7854] defines a Local Instance Peer type, which is for the case of non-RD peers that have an instance identifier. This document defines the following new peer type: * Peer Type = 3: Loc-RIB Instance Peer 4.2. Peer Flags In section 4.2 of [RFC7854], the "locally sourced routes" comment - under the L flag description is removed. Locally sourced routes MUST - be conveyed using the Loc-RIB instance peer type. + under the L flag description is removed. If locally sourced routes + are communicated using BMP, they MUST be conveyed using the Loc-RIB + instance peer type. The per-peer header flags for Loc-RIB Instance Peer type are defined as follows: 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |F| Reserved | +-+-+-+-+-+-+-+-+ * The F flag indicates that the Loc-RIB is filtered. This MUST be set when only a subset of Loc-RIB routes is sent to the BMP collector. The remaining bits are reserved for future use. They MUST be transmitted as 0 and their values MUST be ignored on receipt. 5. Loc-RIB Monitoring The Loc-RIB contains all routes selected by the BGP protocol Decision - Process section 9.1 of [RFC4271]. These routes include those learned - from BGP peers via its Adj-RIBs-In post-policy, as well as routes - learned by other means section 9.4 of [RFC4271]. Examples of these - include redistribution of routes from other protocols into BGP or - otherwise locally originated (ie. aggregate routes). + Process as described in section 9.1 of [RFC4271]. These routes + include those learned from BGP peers via its Adj-RIBs-In post-policy, + as well as routes learned by other means as per section 9.4 of + [RFC4271]. Examples of these include redistribution of routes from + other protocols into BGP or otherwise locally originated (ie. + aggregate routes). As mentioned in Section 4.2 a subset of Loc-RIB routes MAY be sent to a BMP collector by setting the F flag. 5.1. Per-Peer Header - All peer messages that include a per-peer header MUST use the - following values: + All peer messages that include a per-peer header section 4.2 of + [RFC7854] MUST use the following values: * Peer Type: Set to 3 to indicate Loc-RIB Instance Peer. * Peer Distinguisher: Zero filled if the Loc-RIB represents the global instance. Otherwise set to the route distinguisher or unique locally defined value of the particular instance the Loc- RIB belongs to. * Peer Address: Zero-filled. Remote peer address is not applicable. The V flag is not applicable with Loc-RIB Instance peer type considering addresses are zero-filed. - * Peer AS: Set to the BGP instance global or default ASN value. + * Peer AS: Set to the primary router BGP ASN. * Peer BGP ID: Set to the BGP instance global or RD (e.g. VRF) specific router-id section 1.1 of [RFC7854]. * Timestamp: The time when the encapsulated routes were installed in The Loc-RIB, expressed in seconds and microseconds since midnight (zero hour), January 1, 1970 (UTC). If zero, the time is unavailable. Precision of the timestamp is implementation- dependent. @@ -391,21 +394,21 @@ Peer UP notifications follow section 4.10 of [RFC7854] with the following clarifications: * Local Address: Zero-filled, local address is not applicable. * Local Port: Set to 0, local port is not applicable. * Remote Port: Set to 0, remote port is not applicable. * Sent OPEN Message: This is a fabricated BGP OPEN message. - Capabilities MUST include 4-octet ASN and all necessary + Capabilities MUST include the 4-octet ASN and all necessary capabilities to represent the Loc-RIB route monitoring messages. Only include capabilities if they will be used for Loc-RIB monitoring messages. For example, if add-paths is enabled for IPv6 and Loc-RIB contains additional paths, the add-paths capability should be included for IPv6. In the case of add-paths, the capability intent of advertise, receive or both can be ignored since the presence of the capability indicates enough that add- paths will be used for IPv6. * Received OPEN Message: Repeat of the same Sent Open Message. The @@ -459,21 +462,21 @@ Loc-RIB route monitor messages MUST use 4-byte ASN encoding as indicated in PEER UP sent OPEN message (Section 5.2) capability. 5.4.2. Granularity State compression and throttling SHOULD be used by a BMP sender to reduce the amount of route monitoring messages that are transmitted to BMP receivers. With state compression, only the final resultant updates are sent. - For example, prefix 10.0.0.0/8 is updated in the Loc-RIB 5 times + For example, prefix 192.0.2.0/24 is updated in the Loc-RIB 5 times within 1 second. State compression of BMP route monitor messages results in only the final change being transmitted. The other 4 changes are suppressed because they fall within the compression interval. If no compression was being used, all 5 updates would have been transmitted. A BMP receiver should expect that Loc-RIB route monitoring granularity can be different by BMP sender implementation. 5.5. Route Mirroring