draft-ietf-grow-bmp-local-rib-10.txt   draft-ietf-grow-bmp-local-rib-11.txt 
Global Routing Operations T. Evens Global Routing Operations T. Evens
Internet-Draft S. Bayraktar Internet-Draft S. Bayraktar
Updates: 7854 (if approved) M. Bhardwaj Updates: 7854 (if approved) M. Bhardwaj
Intended status: Standards Track Cisco Systems Intended status: Standards Track Cisco Systems
Expires: 9 September 2021 P. Lucente Expires: 1 November 2021 P. Lucente
NTT Communications NTT Communications
8 March 2021 30 April 2021
Support for Local RIB in BGP Monitoring Protocol (BMP) Support for Local RIB in BGP Monitoring Protocol (BMP)
draft-ietf-grow-bmp-local-rib-10 draft-ietf-grow-bmp-local-rib-11
Abstract Abstract
The BGP Monitoring Protocol (BMP) defines access to various Routing The BGP Monitoring Protocol (BMP) defines access to local Routing
Information Bases (RIBs). This document updates BMP (RFC 7854) by Information Bases (RIBs). This document updates BMP (RFC 7854) by
adding access to the Local Routing Information Base (Loc-RIB), as adding access to the Local Routing Information Base (Loc-RIB), as
defined in RFC 4271. The Loc-RIB contains the routes that have been defined in RFC 4271. The Loc-RIB contains the routes that have been
selected by the local BGP speaker's Decision Process. selected by the local BGP speaker's Decision Process.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 9 September 2021. This Internet-Draft will expire on 1 November 2021.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License. provided without warranty as described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Alternative Method to Monitor Loc-RIB . . . . . . . . . . 5 1.1. Alternative Method to Monitor Loc-RIB . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 7 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 7 3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Per-Peer Header . . . . . . . . . . . . . . . . . . . . . . . 8 4. Per-Peer Header . . . . . . . . . . . . . . . . . . . . . . . 7
4.1. Peer Type . . . . . . . . . . . . . . . . . . . . . . . . 8 4.1. Peer Type . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2. Peer Flags . . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Peer Flags . . . . . . . . . . . . . . . . . . . . . . . 7
5. Loc-RIB Monitoring . . . . . . . . . . . . . . . . . . . . . 9 5. Loc-RIB Monitoring . . . . . . . . . . . . . . . . . . . . . 8
5.1. Per-Peer Header . . . . . . . . . . . . . . . . . . . . . 9 5.1. Per-Peer Header . . . . . . . . . . . . . . . . . . . . . 8
5.2. Peer UP Notification . . . . . . . . . . . . . . . . . . 10 5.2. Peer Up Notification . . . . . . . . . . . . . . . . . . 9
5.2.1. Peer UP Information . . . . . . . . . . . . . . . . . 10 5.2.1. Peer Up Information . . . . . . . . . . . . . . . . . 9
5.3. Peer Down Notification . . . . . . . . . . . . . . . . . 11 5.3. Peer Down Notification . . . . . . . . . . . . . . . . . 10
5.4. Route Monitoring . . . . . . . . . . . . . . . . . . . . 11 5.4. Route Monitoring . . . . . . . . . . . . . . . . . . . . 10
5.4.1. ASN Encoding . . . . . . . . . . . . . . . . . . . . 11 5.4.1. ASN Encoding . . . . . . . . . . . . . . . . . . . . 10
5.4.2. Granularity . . . . . . . . . . . . . . . . . . . . . 11 5.4.2. Granularity . . . . . . . . . . . . . . . . . . . . . 10
5.5. Route Mirroring . . . . . . . . . . . . . . . . . . . . . 12 5.5. Route Mirroring . . . . . . . . . . . . . . . . . . . . . 11
5.6. Statistics Report . . . . . . . . . . . . . . . . . . . . 12 5.6. Statistics Report . . . . . . . . . . . . . . . . . . . . 11
6. Other Considerations . . . . . . . . . . . . . . . . . . . . 12 6. Other Considerations . . . . . . . . . . . . . . . . . . . . 11
6.1. Loc-RIB Implementation . . . . . . . . . . . . . . . . . 12 6.1. Loc-RIB Implementation . . . . . . . . . . . . . . . . . 11
6.1.1. Multiple Loc-RIB Peers . . . . . . . . . . . . . . . 12 6.1.1. Multiple Loc-RIB Peers . . . . . . . . . . . . . . . 11
6.1.2. Filtering Loc-RIB to BMP Receivers . . . . . . . . . 13 6.1.2. Filtering Loc-RIB to BMP Receivers . . . . . . . . . 12
6.1.3. Changes to existing BMP sessions . . . . . . . . . . 13 6.1.3. Changes to existing BMP sessions . . . . . . . . . . 12
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 7. Security Considerations . . . . . . . . . . . . . . . . . . . 12
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
8.1. BMP Peer Type . . . . . . . . . . . . . . . . . . . . . . 13 8.1. BMP Peer Type . . . . . . . . . . . . . . . . . . . . . . 12
8.2. BMP Peer Flags . . . . . . . . . . . . . . . . . . . . . 13 8.2. BMP Loc-RIB Instance Peer Flags . . . . . . . . . . . . . 12
8.3. Peer UP Information TLV . . . . . . . . . . . . . . . . . 14 8.3. Peer Up Information TLV . . . . . . . . . . . . . . . . . 13
8.4. Peer Down Reason code . . . . . . . . . . . . . . . . . . 14 8.4. Peer Down Reason code . . . . . . . . . . . . . . . . . . 13
9. Normative References . . . . . . . . . . . . . . . . . . . . 14 9. Normative References . . . . . . . . . . . . . . . . . . . . 13
10. Informative References . . . . . . . . . . . . . . . . . . . 14
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 14 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
This document defines a mechanism to monitor the BGP Loc-RIB state of This document defines a mechanism to monitor the BGP Loc-RIB state of
remote BGP instances without the need to establish BGP peering remote BGP instances without the need to establish BGP peering
sessions. BMP [RFC7854] does not define a method to send the BGP sessions. BMP [RFC7854] does not define a method to send the BGP
instance Loc-RIB. It does define in section 8.2 of [RFC7854] locally instance Loc-RIB. It does define in section 8.2 of [RFC7854] locally
originated routes, but these routes are defined as the routes originated routes, but these routes are defined as the routes
originated into BGP. For example, locally sourced routes that are originated into BGP. For example, as defined by Section 9.4 of
redistributed. [RFC4271]. Loc-RIB includes all selected received routes from BGP
peers in addition to locally originated routes.
Figure 1 shows the flow of received routes from one or more BGP peers Figure 1 shows the flow of received routes from one or more BGP peers
into the Loc-RIB. into the Loc-RIB.
+------------------+ +------------------+ +------------------+ +------------------+
| Peer-A | | Peer-B | | Peer-A | | Peer-B |
/-- | | ---- | | --\ /-- | | ---- | | --\
| | Adj-RIB-In (Pre) | | Adj-RIB-In (Pre) | | | | Adj-RIB-In (Pre) | | Adj-RIB-In (Pre) | |
| +------------------+ +------------------+ | | +------------------+ +------------------+ |
| | | | | | | |
| Filters/Policy -| Filters/Policy -| | | Filters/Policy -| Filters/Policy -| |
| V V | | V V |
| +------------------ +------------------+ | | +------------------+ +------------------+ |
| | Adj-RIB-In (Post)| | Adj-RIB-In (Post)| | | | Adj-RIB-In (Post)| | Adj-RIB-In (Post)| |
| +------------------ +------------------+ | | +------------------+ +------------------+ |
| | | | | | | |
| Selected -| Selected -| | | Selected -| Selected -| |
| V V | | V V |
| +-----------------------------------------+ | | +-----------------------------------------+ |
| | Loc-RIB | | | | Loc-RIB | |
| +-----------------------------------------+ | | +-----------------------------------------+ |
| | | |
| ROUTER/BGP Instance | | ROUTER/BGP Instance |
\----------------------------------------------------/ \----------------------------------------------------/
Figure 1: BGP peering Adj-RIBs-In into Loc-RIB Figure 1: BGP peering Adj-RIBs-In into Loc-RIB
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 | |
| | | |
| | | | | |
| V V V V |
| +----------------------------------------------+ |
| | Loc-RIB | |
| +----------------------------------------------+ |
| |
| ROUTER/BGP Instance |
\--------------------------------------------------------/
Figure 2: Locally Originated into Loc-RIB
The following are some use-cases for Loc-RIB access: The following are some use-cases for Loc-RIB access:
* The Adj-RIB-In for a given peer Post-Policy may contain hundreds * The Adj-RIB-In for a given peer Post-Policy may contain hundreds
of thousands of routes, with only a handful of routes selected and of thousands of routes, with only a handful of routes selected and
installed in the Loc-RIB after best-path selection. Some installed in the Loc-RIB after best-path selection. Some
monitoring applications, such as ones that need only to correlate monitoring applications, such as ones that need only to correlate
flow records to Loc-RIB entries, only need to collect and monitor flow records to Loc-RIB entries, only need to collect and monitor
the routes that are actually selected and used. the routes that are actually selected and used.
Requiring the applications to collect all Adj-RIB-In Post-Policy Requiring the applications to collect all Adj-RIB-In Post-Policy
data forces the applications to receive a potentially large data forces the applications to receive a potentially large
unwanted data set and to perform the BGP decision process unwanted data set and to perform the BGP decision process
selection, which includes having access to the IGP next-hop selection, which includes having access to the interior gateway
metrics. While it is possible to obtain the IGP topology protocol (IGP) next-hop metrics. While it is possible to obtain
information using BGP-LS, it requires the application to implement the IGP topology information using BGP Link-State (BGP-LS), it
SPF and possibly CSPF based on additional policies. This is requires the application to implement shortest path first (SPF)
overly complex for such a simple application that only needs to and possibly constrained shortest path first (CSPF) based on
have access to the Loc-RIB. additional policies. This is 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 * It is common to see frequent changes over many BGP peers, but
those changes do not always result in the router's Loc-RIB 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 changing. The change in the Loc-RIB can have a direct impact on
the forwarding state. It can greatly reduce time to troubleshoot the forwarding state. It can greatly reduce time to troubleshoot
and resolve issues if operators have 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 changes. For example, a performance issue might have been seen
for only a duration of 5 minutes. Post troubleshooting this issue for only a duration of 5 minutes. Post-facto troubleshooting this
without Loc-RIB history hides any decision based routing changes issue without Loc-RIB history hides any decision based routing
that might have happened during those five minutes. changes that might have happened during those five minutes.
* Operators may wish to validate the impact of policies applied to * Operators may wish to validate the impact of policies applied to
Adj-RIB-In by analyzing the final decision made by the router when 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 installing into the Loc-RIB. For example, in order to validate if
multi-path prefixes are installed as expected for all advertising multi-path prefixes are installed as expected for all advertising
peers, the Adj-RIB-In Post-Policy and Loc-RIB needs to be peers, the Adj-RIB-In Post-Policy and Loc-RIB needs to be
compared. This is only possible if the Loc-RIB is available. compared. This is only possible if the Loc-RIB is available.
Monitoring the Adj-RIB-In for this router from another router to Monitoring the Adj-RIB-In for this router from another router to
derive the Loc-RIB is likely to not show same installed prefixes. derive the Loc-RIB is likely to not show same installed prefixes.
For example, the received Adj-RIB-In will be different if add- For example, the received Adj-RIB-In will be different if ADD-PATH
paths is not enabled or if maximum number of equal paths are [RFC7911] is not enabled or if maximum supported number of equal
different from Loc-RIB to routes advertised. paths is different between Loc-RIB and advertised routes.
This document adds Loc-RIB to the BGP Monitoring Protocol and This document adds Loc-RIB to the BGP Monitoring Protocol and
replaces Section 8.2 of [RFC7854] Locally Originated Routes. replaces Section 8.2 of [RFC7854] Locally Originated Routes.
1.1. Alternative Method to Monitor Loc-RIB 1.1. Alternative Method to Monitor Loc-RIB
Loc-RIB is used to build Adj-RIB-Out when advertising routes to a Loc-RIB is used to build Adj-RIB-Out when advertising routes to a
peer. It is therefore possible to derive the Loc-RIB of a router by peer. It is therefore possible to derive the Loc-RIB of a router by
monitoring the Adj-RIB-In Pre-Policy from another router. At scale monitoring the Adj-RIB-In Pre-Policy from another router. This
this becomes overly complex and error prone. becomes overly complex and error prone when considering the number of
peers being monitored per router.
/------------------------------------------------------\ /------------------------------------------------------\
| ROUTER1 BGP Instance | | ROUTER1 BGP Instance |
| | | |
| +--------------------------------------------+ | | +--------------------------------------------+ |
| | Loc-RIB | | | | Loc-RIB | |
| +--------------------------------------------+ | | +--------------------------------------------+ |
| | | | | | | |
| +------------------+ +------------------+ | | +------------------+ +------------------+ |
| | Peer-ROUTER2 | | Peer-ROUTER3 | | | | Peer-ROUTER2 | | Peer-ROUTER3 | |
skipping to change at page 6, line 37 skipping to change at page 5, line 37
/--| |--\ /--| | --\ /--| |--\ /--| | --\
| | Adj-RIB-In (Pre) | | | | Adj-RIB-In (Pre) | | | | Adj-RIB-In (Pre) | | | | Adj-RIB-In (Pre) | |
| +------------------+ | | +------------------+ | | +------------------+ | | +------------------+ |
| | | | | | | |
| ROUTER2/BGP Instance | | ROUTER3/BGP Instance | | ROUTER2/BGP Instance | | ROUTER3/BGP Instance |
\------------------------/ \-------------------------/ \------------------------/ \-------------------------/
| | | |
v v v v
ROUTER2 BMP Feed ROUTER3 BMP Feed ROUTER2 BMP Feed ROUTER3 BMP Feed
Figure 3: Alternative method to monitor Loc-RIB Figure 2: Alternative method to monitor Loc-RIB
The setup needed to monitor the Loc-RIB of a router requires another 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 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 monitored. As shown in Figure 2, the target router Loc-RIB is
advertised via Adj-RIB-Out to the BMP router over a standard BGP 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 peering session. The BMP router then forwards Adj-RIB-In Pre-Policy
to the BMP receiver. to the BMP receiver.
BMP lacking access to Loc-RIB introduces the need for additional BMP lacking access to Loc-RIB introduces the need for additional
resources: resources:
* Requires at least two routers when only one router was to be * Requires at least two routers when only one router was to be
monitored. monitored.
* Requires additional BGP peering to collect the received updates * Requires additional BGP peering to collect the received updates
when peering may have not even been required in the first place. when peering may have not even been required in the first place.
For example, VRFs with no peers, redistributed BGP-LS with no For example, virtual routing and forwarding (VRF) tables with no
peers, segment routing egress peer engineering where no peers have peers, redistributed BGP-LS with no peers, and segment routing
link-state address family enabled. egress peer engineering where no peers have link-state address
family enabled are all situations with no preexisting BGP peers.
Complexities introduced by the lack of access to Loc-RIB in order to Many complexities are introduced when using a received Adj-RIB-In to
derive (e.g. correlate) peer to router Loc-RIB: infer a router Loc-RIB:
* Adj-RIB-Out received as Adj-RIB-In from another router may have a * Adj-RIB-Out received as Adj-RIB-In from another router may have a
policy applied that filters, generates aggregates, suppresses more policy applied that filters, generates aggregates, suppresses more
specifics, manipulates attributes, or filters routes. Not only specific prefixes, manipulates attributes, or filters routes. Not
does this invalidate the Loc-RIB view, it adds complexity when only does this invalidate the Loc-RIB view, it adds complexity
multiple BMP routers may have peering sessions to the same router. when multiple BMP routers may have peering sessions to the same
The BMP receiver user is left with the error prone task of router. The BMP receiver user is left with the error-prone task
identifying which peering session is the best representative of of identifying which peering session is the best representative of
the Loc-RIB. the Loc-RIB.
* BGP peering is designed to work between administrative domains and * BGP peering is designed to work between administrative domains and
therefore does not need to include internal system level therefore does not need to include internal system level
information of each peering router (e.g. the system name or information of each peering router (e.g., the system name or
version information). In order to derive a Loc-RIB to a router, version information). In order to derive the Loc-RIB of a router,
the router name or other system information is needed. The BMP the router name or other system information is needed. The BMP
receiver and user are forced to do some type of correlation using receiver and user are forced to do some type of correlation using
what information is available in the peering session (e.g. peering what information is available in the peering session (e.g.,
addresses, ASNs, and BGP-IDs). This leads to error prone peering addresses, autonomous system numbers, and BGP
correlations. identifiers). This leads to error-prone correlations.
* The BGP-IDs and session addresses to router correlation requires * Correlating BGP identifiers (BGP-ID) and session addresses to a
additional data, such as router inventory. This additional data router requires additional data, such as router inventory. This
provides the BMP receiver the ability to map and correlate the additional data provides the BMP receiver the ability to map and
BGP-IDs and/or session addresses, but requires the BMP receiver to correlate the BGP-IDs and/or session addresses, but requires the
somehow obtain this data outside of BMP. How this data is BMP receiver to somehow obtain this data outside of BMP. How this
obtained and the accuracy of the data directly effects the data is obtained and the accuracy of the data directly affects the
integrity of the correlation. integrity of the correlation.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 RFC 2119 [RFC2119] RFC 8174 [RFC8174] when, and only when, they 14 RFC 2119 [RFC2119] RFC 8174 [RFC8174] when, and only when, they
appear in all capitals, as shown here. appear in all capitals, as shown here.
3. Definitions 3. Definitions
* BGP Instance: refers to an instance of an instance of BGP-4 * BGP Instance: refers to an instance of BGP-4 [RFC4271] and
[RFC4271] and considerations in section 8.1 of [RFC7854] do apply considerations in section 8.1 of [RFC7854] do apply to it.
to it.
* Adj-RIB-In: As defined in [RFC4271], "The Adj-RIBs-In contains * Adj-RIB-In: As defined in [RFC4271], "The Adj-RIBs-In contains
unprocessed routing information that has been advertised to the unprocessed routing information that has been advertised to the
local BGP speaker by its peers." This is also referred to as the local BGP speaker by its peers." This is also referred to as the
pre-policy Adj-RIB-In in this document. pre-policy Adj-RIB-In in this document.
* Adj-RIB-Out: As defined in [RFC4271], "The Adj-RIBs-Out contains * Adj-RIB-Out: As defined in [RFC4271], "The Adj-RIBs-Out contains
the routes for advertisement to specific peers by means of the the routes for advertisement to specific peers by means of the
local speaker's UPDATE messages." local speaker's UPDATE messages."
skipping to change at page 8, line 36 skipping to change at page 7, line 35
peering configuration. peering configuration.
* Post-Policy Adj-RIB-Out: The result of applying outbound policy to * Post-Policy Adj-RIB-Out: The result of applying outbound policy to
an Adj-RIB-Out. This MUST be what is actually sent to the peer. an Adj-RIB-Out. This MUST be what is actually sent to the peer.
4. Per-Peer Header 4. Per-Peer Header
4.1. Peer Type 4.1. Peer Type
A new peer type is defined for Loc-RIB to distinguish that it A new peer type is defined for Loc-RIB to distinguish that it
represents Loc-RIB with or without RD and local instances. represents the router Loc-RIB, which may have a route distinguisher
Section 4.2 of [RFC7854] defines a Local Instance Peer type, which is (RD). Section 4.2 of [RFC7854] defines a Local Instance Peer type,
for the case of non-RD peers that have an instance identifier. which is for the case of non-RD peers that have an instance
identifier.
This document defines the following new peer type: This document defines the following new peer type:
* Peer Type = 3: Loc-RIB Instance Peer * Peer Type = 3: Loc-RIB Instance Peer
4.2. Peer Flags 4.2. Peer Flags
In section 4.2 of [RFC7854], the "locally sourced routes" comment If locally sourced routes are communicated using BMP, they MUST be
under the L flag description is removed. If locally sourced routes conveyed using the Loc-RIB instance peer type.
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 The per-peer header flags for Loc-RIB Instance Peer type are defined
as follows: as follows:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|F| Reserved | | | | | |F| | | |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
* The F flag indicates that the Loc-RIB is filtered. This MUST be * 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 set when a filter is applied to Loc-RIB routes sent to the BMP
collector. collector.
The remaining bits are reserved for future use. They MUST be The unused bits are reserved for future use. They MUST be
transmitted as 0 and their values MUST be ignored on receipt. transmitted as 0 and their values MUST be ignored on receipt.
5. Loc-RIB Monitoring 5. Loc-RIB Monitoring
The Loc-RIB contains all routes selected by the BGP protocol Decision The Loc-RIB contains all routes selected by the BGP Decision Process
Process as described in section 9.1 of [RFC4271]. These routes as described in section 9.1 of [RFC4271]. These routes include those
include those learned from BGP peers via its Adj-RIBs-In post-policy, learned from BGP peers via its Adj-RIBs-In Post-Policy, as well as
as well as routes learned by other means as per section 9.4 of routes learned by other means as per section 9.4 of [RFC4271].
[RFC4271]. Examples of these include redistribution of routes from Examples of these include redistribution of routes from other
other protocols into BGP or otherwise locally originated (ie. protocols into BGP or otherwise locally originated (i.e., aggregate
aggregate routes). routes).
As mentioned in Section 4.2 a subset of Loc-RIB routes MAY be sent to As described in Section 6.1.2, a subset of Loc-RIB routes MAY be sent
a BMP collector by setting the F flag. to a BMP collector by setting the F flag.
5.1. Per-Peer Header 5.1. Per-Peer Header
All peer messages that include a per-peer header section 4.2 of All peer messages that include a per-peer header as defined in
[RFC7854] MUST use the following values: section 4.2 of [RFC7854] MUST use the following values:
* Peer Type: Set to 3 to indicate Loc-RIB Instance Peer. * Peer Type: Set to 3 to indicate Loc-RIB Instance Peer.
* Peer Distinguisher: Zero filled if the Loc-RIB represents the * Peer Distinguisher: Zero filled if the Loc-RIB represents the
global instance. Otherwise set to the route distinguisher or global instance. Otherwise set to the route distinguisher or
unique locally defined value of the particular instance the Loc- unique locally defined value of the particular instance the Loc-
RIB belongs to. RIB belongs to.
* Peer Address: Zero-filled. Remote peer address is not applicable. * Peer Address: Zero-filled. Remote peer address is not applicable.
The V flag is not applicable with Loc-RIB Instance peer type The V flag is not applicable with Loc-RIB Instance peer type
considering addresses are zero-filed. considering addresses are zero-filed.
* Peer AS: Set to the primary router BGP ASN. * Peer AS: Set to the primary router BGP autonomous system number
(ASN).
* Peer BGP ID: Set to the BGP instance global or RD (e.g. VRF) * Peer BGP ID: Set to the BGP instance global or RD (e.g., VRF)
specific router-id section 1.1 of [RFC7854]. specific router-id section 1.1 of [RFC7854].
* Timestamp: The time when the encapsulated routes were installed in * Timestamp: The time when the encapsulated routes were installed in
The Loc-RIB, expressed in seconds and microseconds since midnight the Loc-RIB, expressed in seconds and microseconds since midnight
(zero hour), January 1, 1970 (UTC). If zero, the time is (zero hour), January 1, 1970 (UTC). If zero, the time is
unavailable. Precision of the timestamp is implementation- unavailable. Precision of the timestamp is implementation-
dependent. dependent.
5.2. Peer UP Notification 5.2. Peer Up Notification
Peer UP notifications follow section 4.10 of [RFC7854] with the Peer Up notifications follow section 4.10 of [RFC7854] with the
following clarifications: following clarifications:
* Local Address: Zero-filled, local address is not applicable. * Local Address: Zero-filled, local address is not applicable.
* Local Port: Set to 0, local port is not applicable. * Local Port: Set to 0, local port is not applicable.
* Remote Port: Set to 0, remote port is not applicable. * Remote Port: Set to 0, remote port is not applicable.
* Sent OPEN Message: This is a fabricated BGP OPEN message. * Sent OPEN Message: This is a fabricated BGP OPEN message.
Capabilities MUST include the 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. capabilities to represent the Loc-RIB route monitoring messages.
Only include capabilities if they will be used for Loc-RIB Only include capabilities if they will be used for Loc-RIB
monitoring messages. For example, if add-paths is enabled for monitoring messages. For example, if ADD-PATH is enabled for IPv6
IPv6 and Loc-RIB contains additional paths, the add-paths and Loc-RIB contains additional paths, the ADD-PATH capability
capability should be included for IPv6. In the case of add-paths, should be included for IPv6. In the case of ADD-PATH, the
the capability intent of advertise, receive or both can be ignored capability intent of advertise, receive or both can be ignored
since the presence of the capability indicates enough that add- since the presence of the capability indicates enough that add-
paths will be used for IPv6. paths will be used for IPv6.
* Received OPEN Message: Repeat of the same Sent Open Message. The * Received OPEN Message: Repeat of the same Sent Open Message. The
duplication allows the BMP receiver to use existing parsing. duplication allows the BMP receiver to parse the expected received
OPEN message as defined in section 4.10 of [RFC7854].
5.2.1. Peer UP Information 5.2.1. Peer Up Information
The following Peer UP information TLV type is added: The following Peer Up information TLV type is added:
* Type = 3: VRF/Table Name. The Information field contains a UTF-8 * Type = 3: VRF/Table Name. The Information field contains a UTF-8
string whose value MUST be equal to the value of the VRF or table string whose value MUST be equal to the value of the VRF or table
name (e.g. RD instance name) being conveyed. The string size name (e.g., RD instance name) being conveyed. The string size
MUST be within the range of 1 to 255 bytes. MUST be within the range of 1 to 255 bytes.
The VRF/Table Name TLV is optionally included. For consistency, The VRF/Table Name TLV is optionally included to support
it is RECOMMENDED that the VRF/Table Name always be included. The implementations that may not have defined a name. If a name is
default value of "global" MUST be used for the default Loc-RIB configured, it MUST be included. The default value of "global"
instance with a zero-filled distinguisher. If the TLV is MUST be used for the default Loc-RIB instance with a zero-filled
included, then it MUST also be included in the Peer Down distinguisher. If the TLV is included, then it MUST also be
notification. included in the Peer Down notification.
Multiple TLVs of the same type can be repeated as part of the same Multiple TLVs of the same type can be repeated as part of the same
message, for example to convey a filtered view of a VRF. A BMP message, for example to convey a filtered view of a VRF. A BMP
receiver should append multiple TLVs of the same type to a set in receiver should append multiple TLVs of the same type to a set in
order to support alternate or additional names for the same peer. If order to support alternate or additional names for the same peer. If
multiple strings are included, their ordering MUST be preserved when multiple strings are included, their ordering MUST be preserved when
they are reported. they are reported.
5.3. Peer Down Notification 5.3. Peer Down Notification
Peer down notification MUST use reason code 6. Following the reason Peer Down notification MUST use reason code 6. Following the reason
is data in TLV format. The following peer Down information TLV type is data in TLV format. The following Peer Down information TLV type
is defined: is defined:
* Type = 3: VRF/Table Name. The Information field contains a UTF-8 * Type = 3: VRF/Table Name. The Information field contains a UTF-8
string whose value MUST be equal to the value of the VRF or table string whose value MUST be equal to the value of the VRF or table
name (e.g. RD instance name) being conveyed. The string size name (e.g., RD instance name) being conveyed. The string size
MUST be within the range of 1 to 255 bytes. The VRF/Table Name MUST be within the range of 1 to 255 bytes. The VRF/Table Name
informational TLV MUST be included if it was in the Peer UP. informational TLV MUST be included if it was in the Peer Up.
5.4. Route Monitoring 5.4. Route Monitoring
Route Monitoring messages are used for initial synchronization of the Route Monitoring messages are used for initial synchronization of the
Loc-RIB. They are also used to convey incremental Loc-RIB changes. Loc-RIB. They are also used to convey incremental Loc-RIB changes.
As defined in section 4.3 of [RFC7854], "Following the common BMP As defined in section 4.6 of [RFC7854], "Following the common BMP
header and per-peer header is a BGP Update PDU." header and per-peer header is a BGP Update PDU."
5.4.1. ASN Encoding 5.4.1. ASN Encoding
Loc-RIB route monitor messages MUST use 4-byte ASN encoding as Loc-RIB route monitor messages MUST use 4-byte ASN encoding as
indicated in PEER UP sent OPEN message (Section 5.2) capability. indicated in Peer Up sent OPEN message (Section 5.2) capability.
5.4.2. Granularity 5.4.2. Granularity
State compression and throttling SHOULD be used by a BMP sender to State compression and throttling SHOULD be used by a BMP sender to
reduce the amount of route monitoring messages that are transmitted reduce the amount of route monitoring messages that are transmitted
to BMP receivers. With state compression, only the final resultant to BMP receivers. With state compression, only the final resultant
updates are sent. updates are sent.
For example, prefix 192.0.2.0/24 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 within 1 second. State compression of BMP route monitor messages
results in only the final change being transmitted. The other 4 results in only the final change being transmitted. The other 4
changes are suppressed because they fall within the compression changes are suppressed because they fall within the compression
interval. If no compression was being used, all 5 updates would have interval. If no compression was being used, all 5 updates would have
been transmitted. been transmitted.
A BMP receiver should expect that Loc-RIB route monitoring A BMP receiver should expect that Loc-RIB route monitoring
granularity can be different by BMP sender implementation. granularity can be different by BMP sender implementation.
5.5. Route Mirroring 5.5. Route Mirroring
Route mirroring is not applicable to Loc-RIB and Route Mirroring Section 4.7 of [RFC7854], defines Route Mirroring for verbatim
duplication of messages received. This is not applicable to Loc-RIB
as PDUs are originated by the router. Any received Route Mirroring
messages SHOULD be ignored. messages SHOULD be ignored.
5.6. Statistics Report 5.6. Statistics Report
Not all Stat Types are relevant to Loc-RIB. The Stat Types that are Not all Stat Types are relevant to Loc-RIB. The Stat Types that are
relevant are listed below: relevant are listed below:
* Stat Type = 8: (64-bit Gauge) Number of routes in Loc-RIB. * Stat Type = 8: (64-bit Gauge) Number of routes in Loc-RIB.
* Stat Type = 10: Number of routes in per-AFI/SAFI Loc-RIB. The * Stat Type = 10: Number of routes in per-AFI/SAFI Loc-RIB. The
value is structured as: 2-byte AFI, 1-byte SAFI, followed by a 64- value is structured as: 2-byte AFI, 1-byte SAFI, followed by a 64-
bit Gauge. bit Gauge.
6. Other Considerations 6. Other Considerations
6.1. Loc-RIB Implementation 6.1. Loc-RIB Implementation
There are several methods for a BGP speaker to implement Loc-RIB There are several methods for a BGP speaker to implement Loc-RIB
efficiently. In all methods, the implementation emulates a peer with efficiently. In all methods, the implementation emulates a peer with
Peer UP and DOWN messages to convey capabilities as well as Route Peer Up and Down messages to convey capabilities as well as Route
Monitor messages to convey Loc-RIB. In this sense, the peer that Monitor messages to convey Loc-RIB. In this sense, the peer that
conveys the Loc-RIB is a local router emulated peer. conveys the Loc-RIB is a locally emulated peer.
6.1.1. Multiple Loc-RIB Peers 6.1.1. Multiple Loc-RIB Peers
There MUST be multiple emulated peers for each Loc-RIB instance, such There MUST be at least one emulated peer for each Loc-RIB instance,
as with VRFs. The BMP receiver identifies the Loc-RIB by the peer such as with VRFs. The BMP receiver identifies the Loc-RIB by the
header distinguisher and BGP ID. The BMP receiver uses the VRF/ peer header distinguisher and BGP ID. The BMP receiver uses the VRF/
Table Name from the PEER UP information to associate a name to the Table Name from the Peer Up information to associate a name to the
Loc-RIB. Loc-RIB.
In some implementations, it might be required to have more than one In some implementations, it might be required to have more than one
emulated peer for Loc-RIB to convey different address families for emulated peer for Loc-RIB to convey different address families for
the same Loc-RIB. In this case, the peer distinguisher and BGP ID the same Loc-RIB. In this case, the peer distinguisher and BGP ID
should be the same since it represents the same Loc-RIB instance. should be the same since they represent the same Loc-RIB instance.
Each emulated peer instance MUST send a PEER UP with the OPEN message Each emulated peer instance MUST send a Peer Up with the OPEN message
indicating the address family capabilities. A BMP receiver MUST indicating the address family capabilities. A BMP receiver MUST
process these capabilities to know which peer belongs to which process these capabilities to know which peer belongs to which
address family. address family.
6.1.2. Filtering Loc-RIB to BMP Receivers 6.1.2. Filtering Loc-RIB to BMP Receivers
There maybe be use-cases where BMP receivers should only receive There maybe be use-cases where BMP receivers should only receive
specific routes from Loc-RIB. For example, IPv4 unicast routes may specific routes from Loc-RIB. For example, IPv4 unicast routes may
include IBGP, EBGP, and IGP but only routes from EBGP should be sent include internal BGP (IBGP), external BGP (EBGP), and IGP but only
to the BMP receiver. Alternatively, it may be that only IBGP and routes from EBGP should be sent to the BMP receiver. Alternatively,
EBGP that should be sent and IGP redistributed routes should be it may be that only IBGP and EBGP that should be sent and IGP
excluded. In these cases where the Loc-RIB is filtered, the F flag redistributed routes should be excluded. In these cases where the
is set to 1 to indicate to the BMP receiver that the Loc-RIB is Loc-RIB is filtered, the F flag is set to 1 to indicate to the BMP
filtered. If multiple filters are associated to the same Loc-RIB, a receiver that the Loc-RIB is filtered. If multiple filters are
Table Name MUST be used in order to allow a BMP receiver to make the associated to the same Loc-RIB, a Table Name MUST be used in order to
right associations. allow a BMP receiver to make the right associations.
6.1.3. Changes to existing BMP sessions 6.1.3. Changes to existing BMP sessions
In case of any change that results in the alteration of behaviour of In case of any change that results in the alteration of behavior of
an existing BMP session, ie. changes to filtering and table names, an existing BMP session, ie. changes to filtering and table names,
the session MUST be bounced with a Peer DOWN/Peer UP sequence. the session MUST be bounced with a Peer Down/Peer Up sequence.
7. Security Considerations 7. Security Considerations
The same considerations as in section 11 of [RFC7854] apply to this The same considerations as in section 11 of [RFC7854] apply to this
document. Implementations of this protocol SHOULD require to document. Implementations of this protocol SHOULD require that
establish sessions with authorized and trusted monitoring devices. sessions are only established with authorized and trusted monitoring
It is also believed that this document does not add any additional devices. It is also believed that this document does not add any
security considerations. additional security considerations.
8. IANA Considerations 8. IANA Considerations
This document requests that IANA assign the following new parameters This document requests that IANA assign the following new parameters
to the BMP parameters name space (https://www.iana.org/assignments/ to the BMP parameters name space (https://www.iana.org/assignments/
bmp-parameters/bmp-parameters.xhtml). bmp-parameters/bmp-parameters.xhtml).
8.1. BMP Peer Type 8.1. BMP Peer Type
This document defines a new peer type (Section 4.1): This document defines a new peer type (Section 4.1):
* Peer Type = 3: Loc-RIB Instance Peer * Peer Type = 3: Loc-RIB Instance Peer
8.2. BMP Peer Flags 8.2. BMP Loc-RIB Instance Peer Flags
This document defines a new flag (Section 4.2) and proposes that peer This document requests IANA to rename "BMP Peer Flags" to "BMP Peer
flags are specific to the peer type: Flags for Peer Types 0 through 2" and create a new registry named
"BMP Peer Flags for Loc-RIB Instance Peer Type 3" This document
defines that peer flags are specific to the Loc-RIB instance peer
type. As defined in (Section 4.2):
* The F flag indicates that the Loc-RIB is filtered. This indicates * Flag 4: The F flag indicates that the Loc-RIB is filtered. This
that the Loc-RIB does not represent the complete routing table. indicates that the Loc-RIB does not represent the complete routing
table.
8.3. Peer UP Information TLV Flags 0 through 3 and 5 through 7 are unassigned. The registration
procedure for the registry is "Standards Action".
This document defines the following new BMP PEER UP informational 8.3. Peer Up Information TLV
message TLV types (Section 5.2.1):
This document requests that IANA rename "BMP Initiation Message TLVs"
registry to "BMP Initiation and Peer Up Information TLVs." section
4.4 of [RFC7854] defines that both Initiation and Peer Up share the
same information TLVs. This document defines the following new BMP
Peer Up information TLV type (Section 5.2.1):
* Type = 3: VRF/Table Name. The Information field contains a UTF-8 * Type = 3: VRF/Table Name. The Information field contains a UTF-8
string whose value MUST be equal to the value of the VRF or table string whose value MUST be equal to the value of the VRF or table
name (e.g. RD instance name) being conveyed. The string size name (e.g., RD instance name) being conveyed. The string size
MUST be within the range of 1 to 255 bytes. MUST be within the range of 1 to 255 bytes.
8.4. Peer Down Reason code 8.4. Peer Down Reason code
This document defines the following new BMP Peer Down reason code This document defines the following new BMP Peer Down reason code
(Section 5.3): (Section 5.3):
* Type = 6: Local system closed, TLV data follows. * Type = 6: Local system closed, TLV data follows.
9. Normative References 9. Normative References
skipping to change at page 14, line 34 skipping to change at page 13, line 44
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
Border Gateway Protocol 4 (BGP-4)", RFC 4271, Border Gateway Protocol 4 (BGP-4)", RFC 4271,
DOI 10.17487/RFC4271, January 2006, DOI 10.17487/RFC4271, January 2006,
<https://www.rfc-editor.org/info/rfc4271>. <https://www.rfc-editor.org/info/rfc4271>.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", RFC 5226,
DOI 10.17487/RFC5226, May 2008,
<https://www.rfc-editor.org/info/rfc5226>.
[RFC7854] Scudder, J., Ed., Fernando, R., and S. Stuart, "BGP [RFC7854] Scudder, J., Ed., Fernando, R., and S. Stuart, "BGP
Monitoring Protocol (BMP)", RFC 7854, Monitoring Protocol (BMP)", RFC 7854,
DOI 10.17487/RFC7854, June 2016, DOI 10.17487/RFC7854, June 2016,
<https://www.rfc-editor.org/info/rfc7854>. <https://www.rfc-editor.org/info/rfc7854>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
10. Informative References
[RFC7911] Walton, D., Retana, A., Chen, E., and J. Scudder,
"Advertisement of Multiple Paths in BGP", RFC 7911,
DOI 10.17487/RFC7911, July 2016,
<https://www.rfc-editor.org/info/rfc7911>.
Acknowledgements Acknowledgements
The authors would like to thank John Scudder, Jeff Haas and Mukul The authors would like to thank John Scudder, Jeff Haas and Mukul
Srivastava for their valuable input. Srivastava for their valuable input.
Authors' Addresses Authors' Addresses
Tim Evens Tim Evens
Cisco Systems Cisco Systems
2901 Third Avenue, Suite 600 2901 Third Avenue, Suite 600
 End of changes. 64 change blocks. 
180 lines changed or deleted 184 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/