高级BGP监控协议(BMP)统计类型

admin 2026-07-15 05:37:20 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: RFC9972定义了新的BGP监控协议(BMP)统计类型,用于监控Adj-RIB-In和Adj-RIB-Out路由信息库。文档新增了策略前/后路由计数、入站/出站策略拒绝路由数、RPKI验证状态等64位计量表,并明确了全局与每AFI/SAFI两种粒度。建议BMP实现者同时支持新旧统计类型以保证兼容性,并注意GR/LLGR事件期间资源消耗。 综合评分: 85 文章分类: 技术标准


cover_image

高级BGP监控协议(BMP)统计类型

衡水石头哥 衡水石头哥

铁军哥

2026年7月14日 07:42 北京

在小说阅读器读本章

去阅读

RFC9972:Advanced BGP Monitoring Protocol (BMP) Statistics Types,May 2026

梗概

RFC 7854中描述的BGP监控协议(BGP Monitoring Protocol,BMP)定义了统计消息类型以观察受监控路由器上发生的事件。本文档定义了新的统计类型来监视BMP Adj-RIB-In和Adj-RIB-Out路由信息库(Routing Information Bases,RIB)。

本备忘录的状态

这是一份互联网标准跟踪文档。

本文档是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已接受公众审查,并已被互联网工程指导小组(IESG)批准发布。有关互联网标准的更多信息,请参阅RFC 7841第2节。

有关本文档当前状态、任何勘误表以及如何提供反馈的信息,请访问https://www.rfc-editor.org/info/rfc9972。

版权声明

版权所有(c)2026 IETF Trust和文档作者。版权所有。

本文件受本文件发布之日生效的BCP 78和IETF信托与IETF文件相关的法律规定(https://trustee.ietf.org/license-info)的约束。请仔细阅读这些文件,因为它们描述了您与本文件相关的权利和限制。从本文档中提取的代码组件必须包括《信托法律条款》第4.e节中所述的修订版BSD许可证文本,并且不提供修订版BSD许可证中所述的保证。

1、简介

[RFC7854] 的第4.8节定义了许多不同的BGP监控协议(BGP Monitoring Protocol,BMP)统计类型,以观察受监控路由器上发生的主要事件。计量表要么是计量表,要么是仪表。 [RFC8671]的第6.2节还为受监控路由器的Adj-RIB-Out定义了几种BMP统计类型。

需要新的BMP统计类型来实现更精细的BGP路由监控和分析,以提高运行维护和故障排除能力。

本文档定义了新BMP计量表的仪表。这些新规范(Adj-RIB-In、Adj-RIB-Out、Loc-RIB)的适用范围在第4节中提供。BMP统计报告消息的格式与 [RFC7854] 中定义的保持相同。

1.1、要求语言

本文档中的关键字“必须”、“不得”、“必需”、“应”、“不应”、“应该”、“不应该”、“推荐”、“不推荐”、“可以”和“可选”当且仅当它们出现在所有内容中时,应按照BCP 14 [RFC2119] [RFC8174] 中的描述进行解释。

请注意,关键词的使用是为了强调其对操作的重要性;它们并非正式的实现要求。

2、术语

本文档使用以下术语:

Adj-RIB-In:如 [RFC4271] 1.1节中定义:

Adj-RIBs-In 包含未经处理的路由信息,这些信息已由其对等体通告给本地 BGP 发言者。

策略前Adj-RIB-In:将入站策略应用于Adj-RIB-In之前的结果。请注意,这是一个明确的定义,与 [RFC7854] 第2节中指定的策略前Adj-RIB-In概念一致。

策略后Adj-RIB-In:如 [RFC7854] 第2节中定义:

将入站策略应用于 Adj-RIB-In,但在应用路由选择形成 Loc-RIB 之前。

Adj-RIB-Out:如 [RFC4271] 1.1节中定义:

Adj-RIBs-Out 包含通过本地发言者的 UPDATE 消息向特定对等体发布通告的路径。

Pre-policy Adj-RIB-Out: As defined in Section 3 of [RFC8671]:

策略前Adj-RIB-Out:如 [RFC8671] 第3节中定义:

这是将出站策略应用于 Adj-RIB-Out 之前的结果。通常情况下,这与本地 RIB 中的内容一致。

策略后Adj-RIB-Out:如 [RFC8671] 第3节中定义:

将出站策略应用于 Adj-RIB-Out 的结果。这必须向 BMP 接收方传达实际发送给对等体的内容。

Loc-RIB:如 [RFC4271] 1.1节中定义:

本地路由信息库 (Loc-RIB) 包含本地 BGP 发言者决策过程选择的路由。

请注意,通过BMP监控的Loc-RIB状态还可能包含从其他路由协议(例如IGP或本地静态路由)导入的路由。

Route:如[RFC4271]第1.1节中定义:

将一组目的地与到达这些目的地的路径属性配对的信息单元。

术语“生产者”和“收集器”分别相当于“受监控路由器”和“监控站”。此外,“实现”遵循与[RFC7854]中相同的用法。

3、RIB监控统计

本节定义了 Adj-RIB-In 和 Adj-RIB-Out 监控类型的不同统计类型。其中一些统计类型也适用于 Loc-RIB;更多详情请参阅第 4 节。

3.1、统计格式

BMP统计报告消息携带类型-长度-值(Type-Length-Value,TLV)格式的统计信息。每个计量表都被编码为TLV(统计类型、统计长度、计量表)(请参阅 [RFC7854] 的第4.8节)。在定义各种RIB监控计量表时,“计量表”被称为“值”。

本文档中定义的计量表可以分为两种粒度:全局计量表和Per-AFI/SAFI(参见 [RFC4760])计量表。使用Per-AFI/SAFI描述定义的计量表属于Per-AFI/SAFI计量表,而其他计量表属于全局计量表。全球计量表及其相应的每AFI/SAFI计量表可以同时报告。

Per-AFI/SAFI统计信息仅适用于BGP发言者支持并与其对等体协商的AFI/SAFI。AFI/SAFI值的权威注册表由IANA维护(请参阅 [IANA-AFI] 和 [IANA-SAFI])。

对于全局统计,“计量表”(值)字段是单个64位无符号整数计量表,其中“统计长度”字段必须设置为8。每个全局统计必须在BMP统计报告消息中仅出现一次。

对于Per-AFI/SAFI统计,“计量表”(值)字段是一个11字节结构化值,格式为2字节AFI、1字节SAFI和64位计量表。 “Stat Len”必须设置为11。对于任何给定的每AFI/SAFI统计,重复的(AFI、SAFI)对不得出现在同一BMP统计报告消息中。如果没有要报告该AFI/SAFI的数据,则每个AFI/SAFI计量表不得包含在BMP统计报告消息中。

如果统计信息适用于本地 RIB,则相应 BMP 统计报告消息的 PerPeer 标头中的“对等类型”字段必须设置为 3(本地 RIB 实例对等体)[RFC9069]。否则,“对等类型”字段必须按照 [RFC7854] 第 4.2 节中的定义进行设置。

BMP实现必须在收到时忽略无法识别的统计类型。

3.2、Adj-RIB-In RIB监控统计定义

类型 = 18:(64位计量)策略前Adj-RIB-In中的当前路由数量。该量表类似于 [RFC7854] 中定义的统计类型7,并明确针对策略前Adj-RIB-In。

类型 = 19:(64位计量)每AFI/SAFI策略前Adj-RIB-In中的当前路由数量。该量表类似于 [RFC7854] 第4.8节中定义的Stat Type 9,并明确针对prepolicy Adj-RIB-In。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 20:(64位计量)策略后Adj-RIB-In中的当前路由数量。

类型 = 21:(64位计量)每个AFI/SAFI策略后Adj-RIB-In中的当前路由数量。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 22:(64位计量)入站策略拒绝的每AFI/SAFI策略前Adj-RIB-In中的当前路由数。该量表与 [RFC7854] 第4.8节中定义的统计类型0不同。Stat Type 0是一个32位计量表,是一个单调递增的数字;统计类型22是一个64位计量表,表示由于持续的策略配置更改而被入站策略拒绝的当前路由数量。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 23:(64位计量)入站策略接受的每AFI/SAFI策略后Adj-RIB-In中的当前路由数。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 26:(64位计量)由配置的路由抑制策略抑制的每AFI/SAFI策略后Adj-RIB-In或Loc-RIB中的当前路由数量。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

“抑制”是指已被BGP路由振荡抑制机制声明为抑制的路由,如 [RFC2439] 的2.2节中所述。

类型 = 27:(64位计量)每个AFI/SAFI策略后Adj-RIB-In或Loc-RIB中被平滑重启(Graceful Restart,GR)事件标记为过时的路由的当前数量。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

“过时”是指已被BGP GR机制声明为过时的路由,如 [RFC4724] 的4.1节中所述。

类型 = 28:(64位计量)每个AFI/SAFI策略后Adj-RIB-In或Loc-RIB中被长期平稳重启(LLGR)标记为过时的路由的当前数量。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

“过时”是指已被BGP LLGR机制声明为过时的路由,如 [RFC9494] 的4.3节中所述。

类型 = 29:(64位计量)在超过 [RFC4271] 第6.7节中定义的接收路由阈值之前,策略后Adj-RIB-In中剩余的当前路由数量。

类型 = 30:(64位计量)在超过接收路由阈值之前,策略后Adj-RIB-In中剩余的每AFI/SAFI中的当前路由数,该阈值对应于遵循 [RFC4271] 第6.7节中定义的模型的每AFI/SAFI接受路由的上限。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 31:(64位计量)在超过许可证自定义路由阈值之前,策略后Adj-RIB-In或Loc-RIB中剩余的当前路由数量。如果没有配置此类许可证,或者许可证没有施加硬限制,则不得报告此值。

类型 = 32:(64位计量)在超过许可证自定义路由阈值之前留下的每AFI/SAFI策略后Adj-RIB-In或Loc-RIB中的当前路由数量。如果没有配置此类许可证,或者许可证没有施加硬限制,则不得报告此值。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 33:(64位计量)由于超出本地配置支持的最大AS_PATH长度而被拒绝的策略前Adj-RIB-In中的当前路由数。

类型 = 34:(64位计量)由于超出本地配置支持的最大AS_PATH长度,策略前Adj-RIB-In中每AFI/SAFI中的当前路由数被拒绝。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 35:(64位计量)通过资源公钥基础设施(Resource Public Key Infrastructure,RPKI) [RFC6811] 的路由源授权(Route Origin Authorization,ROA)验证路由源自治系统编号(Autonomous System Number,ASN)后,每个AFI/SAFI策略后Adj-RIB-In中的当前路由数无效。这是由于原始ASN不匹配和前缀长度不匹配而失效的路由总数。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 36:(64位计量)在通过RPKI [RFC6811] 的ROA验证路由源ASN后,验证每个AFI/SAFI策略后Adj-RIB-In中的当前路由数量。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 37:(64位计量)每AFI/SAFI策略后Adj-RIB-In中的当前路由数量,由于缺少RPKI [RFC6811] 的匹配ROA,其RPKI路由源验证状态为NotFound。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

3.3、Adj-RIB-Out RIB监控统计定义

类型 = 38:(64位计量)出站策略拒绝的每AFI/SAFI策略前Adj-RIB-Out中的当前路由数。这些路由是活动路由,如果没有拒绝它们的出站策略,这些路由就会被通告。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

Type = 39:(64位Gauge)当前策略前Adj-RIB-Out中由于AS_PATH长度超过本地配置的最大值而被过滤的路由数量。

类型 = 40:(64位计量)由于AS_PATH长度超过本地配置的最大值而过滤的每AFI/SAFI策略前Adj-RIB-Out中的当前路由数。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 41:(64位计量)通过RPKI [RFC6811] 的ROA验证路由源ASN后,每AFI/SAFI策略后Adj-RIB-Out中的当前路由数无效。这是由于原始ASN不匹配和前缀长度不匹配而失效的路由总数。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 42:(64位计量)在通过RPKI [RFC6811] 的ROA验证路由源ASN后,验证每个AFI/SAFI策略后Adj-RIB-Out中的当前路由数量。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

类型 = 43:(64位计量)每个AFI/SAFI策略后Adj-RIB-Out中的当前路由数量,由于缺少RPKI [RFC6811] 的匹配ROA,其RPKI路由源验证状态为NotFound。

该值的结构为2字节AFI、1字节SAFI和64位计量表。

4、统计适用范围

表1简要列出了本文件中定义的计量表并概述了它们的应用范围。

表1:适用范围

5、实施注意事项

本文档指定了新BMP计量表的计量表。BMP统计报告消息的格式与 [RFC7854] 保持不变。本节概述了新BMP计量表的实施注意事项。

为了向后兼容,并且没有任何其他策略,建议能够生成(类型7和18)和(类型9和19)BMP计量表的BMP生产者同时传输两种相应类型。这允许BMP收集器根据需要处理任一格式,而不会破坏依赖类型7或9的现有实现。在每对中生成哪些统计类型的选择应该被

一些统计信息取决于功能配置,例如GR、LLGR和RPKI;因此,只有在BMP生成器上启用这些功能时,才应生成并发送相应的统计信息。这些计量表包括以下类型:26、27、28、29、30、31、32、33、34、35、36、37、39、40、41、42和43。

一些计量表也与Loc-RIB视图相关 [RFC9069];因此,它们可以在最佳路径选择完成后应用于Loc-RIB视图。这些统计包括类型26、27、28、31和32。当这些统计应用于Loc-RIB视图时,相应BMP统计报告消息的Per-Peer头中的“Peer Type”字段必须设置为3。

某些计量表可能具有逻辑关系(例如,每个AFI/SAFI计数求和到全局总数)。BMP计量表生成器和收集器可以执行一致性检查,但不得假设严格的依赖关系(由于潜在的竞争条件或部分故障)。差异(例如,sum(per-AFI/SAFI) != 全局计数)应记录为警告,但不得中断协议操作。

在活动GR/LLGR事件期间类型27和28的生成和传输会消耗额外的控制平面资源(例如CPU)。BMP计量表生成者应该优先考虑核心GR/LLGR收敛过程。为了避免对重新启动过程产生不利影响,BMP计量表生成器可以选择以较低频率对该值进行采样、缓冲更新或在切换的最关键阶段暂时暂停此类类型的报告。

这些仪表可能会由于手动清除或溢出而重置。BMP计量表生成器和收集器必须跟踪不连续性并记录此异常情况。

6、操作注意事项

本节概述了BMP运算符的新BMP计量表的一些操作注意事项。

新仪表的传输调度和触发机制取决于实现。BMP操作员应确定适当的报告生成和交付策略,包括可配置的时间间隔和阈值。控制新仪表报告的机制应该与现有类型的报告一致。

BMP操作员应该限制统计更新的速率,以尽量减少对控制平面进程的性能影响。BMP运算符应该仅启用必要的统计信息以减少内存和CPU开销。实现还应该支持每个路由器配置统计子集以进行收集和报告。

某些BMP统计生成器或BMP统计生成器中的配置可以丢弃与策略不匹配的路由;因此,在这种情况下,接受的计数(类型23)和Adj-RIB-In计数(类型21)将相同。BMP操作员在解释这些仪表时应该注意这种行为。BMP操作员应该注意,BMP计量表生成器和收集器可以将计量表之间的不一致记录为警告。

7、安全考虑

本文档中定义的过程和协议扩展不影响BMP安全模型。 [RFC7854] 第11节、[RFC8671] 第8节和 [RFC9069] 第7节要求的所有安全和身份验证机制也适用于本文档中定义的仪表。本文档没有添加任何额外的安全注意事项。

受监控设备应配置为实施新仪表的速率限制报告。

8、IANA考虑因素

IANA已在“BMP统计类型”注册表中分配了以下新参数,该注册表是“BGP监控协议(BMP)参数”注册表组 https://www.iana.org/assignments/bmpparameters/ 的一部分。

IANA已将这些条目列出如下。本文档可作为每个条目的参考。

表2:BMP统计类型

9、规范性引用文件

[IANA-AFI] IANA,&nbsp;"Address Family Numbers", <https://www.iana.org/assignments/address-family-numbers>.[IANA-SAFI] IANA,&nbsp;"Subsequent Address Family Identifiers (SAFI) Parameters", <https://www.iana.org/assignments/safi-namespace>.[RFC2119] Bradner, S.,&nbsp;"Key words for use in RFCs to Indicate Requirement Levels", BCP&nbsp;14, RFC&nbsp;2119, DOI&nbsp;10.17487/RFC2119, March&nbsp;1997, <https://www.rfc-editor.org/info/rfc2119>.[RFC2439] Villamizar, C., Chandra, R.,&nbsp;and&nbsp;R. Govindan,&nbsp;"BGP Route Flap Damping", RFC&nbsp;2439, DOI&nbsp;10.17487/RFC2439, November&nbsp;1998, <https://www.rfc-editor.org/info/rfc2439>.[RFC4271] Rekhter, Y., Ed., Li, T., Ed.,&nbsp;and&nbsp;S. Hares, Ed.,&nbsp;"A Border Gateway Protocol 4 (BGP-4)", RFC&nbsp;4271, DOI&nbsp;10.17487/RFC4271, January&nbsp;2006, <https://www.rfc-editor.org/info/rfc4271>.[RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J.,&nbsp;and&nbsp;Y. Rekhter,&nbsp;"Graceful Restart Mechanism for BGP", RFC&nbsp;4724, DOI&nbsp;10.17487/RFC4724, January&nbsp;2007, <https://www.rfc-editor.org/info/rfc4724>.[RFC4760] Bates, T., Chandra, R., Katz, D.,&nbsp;and&nbsp;Y. Rekhter,&nbsp;"Multiprotocol Extensions for BGP-4", RFC&nbsp;4760, DOI&nbsp;10.17487/RFC4760, January&nbsp;2007, <https://www.rfc-editor.org/info/rfc4760>.[RFC6811] Mohapatra, P., Scudder, J., Ward, D., Bush, R.,&nbsp;and&nbsp;R. Austein,&nbsp;"BGP Prefix Origin Validation", RFC&nbsp;6811, DOI&nbsp;10.17487/RFC6811, January&nbsp;2013, <https://www.rfc-editor.org/info/rfc6811>.[RFC7854] Scudder, J., Ed., Fernando, R.,&nbsp;and&nbsp;S. Stuart,&nbsp;"BGP Monitoring Protocol (BMP)", RFC&nbsp;7854, DOI&nbsp;10.17487/RFC7854, June&nbsp;2016, <https://www.rfc-editor.org/info/rfc7854>.[RFC8174] Leiba, B.,&nbsp;"Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP&nbsp;14, RFC&nbsp;8174, DOI&nbsp;10.17487/RFC8174, May&nbsp;2017, <https://www.rfc-editor.org/info/rfc8174>.[RFC8671] Evens, T., Bayraktar, S., Lucente, P., Mi, P.,&nbsp;and&nbsp;S. Zhuang,&nbsp;"Support for Adj-RIB-Out in the BGP Monitoring Protocol (BMP)", RFC&nbsp;8671, DOI&nbsp;10.17487/RFC8671, November&nbsp;2019, <https://www.rfc-editor.org/info/rfc8671>.[RFC9069] Evens, T., Bayraktar, S., Bhardwaj, M.,&nbsp;and&nbsp;P. Lucente,&nbsp;"Support for Local RIB in the BGP Monitoring Protocol (BMP)", RFC&nbsp;9069, DOI&nbsp;10.17487/RFC9069, February&nbsp;2022, <https://www.rfc-editor.org/info/rfc9069>.[RFC9494] Uttaro, J., Chen, E., Decraene, B.,&nbsp;and&nbsp;J. Scudder,&nbsp;"LongLived Graceful Restart for BGP", RFC&nbsp;9494, DOI&nbsp;10.17487/RFC9494, November&nbsp;2023, <https://www.rfc-editor.org/info/rfc9494>.

致谢

作者要感谢Jeff Haas、Mohamed Boucadair、Thomas Graf和Prasad S. Narasimha提供的宝贵意见。

感谢Giuseppe Fioccola的OPSDIR、Jouni Korhonen的GENART以及Bruno Decraene的RTGDIR审核。

感谢Gunter van de Velde、Éric Vyncke和Ketan Talaulikar的IESG审核。

***推荐阅读***

我们的WireGuard管理系统支持手机电脑了!全平台终端配置,支持扫码连接,一键搞定

保姆级教程:一条命令部署OpenVPN管理系统V4版,支持Win/Mac/安卓/iOS全平台接入

成本省下99.7%!用40元的腾讯云服务器自建IPsecVPN,成功对接企业级飞塔防火墙

别再乱选VPN了!实测数据告诉你:为什么L2TP是个“坑”

别再为授权发愁!手把手教你用免费方案白嫖SRv6实验环境

嫌一键部署不过瘾?带你手搓Hermes智能体,主打一个通透

Hyper-V别开!VMware 25H2安装避坑指南,附Hermes新动向

H3C CAS实战:CVM纳管CVK的相爱相杀,这波操作太秀了!

VPP转发性能从10G暴增至24G?揭秘OpenEuler虚拟机的极限压榨术

NVUE不支持OSPFv3?别慌!教你一招搞定SRv6地基

手机也能跑DeepSeek-R1/Qwen3了:零成本搭建AI推理平台

2048卡昇腾910C集群算力集群交付工程手册

2048卡H100算力中心100G无阻塞存储网建设方案


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:铁军哥 衡水石头哥 衡水石头哥《高级BGP监控协议(BMP)统计类型》

评论:0   参与:  0