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