rfc9069v1.txt | rfc9069.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) T. Evens | Internet Engineering Task Force (IETF) T. Evens | |||
Request for Comments: 9069 S. Bayraktar | Request for Comments: 9069 S. Bayraktar | |||
Updates: 7854 M. Bhardwaj | Updates: 7854 M. Bhardwaj | |||
Category: Standards Track Cisco Systems | Category: Standards Track Cisco Systems | |||
ISSN: 2070-1721 P. Lucente | ISSN: 2070-1721 P. Lucente | |||
NTT Communications | NTT Communications | |||
October 2021 | February 2022 | |||
Support for Local RIB in the BGP Monitoring Protocol (BMP) | Support for Local RIB in the BGP Monitoring Protocol (BMP) | |||
Abstract | Abstract | |||
The BGP Monitoring Protocol (BMP) defines access to local Routing | The BGP Monitoring Protocol (BMP) defines access to local Routing | |||
Information Bases (RIBs). This document updates BMP (RFC 7854) by | Information Bases (RIBs). This document updates BMP (RFC 7854) by | |||
adding access to the Local Routing Information Base (Loc-RIB), as | adding access to the Local Routing Information Base (Loc-RIB), as | |||
defined in RFC 4271. The Loc-RIB contains the routes that have been | defined in RFC 4271. The Loc-RIB contains the routes that have been | |||
selected by the local BGP speaker's Decision Process. | selected by the local BGP speaker's Decision Process. | |||
skipping to change at line 36 ¶ | skipping to change at line 36 ¶ | |||
received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
Information about the current status of this document, any errata, | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at | |||
https://www.rfc-editor.org/info/rfc9069. | https://www.rfc-editor.org/info/rfc9069. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 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/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Revised BSD License text as described in Section 4.e of the | |||
the Trust Legal Provisions and are provided without warranty as | Trust Legal Provisions and are provided without warranty as described | |||
described in the Simplified BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction | 1. Introduction | |||
1.1. Alternative Method to Monitor Loc-RIB | 1.1. Alternative Method to Monitor Loc-RIB | |||
2. Terminology | 2. Terminology | |||
3. Definitions | 3. Definitions | |||
4. Per-Peer Header | 4. Per-Peer Header | |||
4.1. Peer Type | 4.1. Peer Type | |||
4.2. Peer Flags | 4.2. Peer Flags | |||
skipping to change at line 80 ¶ | skipping to change at line 80 ¶ | |||
6.1.1. Multiple Loc-RIB Peers | 6.1.1. Multiple Loc-RIB Peers | |||
6.1.2. Filtering Loc-RIB to BMP Receivers | 6.1.2. Filtering Loc-RIB to BMP Receivers | |||
6.1.3. Changes to Existing BMP Sessions | 6.1.3. Changes to Existing BMP Sessions | |||
7. Security Considerations | 7. Security Considerations | |||
8. IANA Considerations | 8. IANA Considerations | |||
8.1. BMP Peer Type | 8.1. BMP Peer Type | |||
8.2. BMP Loc-RIB Instance Peer Flags | 8.2. BMP Loc-RIB Instance Peer Flags | |||
8.3. Peer Up Information TLV | 8.3. Peer Up Information TLV | |||
8.4. Peer Down Reason Code | 8.4. Peer Down Reason Code | |||
8.5. Deprecated Entries | 8.5. Deprecated Entries | |||
9. Normative References | 9. References | |||
10. Informative References | 9.1. Normative References | |||
9.2. Informative References | ||||
Acknowledgements | Acknowledgements | |||
Authors' Addresses | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
This document defines a mechanism to monitor the BGP Loc-RIB state of | This document defines a mechanism to monitor the BGP Loc-RIB state of | |||
remote BGP instances without the need to establish BGP peering | remote BGP instances without the need to establish BGP peering | |||
sessions. BMP [RFC7854] does not define a method to send the BGP | sessions. BMP [RFC7854] does not define a method to send the BGP | |||
instance Loc-RIB. It does define locally originated routes in | instance Loc-RIB. It does define locally originated routes in | |||
Section 8.2 of [RFC7854], but these routes are defined as the routes | Section 8.2 of [RFC7854], but these routes are defined as the routes | |||
that originated into BGP. For example, as described by Section 9.4 | that originated into BGP (e.g., Section 9.4 of [RFC4271]). Loc-RIB | |||
of [RFC4271]. Loc-RIB includes all selected received routes from BGP | includes all selected received routes from BGP peers in addition to | |||
peers in addition to locally originated routes. | locally originated routes. | |||
Figure 1 shows the flow of received routes from one or more BGP peers | Figure 1 shows the flow of received routes from one or more BGP peers | |||
into the Loc-RIB. | into the Loc-RIB. | |||
+------------------+ +------------------+ | +------------------+ +------------------+ | |||
| Peer-A | | Peer-B | | | Peer-A | | Peer-B | | |||
/-- | | ---- | | --\ | /-- | | ---- | | --\ | |||
| | Adj-RIB-In (Pre) | | Adj-RIB-In (Pre) | | | | | Adj-RIB-In (Pre) | | Adj-RIB-In (Pre) | | | |||
| +------------------+ +------------------+ | | | +------------------+ +------------------+ | | |||
| | | | | | | | | | |||
skipping to change at line 234 ¶ | skipping to change at line 235 ¶ | |||
when peering may not have even been required in the first place. | when peering may not have even been required in the first place. | |||
For example, virtual routing and forwarding (VRF) tables with no | For example, virtual routing and forwarding (VRF) tables with no | |||
peers, redistributed BGP-LS with no peers, and segment routing | peers, redistributed BGP-LS with no peers, and segment routing | |||
egress peer engineering where no peers have link-state address | egress peer engineering where no peers have link-state address | |||
family enabled are all situations with no preexisting BGP peers. | family enabled are all situations with no preexisting BGP peers. | |||
Many complexities are introduced when using a received Adj-RIB-In to | Many complexities are introduced when using a received Adj-RIB-In to | |||
infer a router Loc-RIB: | infer a router Loc-RIB: | |||
* Adj-RIB-Out received as Adj-RIB-In from another router may have a | * Adj-RIB-Out received as Adj-RIB-In from another router may have a | |||
policy applied that filters, generates aggregates, suppresses more | policy applied that generates aggregates, suppresses more specific | |||
specific prefixes, manipulates attributes, or filters routes. Not | prefixes, manipulates attributes, or filters routes. Not only | |||
only does this invalidate the Loc-RIB view, it adds complexity | does this invalidate the Loc-RIB view, it adds complexity when | |||
when multiple BMP routers may have peering sessions to the same | multiple BMP routers may have peering sessions to the same router. | |||
router. The BMP receiver user is left with the error-prone task | The BMP receiver user is left with the error-prone task of | |||
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. | |||
* 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 the Loc-RIB of a router, | version information). In order to derive the Loc-RIB of a router, | |||
the router name or other system information is needed. The BMP | the router name or other system information is needed. The BMP | |||
receiver and user are forced to do some type of correlation using | receiver and user are forced to do some type of correlation using | |||
whatever information is available in the peering session (e.g., | whatever information is available in the peering session (e.g., | |||
peering addresses, autonomous system numbers, and BGP | peering addresses, autonomous system numbers, and BGP | |||
skipping to change at line 312 ¶ | skipping to change at line 313 ¶ | |||
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 | |||
If locally sourced routes are communicated using BMP, they MUST be | If locally sourced routes are communicated using BMP, they MUST be | |||
conveyed using the Loc-RIB instance peer type. | conveyed using the Loc-RIB Instance Peer Type. | |||
The per-peer header flags for the Loc-RIB Instance Peer type are | The per-peer header flags for the Loc-RIB Instance Peer Type are | |||
defined as follows: | defined as follows: | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|F| | | | | | | | | |F| | | | | | | | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
* The F flag indicates that the Loc-RIB is filtered. This MUST be | * The F flag indicates that the Loc-RIB is filtered. This MUST be | |||
set when a filter is applied to Loc-RIB routes sent to the BMP | set when a filter is applied to Loc-RIB routes sent to the BMP | |||
collector. | collector. | |||
skipping to change at line 356 ¶ | skipping to change at line 357 ¶ | |||
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 global | Peer Distinguisher: Zero-filled if the Loc-RIB represents the global | |||
instance. Otherwise, set to the route distinguisher or unique | instance. Otherwise, set to the route distinguisher or unique | |||
locally defined value of the particular instance to which the Loc- | locally defined value of the particular instance to which the Loc- | |||
RIB belongs. | RIB belongs. | |||
Peer Address: Zero-filled. The remote peer address is not | Peer Address: Zero-filled. The remote peer address is not | |||
applicable. The V flag is not applicable with the Loc-RIB | applicable. The V flag is not applicable with the Loc-RIB | |||
Instance peer type considering addresses are zero-filled. | Instance Peer Type considering addresses are zero-filled. | |||
Peer Autonomous System (AS): Set to the primary router BGP | Peer Autonomous System (AS): Set to the primary router BGP | |||
autonomous system number (ASN). | autonomous system number (ASN). | |||
Peer BGP ID: Set to the BGP instance global or RD (e.g., VRF) | Peer BGP ID: Set the ID to the router-id of the VRF instance if VRF | |||
specific router ID (Section 1.1 of [RFC7854]). | is used; otherwise, set to the global instance router-id. | |||
Timestamp: The time when the encapsulated routes were installed in | Timestamp: The time when the encapsulated routes were installed in | |||
the Loc-RIB, expressed in seconds and microseconds since midnight | the Loc-RIB, expressed in seconds and microseconds since midnight | |||
(zero hour), January 1, 1970 (UTC). If zero, the time is | (zero hour), January 1, 1970 (UTC). If zero, the time is | |||
unavailable. Precision of the timestamp is implementation | unavailable. Precision of the timestamp is implementation | |||
dependent. | dependent. | |||
5.2. Peer Up Notification | 5.2. Peer Up Notification | |||
Peer Up notifications follow Section 4.10 of [RFC7854] with the | Peer Up notifications follow Section 4.10 of [RFC7854] with the | |||
following clarifications: | following clarifications: | |||
Local Address: Zero-filled; the local address is not applicable. | Local Address: Zero-filled; the local address is not applicable. | |||
Local Port: Set to 0; the local port is not applicable. | Local Port: Set to 0; the local port is not applicable. | |||
Remote Port: Set to 0; the remote port is not applicable. | Remote Port: Set to 0; the remote port is not applicable. | |||
Sent OPEN Message: This is a fabricated BGP OPEN message. | Sent OPEN Message: This is a fabricated BGP OPEN message. | |||
Capabilities MUST include the 4-octet ASN and all necessary | Capabilities MUST include the 4-octet ASN and all necessary | |||
capabilities to represent the Loc-RIB route monitoring messages. | capabilities to represent the Loc-RIB Route Monitoring messages. | |||
Only include capabilities if they will be used for Loc-RIB | Only include capabilities if they will be used for Loc-RIB | |||
monitoring messages. For example, if ADD-PATH is enabled for IPv6 | monitoring messages. For example, if ADD-PATH is enabled for IPv6 | |||
and Loc-RIB contains additional paths, the ADD-PATH capability | and Loc-RIB contains additional paths, the ADD-PATH capability | |||
should be included for IPv6. In the case of ADD-PATH, the | should be included for IPv6. In the case of ADD-PATH, the | |||
capability intent of advertise, receive, or both can be ignored | capability intent of advertise, receive, or both can be ignored | |||
since the presence of the capability indicates enough that | since the presence of the capability indicates enough that | |||
additional paths will be used for IPv6. | additional paths will be used for IPv6. | |||
Received OPEN Message: Repeat of the same sent OPEN message. The | Received OPEN Message: Repeat of the same sent OPEN message. The | |||
duplication allows the BMP receiver to parse the expected received | duplication allows the BMP receiver to parse the expected received | |||
skipping to change at line 453 ¶ | skipping to change at line 454 ¶ | |||
5.4. Route Monitoring | 5.4. Route Monitoring | |||
Route Monitoring messages are used for initial synchronization of the | Route Monitoring messages are used for initial synchronization of the | |||
Loc-RIB. They are also used to convey incremental Loc-RIB changes. | Loc-RIB. They are also used to convey incremental Loc-RIB changes. | |||
As described in Section 4.6 of [RFC7854], "Following the common BMP | As described in Section 4.6 of [RFC7854], "Following the common BMP | |||
header and per-peer header is a BGP Update PDU." | header and per-peer header is a BGP Update PDU." | |||
5.4.1. ASN Encoding | 5.4.1. ASN Encoding | |||
Loc-RIB route monitor messages MUST use a 4-byte ASN encoding as | Loc-RIB Route Monitoring messages MUST use a 4-byte ASN encoding as | |||
indicated in the Peer Up sent OPEN message (Section 5.2) capability. | indicated in the Peer Up sent OPEN message (Section 5.2) capability. | |||
5.4.2. Granularity | 5.4.2. Granularity | |||
State compression and throttling SHOULD be used by a BMP sender to | State compression and throttling SHOULD be used by a BMP sender to | |||
reduce the amount of route monitoring messages that are transmitted | reduce the amount of Route Monitoring messages that are transmitted | |||
to BMP receivers. With state compression, only the final resultant | to BMP receivers. With state compression, only the final resultant | |||
updates are sent. | updates are sent. | |||
For example, prefix 192.0.2.0/24 is updated in the Loc-RIB 5 times | For example, prefix 192.0.2.0/24 is updated in the Loc-RIB 5 times | |||
within 1 second. State compression of BMP route monitor messages | within 1 second. State compression of BMP Route Monitoring 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 the granularity of Loc-RIB Route | |||
granularity can be different by BMP sender implementation. | Monitoring can vary depending on the BMP sender implementation. | |||
5.5. Route Mirroring | 5.5. Route Mirroring | |||
Section 4.7 of [RFC7854] defines Route Mirroring for verbatim | Section 4.7 of [RFC7854] defines Route Mirroring for verbatim | |||
duplication of messages received. This is not applicable to Loc-RIB | duplication of messages received. This is not applicable to Loc-RIB | |||
as PDUs are originated by the router. Any received Route Mirroring | as PDUs are originated by the router. Any received Route Mirroring | |||
messages SHOULD be ignored. | messages SHOULD be ignored. | |||
5.6. Statistics Report | 5.6. Statistics Report | |||
skipping to change at line 569 ¶ | skipping to change at line 570 ¶ | |||
+-----------+-----------------------+ | +-----------+-----------------------+ | |||
Table 1: BMP Peer Type | Table 1: BMP Peer Type | |||
8.2. BMP Loc-RIB Instance Peer Flags | 8.2. BMP Loc-RIB Instance Peer Flags | |||
IANA has renamed "BMP Peer Flags" to "BMP Peer Flags for Peer Types 0 | IANA has renamed "BMP Peer Flags" to "BMP Peer Flags for Peer Types 0 | |||
through 2" and created a new registry named "BMP Peer Flags for Loc- | through 2" and created a new registry named "BMP Peer Flags for Loc- | |||
RIB Instance Peer Type 3". | RIB Instance Peer Type 3". | |||
This document defines peer flags that are being specific to the Loc- | This document defines peer flags that are specific to the Loc-RIB | |||
RIB instance peer type. IANA has registered the following in the | Instance Peer Type. IANA has registered the following in the "BMP | |||
"BMP Peer Flags for Loc-RIB Instance Peer Type 3" registry: | Peer Flags for Loc-RIB Instance Peer Type 3" registry: | |||
+======+=============+ | +======+=============+ | |||
| Flag | Description | | | Flag | Description | | |||
+======+=============+ | +======+=============+ | |||
| 0 | F flag | | | 0 | F flag | | |||
+------+-------------+ | +------+-------------+ | |||
Table 2: Loc-RIB | Table 2: Loc-RIB | |||
Instance Peer Type | Instance Peer Type | |||
As noted in Section 4.2, the F flag indicates that the Loc-RIB is | As noted in Section 4.2, the F flag indicates that the Loc-RIB is | |||
filtered. This indicates that the Loc-RIB does not represent the | filtered. This indicates that the Loc-RIB does not represent the | |||
complete routing table. | complete routing table. | |||
Flags 0 through 3 and 5 through 7 are unassigned. The registration | Flags 1 through 7 are unassigned. The registration procedure for the | |||
procedure for the registry is Standards Action. | registry is Standards Action. | |||
8.3. Peer Up Information TLV | 8.3. Peer Up Information TLV | |||
IANA has renamed the "BMP Initiation Message TLVs" registry to "BMP | IANA has renamed the "BMP Initiation Message TLVs" registry to "BMP | |||
Initiation and Peer Up Information TLVs". Section 4.4 of [RFC7854] | Initiation and Peer Up Information TLVs". Section 4.4 of [RFC7854] | |||
indicates that both Initiation and Peer Up share the same information | indicates that both Initiation and Peer Up share the same information | |||
TLVs. This document defines the following new BMP Peer Up | TLVs. This document defines the following new BMP Peer Up | |||
Information TLV type (Section 5.2.1): | Information TLV type (Section 5.2.1): | |||
+======+================+ | +======+================+ | |||
skipping to change at line 629 ¶ | skipping to change at line 630 ¶ | |||
| 6 | Local system closed, TLV data follows | | | 6 | Local system closed, TLV data follows | | |||
+------+---------------------------------------+ | +------+---------------------------------------+ | |||
Table 4: BMP Peer Down Reason Code | Table 4: BMP Peer Down Reason Code | |||
8.5. Deprecated Entries | 8.5. Deprecated Entries | |||
Per this document, IANA has marked the F Flag entry in the "BMP Peer | Per this document, IANA has marked the F Flag entry in the "BMP Peer | |||
Flags for Peer Types 0 through 2" registry as "deprecated". | Flags for Peer Types 0 through 2" registry as "deprecated". | |||
9. Normative References | 9. References | |||
9.1. 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>. | |||
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | ||||
IANA Considerations Section in RFCs", RFC 5226, | ||||
DOI 10.17487/RFC5226, May 2008, | ||||
<https://www.rfc-editor.org/info/rfc5226>. | ||||
[RFC7854] Scudder, J., Ed., Fernando, R., and S. Stuart, "BGP | [RFC7854] Scudder, J., Ed., Fernando, R., and S. Stuart, "BGP | |||
Monitoring Protocol (BMP)", RFC 7854, | Monitoring Protocol (BMP)", RFC 7854, | |||
DOI 10.17487/RFC7854, June 2016, | DOI 10.17487/RFC7854, June 2016, | |||
<https://www.rfc-editor.org/info/rfc7854>. | <https://www.rfc-editor.org/info/rfc7854>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
10. Informative References | 9.2. Informative References | |||
[RFC7911] Walton, D., Retana, A., Chen, E., and J. Scudder, | [RFC7911] Walton, D., Retana, A., Chen, E., and J. Scudder, | |||
"Advertisement of Multiple Paths in BGP", RFC 7911, | "Advertisement of Multiple Paths in BGP", RFC 7911, | |||
DOI 10.17487/RFC7911, July 2016, | DOI 10.17487/RFC7911, July 2016, | |||
<https://www.rfc-editor.org/info/rfc7911>. | <https://www.rfc-editor.org/info/rfc7911>. | |||
Acknowledgements | Acknowledgements | |||
The authors would like to thank John Scudder, Jeff Haas, and Mukul | The authors would like to thank John Scudder, Jeff Haas, and Mukul | |||
Srivastava for their valuable input. | Srivastava for their valuable input. | |||
End of changes. 20 change blocks. | ||||
39 lines changed or deleted | 37 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/ |