-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdraft-ietf-grow-bmp-local-rib.xml
791 lines (765 loc) · 35.9 KB
/
draft-ietf-grow-bmp-local-rib.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent" [
<!ENTITY rfc7911 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.7911.xml'>
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC4271 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY RFC7854 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7854.xml">
<!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-grow-bmp-local-rib-13" ipr="trust200902" submissionType="IETF" updates="7854" obsoletes="" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
<!-- xml2rfc v2v3 conversion 3.3.0 -->
<front>
<title abbrev="BMP Loc-RIB">
Support for Local RIB in BGP Monitoring Protocol (BMP)</title>
<seriesInfo name="Internet-Draft" value="draft-ietf-grow-bmp-local-rib-13"/>
<author fullname="Tim Evens" initials="T" surname="Evens">
<organization>Cisco Systems</organization>
<address>
<postal>
<street>2901 Third Avenue, Suite 600</street>
<city>Seattle</city>
<region>WA</region>
<code>98121</code>
<country>USA</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<author fullname="Serpil Bayraktar" initials="S" surname="Bayraktar">
<organization>Cisco Systems</organization>
<address>
<postal>
<street>3700 Cisco Way</street>
<city>San Jose</city>
<region>CA</region>
<code>95134</code>
<country>USA</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<author fullname="Manish Bhardwaj" initials="M" surname="Bhardwaj">
<organization>Cisco Systems</organization>
<address>
<postal>
<street>3700 Cisco Way</street>
<city>San Jose</city>
<region>CA</region>
<code>95134</code>
<country>USA</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<author fullname="Paolo Lucente" initials="P" surname="Lucente">
<organization>NTT Communications</organization>
<address>
<postal>
<street>Siriusdreef 70-72</street>
<city>Hoofddorp</city>
<code>2132</code>
<region>WT</region>
<country>NL</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<date year="2021"/>
<area>General</area>
<workgroup>Global Routing Operations</workgroup>
<keyword>BGP</keyword>
<keyword>BMP</keyword>
<keyword>local-rib</keyword>
<keyword>loc-rib</keyword>
<abstract>
<t>
The BGP Monitoring Protocol (BMP) defines access to local Routing
Information Bases (RIBs). This document updates BMP (RFC 7854) by
adding access to the Local Routing Information Base (Loc-RIB), as
defined in RFC 4271. The Loc-RIB contains the routes that have been
selected by the local BGP speaker's Decision Process.
</t>
</abstract>
</front>
<middle>
<section anchor="Introduction" numbered="true" toc="default">
<name>Introduction</name>
<t>
This document defines a mechanism to monitor the BGP Loc-RIB state
of remote BGP instances without the need to establish BGP peering
sessions.
BMP <xref target="RFC7854" format="default"/> does not define a method to send
the BGP instance Loc-RIB. It does define in
<xref target="RFC7854" format="default">section 8.2 of</xref> locally originated routes,
but these routes are defined as the routes originated into BGP. For example, as
defined by <xref target="RFC4271" format="default">Section 9.4 of</xref>. Loc-RIB
includes all selected received routes from BGP peers in addition to locally
originated routes.
</t>
<t>
<xref target="FigAdjRibInLocRib" format="default"/> shows the flow of received routes from one or more BGP peers
into the Loc-RIB.
</t>
<figure anchor="FigAdjRibInLocRib">
<name>BGP peering Adj-RIBs-In into Loc-RIB</name>
<artwork align="center" name="" type="" alt=""><![CDATA[
+------------------+ +------------------+
| Peer-A | | Peer-B |
/-- | | ---- | | --\
| | Adj-RIB-In (Pre) | | Adj-RIB-In (Pre) | |
| +------------------+ +------------------+ |
| | | |
| Filters/Policy -| Filters/Policy -| |
| V V |
| +------------------+ +------------------+ |
| | Adj-RIB-In (Post)| | Adj-RIB-In (Post)| |
| +------------------+ +------------------+ |
| | | |
| Selected -| Selected -| |
| V V |
| +-----------------------------------------+ |
| | Loc-RIB | |
| +-----------------------------------------+ |
| |
| ROUTER/BGP Instance |
\----------------------------------------------------/
]]></artwork>
</figure>
<t>
The following are some use-cases for Loc-RIB access:
</t>
<ul spacing="normal">
<li>
<t>
The Adj-RIB-In for a given peer Post-Policy may contain hundreds of
thousands of routes, with only a handful of routes selected and installed
in the Loc-RIB after best-path selection.
Some monitoring applications, such as ones that need only to
correlate flow records to Loc-RIB entries, only need to collect
and monitor the routes that are actually selected and used.
</t>
<t>
Requiring the applications to collect all Adj-RIB-In Post-Policy
data forces the applications to receive a potentially
large unwanted data set and to perform the BGP decision process
selection, which includes having access to the interior gateway
protocol (IGP) next-hop metrics. While it is possible to obtain
the IGP topology information using BGP Link-State (BGP-LS),
it requires the application to implement shortest path first (SPF)
and possibly constrained shortest path first (CSPF) based on
additional policies. This is overly complex for such a
simple application that only needs to have access to the Loc-RIB.
</t>
</li>
<li>
It is common to see frequent changes over many BGP peers, but
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 the forwarding state. It can greatly reduce time to
troubleshoot and resolve issues if operators have the history of
Loc-RIB changes. For example, a performance issue might have
been seen for only a duration of 5 minutes. Post-facto
troubleshooting this issue without Loc-RIB history hides any
decision based routing changes that might have happened during
those five minutes.
</li>
<li>
Operators may wish to validate the impact of policies applied
to 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 multi-path prefixes are installed as expected
for all advertising peers, the Adj-RIB-In Post-Policy and Loc-RIB
needs to be compared. This is only possible if the Loc-RIB
is available. Monitoring the Adj-RIB-In for this router from
another router to derive the Loc-RIB is likely to not show same
installed prefixes. For example, the received Adj-RIB-In will
be different if ADD-PATH <xref target="RFC7911" format="default"/>
is not enabled or if maximum supported number of equal paths is different
between Loc-RIB and advertised routes.
</li>
</ul>
<t>
This document adds Loc-RIB to the BGP Monitoring Protocol and
replaces <xref target="RFC7854" format="default">Section 8.2 of</xref> Locally Originated Routes.
</t>
<section numbered="true" toc="default">
<name>Alternative Method to Monitor Loc-RIB</name>
<t>
Loc-RIB is used to build Adj-RIB-Out when advertising routes to a
peer. It is therefore possible to derive the Loc-RIB of a router by
monitoring the Adj-RIB-In Pre-Policy from another router.
This becomes overly complex and error prone when considering the number
of peers being monitored per router.
</t>
<t>
</t>
<figure anchor="FigCurLocRibMon">
<name>Alternative method to monitor Loc-RIB</name>
<artwork align="center" name="" type="" alt=""><![CDATA[
/------------------------------------------------------\
| ROUTER1 BGP Instance |
| |
| +--------------------------------------------+ |
| | Loc-RIB | |
| +--------------------------------------------+ |
| | | |
| +------------------+ +------------------+ |
| | Peer-ROUTER2 | | Peer-ROUTER3 | |
| | Adj-RIB-Out (Pre)| | Adj-RIB-Out (Pre)| |
| +------------------+ +------------------+ |
| Filters/Policy -| Filters/Policy -| |
| V V |
| +-------------------+ +-------------------+ |
| | Adj-RIB-Out (Post)| | Adj-RIB-Out (Post)| |
| +-------------------+ +-------------------+ |
| | | |
\------------- | ------------------------ | -----------/
BGP | BGP |
Peer | Peer |
+------------------+ +------------------+
| Peer-ROUTER1 | | Peer-ROUTER1 |
/--| |--\ /--| | --\
| | Adj-RIB-In (Pre) | | | | Adj-RIB-In (Pre) | |
| +------------------+ | | +------------------+ |
| | | |
| ROUTER2/BGP Instance | | ROUTER3/BGP Instance |
\------------------------/ \-------------------------/
| |
v v
ROUTER2 BMP Feed ROUTER3 BMP Feed
]]></artwork>
</figure>
<t>
The setup needed to monitor the Loc-RIB of a router requires another
router with a peering session to the target router that is to be
monitored. As shown in <xref target="FigCurLocRibMon" format="default"/>, the
target router Loc-RIB is advertised via Adj-RIB-Out
to the BMP router over a standard BGP peering session. The BMP
router then forwards Adj-RIB-In Pre-Policy to the BMP receiver.
</t>
<t>
BMP lacking access to Loc-RIB introduces the need for additional
resources:
</t>
<ul spacing="normal">
<li>
Requires at least two routers when only one router was to be
monitored.
</li>
<li>
Requires additional BGP peering to collect the received updates
when peering may have not even been required in the first
place. For example, virtual routing and forwarding (VRF) tables
with no peers, redistributed BGP-LS with no peers, and
segment routing egress peer engineering where no
peers have link-state address family enabled are all
situations with no preexisting BGP peers.
</li>
</ul>
<t>
Many complexities are introduced when using a received Adj-RIB-In
to infer a router Loc-RIB:
</t>
<ul spacing="normal">
<li>
Adj-RIB-Out received as Adj-RIB-In from another router may have
a policy applied that filters, generates aggregates, suppresses
more specific prefixes, manipulates attributes, or filters routes. Not
only does this invalidate the Loc-RIB view, it adds complexity
when multiple BMP routers may have peering sessions to the same
router. The BMP receiver user is left with the error-prone task of
identifying which peering session is the best representative of
the Loc-RIB.
</li>
<li>
BGP peering is designed to work between administrative domains
and therefore does not need to include internal system level
information of each peering router (e.g., the system name or
version information). In order to derive the Loc-RIB of a router,
the router name or other system information is needed. The BMP
receiver and user are forced to do some type of correlation using
what information is available in the peering session (e.g., peering
addresses, autonomous system numbers, and BGP identifiers).
This leads to error-prone correlations.
</li>
<li>
Correlating BGP identifiers (BGP-ID) and session addresses to a
router requires additional data, such as router inventory. This
additional data provides the BMP receiver the ability to map and
correlate the BGP-IDs and/or session addresses, but requires the
BMP receiver to somehow obtain this data outside of BMP. How this
data is obtained and the accuracy of the data directly affects the
integrity of the correlation.
</li>
</ul>
</section>
</section>
<section numbered="true" toc="default">
<name>Terminology</name>
<t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119" format="default">RFC 2119</xref>
<xref target="RFC8174" format="default">RFC 8174</xref> when, and only when, they
appear in all capitals, as shown here.
</t>
</section>
<section numbered="true" toc="default">
<name>Definitions</name>
<ul spacing="normal">
<li>
BGP Instance: refers to an instance of BGP-4 <xref target="RFC4271" format="default"/>
and considerations in <xref target="RFC7854" format="default">section 8.1 of</xref> do apply to it.
</li>
<li>
Adj-RIB-In: As defined in <xref target="RFC4271" format="default"/>, "The Adj-RIBs-In contains
unprocessed routing information that has been advertised to the
local BGP speaker by its peers." This is also referred to as the
pre-policy Adj-RIB-In in this document.
</li>
<li>
Adj-RIB-Out: As defined in <xref target="RFC4271" format="default"/>, "The Adj-RIBs-Out contains
the routes for advertisement to specific peers by means of the
local speaker's UPDATE messages."
</li>
<li>
Loc-RIB: As defined in <xref target="RFC4271" format="default">section 9.4 of</xref>, "The Loc-RIB
contains the routes that have been selected by the local BGP speaker's Decision
Process." Note that the Loc-RIB state as monitored through BMP might
also contain routes imported from other routing protocols such as an IGP,
or local static routes.
</li>
<li>
Pre-Policy Adj-RIB-Out: The result before applying the outbound
policy to an Adj-RIB-Out. This normally represents a similar view of the
Loc-RIB but may contain additional routes based on BGP peering configuration.
</li>
<li>
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.
</li>
</ul>
</section>
<section numbered="true" toc="default">
<name>Per-Peer Header</name>
<section anchor="PeerType" numbered="true" toc="default">
<name>Peer Type</name>
<t>
A new peer type is defined for Loc-RIB to distinguish that it
represents the router Loc-RIB, which may have a route distinguisher (RD).
<xref target="RFC7854" format="default">Section 4.2 of</xref> defines a Local Instance
Peer type, which is for the case of non-RD peers that have an instance
identifier.
</t>
<t>
This document defines the following new peer type:
</t>
<ul spacing="normal">
<li>
Peer Type = 3: Loc-RIB Instance Peer
</li>
</ul>
</section>
<section anchor="PeerFlags" numbered="true" toc="default">
<name>Peer Flags</name>
<t>
If locally sourced routes are communicated
using BMP, they MUST be conveyed using the Loc-RIB instance peer type.
</t>
<t>
The per-peer header flags for Loc-RIB Instance Peer type are defined
as follows:
</t>
<artwork align="center" name="" type="" alt=""><![CDATA[
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|F| | | | | | | |
+-+-+-+-+-+-+-+-+
]]></artwork>
<ul spacing="normal">
<li>
<t>
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
collector.
</t>
<t>
The unused bits are reserved for future use. They MUST be
transmitted as 0 and their values MUST be ignored on receipt.
</t>
</li>
</ul>
</section>
</section>
<section numbered="true" toc="default">
<name>Loc-RIB Monitoring</name>
<t>
The Loc-RIB contains all routes selected by the BGP Decision Process as
described in <xref target="RFC4271" format="default">section 9.1 of</xref>. These
routes include those learned from BGP peers via its Adj-RIBs-In Post-Policy, as
well as routes learned by other means as per <xref target="RFC4271" format="default">section 9.4 of</xref>.
Examples of these include redistribution of routes from other protocols into BGP
or otherwise locally originated (i.e., aggregate routes).
</t>
<t>
As described in <xref target="FilterLocRib" format="default"/>, a subset of Loc-RIB routes
MAY be sent to a BMP collector by setting the F flag.
</t>
<section numbered="true" toc="default">
<name>Per-Peer Header</name>
<t>
All peer messages that include a per-peer header as defined in
<xref target="RFC7854" format="default">section 4.2 of</xref>
MUST use the following values:
</t>
<ul spacing="normal">
<li>
Peer Type: Set to 3 to indicate Loc-RIB Instance Peer.
</li>
<li>
Peer Distinguisher: Zero filled if the Loc-RIB represents the
global instance. Otherwise set to the route distinguisher or
unique locally defined value of the particular instance the Loc-RIB belongs to.
</li>
<li>
Peer Address: Zero-filled. Remote peer address is not applicable.
The V flag is not applicable with Loc-RIB Instance peer type
considering addresses are zero-filed.
</li>
<li>
Peer AS: Set to the primary router BGP autonomous system number (ASN).
</li>
<li>
Peer BGP ID: Set to the BGP instance global or RD (e.g., VRF)
specific router-id <xref target="RFC7854" format="default">section 1.1 of</xref>.
</li>
<li>
Timestamp: The time when the encapsulated routes were installed in
the Loc-RIB, expressed in seconds and microseconds since midnight
(zero hour), January 1, 1970 (UTC). If zero, the time is unavailable.
Precision of the timestamp is implementation-dependent.
</li>
</ul>
</section>
<section anchor="PeerUpNotify" numbered="true" toc="default">
<name>Peer Up Notification</name>
<t>
Peer Up notifications follow <xref target="RFC7854" format="default">section 4.10 of</xref> with the
following clarifications:
</t>
<ul spacing="normal">
<li>
Local Address: Zero-filled, local address is not applicable.
</li>
<li>
Local Port: Set to 0, local port is not applicable.
</li>
<li>
Remote Port: Set to 0, remote port is not applicable.
</li>
<li>
Sent OPEN Message: This is a fabricated BGP OPEN message.
Capabilities MUST include the 4-octet ASN and all necessary
capabilities to represent the Loc-RIB route monitoring messages.
Only include capabilities if they will be used for Loc-RIB
monitoring messages. For example, if ADD-PATH is enabled for
IPv6 and Loc-RIB contains additional paths, the ADD-PATH
capability should be included for IPv6. In the case of ADD-PATH,
the capability intent of advertise, receive or both can be ignored
since the presence of the capability indicates enough that add-
paths will be used for IPv6.
</li>
<li>
Received OPEN Message: Repeat of the same Sent Open Message. The
duplication allows the BMP receiver to parse the expected
received OPEN message as defined in <xref target="RFC7854" format="default">section 4.10 of</xref>.
</li>
</ul>
<section anchor="PeerUpInfoTlv" numbered="true" toc="default">
<name>Peer Up Information</name>
<t>
The following Peer Up information TLV type is added:
</t>
<ul spacing="normal">
<li>
<t>
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 name (e.g., RD instance name) being conveyed. The string size
MUST be within the range of 1 to 255 bytes.
</t>
<t>
The VRF/Table Name TLV is optionally included to support implementations
that may not have defined a name. If a name is configured, it MUST
be included. The
default value of "global" MUST be used for the default Loc-RIB
instance with a zero-filled distinguisher.
If the TLV is included, then it MUST also be included in the Peer Down notification.
</t>
</li>
</ul>
<t>
Multiple TLVs of the same type can be repeated as part of the same message,
for example to convey a filtered view of a VRF. A BMP receiver should append
multiple TLVs of the same type to a set in order to support alternate or
additional names for the same peer. If multiple strings are included, their
ordering MUST be preserved when they are reported.
</t>
</section>
</section>
<section anchor="PeerDownReasonCode" numbered="true" toc="default">
<name>Peer Down Notification</name>
<t>
Peer Down notification MUST use reason code 6. Following the reason is data
in TLV format. The following Peer Down information TLV type is defined:
</t>
<ul spacing="normal">
<li>
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 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
informational TLV MUST be included if it was in the Peer Up.
</li>
</ul>
</section>
<section numbered="true" toc="default">
<name>Route Monitoring</name>
<t>
Route Monitoring messages are used for initial synchronization of
the Loc-RIB. They are also used to convey incremental Loc-RIB
changes.
</t>
<t>
As defined in <xref target="RFC7854" format="default">section 4.6 of</xref>, "Following the
common BMP header and per-peer header is a BGP Update PDU."
</t>
<section numbered="true" toc="default">
<name>ASN Encoding</name>
<t>
Loc-RIB route monitor messages MUST use 4-byte ASN encoding as indicated
in <xref target="PeerUpNotify" format="default">Peer Up sent OPEN message</xref> capability.
</t>
</section>
<section numbered="true" toc="default">
<name>Granularity</name>
<t>
State compression and throttling SHOULD be used by a BMP sender
to reduce the amount of route monitoring messages that are
transmitted to BMP receivers. With state compression, only the
final resultant updates are sent.
</t>
<t>
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
results in only the final change being transmitted. The other 4
changes are suppressed because they fall within the compression
interval. If no compression was being used, all 5 updates would
have been transmitted.
</t>
<t>
A BMP receiver should expect that Loc-RIB route monitoring granularity
can be different by BMP sender implementation.
</t>
</section>
</section>
<section numbered="true" toc="default">
<name>Route Mirroring</name>
<t>
<xref target="RFC7854" format="default">Section 4.7 of</xref>,
defines Route Mirroring for verbatim duplication of messages received. This
is not applicable to Loc-RIB as PDUs are originated by the router.
Any received Route Mirroring messages SHOULD be ignored.
</t>
</section>
<section numbered="true" toc="default">
<name>Statistics Report</name>
<t>
Not all Stat Types are relevant to Loc-RIB. The Stat Types that
are relevant are listed below:
</t>
<ul spacing="normal">
<li>
Stat Type = 8: (64-bit Gauge) Number of routes in Loc-RIB.
</li>
<li>
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-
bit Gauge.
</li>
</ul>
</section>
</section>
<section numbered="true" toc="default">
<name>Other Considerations</name>
<section numbered="true" toc="default">
<name>Loc-RIB Implementation</name>
<t>
There are several methods for a BGP speaker to implement Loc-RIB efficiently.
In all methods, the implementation emulates a peer with Peer Up and Down
messages to convey capabilities as well as Route Monitor messages to
convey Loc-RIB. In this sense, the peer that conveys the Loc-RIB is
a locally emulated peer.
</t>
<section numbered="true" toc="default">
<name>Multiple Loc-RIB Peers</name>
<t>
There MUST be at least one emulated peer for each Loc-RIB instance,
such as with VRFs. The BMP receiver identifies the Loc-RIB by the peer
header distinguisher and BGP ID. The BMP receiver uses the VRF/Table
Name from the Peer Up information to associate a name to the Loc-RIB.
</t>
<t>
In some implementations, it might be required to have more than one
emulated peer for Loc-RIB to convey different address families for
the same Loc-RIB. In this case, the peer distinguisher and BGP ID
should be the same since they represent the same Loc-RIB instance.
Each emulated peer instance MUST send a Peer Up with the OPEN message
indicating the address family capabilities. A BMP receiver MUST
process these capabilities to know which peer belongs to which
address family.
</t>
</section>
<section anchor="FilterLocRib" numbered="true" toc="default">
<name>Filtering Loc-RIB to BMP Receivers</name>
<t>
There maybe be use-cases where BMP receivers should only receive
specific routes from Loc-RIB. For example, IPv4 unicast routes may
include internal BGP (IBGP), external BGP (EBGP), and IGP but only
routes from EBGP should be sent
to the BMP receiver. Alternatively, it may be that only IBGP and
EBGP that should be sent and IGP redistributed routes should be
excluded. In these cases where the Loc-RIB is filtered, the F flag
is set to 1 to indicate to the BMP receiver that the Loc-RIB is
filtered. If multiple filters are associated to the same Loc-RIB,
a Table Name MUST be used in order to allow a BMP receiver to make
the right associations.
</t>
</section>
<section numbered="true" toc="default">
<name>Changes to existing BMP sessions</name>
<t>
In case of any change that results in the alteration of behavior of
an existing BMP session, ie. changes to filtering and table names, the
session MUST be bounced with a Peer Down/Peer Up sequence.
</t>
</section>
</section>
</section>
<section numbered="true" toc="default">
<name>Security Considerations</name>
<t>
The same considerations as in <xref target="RFC7854" format="default">section 11 of</xref> apply to this
document. Implementations of this protocol SHOULD require that sessions are only established with
authorized and trusted monitoring devices. It is also believed that this document does
not add any additional security considerations.
</t>
</section>
<section numbered="true" toc="default">
<name>IANA Considerations</name>
<t>
This document requests that IANA assign the following new parameters
to the <eref target="https://www.iana.org/assignments/bmp-parameters/bmp-parameters.xhtml">
BMP parameters name space</eref>.
</t>
<section numbered="true" toc="default">
<name>BMP Peer Type</name>
<t>
This document defines a new peer type (<xref target="PeerType" format="default"/>):
</t>
<ul spacing="normal">
<li>
Peer Type = 3: Loc-RIB Instance Peer
</li>
</ul>
</section>
<section numbered="true" toc="default">
<name>BMP Loc-RIB Instance Peer Flags</name>
<t>
This document requests IANA to rename "BMP Peer Flags" to
"BMP Peer Flags for Peer Types 0 through 2" and create a new registry
named "BMP Peer Flags for Loc-RIB Instance Peer Type 3."
This document defines that peer flags are specific to the Loc-RIB instance peer type.
As defined in (<xref target="PeerFlags" format="default"/>):
</t>
<ul spacing="normal">
<li>
Flag 0: The F flag indicates that the Loc-RIB is filtered. This indicates
that the Loc-RIB does not represent the complete routing table.
</li>
</ul>
<t>
Flags 0 through 3 and 5 through 7 are unassigned. The registration procedure for the
registry is "Standards Action".
</t>
</section>
<section numbered="true" toc="default">
<name>Peer Up Information TLV</name>
<t>
This document requests that IANA rename
"BMP Initiation Message TLVs" registry to "BMP Initiation and Peer Up Information TLVs."
<xref target="RFC7854" format="default">section 4.4 of</xref> defines that
both Initiation and Peer Up share the same information TLVs.
This document defines the following new BMP Peer Up information
TLV type (<xref target="PeerUpInfoTlv" format="default"/>):
</t>
<ul spacing="normal">
<li>
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 name (e.g., RD instance name) being conveyed.
The string size MUST be within the range of 1 to 255 bytes.
</li>
</ul>
</section>
<section numbered="true" toc="default">
<name>Peer Down Reason code</name>
<t>
This document defines the following new BMP Peer Down reason code (<xref target="PeerDownReasonCode" format="default"/>):
</t>
<ul spacing="normal">
<li>
Type = 6: Local system closed, TLV data follows.
</li>
</ul>
</section>
<section numbered="true" toc="default">
<name>Deprecated entries</name>
<t>
This document also requests that IANA marks as "deprecated" the F Flag entry in
the "BMP Peer Flags for Peer Types 0 through 2" registry.
</t>
</section>
</section>
</middle>
<back>
<references title="Normative References">
&RFC2119;
&RFC8174;
&RFC4271;
&RFC5226;
&RFC7854;
</references>
<references title="Informative References">
&rfc7911;
</references>
<section anchor="Acknowledgements" numbered="false" toc="default">
<name>Acknowledgements</name>
<t>
The authors would like to thank John Scudder, Jeff Haas and Mukul Srivastava
for their valuable input.
</t>
</section>
</back>
</rfc>