Global Routing Operations T. Evens
Internet-Draft S. Bayraktar
Updates: 7854 (if approved) M. Bhardwaj
Intended status: Standards Track Cisco Systems
Expires: December 9, 2019 P. Lucente
NTT Communications
June 7, 2019

Support for Local RIB in BGP Monitoring Protocol (BMP)


The BGP Monitoring Protocol (BMP) defines access to the Adj-RIB-In and locally originated routes (e.g. routes distributed into BGP from protocols such as static) but not access to the BGP instance Loc-RIB. This document updates the BGP Monitoring Protocol (BMP) RFC 7854 by adding access to the BGP instance Local-RIB, as defined in RFC 4271 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

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at

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 December 9, 2019.

Copyright Notice

Copyright (c) 2019 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 ( in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

Table of Contents

1. Introduction

The BGP Monitoring Protocol (BMP) suggests that locally originated routes are locally sourced routes, such as redistributed or otherwise added routes to the BGP instance by the local router. It does not specify routes that are in the BGP instance Loc-RIB, such as routes after best-path selection.

Figure 1 shows the flow of received routes from one or more BGP peers into the Loc-RIB.

    +------------------+      +------------------+
    | Peer-A           |      | Peer-B           |
/-- |                  | ---- |                  | --\
|   | Adj-RIB-In (Pre) |      | Adj-RIB-In (Pre) |   |
|   +------------------+      +------------------+   |
|                 |                         |        |
| Filters/Policy -|         Filters/Policy -|        |
|                 V                         V        |
|   +------------------       +------------------+   |
|   | Adj-RIB-In (Post)|      | Adj-RIB-In (Post)|   |
|   +------------------       +------------------+   |
|                |                          |        |
|      Selected -|                Selected -|        |
|                V                          V        |
|    +-----------------------------------------+     |
|    |                 Loc-RIB                 |     |
|    +-----------------------------------------+     |
|                                                    |
| ROUTER/BGP Instance                                |

Figure 1: BGP peering Adj-RIBs-In into Loc-RIB

As shown in Figure 2, Locally originated follows a similar flow where the redistributed or otherwise originated routes get installed into the Loc-RIB based on the decision process selection.

|                                                        |
| +----------+  +----------+  +----------+  +----------+ |
| |  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

BGP instance Loc-RIB usually provides a similar, if not exact, forwarding information base (FIB) view of the routes from BGP that the router will use. The following are some use-cases for Loc-RIB access:

This document adds Loc-RIB to the BGP Monitoring Protocol and replaces Section 8.2 Locally Originated Routes.

1.1. Current Method to Monitor Loc-RIB

|  ROUTER1 BGP Instance                                |
|                                                      |
|     +--------------------------------------------+   |
|     |                 Loc-RIB                    |   |
|     +--------------------------------------------+   |
|                    |                    |            |
|    +------------------+     +------------------+     |
|    |   Peer-ROUTER2   |     |   Peer-ROUTER3   |     |
|    | Adj-RIB-Out (Pre)|     | Adj-RIB-Out (Pre)|     |
|    +------------------+     +------------------+     |
|    Filters/Policy -|    Filters/Policy -|            |
|                    V                    V            |
|   +-------------------+     +-------------------+    |
|   | Adj-RIB-Out (Post)|     | Adj-RIB-Out (Post)|    |
|   +-------------------+     +-------------------+    |
|              |                          |            |
\------------- | ------------------------ | -----------/
          BGP  |                     BGP  |
          Peer |                     Peer |
   +------------------+          +------------------+
   |   Peer-ROUTER1   |          |   Peer-ROUTER1   |
/--|                  |--\    /--|                  | --\
|  | Adj-RIB-In (Pre) |  |    |  | Adj-RIB-In (Pre) |   |
|  +------------------+  |    |  +------------------+   |
|                        |    |                         |
| ROUTER2/BGP Instance   |    | ROUTER3/BGP Instance    |
\------------------------/    \-------------------------/
            |                              |
            v                              v
    ROUTER2 BMP Feed               ROUTER3 BMP Feed

Figure 3: Current method to monitor Loc-RIB

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 monitoring the Adj-RIB-In Pre-Policy from another router. At scale this becomes overly complex and error prone.

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:

Complexities introduced with current method in order to derive (e.g. correlate) peer to router Loc-RIB:

2. Terminology

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

3. Definitions

4. Per-Peer Header

4.1. Peer Type

A new peer type is defined for Loc-RIB to distinguish that it represents Loc-RIB with or without RD and local instances. Section 4.2 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:

4.2. Peer Flags

In section 4.2, 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.

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   |

5. Loc-RIB Monitoring

Loc-RIB contains all routes from BGP peers as well as any and all routes redistributed or otherwise locally originated. In this context, only the BGP instance Loc-RIB is included. Routes from other routing protocols that have not been redistributed, originated by or into BGP, or received via Adj-RIB-In are not considered.

Loc-RIB in this context does not attempt to maintain a pre-policy and post-policy representation. Loc-RIB is the selected and used routes, which is equivalent to post-policy.

For example, VRF "Blue" imports several targets but filters out specific routes. The end result of VRF "Blue" Loc-RIB is conveyed. Even though the import is filtered, the result is complete for VRF "Blue" Loc-RIB. The F flag is not set in this case since the Loc-RIB is complete and not filtered to the BMP receiver.

5.1. Per-Peer Header

All peer messages that include a per-peer header MUST use the following values:

5.2. Peer UP Notification

Peer UP notifications follow section 4.10 with the following clarifications:

5.2.1. Peer UP Information

The following peer UP information TLV type is added:

5.3. Peer Down Notification

Peer down notification MUST use reason code TBD3. Following the reason is data in TLV format. The following peer Down information TLV type is defined:

5.4. Route Monitoring

Route Monitoring messages are used for initial synchronization of the Loc-RIB. They are also used to convey incremental Loc-RIB changes.

As defined in section 4.3, "Following the common BMP header and per-peer header is a BGP Update PDU."

5.4.1. ASN Encoding

Loc-RIB route monitor messages MUST use 4-byte ASN encoding as indicated in PEER UP sent OPEN message 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 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

Route mirroring is not applicable to Loc-RIB.

5.6. Statistics Report

Not all Stat Types are relevant to Loc-RIB. The Stat Types that are relevant are listed below:

6. Other Considerations

6.1. Loc-RIB Implementation

There are several methods to implement Loc-RIB efficiently. In all methods, the implementation emulates a peer with Peer UP and DOWN messages to convey capabilities as well as Route Monitor messages to convey Loc-RIB. In this sense, the peer that conveys the Loc-RIB is a local router emulated peer.

6.1.1. Multiple Loc-RIB Peers

There MUST be multiple emulated peers for each Loc-RIB instance, such as with VRF's. The BMP receiver identifies the Loc-RIB's by the 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 Loc-RIB.

In some implementations, it might be required to have more than one emulated peer for Loc-RIB to convey different address families for 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. Each emulated peer instance MUST send a PEER UP with the OPEN message indicating the address family capabilities. A BMP receiver MUST process these capabilities to know which peer belongs to which address family.

6.1.2. Filtering Loc-RIB to BMP Receivers

There maybe be use-cases where BMP receivers should only receive specific routes from Loc-RIB. For example, IPv4 unicast routes may include IBGP, EBGP, and IGP but only routes from EBGP should be sent to the BMP receiver. Alternatively, it may be that only IBGP and EBGP that should be sent and IGP redistributed routes should be excluded. In these cases where the Loc-RIB is filtered, the F flag is set to 1 to indicate to the BMP receiver that the Loc-RIB is filtered.

7. Security Considerations

It is not believed that this document adds any additional security considerations.

8. IANA Considerations

This document requests that IANA assign the following new parameters to the BMP parameters name space.

8.1. BMP Peer Type

This document defines a new peer type (Section 4.1):

8.2. BMP Peer Flags

This document defines a new flag (Section 4.2) and proposes that peer flags are specific to the peer type:

8.3. Peer UP Information TLV

This document defines the following new BMP PEER UP informational message TLV types (Section 5.2.1):

8.4. Peer Down Reason code

This document defines the following new BMP Peer Down reason code (Section 5.3):

9. Normative References

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.
[RFC4271] Rekhter, Y., Li, T. and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006.
[RFC7854] Scudder, J., Fernando, R. and S. Stuart, "BGP Monitoring Protocol (BMP)", RFC 7854, DOI 10.17487/RFC7854, June 2016.


The authors would like to thank John Scudder and Jeff Haas for their valuable input.

Authors' Addresses

Tim Evens Cisco Systems 2901 Third Avenue, Suite 600 Seattle, WA 98121 USA EMail:
Serpil Bayraktar Cisco Systems 3700 Cisco Way San Jose, CA 95134 USA EMail:
Manish Bhardwaj Cisco Systems 3700 Cisco Way San Jose, CA 95134 USA EMail:
Paolo Lucente NTT Communications Siriusdreef 70-72 Hoofddorp, WT 2132 NL EMail: