所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

CloudEngine 8800, 7800, 6800, 5800 V200R002C50 配置指南-IP组播

本文档介绍了IP组播的配置,具体包括IP组播基础、IGMP配置、MLD配置、PIM(IPv4)配置、PIM(IPv6)配置、MSDP配置、组播VPN配置、组播路由管理(IPv4)配置、组播路由管理(IPv6)配置、IGMP Snooping配置、MLD Snooping配置、静态组播MAC地址配置、组播VLAN配置和组播网管配置。
评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
双向PIM

双向PIM

基本原理

在某些组播应用中,比如多方电视电话会议、网络游戏,用户主机不仅仅作为接收者接收其他用户主机发送的组播数据,还需要作为组播源向其他用户主机发送组播数据。这种存在大量组播源的应用场景中,如果使用PIM-SM协议构建SPT来转发组播数据,路由器需要为每一个组播源建立一个(S,G)表项,即同一组播组的每个组播源都需要一棵组播分发树来转发组播数据。这就会耗费掉路由器上大量的转发资源,导致设备负担过重。

通过同一组播组的所有组播源共享一棵组播分发树,双向PIM协议可以有效解决上述问题。双向PIM协议以RP为根建立双向RPT,组播数据沿双向RPT由组播源转发至接收者。双向RPT根据(*,G)表项建立,即组播分发树根据组播组来建立,不区分组播源。这样,路由器就无需维护大量的(S,G)表项,从而节约了转发资源。

双向PIM的关键机制包括邻居发现、RP发现、DF(Designated Forwarder)选举、双向RPT构建;同时也可通过配置BSR(Bootstrap Router)管理域来实现单个双向PIM域的精细化管理。

下面根据如图4-16所示的双向PIM网络,详细介绍双向PIM的每一项工作机制。

图4-16 双向PIM网络组网图

邻居发现

双向PIM的邻居发现机制与PIM-SM协议相同,都是通过交互PIM Hello报文,来维护邻居关系和协调各项PIM协议报文参数。只不过双向PIM协议对PIM Hello报文进行了扩展,增加了Bidirectional Capable PIM-Hello参数,表明路由器具有双向PIM能力。

图4-16中的所有路由器,相邻路由器之间都通过交互携带Bidirectional Capable PIM-Hello参数的PIM Hello报文建立了邻居关系,并了解到邻居路由器具备双向PIM能力。

有关邻居发现机制的详细内容请参见“PIM-SM(ASM模型) 邻居发现”

RP发现

双向PIM的RP发现机制与PIM-SM的基本相同,都可以通过不同的RP配置方式,让所有的路由器了解到RP信息。两者的不同点在于:对于双向PIM,C-RP在竞选RP时可以通过取模运算使组播组平均分配在多个RP上,从而解决带宽不均匀造成的组播流量拥塞问题。对于双向PIM,C-RP竞选RP的规则如下:
  • 与用户加入的组地址匹配的C-RP服务的组范围掩码最长者获胜。

  • 如果以上比较结果相同,则C-RP优先级较高者获胜(优先级数值越小优先级越高)。

  • 如果以上比较结果都相同,设备会根据当前配置选择以下两种竞选RP的规则之一,分别是:
    • 按照用户加入的组播组地址、C-RP地址和C-RP地址掩码进行Hash运算,运算结果较大者将竞选成为该组播组地址服务的RP。设备默认使用该规则,但是这种规则不能保证组播组在每台RP上得到均分,容易造成组播流量拥塞。

    • 按照用户加入的组播组地址与C-RP个数进行取模运算来竞选为该组播组地址服务的RP。根据运算结果,组播组平均分配在每台RP上,因此解决了组播流量拥塞的问题。目前该规则仅适用于存在多个C-RP且组播组地址连续的场景。

      这种选举规则仅在双向PIM(IPv4)网络中支持,双向PIM(IPv6)网络不支持。

  • 如果以上比较结果都相同,则C-RP的IP地址较大者获胜。

双向PIM网络中无论以何种方式配置RP,配置时都需要声明RP为双向PIM协议所用。

双向PIM协议中的RP可以是一个实际不存在的IP地址,即不属于任何一台路由器上的接口地址,简称为RPA(Rendezvous Point Address),RPA所属的网段称为RPL(Rendezvous Point Link)。RPL必须是实际存在与路由器相连的,这时候直连RPL的所有路由器接口都可以充当RP接口,彼此之间互相备份。

RPA(后面的描述中都用RPA来代指RP)作为转发组播数据的中转站,一般将其选定在组播流汇聚的网段上。如图4-17所示,选定RouterA与RouterB相连的网段10.1.1.0/24为RPL,并配置其中一个IP地址为RPA。配置完成后,RouterA与RouterB互连的接口就可以充当RP接口,彼此之间互相备份。

图4-17 RPA选定示意图

有关RP发现机制的详细内容请参见“PIM-SM(ASM模型) RP发现”

DF选举

DF是双向PIM中的重要角色,主要承担两个任务:
  • 无条件转发本网段的组播数据;
  • 根据本网段的组播需求,向RPA方向发送PIM Join报文,构建RPA到用户主机的双向RPT。

在整个网络中,针对每个RPA,除RPL之外的每个网段上都会选举出一个DF。

下面以图4-16中共享网段内的RouterC、RouterD和RouterF为例,介绍DF选举过程。

1、初始选举

路由器一旦获得RPA信息,就会针对该RPA在共享网段发起DF选举:以组播方式向本网段其他路由器发送Offer报文。该报文携带有路由器本身到RPA的路由优先级和度量值信息。选举时具体的比较规则如下:
  1. 到RPA的路由优先级较高者获胜。
  2. 如果到RPA的路由优先级相等,那么到RPA的路由度量值较小者获胜。
  3. 如果到RPA的路由度量值也相等,则接口的IP地址较大者获胜。
假设RouterF还没有加入本网段,RouterC到RPA的路由度量值比RouterD的小。RouterC、RouterD先后获得RPA信息后,就开始进行DF选举。选举过程如图4-18所示。
图4-18 初始选举时序图
  1. RouterC向本网段发送Offer报文,并启动定时器,时间设为Offer报文的发送间隔(Offer_Period,以下简称OP)。
  2. RouterD收到Offer报文后,发现RouterC到RPA的路由度量值比自己要小,进入Offer抑制状态:启动定时器,时间设为OP × DF选举的健壮系数ER(Election_Robustness),在此期间内不向本网段发送Offer报文。
  3. RouterC的定时器超时,继续发送Offer报文,直至发送了ER次。
  4. RouterC发送了ER次的Offer报文后,仍没收到其他路由器的Offer报文,就认为自身条件为本网段最佳。于是停止定时器,并对外发送Win报文,宣称自己为本网段的DF。
  5. RouterD收到Win报文后,记录下Win报文中携带的DF信息,自身进入Lose状态。

2、网络拓扑发生变化

经过初始选举,RouterC成为共享网段的DF。DF选举不会周期性的进行,只要当前网络拓扑不发生变化,RouterC将一直担任DF的角色。如果当前网络拓扑发生变化,可能会触发不同的DF选举过程,具体情况如下所示。

  • Loser到RPA的路由度量值发生改变:RouterD到RPA的路由度量值变的比RouterC的小。



    1. RouterD与自身记录的DF信息比较,发现自身到RPA的路由度量值更小,向本网段其他路由器发送Offer报文,启动定时器,时间设为OP。
    2. RouterC收到Offer报文,发现RouterD到RPA的路由度量值更小,向本网段其他路由器发送Backoff报文,表明当前网段已有更好的到RPA的路由器,启动定时器,时间设为Backoff报文的发送间隔(Backoff_Period,以下简称BP)。
    3. RouterD收到Backoff报文,发现其中携带的信息是自身,进入Offer抑制状态,重置定时器,时间设为BP + OP。
    4. RouterC的定时器超时,对外发送Pass报文,宣布RouterD为新的DF。自身进入Lose状态并记录下新的DF信息。
    5. RouterD收到Pass报文后,将定时器停止,自身进入Win状态,成为新的DF。
  • DF到RPA的路由度量值发生改变:RouterC到RPA的路由度量值变的比RouterD的大。

    1. RouterC发现自身到RPA的路由度量值变大,对外发送Win报文。
    2. RouterD收到Win报文,发现自身到RPA度量值更小,对外发送Offer报文,随后进行与“Loser到RPA的路由度量值发生改变”同样的选举过程。
  • DF丢失到RPA的路由:RouterC失去了到RPA的路由。

    1. RouterC停止担任DF角色,并对外发送一个到RPA度量值无限大的Offer报文。
    2. RouterD收到Offer报文后,发现自身到RPA度量值更小,对外发送Offer报文,随后进行与“初始选举”同样的选举过程。
  • 新的路由器加入:RouterF加入本网段,到RPA的路由度量值比RouterC、RouterD都大。

    1. RouterF对外发送Offer报文。
    2. RouterD收到Offer报文后,发现自身到RPA度量值比RouterF的小,进入Offer抑制状态,启动定时器,时间设为OP。这段时间不发送Offer报文,主要是为了等待DF收到RouterF的Offer报文的回应。
    3. RouterC收到Offer报文后,发现自身到RPA度量值比RouterF的小,对外发送Win报文。
    4. RouterF收到Win报文,进入Lose状态,并记录DF信息。
    5. RouterD收到Win报文,重新进入Lose状态,并记录DF信息。
  • DF瘫痪:RouterC发生故障。

    RouterD一直没有收到RouterC的PIM Hello报文,认为PIM邻居发生故障,对外发送Offer报文,进行与“初始选举”相同的选举过程。

双向RPT构建

双向RPT,即组播数据在该路径上转发是双向的。当用户主机作为接收者需要请求组播组G的组播数据时,连接用户主机的路由器会通过向RPA方向逐跳发送PIM Join报文创建(*,G)表项来构建RPT。构建过程到RPA所在链路RPL终止。创建(*,G)表项过程中,双向PIM协议会认为该用户主机还需要作为组播源向组播组G发送组播数据。因此它不仅将转发PIM Join报文的DF接口加入出接口列表,还将朝向RPA的RPF接口也加入出接口列表。所以说通过(*,G)表项构建的是双向RPT。

这里的组播数据双向转发,是指不同组播源发出的组播数据往不同方向转发,单个组播源发送的组播数据仍是单向转发的。当处于双向RPT的路由器在接收到组播数据报文后,会先检查接收组播数据报文的入接口是否为RPF接口或者DF接口。如果是,则通过(*,G)表项进行转发;如果不是则将组播数据丢弃。转发时始终遵循一个原则,不向组播数据报文来源接口转发,即便报文来源接口包含在(*,G)表项的出接口列表中。这就保证了单个用户主机作为组播源发送的组播数据在双向RPT中转发是单向的,不会让用户主机接收到自身发出的组播数据。

从上面的描述可以看出,如果单纯的组播源接入双向PIM网络,是构建不了双向RPT的。此时,组播源发送的组播数据依赖DF无条件向RPA转发。

下面以图4-16中HostA、HostC、Server为例,介绍双向RPT构建过程及组播数据报文转发过程。

1、双向RPT构建

图4-19所示,HostC作为Receiver构建双向RPT过程如下。
  1. HostC发送IGMP Report报文,RouterF的接口IF0是该网段上的DF,从IF0收到IGMP Report报文,创建(*,G)表项,将IF0和朝向RPA的RPF接口IF1加入到出接口列表,同时向IF1发送PIM Join报文,上游邻居为该接口相连网段上的DF。
  2. RouterC从DF接口IC0收到PIM Join报文,创建(*,G)表项,将IC0和朝向RPA的RPF接口IC1加入到出接口列表,同时向IC1发送PIM Join报文,上游邻居为该接口相连网段上的DF。
  3. RouterA从DF接口IA1收到PIM Join报文,创建(*,G)表项,将IA1、连接HostA网段的DF接口IA0、朝向RPA的RPF接口IA2加入到出接口列表。由于RouterA与RPL相连,双向RPT构建终止。
HostA的双向RPT构建过程与HostC相似。
图4-19 双向RPT构建过程

2、组播数据报文转发

图4-20所示,Server、HostC作为Source分别向组播组G发送的组播数据在双向PIM网络中转发过程如下。
图4-20 组播数据报文转发过程

  • HostC作为Source转发组播数据:
    1. HostC发送组播数据报文,RouterF从DF接口IF0收到数据报文,匹配(*,G)表项,数据向出接口列表中的IF1转发。出接口列表中的IF0为组播数据报文来源接口,不向其转发。
    2. RouterC从DF接口IC0接收到组播数据报文,匹配(*,G)表项,数据向出接口列表中的IC1转发。出接口列表中的IC0为组播数据报文来源接口,不向其转发。
    3. RouterA从DF接口IA0接收到组播数据报文,匹配(*,G)表项,数据向出接口列表中的IA1、IA2转发。出接口列表中的IA0为组播数据报文来源接口,不向其转发。
    4. RouterB收到组播数据报文,未匹配到(*,G)表项,并且报文来源接口为朝向RPA的RPF接口IB1,组播数据转发停止。
    5. HostA接收到HostC发送的组播数据,组播数据转发完成。
  • Server作为Source转发组播数据:
    1. Server发送组播数据报文,RouterE从DF接口IE0收到数据报文,未匹配到(*,G)表项,数据向朝向RPA的RPF接口IE1转发。
    2. RouterB从DF接口IB0接收到组播数据报文,未匹配到(*,G)表项,数据向朝向RPA的RPF接口IB1转发。
    3. RouterA接收到组播数据报文后,匹配(*,G)表项,数据向出接口列表中的IA0、IA1转发。出接口列表中的IA2为组播数据报文来源接口,不向其转发。
    4. HostA接收到Server发送的组播数据。
    5. RouterC接收到从RPF接口IC1接收到的组播数据报文,匹配(*,G)表项,数据向出接口列表中的IC0转发。出接口列表中的IC1为组播数据报文来源接口,不向其转发。
    6. RouterF接收到从RPF接口IF1接收到的组播数据报文,匹配(*,G)表项,数据向出接口列表中的IF0转发。出接口列表中的IF1为组播数据报文来源接口,不向其转发。
    7. HostC接收到Server发送的组播数据。至此,组播数据转发完成。

BSR管理域

为了实现网络管理精细化,可以选择将一个双向网络划分为多个BSR管理域和一个Global域。这样一方面可以有效地分担单一BSR的管理压力,另一方面可以使用私有组地址为特定区域的用户提供专门服务。

双向PIM的BSR管理域机制与PIM-SM的相同,详细内容请参见“PIM-SM(ASM模型) BSR管理域”

翻译
下载文档
更新时间:2019-03-20

文档编号:EDOC1000166616

浏览量:65633

下载量:244

平均得分:
本文档适用于这些产品
相关文档
相关版本
Share
上一页 下一页