draft-ietf-grow-bmp-local-rib-09.txt | draft-ietf-grow-bmp-local-rib-10.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: 18 July 2021 P. Lucente | Expires: 9 September 2021 P. Lucente | |||
NTT Communications | NTT Communications | |||
14 January 2021 | 8 March 2021 | |||
Support for Local RIB in BGP Monitoring Protocol (BMP) | Support for Local RIB in BGP Monitoring Protocol (BMP) | |||
draft-ietf-grow-bmp-local-rib-09 | draft-ietf-grow-bmp-local-rib-10 | |||
Abstract | Abstract | |||
The BGP Monitoring Protocol (BMP) defines access to various Routing | The BGP Monitoring Protocol (BMP) defines access to various Routing | |||
Information Bases (RIBs). This document updates BMP (RFC 7854) by | Information Bases (RIBs). This document updates BMP (RFC 7854) by | |||
adding access to the Local Routing Information Base (Loc-RIB), as | adding access to the Local Routing Information Base (Loc-RIB), as | |||
defined in RFC 4271. The Loc-RIB contains the routes that have been | defined in RFC 4271. The Loc-RIB contains the routes that have been | |||
selected by the local BGP speaker's Decision Process. | selected by the local BGP speaker's Decision Process. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
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 18 July 2021. | This Internet-Draft will expire on 9 September 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 3, line 41 ¶ | skipping to change at page 3, line 41 ¶ | |||
| 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] | Figure 2 (Locally Originated into Loc-RIB) illustrates how | |||
follows a similar flow where the redistributed or otherwise | redistributed or otherwise originated routes get installed into the | |||
originated routes get installed into the Loc-RIB based on the | Loc-RIB based on the decision process selection in RFC 4271 | |||
decision process selection. | [RFC4271]. | |||
/--------------------------------------------------------\ | /--------------------------------------------------------\ | |||
| | | | | | |||
| +----------+ +----------+ +----------+ +----------+ | | | +----------+ +----------+ +----------+ +----------+ | | |||
| | IS-IS | | OSPF | | Static | | BGP | | | | | IS-IS | | OSPF | | Static | | BGP | | | |||
| +----------+ +----------+ +----------+ +----------+ | | | +----------+ +----------+ +----------+ +----------+ | | |||
| | | | | | | | | | | | | | |||
| | | | | | | | | | |||
| | Redistributed or originated into BGP | | | | | Redistributed or originated into BGP | | | |||
| | | | | | | | | | |||
skipping to change at page 4, line 41 ¶ | skipping to change at page 4, line 41 ¶ | |||
flow records to Loc-RIB entries, only need to collect and monitor | flow records to Loc-RIB entries, only need to collect and monitor | |||
the routes that are actually selected and used. | the routes that are actually selected and used. | |||
Requiring the applications to collect all Adj-RIB-In Post-Policy | Requiring the applications to collect all Adj-RIB-In Post-Policy | |||
data forces the applications to receive a potentially large | data forces the applications to receive a potentially large | |||
unwanted data set and to perform the BGP decision process | unwanted data set and to perform the BGP decision process | |||
selection, which includes having access to the IGP next-hop | selection, which includes having access to the 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 needs to | |||
have access to the Loc-RIB. | have access to the Loc-RIB. | |||
* It is common to see frequent changes over many BGP peers, but | * It is common to see frequent changes over many BGP peers, but | |||
those changes do not always result in the router's Loc-RIB | those changes do not always result in the router's Loc-RIB | |||
changing. The change in the Loc-RIB can have a direct impact on | changing. The change in the Loc-RIB can have a direct impact on | |||
the forwarding state. It can greatly reduce time to troubleshoot | the forwarding state. It can greatly reduce time to troubleshoot | |||
and resolve issues if operators had the history of Loc-RIB | and resolve issues if operators have the history of Loc-RIB | |||
changes. For example, a performance issue might have been seen | 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. | |||
* 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 | |||
skipping to change at page 6, line 46 ¶ | skipping to change at page 6, line 46 ¶ | |||
Figure 3: Alternative 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: | BMP lacking access to Loc-RIB introduces the need for additional | |||
resources: | ||||
* Requires at least two routers when only one router was to be | * Requires at least two routers when only one router was to be | |||
monitored. | monitored. | |||
* Requires additional BGP peering to collect the received updates | * Requires additional BGP peering to collect the received updates | |||
when peering may have not even been required in the first place. | when peering may have not even been required in the first place. | |||
For example, VRFs with no peers, redistributed BGP-LS with no | For example, 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 by the lack of access to Loc-RIB in order to | |||
correlate) peer to router Loc-RIB: | derive (e.g. correlate) peer to router Loc-RIB: | |||
* Adj-RIB-Out received as Adj-RIB-In from another router may have a | * Adj-RIB-Out received as Adj-RIB-In from another router may have a | |||
policy applied that filters, generates aggregates, suppresses more | policy applied that filters, generates aggregates, suppresses more | |||
specifics, manipulates attributes, or filters routes. Not only | 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. | |||
skipping to change at page 8, line 4 ¶ | skipping to change at page 8, line 4 ¶ | |||
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 | * BGP Instance: 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. | |||
* Adj-RIB-In: As defined in [RFC4271], "The Adj-RIBs-In contains | * Adj-RIB-In: As defined in [RFC4271], "The Adj-RIBs-In contains | |||
unprocessed routing information that has been advertised to the | unprocessed routing information that has been advertised to the | |||
local BGP speaker by its peers." This is also referred to as the | local BGP speaker by its peers." This is also referred to as the | |||
pre-policy Adj-RIB-In in this document. | pre-policy Adj-RIB-In in this document. | |||
* Adj-RIB-Out: As defined in [RFC4271], "The Adj-RIBs-Out contains | * Adj-RIB-Out: As defined in [RFC4271], "The Adj-RIBs-Out contains | |||
the routes for advertisement to specific peers by means of the | the routes for advertisement to specific peers by means of the | |||
skipping to change at page 8, line 47 ¶ | skipping to change at page 8, line 47 ¶ | |||
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: | |||
* 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. If locally sourced routes | |||
be conveyed using the Loc-RIB instance peer type. | are communicated using BMP, they MUST be conveyed using the Loc-RIB | |||
instance peer type. | ||||
The per-peer header flags for Loc-RIB Instance Peer type are defined | The per-peer header flags for Loc-RIB Instance Peer type are defined | |||
as follows: | as follows: | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|F| Reserved | | |F| Reserved | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
* 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 as described in section 9.1 of [RFC4271]. These routes | |||
from BGP peers via its Adj-RIBs-In post-policy, as well as routes | include those learned from BGP peers via its Adj-RIBs-In post-policy, | |||
learned by other means section 9.4 of [RFC4271]. Examples of these | as well as routes learned by other means as per section 9.4 of | |||
include redistribution of routes from other protocols into BGP or | [RFC4271]. Examples of these include redistribution of routes from | |||
otherwise locally originated (ie. aggregate routes). | other protocols into BGP or otherwise locally originated (ie. | |||
aggregate routes). | ||||
As mentioned in Section 4.2 a subset of Loc-RIB routes MAY be sent to | 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 section 4.2 of | |||
following values: | [RFC7854] MUST use the following values: | |||
* Peer Type: Set to 3 to indicate Loc-RIB Instance Peer. | * Peer Type: Set to 3 to indicate Loc-RIB Instance Peer. | |||
* Peer Distinguisher: Zero filled if the Loc-RIB represents the | * Peer Distinguisher: Zero filled if the Loc-RIB represents the | |||
global instance. Otherwise set to the route distinguisher or | global instance. Otherwise set to the route distinguisher or | |||
unique locally defined value of the particular instance the Loc- | unique locally defined value of the particular instance the Loc- | |||
RIB belongs to. | RIB belongs to. | |||
* Peer Address: Zero-filled. Remote peer address is not applicable. | * Peer Address: Zero-filled. Remote peer address is not applicable. | |||
The V flag is not applicable with Loc-RIB Instance peer type | The V flag is not applicable with Loc-RIB Instance peer type | |||
considering addresses are zero-filed. | considering addresses are zero-filed. | |||
* Peer AS: Set to the BGP instance global or default ASN value. | * Peer AS: Set to the primary router BGP ASN. | |||
* Peer BGP ID: Set to the BGP instance global or RD (e.g. VRF) | * Peer BGP ID: Set to the BGP instance global or RD (e.g. VRF) | |||
specific router-id section 1.1 of [RFC7854]. | specific router-id section 1.1 of [RFC7854]. | |||
* Timestamp: The time when the encapsulated routes were installed in | * Timestamp: The time when the encapsulated routes were installed in | |||
The Loc-RIB, expressed in seconds and microseconds since midnight | The Loc-RIB, expressed in seconds and microseconds since midnight | |||
(zero hour), January 1, 1970 (UTC). If zero, the time is | (zero hour), January 1, 1970 (UTC). If zero, the time is | |||
unavailable. Precision of the timestamp is implementation- | unavailable. Precision of the timestamp is implementation- | |||
dependent. | dependent. | |||
skipping to change at page 10, line 23 ¶ | skipping to change at page 10, line 23 ¶ | |||
Peer UP notifications follow section 4.10 of [RFC7854] with the | Peer UP notifications follow section 4.10 of [RFC7854] with the | |||
following clarifications: | following clarifications: | |||
* Local Address: Zero-filled, local address is not applicable. | * Local Address: Zero-filled, local address is not applicable. | |||
* Local Port: Set to 0, local port is not applicable. | * Local Port: Set to 0, local port is not applicable. | |||
* Remote Port: Set to 0, remote port is not applicable. | * Remote Port: Set to 0, remote port is not applicable. | |||
* Sent OPEN Message: This is a fabricated BGP OPEN message. | * Sent OPEN Message: This is a fabricated BGP OPEN message. | |||
Capabilities MUST include 4-octet ASN and all necessary | Capabilities MUST include the 4-octet ASN and all necessary | |||
capabilities to represent the Loc-RIB route monitoring messages. | capabilities to represent the Loc-RIB route monitoring messages. | |||
Only include capabilities if they will be used for Loc-RIB | Only include capabilities if they will be used for Loc-RIB | |||
monitoring messages. For example, if add-paths is enabled for | monitoring messages. For example, if add-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. | |||
* Received OPEN Message: Repeat of the same Sent Open Message. The | * Received OPEN Message: Repeat of the same Sent Open Message. The | |||
skipping to change at page 11, line 44 ¶ | skipping to change at page 11, line 44 ¶ | |||
Loc-RIB route monitor messages MUST use 4-byte ASN encoding as | Loc-RIB route monitor messages MUST use 4-byte ASN encoding as | |||
indicated in PEER UP sent OPEN message (Section 5.2) capability. | indicated in PEER UP sent OPEN message (Section 5.2) capability. | |||
5.4.2. Granularity | 5.4.2. Granularity | |||
State compression and throttling SHOULD be used by a BMP sender to | State compression and throttling SHOULD be used by a BMP sender to | |||
reduce the amount of route monitoring messages that are transmitted | reduce the amount of route monitoring messages that are transmitted | |||
to BMP receivers. With state compression, only the final resultant | to BMP receivers. With state compression, only the final resultant | |||
updates are sent. | updates are sent. | |||
For example, prefix 10.0.0.0/8 is updated in the Loc-RIB 5 times | For example, prefix 192.0.2.0/24 is updated in the Loc-RIB 5 times | |||
within 1 second. State compression of BMP route monitor messages | within 1 second. State compression of BMP route monitor messages | |||
results in only the final change being transmitted. The other 4 | results in only the final change being transmitted. The other 4 | |||
changes are suppressed because they fall within the compression | changes are suppressed because they fall within the compression | |||
interval. If no compression was being used, all 5 updates would have | interval. If no compression was being used, all 5 updates would have | |||
been transmitted. | been transmitted. | |||
A BMP receiver should expect that Loc-RIB route monitoring | A BMP receiver should expect that Loc-RIB route monitoring | |||
granularity can be different by BMP sender implementation. | granularity can be different by BMP sender implementation. | |||
5.5. Route Mirroring | 5.5. Route Mirroring | |||
End of changes. 16 change blocks. | ||||
26 lines changed or deleted | 29 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/ |