使用协议无关组播(PIM)的任播RP


RFC4610:Anycast-RP Using Protocol Independent Multicast (PIM),August 2006

关于本备忘录

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参阅当前版本的“互联网官方协议标准”(STD 1)。这份备忘录的分发是无限的。

版权声明

版权所有(C)互联网协会(2006)。

摘要

此规范允许在仅运行协议无关组播(Protocol Independent Multicast,PIM)的域内使用任播RP(Rendezvous Point,汇集点)。其他组播协议(如组播源发现协议(Multicast Source Discovery Protocol,MSDP),传统上用于解决此问题)不需要支持Anycast-RP。

1、 简介

[使用协议无关组播(PIM)和组播源发现协议(MSDP)的任播汇集点(RP)机制]中描述的任播RP是一种基于ISP的主干网在PIM汇集点(Rendezvous Point,RP)路由器出现故障时用于快速收敛的机制。为了允许接收器和源集合到最近的RP,来自源的报文需要到达所有RP以找到加入的接收器。

接收器寻找源的概念是MSDP旨在解决的源发现的基本问题。然而,如果希望以较少的协议机制保留[I1]带来的任播RP优势,则可以选择从解决方案空间中删除MSDP。

图片

本备忘录扩展了PIM中的Register机制,因此可以在不使用MSDP的情况下保留任播RP功能。

1.1、 术语

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“可”、“不可”、“推荐”、“可能”和“可选”应按照[N2]中的描述进行解释。

2、 概述

*选择单播IP地址作为RP地址。该地址是静态配置的,或者使用动态协议分发给整个域中的所有PIM路由器。

*域中的一组路由器被选择作为该RP地址的RP。这些路由器被称为任播RP集。

图片

*任播RP集中的每个路由器都使用RP地址配置了环回接口。

*任播RP集中的每个路由器还需要一个单独的IP地址,用于RP之间的通信。

*RP地址或覆盖RP地址的前缀被注入域内部的单播路由系统中。

*任播RP集中的每个路由器都配置有任播RP集合中所有其他路由器的地址。这必须在集合中的所有RP中一致配置。

3、 机制

下图示出了使用3个RP的域,其中接收器根据单播路由度量将它们带到哪里而加入到最近的RP,并且2个源将报文发送到它们各自的RP。

本节中描述的规则并不凌驾于[N1]中的规则之上。它们旨在与[N1]中的规则相融合。如果对解释有任何疑问,则以[N1]为先例。

图片

假设上面的场景是完全连接的,其中R1、R1’和R2是一个组的接收器,S1和S3发送到该组。假设RP1、RP2和RP3都被分配了相同的IP地址,该地址被用作任播RP地址(假设IP地址是RPA)。

请注意,域中用于RP地址的地址(任播RP地址)需要与任播RP路由器用于相互通信的地址不同。

图片

当S1开始寻找流量时,使用以下程序:

*S1发送组播报文。

*直接连接到S1的指定路由器(designated router,DR)将形成PIM寄存器消息以发送到任播RP地址(Anycast-RP address,RPA)。单播路由系统将把PIM Register消息传送到最近的RP,在这种情况下是RP1。

*RP1将接收PIM寄存器消息,将其解封装,并将数据包发送到共享树下,以将数据包获得给接收器R1和R1’。

*RP1配置有RP2和RP3的IP地址。由于Register消息不是来自任播RP集中的某个RP,因此RP1假定数据包来自DR。如果Register未寻址到任播RP地址,则表明发生了错误,并且应限制记录速率。

*然后RP1将从S1的DR向RP2和RP3发送Register消息的副本。RP1将使用其自己的IP地址作为PIM寄存器消息的源地址。

*RP1可以通过触发朝向S1的(S1,G)加入消息,但是,RP1必须创建(S1,G)状态。

*RP1向DR发送一个寄存器停止。如果由于某种原因,发送给RP2和RP3的寄存器消息丢失,则当DR中的寄存器抑制定时器到期时,它将重新发送寄存器,以允许任播RP集中的所有RP有另一次机会获得(S,G)状态。

*RP2从RP1接收Register消息,将其解封装,并且还将报文沿着共享树向下发送以将报文获得到接收器R2。

*RP2将寄存器停止发送回RP1。如果RP2决定加入源树,它可能会等待发送Register Stop。RP2应等待,直到它从源树上的源接收到数据后,再发送“寄存器停止”。如果RP2决定等待,则在接收到下一个寄存器时将发送寄存器停止。如果RP2决定不等待,则立即发送“注册停止”。

*RP2可以通过触发朝向S1的(S1,G)的加入消息,但是,RP2必须创建(S1,G)状态。

*RP3从RP1接收Register消息,将其解封装,但由于没有接收器加入该组,因此可以丢弃该报文。

*RP3将寄存器停止发送回RP1。

*RP3创建(S1,G)状态,因此当接收器在S1开始发送后加入时,RP3可以快速加入S1的源树。

*RP1处理来自RP2和RP3中每一个的寄存器停止。在处理“注册停止”消息时没有采取任何特定操作。

图片

S3发送的过程与上述相同,但是RP3向RP1和RP2发送由S3的DR发起的寄存器的副本。因此,该示例显示了域中任何地方与不同RP相关联的源如何能够到达同一域中也与不同RP相关联的所有接收器。

4、 关于本建议书的意见和指南

*只有当从不在任播RP列表中的IP地址接收到寄存器时,RP才会发送寄存器的副本(即,寄存器来自DR而不是另一个RP)。实现必须通过将生存时间(Time to Live,TTL)从Register消息复制到它复制并发送给其他RP的Register消息,来防止每个RP中配置不一致的任播RP集。

*PIM为源注册的每个DR将向任播RP地址发送消息(这导致数据包到达最近的物理RP)。因此,DR逻辑没有变化。

*数据包流向所有接收器,无论它们加入了什么RP。

*源由DR注册到单个RP。接收来自DR的PIM Register消息的RP(根据路由度量,最接近DR的RP)负责将数据包发送到任播RP集中的所有其他RP。

*逻辑仅在RP中更改。逻辑更改用于发送Register消息的副本。寄存器停止处理保持不变。但是,实现可能会禁止发送“寄存器停止”消息以响应从RP接收到的寄存器。

图片

*寄存器和寄存器停止消息的速率限制是端到端完成的。这是来自DR->RP1->{RP2和RP3}。在RP之间不需要特定的速率限制逻辑。

*当拓扑发生变化时,现有的源树会像今天一样根据[N1]进行调整。现有的共享树也会像今天一样根据[N1]进行调整。

*物理RP变化与单播路由收敛一样快,保留了[I1]的优点。

*不支持此规范的RP可以与支持此规范的RP混合使用。然而,非支持者RP不应该具有向其注册的源,而是可以具有加入到其的接收器。

*如果发送了Null寄存器(具有IP报文头且没有IP有效负载的寄存器),则必须将它们复制到任播RP集中的所有RP,以便活动源的源状态保持活动状态。

*任播RP集中的RP数量应保持较小,以便将非本机复制的数量保持在最低限度。

*由于从DR接收寄存器的RP将在向DR发送寄存器停止的同时向其他RP发送寄存器的副本,因此在DR再次发送寄存器消息之前,其他RP中可能存在数据包丢失和丢失状态。

5、 与在任播PIM路由器中运行的MSDP的交互

此组播PIM提案的目的是消除对使用MSDP的依赖。这可以通过删除任播RP之间的MSDP对等来实现。然而,要向PIM路由域之外的路由器通告内部源,并从其他路由域学习外部源,可能仍然需要MSDP。

5.1、 任播PIM存根域功能

在这种能力下,当有内部源需要从外部发布时,从DR或任播RP接收Register消息的任播RP应按照本规范中的描述进行处理,以及如何按照[N1]中的描述处理Register消息。这意味着同一内部源的源活动(Source-Active,SA)可以由多个进行MSDP对等的任播RP发起。除了源域的多个位置将源通告到MSDP基础结构之外,这本身没有什么问题。然而,如果这是不可取的,则一个或多个(而不是所有)任播RP MSDP路由器的配置将仅允许这些路由器为内部源发起SA。在某些情况下,很有可能不是集合中的所有任播RP都会有MSDP对等会话,因此这个问题可以在一定程度上得到缓解。

图片

从任播RP的角度来看,当任播RP通过接收到的Register消息发现源时,无论Register消息是由DR、另一个任播RP成员还是路由器本身发送的,都应将其视为域内部的源。

对于域外部的学习源,MSDP SA消息可以到达多个MSDP对等任播RP。根据[使用协议无关组播(PIM)和组播源发现协议(MSDP)的任播汇集点(RP)机制],应遵守处理SA的规则。也就是说,如果G在域中加入,则向源发送(S,G)加入。如果SA附带数据,则每个进行MSDP对等的任播PIM RP都会将数据转发到其各自的共享树中。

以上假设每个任播RP都具有外部MSDP对等连接。如果不是这样,则具有MSDP对等连接的任播PIM路由器将遵循与从DR或另一个Anycast-RP接收到数据寄存器或空寄存器相同的程序。也就是说,他们将向任播RP集合的其他成员发送Registers。

如果混合了具有和不具有外部MSDP对等连接的任播RP,则必须使用不具有外部MSDP对等连接的集合来配置具有和不具备外部MSDP对等连接的任意播RP。因此,Register消息只发送给任播RP集合中没有外部MSDP对等连接的成员。

此MSDP对等RP生成的Register流量将等于域外部活动源的数量。源活动状态将必须被传送到任播RP集中的所有其他RP,因为MSDP对等RP将不知道与其他RP相关联的组成员身份。为了避免这种周期性的控制流量,建议所有任播RP都配置有外部MSDP对等会话,这样任播RP集中的任何RP都不必代表外部源发起Register消息。

5.2、 任播PIM传输域功能

在路由域中,建议不要将本规范中定义的任播RP集与成员之间的MSDP对等混合。在某些情况下,源发现会起作用,但对于实现来说,哪些源是域的本地源,哪些不是本地源可能并不明显。这可能会影响内部来源的外部MSDP通告。

话虽如此,本文档并未试图通过在传输域内使用任播PIM将MSDP对等域连接在一起。

6、 安全考虑

本节介绍任播RP之间的Register和Register Stop消息的安全考虑。有关DR和RP之间的PIM消息,请参见[N1]。图片6.1、 基于伪造消息的攻击

攻击者可以使用任播RP列表中的一个地址伪造Register消息,以实现以下一种或多种效果:

1.在拒绝服务(denial-of-service,DoS)攻击中覆盖目标RP

2.向RP服务的接收器注入未经授权的数据

3.如果目标RP具有外部MSDP对等,则在其他PIM域中注入未经授权的数据并创建伪造的SA条目

攻击者还可以使用任播RP列表中的某个地址伪造“注册停止”消息。然而,除了拒绝服务之外,这种攻击的效果是有限的,因为RP通常会忽略Register Stop消息。

6.2、 保护寄存器和寄存器停止消息

无法阻止使用伪造的“注册”或“注册停止”消息的DoS攻击。但是RP仍然可以得到保护。例如,RP可以对传入消息进行速率限制。它还可以选择拒绝处理任何“注册停止”消息。实际的保护机制是具体实施的。

可以使用[N1]第6.3.2节中描述的方法来防止未经授权的数据和伪造的Register消息的分发。当RP1向RP2发送寄存器的副本时,RP1充当[N1]描述DR,而RP2充当[N1]描述RP。

如[N1]中所述,RP可以使用唯一的SA和安全参数索引(Security Parameter Index,SPI)来配置,用于到列表中任意播RP的每个成员的流量(寄存器或寄存器停止),但这会导致密钥管理问题;因此,在PIM域中,所有汇集点都处于单个管理控制之下,对于域中的所有注册报文使用相同的认证算法参数(包括密钥)可能是优选的。

7、 参考文献

7.1、 规范性引用文件

[N1] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas, "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", RFC 4601, August 2006.[N2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

7.2、 参考资料

[I1] Kim, D., Meyer, D., Kilmer, H., and D. Farinacci, "Anycast Rendevous Point (RP) mechanism using Protocol Independent Multicast (PIM) and Multicast Source Discovery Protocol (MSDP)", RFC 3446, January 2003.

附录A:可能的配置语言

要使用的一组可能的命令可以是:

ip pim anycast-rp <anycast-rp-addr> <rp-addr>

其中:

<anycast rp-addr>描述了分配给组范围的rp的任播rp集。此IP地址是第一跳和最后一跳PIM路由器用于注册和加入的地址。

<rp-addr>描述注册消息副本发送到的IP地址。此IP地址是指分配给rp路由器的任何地址,不包括<anycast-rp-addr>。

示例:

根据上图,配置命令为:

ip pim anycast-rp RPA RP1ip pim anycast-rp RPA RP2ip pim anycast-rp RPA RP3

备注:

在命令集中包括本地路由器IP地址可能很有用,这样就可以将上面的行剪切并粘贴或脚本化到任播RP集中的所有RP中。

但实施必须知道自己的地址,而不是无意中向自己发送登记册。

完整版权声明

版权所有(C)互联网协会(2006)。

本文件受BCP 78中包含的权利、许可和限制的约束,除其中规定外,作者保留其所有权利。

本文件及其包含的信息均按“原样”提供,贡献者、他/她代表或赞助的组织(如有)、互联网协会和互联网工程工作组不承担任何明示或暗示的担保,包括但不限于任何保证,即使用此处的信息不会侵犯任何权利,或任何隐含的适销性或适用于特定目的的保证。

知识产权

IETF对可能声称与本文件中所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能可用或不可用的程度,不持任何立场;它也不代表它已作出任何独立努力来确定任何此类权利。关于RFC文档中的权限的过程的信息可以在BCP78和BCP79中找到。

向IETF秘书处披露的知识产权的副本和任何许可证的保证,或本规范的实施者或用户试图获得一般许可证或使用此类专有权利的许可的结果,可从IETF在线知识产权库获取,网址为http://www.ietf.org/ipr.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或可能涵盖实施本标准所需技术的其他专有权利。请将信息发送至IETF,网址为ietf-ipr@ietf.org.

致谢

RFC编辑器功能的资金由IETF行政支持活动(IASA)提供。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/209902.html

联系我们
联系我们
分享本页
返回顶部