draft-ietf-grow-bmp-local-rib-07.txt   draft-ietf-grow-bmp-local-rib-08.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: November 9, 2020 P. Lucente Expires: 20 May 2021 P. Lucente
NTT Communications NTT Communications
May 8, 2020 16 November 2020
Support for Local RIB in BGP Monitoring Protocol (BMP) Support for Local RIB in BGP Monitoring Protocol (BMP)
draft-ietf-grow-bmp-local-rib-07 draft-ietf-grow-bmp-local-rib-08
Abstract Abstract
The BGP Monitoring Protocol (BMP) defines access to the Adj-RIB-In The BGP Monitoring Protocol (BMP) defines access to various Routing
and locally originated routes (e.g. routes distributed into BGP from Information Bases (RIBs). This document updates BMP (RFC 7854) by
protocols such as static) but not access to the BGP instance Loc-RIB. adding access to the Local Routing Information Base (Loc-RIB), as
This document updates the BGP Monitoring Protocol (BMP) RFC 7854 by defined in RFC 4271. The Loc-RIB contains the routes that have been
adding access to the BGP instance Local-RIB, as defined in RFC 4271 selected by the local BGP speaker's Decision Process.
the routes that have been selected by the local BGP speaker's
Decision Process. These are the routes over all peers, locally
originated, and after best-path selection.
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 November 9, 2020. This Internet-Draft will expire on 20 May 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 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 Provisions Relating to IETF Documents (https://trustee.ietf.org/
(https://trustee.ietf.org/license-info) in effect on the date of license-info) in effect on the date of publication of this document.
publication of this document. Please review these documents Please review these documents carefully, as they describe your rights
carefully, as they describe your rights and restrictions with respect and restrictions with respect to this document. Code Components
to this document. Code Components extracted from this document must extracted from this document must include Simplified BSD License text
include Simplified BSD License text as described in Section 4.e of as described in Section 4.e of the Trust Legal Provisions and are
the Trust Legal Provisions and are provided without warranty as provided without warranty as described in the Simplified BSD License.
described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Current Method to Monitor Loc-RIB . . . . . . . . . . . . 5 1.1. Alternative Method to Monitor Loc-RIB . . . . . . . . . . 5
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 7 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 8 3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 7
4. Per-Peer Header . . . . . . . . . . . . . . . . . . . . . . . 8 4. Per-Peer Header . . . . . . . . . . . . . . . . . . . . . . . 8
4.1. Peer Type . . . . . . . . . . . . . . . . . . . . . . . . 8 4.1. Peer Type . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2. Peer Flags . . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Peer Flags . . . . . . . . . . . . . . . . . . . . . . . 8
5. Loc-RIB Monitoring . . . . . . . . . . . . . . . . . . . . . 9 5. Loc-RIB Monitoring . . . . . . . . . . . . . . . . . . . . . 9
5.1. Per-Peer Header . . . . . . . . . . . . . . . . . . . . . 9 5.1. Per-Peer Header . . . . . . . . . . . . . . . . . . . . . 9
5.2. Peer UP Notification . . . . . . . . . . . . . . . . . . 10 5.2. Peer UP Notification . . . . . . . . . . . . . . . . . . 10
5.2.1. Peer UP Information . . . . . . . . . . . . . . . . . 10 5.2.1. Peer UP Information . . . . . . . . . . . . . . . . . 10
5.3. Peer Down Notification . . . . . . . . . . . . . . . . . 11 5.3. Peer Down Notification . . . . . . . . . . . . . . . . . 11
5.4. Route Monitoring . . . . . . . . . . . . . . . . . . . . 11 5.4. Route Monitoring . . . . . . . . . . . . . . . . . . . . 11
5.4.1. ASN Encoding . . . . . . . . . . . . . . . . . . . . 11 5.4.1. ASN Encoding . . . . . . . . . . . . . . . . . . . . 11
5.4.2. Granularity . . . . . . . . . . . . . . . . . . . . . 11 5.4.2. Granularity . . . . . . . . . . . . . . . . . . . . . 11
5.5. Route Mirroring . . . . . . . . . . . . . . . . . . . . . 12 5.5. Route Mirroring . . . . . . . . . . . . . . . . . . . . . 12
5.6. Statistics Report . . . . . . . . . . . . . . . . . . . . 12 5.6. Statistics Report . . . . . . . . . . . . . . . . . . . . 12
6. Other Considerations . . . . . . . . . . . . . . . . . . . . 12 6. Other Considerations . . . . . . . . . . . . . . . . . . . . 12
6.1. Loc-RIB Implementation . . . . . . . . . . . . . . . . . 12 6.1. Loc-RIB Implementation . . . . . . . . . . . . . . . . . 12
6.1.1. Multiple Loc-RIB Peers . . . . . . . . . . . . . . . 12 6.1.1. Multiple Loc-RIB Peers . . . . . . . . . . . . . . . 12
6.1.2. Filtering Loc-RIB to BMP Receivers . . . . . . . . . 12 6.1.2. Filtering Loc-RIB to BMP Receivers . . . . . . . . . 13
6.1.3. Changes to existing BMP sessions . . . . . . . . . . 13 6.1.3. Changes to existing BMP sessions . . . . . . . . . . 13
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 7. Security Considerations . . . . . . . . . . . . . . . . . . . 13
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
8.1. BMP Peer Type . . . . . . . . . . . . . . . . . . . . . . 13 8.1. BMP Peer Type . . . . . . . . . . . . . . . . . . . . . . 13
8.2. BMP Peer Flags . . . . . . . . . . . . . . . . . . . . . 13 8.2. BMP Peer Flags . . . . . . . . . . . . . . . . . . . . . 13
8.3. Peer UP Information TLV . . . . . . . . . . . . . . . . . 13 8.3. Peer UP Information TLV . . . . . . . . . . . . . . . . . 14
8.4. Peer Down Reason code . . . . . . . . . . . . . . . . . . 14 8.4. Peer Down Reason code . . . . . . . . . . . . . . . . . . 14
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 9. Normative References . . . . . . . . . . . . . . . . . . . . 14
9.1. Normative References . . . . . . . . . . . . . . . . . . 14
9.2. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 14 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
This document defines a mechanism to monitor the BGP Local-RIB state This document defines a mechanism to monitor the BGP Loc-RIB state of
for multiple BGP instances without the need for one or more unneeded remote BGP instances without the need to establish BGP peering
BGP peering sessions. The BGP Monitoring Protocol (BMP) suggests sessions. BMP [RFC7854] does not define a method to send the BGP
that locally originated routes are locally sourced routes, such as instance Loc-RIB. It does define in section 8.2 of [RFC7854] locally
redistributed or otherwise added routes to the BGP instance by the originated routes, but these routes are defined as the routes
local router. It does not specify routes that are in the BGP originated into BGP. For example, locally sourced routes that are
instance Loc-RIB, such as routes after best-path selection. redistributed.
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) | |
| +------------------+ +------------------+ | | +------------------+ +------------------+ |
| | | | | | | |
skipping to change at page 3, line 33 skipping to change at page 3, line 39
| | | | | | | |
| 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
As shown in Figure 2, Locally originated section 9.4 of [RFC4271] As shown in Figure 2, Locally originated section 9.4 of [RFC4271]
follows a similar flow where the redistributed or otherwise follows a similar flow where the redistributed or otherwise
originated routes get installed into the Loc-RIB based on the originated routes get installed into the Loc-RIB based on the
decision process selection. decision process selection.
/--------------------------------------------------------\ /--------------------------------------------------------\
| | | |
| +----------+ +----------+ +----------+ +----------+ | | +----------+ +----------+ +----------+ +----------+ |
| | IS-IS | | OSPF | | Static | | BGP | | | | IS-IS | | OSPF | | Static | | BGP | |
skipping to change at page 4, line 27 skipping to change at page 4, line 27
| | Loc-RIB | | | | Loc-RIB | |
| +----------------------------------------------+ | | +----------------------------------------------+ |
| | | |
| ROUTER/BGP Instance | | ROUTER/BGP Instance |
\--------------------------------------------------------/ \--------------------------------------------------------/
Figure 2: Locally Originated into Loc-RIB 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:
o Adj-RIBs-In Post-Policy may still contain hundreds of thousands of * The Adj-RIB-In for a given peer Post-Policy may contain hundreds
routes per-peer but only a handful are selected and installed in of thousands of routes, with only a handful of routes selected and
the Loc-RIB as part of the best-path selection. Some monitoring installed in the Loc-RIB after best-path selection. Some
applications, such as ones that need only to correlate flow monitoring applications, such as ones that need only to correlate
records to Loc-RIB entries, only need to collect and monitor the flow records to Loc-RIB entries, only need to collect and monitor
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 IGP next-hop
metrics. While it is possible to obtain the IGP topology metrics. While it is possible to obtain the IGP topology
information using BGP-LS, it requires the application to implement information using BGP-LS, it requires the application to implement
SPF and possibly CSPF based on additional policies. This is 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 needed to
have access to the Loc-RIB. have access to the Loc-RIB.
o 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 had the history of Loc-RIB and resolve issues if operators had 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 troubleshooting this issue
without Loc-RIB history hides any decision based routing changes without Loc-RIB history hides any decision based routing changes
that might have happened during those five minutes. that might have happened during those five minutes.
o 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-
paths is not enabled or if maximum number of equal paths are paths is not enabled or if maximum number of equal paths are
different from Loc-RIB to routes advertised. different from Loc-RIB to routes advertised.
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. Current 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. At scale
this becomes overly complex and error prone. this becomes overly complex and error prone.
/------------------------------------------------------\ /------------------------------------------------------\
| ROUTER1 BGP Instance | | ROUTER1 BGP Instance |
| | | |
| +--------------------------------------------+ | | +--------------------------------------------+ |
skipping to change at page 6, line 37 skipping to change at page 6, 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: Current method to monitor Loc-RIB Figure 3: 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 3, 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.
The current method introduces the need for additional resources: The current method introduces the need for additional resources:
o 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.
o 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, VRFs with no peers, redistributed BGP-LS with no
peers, segment routing egress peer engineering where no peers have peers, segment routing egress peer engineering where no peers have
link-state address family enabled. link-state address family enabled.
Complexities introduced with current method in order to derive (e.g. Complexities introduced with current method in order to derive (e.g.
correlate) peer to router Loc-RIB: correlate) peer to router Loc-RIB:
o 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 specifics, manipulates attributes, or filters routes. Not only
does this invalidate the Loc-RIB view, it adds complexity when does this invalidate the Loc-RIB view, it adds complexity when
multiple BMP routers may have peering sessions to the same router. multiple BMP routers may have peering sessions to the same router.
The BMP receiver user is left with the error prone task of The BMP receiver user is left with the error prone task of
identifying which peering session is the best representative of identifying which peering session is the best representative of
the Loc-RIB. the Loc-RIB.
o 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 a Loc-RIB to 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. peering
addresses, ASNs, and BGP-IDs). This leads to error prone addresses, ASNs, and BGP-IDs). This leads to error prone
correlations. correlations.
o The BGP-IDs and session addresses to router correlation requires * The BGP-IDs and session addresses to router correlation requires
additional data, such as router inventory. This additional data additional data, such as router inventory. This additional data
provides the BMP receiver the ability to map and correlate the provides the BMP receiver the ability to map and correlate the
BGP-IDs and/or session addresses, but requires the BMP receiver to BGP-IDs and/or session addresses, but requires the BMP receiver to
somehow obtain this data outside of BMP. How this data is somehow obtain this data outside of BMP. How this data is
obtained and the accuracy of the data directly effects the obtained and the accuracy of the data directly effects 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: it refers to an instance of an instance of BGP-4
o BGP Instance: it refers to an instance of an instance of BGP-4
[RFC4271] and considerations in section 8.1 of [RFC7854] do apply [RFC4271] and considerations in section 8.1 of [RFC7854] do apply
to it. to it.
o 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.
o 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."
o Loc-RIB: As defined in section 9.4 of [RFC4271], "The Loc-RIB * Loc-RIB: As defined in section 9.4 of [RFC4271], "The Loc-RIB
contains the routes that have been selected by the local BGP contains the routes that have been selected by the local BGP
speaker's Decision Process." It is further defined that the speaker's Decision Process." Note that the Loc-RIB state as
routes selected include locally originated and routes from all monitored through BMP might also contain routes imported from
peers. other routing protocols such as an IGP, or local static routes.
o Pre-Policy Adj-RIB-Out: The result before applying the outbound * Pre-Policy Adj-RIB-Out: The result before applying the outbound
policy to an Adj-RIB-Out. This normally represents a similar view policy to an Adj-RIB-Out. This normally represents a similar view
of the Loc-RIB but may contain additional routes based on BGP of the Loc-RIB but may contain additional routes based on BGP
peering configuration. peering configuration.
o 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 Loc-RIB with or without RD and local instances.
Section 4.2 of [RFC7854] defines a Local Instance Peer type, which is 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. 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:
o 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 In section 4.2 of [RFC7854], the "locally sourced routes" comment
under the L flag description is removed. Locally sourced routes MUST under the L flag description is removed. Locally sourced routes MUST
be conveyed using the Loc-RIB instance peer type. 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| Reserved |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
o 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 only a subset of Loc-RIB routes is sent to the BMP
collector. collector.
The remaining bits are reserved for future use. They MUST be The remaining 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 protocol Decision
Process section 9.1 of [RFC4271]. These routes include those learned Process section 9.1 of [RFC4271]. These routes include those learned
skipping to change at page 9, line 37 skipping to change at page 9, line 34
otherwise locally originated (ie. aggregate routes). otherwise locally originated (ie. aggregate routes).
As mentioned in Section 4.2 a subset of Loc-RIB routes MAY be sent to As mentioned in Section 4.2 a subset of Loc-RIB routes MAY be sent to
a BMP collector by setting the F flag. 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 MUST use the All peer messages that include a per-peer header MUST use the
following values: following values:
o Peer Type: Set to 3 to indicate Loc-RIB Instance Peer. * Peer Type: Set to 3 to indicate Loc-RIB Instance Peer.
o 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.
o 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 Local-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.
o Peer AS: Set to the BGP instance global or default ASN value. * Peer AS: Set to the BGP instance global or default ASN value.
o 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].
o 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:
o Local Address: Zero-filled, local address is not applicable. * Local Address: Zero-filled, local address is not applicable.
o Local Port: Set to 0, local port is not applicable. * Local Port: Set to 0, local port is not applicable.
o Remote Port: Set to 0, remote port is not applicable. * Remote Port: Set to 0, remote port is not applicable.
o Sent OPEN Message: This is a fabricated BGP OPEN message. * Sent OPEN Message: This is a fabricated BGP OPEN message.
Capabilities MUST include 4-octet ASN and all necessary Capabilities MUST include 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-paths is enabled for
IPv6 and Loc-RIB contains additional paths, the add-paths IPv6 and Loc-RIB contains additional paths, the add-paths
capability should be included for IPv6. In the case of 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 the 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.
o 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 use existing parsing.
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:
o Type = 3: VRF/Table Name. The Information field contains an ASCII * 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. For consistency,
it is RECOMMENDED that the VRF/Table Name always be included. The it is RECOMMENDED that the VRF/Table Name always be included. The
default value of "global" MUST be used for the default Loc-RIB default value of "global" MUST be used for the default Loc-RIB
instance with a zero-filled distinguisher. If the TLV is instance with a zero-filled distinguisher. If the TLV is
included, then it MUST also be included in the Peer Down included, then it MUST also be included in the Peer Down
notification. notification.
skipping to change at page 11, line 18 skipping to change at page 11, line 18
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 TBD3. Following the Peer down notification MUST use reason code TBD3. Following the
reason is data in TLV format. The following peer Down information reason is data in TLV format. The following peer Down information
TLV type is defined: TLV type is defined:
o Type = 3: VRF/Table Name. The Information field contains an ASCII * 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.
skipping to change at page 12, line 15 skipping to change at page 12, line 15
5.5. Route Mirroring 5.5. Route Mirroring
Route mirroring is not applicable to Loc-RIB and Route Mirroring Route mirroring is not applicable to Loc-RIB and 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:
o Stat Type = 8: (64-bit Gauge) Number of routes in Loc-RIB. * Stat Type = 8: (64-bit Gauge) Number of routes in Loc-RIB.
o 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 to implement Loc-RIB efficiently. In all There are several methods for a BGP speaker to implement Loc-RIB
methods, the implementation emulates a peer with Peer UP and DOWN efficiently. In all methods, the implementation emulates a peer with
messages to convey capabilities as well as Route Monitor messages to Peer UP and DOWN messages to convey capabilities as well as Route
convey Loc-RIB. In this sense, the peer that conveys the Loc-RIB is Monitor messages to convey Loc-RIB. In this sense, the peer that
a local router emulated peer. conveys the Loc-RIB is a local router 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 multiple emulated peers for each Loc-RIB instance, such
as with VRFs. The BMP receiver identifies the Loc-RIB by the peer as with VRFs. The BMP receiver identifies the Loc-RIB by the peer
header distinguisher and BGP ID. The BMP receiver uses the VRF/ 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
skipping to change at page 13, line 29 skipping to change at page 13, line 35
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 to
establish sessions with authorized and trusted monitoring devices. establish sessions with authorized and trusted monitoring devices.
It is also believed that this document does not add any additional It is also believed that this document does not add any additional
security considerations. 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 [1]. to the BMP parameters name space (https://www.iana.org/assignments/
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):
o Peer Type = 3: Loc-RIB Instance Peer * Peer Type = 3: Loc-RIB Instance Peer
8.2. BMP Peer Flags 8.2. BMP Peer Flags
This document defines a new flag (Section 4.2) and proposes that peer This document defines a new flag (Section 4.2) and proposes that peer
flags are specific to the peer type: flags are specific to the peer type:
o The F flag indicates that the Loc-RIB is filtered. This indicates * The F flag indicates that the Loc-RIB is filtered. This indicates
that the Loc-RIB does not represent the complete routing table. that the Loc-RIB does not represent the complete routing table.
8.3. Peer UP Information TLV 8.3. Peer UP Information TLV
This document defines the following new BMP PEER UP informational This document defines the following new BMP PEER UP informational
message TLV types (Section 5.2.1): message TLV types (Section 5.2.1):
o Type = 3: VRF/Table Name. The Information field contains an ASCII * 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):
o Type = TBD3: Local system closed, TLV data follows. * Type = TBD3: Local system closed, TLV data follows.
9. References
9.1. Normative References 9. Normative References
[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>.
[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>.
9.2. URIs
[1] https://www.iana.org/assignments/bmp-parameters/bmp-
parameters.xhtml
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
Seattle, WA 98121 Seattle, WA 98121
USA United States of America
Email: tievens@cisco.com Email: tievens@cisco.com
Serpil Bayraktar Serpil Bayraktar
Cisco Systems Cisco Systems
3700 Cisco Way 3700 Cisco Way
San Jose, CA 95134 San Jose, CA 95134
USA United States of America
Email: serpil@cisco.com Email: serpil@cisco.com
Manish Bhardwaj Manish Bhardwaj
Cisco Systems Cisco Systems
3700 Cisco Way 3700 Cisco Way
San Jose, CA 95134 San Jose, CA 95134
USA United States of America
Email: manbhard@cisco.com Email: manbhard@cisco.com
Paolo Lucente Paolo Lucente
NTT Communications NTT Communications
Siriusdreef 70-72 Siriusdreef 70-72
Hoofddorp, WT 2132 2132 Hoofddorp
NL Netherlands
Email: paolo@ntt.net Email: paolo@ntt.net
 End of changes. 60 change blocks. 
105 lines changed or deleted 93 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/