draft-ietf-grow-bmp-local-rib-00.txt | draft-ietf-grow-bmp-local-rib-01.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: December 11, 2017 P. Lucente | Expires: August 27, 2018 P. Lucente | |||
NTT Communications | NTT Communications | |||
June 9, 2017 | February 23, 2018 | |||
Support for Local RIB in BGP Monitoring Protocol (BMP) | Support for Local RIB in BGP Monitoring Protocol (BMP) | |||
draft-ietf-grow-bmp-local-rib-00 | draft-ietf-grow-bmp-local-rib-01 | |||
Abstract | Abstract | |||
The BGP Monitoring Protocol (BMP) defines access to the Adj-RIB-In | The BGP Monitoring Protocol (BMP) defines access to the Adj-RIB-In | |||
and locally originated routes (e.g. routes distributed into BGP from | and locally originated routes (e.g. routes distributed into BGP from | |||
protocols such as static) but not access to the BGP instance Loc-RIB. | protocols such as static) but not access to the BGP instance Loc-RIB. | |||
This document updates the BGP Monitoring Protocol (BMP) RFC 7854 by | This document updates the BGP Monitoring Protocol (BMP) RFC 7854 by | |||
adding access to the BGP instance Local-RIB, as defined in RFC 4271 | adding access to the BGP instance Local-RIB, as defined in RFC 4271 | |||
the routes that have been selected by the local BGP speaker's | the routes that have been selected by the local BGP speaker's | |||
Decision Process. These are the routes over all peers, locally | Decision Process. These are the routes over all peers, locally | |||
originated, and after best-path selection. | 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 http://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 December 11, 2017. | This Internet-Draft will expire on August 27, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
(http://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 Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
skipping to change at page 2, line 26 ¶ | skipping to change at page 2, line 26 ¶ | |||
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 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 . . . . . . . . . . . . . . . . . . 9 | 5.2. Peer UP Notification . . . . . . . . . . . . . . . . . . 9 | |||
5.2.1. Peer UP Information . . . . . . . . . . . . . . . . . 10 | 5.2.1. Peer UP Information . . . . . . . . . . . . . . . . . 10 | |||
5.3. Peer Down Notification . . . . . . . . . . . . . . . . . 10 | 5.3. Peer Down Notification . . . . . . . . . . . . . . . . . 10 | |||
5.4. Route Monitoring . . . . . . . . . . . . . . . . . . . . 10 | 5.4. Route Monitoring . . . . . . . . . . . . . . . . . . . . 10 | |||
5.4.1. ASN Encoding . . . . . . . . . . . . . . . . . . . . 10 | 5.4.1. ASN Encoding . . . . . . . . . . . . . . . . . . . . 11 | |||
5.4.2. Granularity . . . . . . . . . . . . . . . . . . . . . 10 | 5.4.2. Granularity . . . . . . . . . . . . . . . . . . . . . 11 | |||
5.5. Route Mirroring . . . . . . . . . . . . . . . . . . . . . 11 | 5.5. Route Mirroring . . . . . . . . . . . . . . . . . . . . . 11 | |||
5.6. Statistics Report . . . . . . . . . . . . . . . . . . . . 11 | 5.6. Statistics Report . . . . . . . . . . . . . . . . . . . . 11 | |||
6. Other Considerations . . . . . . . . . . . . . . . . . . . . 11 | 6. Other Considerations . . . . . . . . . . . . . . . . . . . . 11 | |||
6.1. Loc-RIB Implementation . . . . . . . . . . . . . . . . . 11 | 6.1. Loc-RIB Implementation . . . . . . . . . . . . . . . . . 11 | |||
6.1.1. Multiple Loc-RIB Peers . . . . . . . . . . . . . . . 11 | 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 . . . . . . . . . 12 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
8.1. BMP Peer Type . . . . . . . . . . . . . . . . . . . . . . 12 | 8.1. BMP Peer Type . . . . . . . . . . . . . . . . . . . . . . 12 | |||
8.2. BMP Peer Flags . . . . . . . . . . . . . . . . . . . . . 12 | 8.2. BMP Peer Flags . . . . . . . . . . . . . . . . . . . . . 13 | |||
8.3. Peer UP Information TLV . . . . . . . . . . . . . . . . . 12 | 8.3. Peer UP Information TLV . . . . . . . . . . . . . . . . . 13 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 13 | |||
9.2. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 9.2. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 13 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
1. Introduction | 1. Introduction | |||
The BGP Monitoring Protocol (BMP) suggests that locally originated | The BGP Monitoring Protocol (BMP) suggests that locally originated | |||
routes are locally sourced routes, such as redistributed or otherwise | routes are locally sourced routes, such as redistributed or otherwise | |||
added routes to the BGP instance by the local router. It does not | added routes to the BGP instance by the local router. It does not | |||
specify routes that are in the BGP instance Loc-RIB, such as routes | specify routes that are in the BGP instance Loc-RIB, such as routes | |||
after best-path selection. | after best-path selection. | |||
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 | |||
skipping to change at page 5, line 27 ¶ | skipping to change at page 5, line 27 ¶ | |||
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 [RFC7854] Locally Originated Routes. | replaces Section 8.2 [RFC7854] Locally Originated Routes. | |||
1.1. Current Method to Monitor Loc-RIB | 1.1. Current 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. While it | monitoring the Adj-RIB-In Pre-Policy from another router. At scale | |||
is possible to derive the Loc-RIB, it is also error prone and | this becomes overly complex and error prone. | |||
complex. | ||||
/------------------------------------------------------\ | /------------------------------------------------------\ | |||
| ROUTER1 BGP Instance | | | ROUTER1 BGP Instance | | |||
| | | | | | |||
| +--------------------------------------------+ | | | +--------------------------------------------+ | | |||
| | Loc-RIB | | | | | Loc-RIB | | | |||
| +--------------------------------------------+ | | | +--------------------------------------------+ | | |||
| | | | | | | | | | |||
| +------------------+ +------------------+ | | | +------------------+ +------------------+ | | |||
| | Peer-ROUTER2 | | Peer-ROUTER3 | | | | | Peer-ROUTER2 | | Peer-ROUTER3 | | | |||
skipping to change at page 7, line 19 ¶ | skipping to change at page 7, line 19 ¶ | |||
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 | o 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 erroneous 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 | o 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 | |||
skipping to change at page 8, line 26 ¶ | skipping to change at page 8, line 26 ¶ | |||
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 | o 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 | ||||
represents Loc-RIB with or without RD and local instances. | ||||
Section 4.2 [RFC7854] defines a Local Instance Peer type, which is | ||||
for the case of non-RD peers that have an instance identifier. | ||||
This document defines the following new peer type: | This document defines the following new peer type: | |||
o Peer Type = TBD: Loc-RIB Instance Peer | o Peer Type = TBD: Loc-RIB Instance Peer | |||
4.2. Peer Flags | 4.2. Peer Flags | |||
In section 4.2 [RFC7854], the "locally sourced routes" comment under | In section 4.2 [RFC7854], the "locally sourced routes" comment under | |||
the L flag description is removed. Locally sourced routes MUST be | the L flag description is removed. Locally sourced routes MUST be | |||
conveyed using the Loc-RIB instance peer type. | conveyed using the Loc-RIB instance peer type. | |||
skipping to change at page 9, line 13 ¶ | skipping to change at page 9, line 16 ¶ | |||
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 | |||
Loc-RIB contains all routes from BGP peers as well as any and all | Loc-RIB contains all routes from BGP peers as well as any and all | |||
routes redistributed or otherwise locally originated. In this | routes redistributed or otherwise locally originated. In this | |||
context, only the BGP instance Loc-RIB is included. Routes from | context, only the BGP instance Loc-RIB is included. Routes from | |||
other routing protocols that have not been redistributed, originated | other routing protocols that have not been redistributed, originated | |||
by or into BGP, or received via Adj-RIB-In are not considered. | by or into BGP, or received via Adj-RIB-In are not considered. | |||
Loc-RIB in this context does not attempt to maintain a pre-policy and | ||||
post-policy representation. Loc-RIB is the selected and used routes, | ||||
which is equivalent to post-policy. | ||||
For example, VRF "Blue" imports several targets but filters out | ||||
specific routes. The end result of VRF "Blue" Loc-RIB is conveyed. | ||||
Even though the import is filtered, the result is complete for VRF | ||||
"Blue" Loc-RIB. The F flag is not set in this case since the Loc-RIB | ||||
is complete and not filtered to the BMP receiver. | ||||
5.1. Per-Peer Header | 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 TBD to indicate Loc-RIB Instance Peer. | o Peer Type: Set to TBD to indicate Loc-RIB Instance Peer. | |||
o Peer Distinguisher: Zero filled if the Loc-RIB represents the | o 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- | |||
skipping to change at page 10, line 22 ¶ | skipping to change at page 10, line 35 ¶ | |||
The following peer UP information TLV types are added: | The following peer UP information TLV types are added: | |||
o Type = TBD: VRF/Table Name. The Information field contains an | o Type = TBD: VRF/Table Name. The Information field contains an | |||
ASCII string whose value MUST be equal to the value of the VRF or | ASCII string whose value MUST be equal to the value of the VRF or | |||
table name (e.g. RD instance name) being conveyed. The string | table name (e.g. RD instance name) being conveyed. The string | |||
size MUST be within the range of 1 to 255 bytes. | size 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" SHOULD be used for the default Loc-RIB | default value of "global" SHOULD be used for the default Loc-RIB | |||
instance with a zero-filled distinguisher. | instance with a zero-filled distinguisher. If the TLV is | |||
included, then it SHOULD also be included in the Peer Down | ||||
notification. | ||||
5.3. Peer Down Notification | 5.3. Peer Down Notification | |||
Peer down notification SHOULD follow the section 4.9 [RFC7854] reason | Peer down notification SHOULD follow the section 4.9 [RFC7854] reason | |||
2. | 2. | |||
The VRF/Table Name informational TLV SHOULD 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. | |||
As defined in section 4.3 [RFC7854], "Following the common BMP header | As defined in section 4.3 [RFC7854], "Following the common BMP header | |||
and per-peer header is a BGP Update PDU." | 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 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 maybe used by a BMP sender | State compression and throttling SHOULD be used by a BMP sender to | |||
implementation to reduce the amount of route monitoring messages that | reduce the amount of route monitoring messages that are transmitted | |||
are transmitted to BMP receivers. With state compression, only the | to BMP receivers. With state compression, only the final resultant | |||
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 10.0.0.0/8 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. | |||
skipping to change at page 13, line 12 ¶ | skipping to change at page 13, line 30 ¶ | |||
table name (e.g. RD instance name) being conveyed. The string | table name (e.g. RD instance name) being conveyed. The string | |||
size MUST be within the range of 1 to 255 bytes. | size MUST be within the range of 1 to 255 bytes. | |||
9. References | 9. References | |||
9.1. Normative 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, | |||
<http://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, | |||
<http://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, | |||
<http://www.rfc-editor.org/info/rfc7854>. | <https://www.rfc-editor.org/info/rfc7854>. | |||
9.2. URIs | 9.2. URIs | |||
[1] https://www.iana.org/assignments/bmp-parameters/bmp- | [1] https://www.iana.org/assignments/bmp-parameters/bmp- | |||
parameters.xhtml | parameters.xhtml | |||
Acknowledgements | Acknowledgements | |||
The authors would like to thank John Scudder for his valuable input. | The authors would like to thank John Scudder for his valuable input. | |||
End of changes. 21 change blocks. | ||||
25 lines changed or deleted | 44 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |