组播分布树及其转发模式

一.soure tree(源树,最短路径树)-shorted path tree(SPT)

1.基于组播源构建的转发路径

(2.dense-mode-密集模式)

(3.sparse-mode-稀疏模式)

4.从源到接收端构建的转发路径叫做SPT(共享树)

指定源组播与任意源组播区别(组播分布树及其转发模式)(1)

指定源组播与任意源组播区别(组播分布树及其转发模式)(2)

二、Rooted at a meeting Point in the network -Shared Tree (RPT-Rendezvous Point Tree)扎根于网络中的一个集合点

1.基于RP构建的转发路径叫做RPT

指定源组播与任意源组播区别(组播分布树及其转发模式)(3)

指定源组播与任意源组播区别(组播分布树及其转发模式)(4)

SPT和RPT最大的一个区别是:

1.SPT是由源构建的组播转发路径

2.组播源可能有多个,因此,当源比较多的时候会导致组播路由表过大

3.RPT是由RP构建的组播转发路径(共享树路径)

4.通常RP只有一个,因此路径只有一条

三、组播转发模式

dense-mode-密集模式

1.使用到的分布树类型为SPT

2.支持该模式的组播路由协议有:DVMRP MOSPF PIM

3.该模式转发数据的形式主要为推送数据的方式

4.数据是直接推送出去的,不管你需不需要数据,先推送出去(类似于广播数据的泛洪)

5.采用的是隐式加入的模式(当叶路由器收到加入请求消息不通知其他的组播路由器自己新增了组成员)

6.每三分钟进行一次周期性的泛洪和修剪(通过发送查询消息判断是否还有组成员存在)

7.当叶路由器发现没有任何的组成员加入,叶路由器会向上游路由器发送修剪消息

8.上游组播路由器收到以后,会向它的上游组播路由器继续发送修剪消息,目的就是修剪掉源到叶路由器之间的路径

9.DM优点,在组播源和组成员之间建立最短路径(基于RPF,基于单播路由)最大限度降低延迟

10.DM缺点,每台组播路由器会维护最大的组播路由表来记录每个源和组之间的转发路径,设备开销会随着组播源的增加增大

11.因此,DM模式更适用于组播源少,组成员多的密集模式环境下

Sparse-mode-稀疏模式

1.使用到的分布树类型为SPT RPT

2.支持该模式的组播协议有:CBT,PIM

3.采用的是显式加入模式

4.一旦叶路由器接收到组成员加入的消息,就会将该消息转发给RP

5.RP收到了以后,意味着一旦接收到由组播源产生的去往该组成员所在组的组播数据流,就要发送给组成员

6.如果叶路由器没有接收到组成员加入消息(没有组成员加入),那么RP也不会接收到该消息,RP接收到数据将

不再转发给叶路由器,组播数据流将再RP处截止(RPT路径,共享路径不会产生组播的数据)

RPT优点:每台路由器存储的路由信息较少,降低了设备内存消耗

RPT缺点:组播源到组成员之间的路径有可能不是最短的(因为一旦产生组播数据,路由器要先通过源数路径将数据

发送到RP,然后再由RP通过共享树路径转发到叶路由器再到组成员)

指定源组播与任意源组播区别(组播分布树及其转发模式)(5)

四、组播路由表Mroute的构建

1.组播路由表分为两种:(*,G)和S,G)

2.G代表组播组,也就是组播地址;S代表源,也就是组播源ip地址

3.只要是运行了组播,设备就会自动加入到这个组地址中(224.0.1.40)就会产生这个组播路由条目

指定源组播与任意源组播区别(组播分布树及其转发模式)(6)

组播路由表针对于不同模式的通用规则:

1.当叶路由器收到组成员加入的消息以后(igmp join消息),会自动产生一条(*,G)的组播路由条目

2.当有组播数据经过组播路由器的时候,会产生一条(*,G)和(S,G)

3.通用规则再DM和SM模式下都可以生效的

4.(S,G)中的incoming interface就是RPF接口,有且只有一个

5.outgoing interface接口就是出口,出口可以有多个

6.(*,G)是(S,G)表项的父项, 要创建(S,G)必须要先创建(*,G)

7.(*,G)的RPF的NBR显示0.0.0.0,因为源未知*,源可以有多个,也可以为任意,因此显示0.0.0.0

8.(S,G)的RPF的NBR显示0.0.0.0,因为这台设备是叶路由器,叶路由器可能会收到多个不同组播组的组成员发来的组播数据

(除此之外其他的显示的都是RPF NBR的地址)

9.(S,G)的outgoing列表和(*,G)的outgoing列表相同(子承父业),(S,G)随时拷贝(*,G)的出口列表

10.在这两种情况下的接口会被放入outgoing列表中:连接组成员的接口/具有RPF NBR的接口(源和目的都可以)

11.null代表空,代表源未知的情况下

12.(S,G)的入口表项的接口(针对于具体的源的RPF接口)不能出现在出口表项中

13.每个组播状态项的RPF接口(既输入接口)每5s重新刷新一次,而且依据第十二条对输出接口的列表做适当的调整

(防止输入接口出现在输出接口中)

14.组播路由表是基于incoming和outgoing列表的入站接口和出站接口来转发数据,而不是像单播路由表那样递归查询转发

15.对(*,G)的输出列表的更改(outgoing)都被复制到所有与该组有关的(S,G)

16.(*,G)的outgoing表项和(S,G)的outgoing表项是实时同步的

17.任何表项中的incoming interface都不能出现在outgoing interface list中,一旦冲突则删掉该接口

18.PIM的邻居关系通过PIM hello包来维系,30s发一次,105s没有收到中断PIM邻居

指定源组播与任意源组播区别(组播分布树及其转发模式)(7)

1.PT--修剪树(可以理解为被修剪得树)

2.Prune--修剪状态(通常是用于叶路由器下没有组成员加入的情况下)

3.对于dense-mode的环境下,第一次发到没有组成员的组播数据会被推送出去

4.当没有组成员加入的叶路由器收到以后会向PIM NBR发送修剪消息

5.下一次收到到达未知组的组播数据的时候组播数据将被修剪

6.未知组播数据被修剪的前提是组播数据可达

指定源组播与任意源组播区别(组播分布树及其转发模式)(8)

指定源组播与任意源组播区别(组播分布树及其转发模式)(9)

如图:

1.SERVER配置ip地址为12.1.1.1

2.GW地址为12.1.1.2,R2-R4之间运行PIM(底层协议EIGRP)

3.R4上起环回口4.4.4.4用于模拟PC,并加入到组224.1.2.3

然后依次在R2,R3,R4上查看mroute的路由表:

R2本地产生的224.0.1.40的组播路由表条目

指定源组播与任意源组播区别(组播分布树及其转发模式)(10)

针对于(*,G):

1.incoming interface为空,因为源未知

2.outgoing接口列表:F0/0,F1/0接口(具有RPF邻居的接口,SRE和R3方向)

R2针对于224.1.2.3组播组产生的父项与子项:

指定源组播与任意源组播区别(组播分布树及其转发模式)(11)

针对于224.1.2.3的(*,G)表项:

1.incoming接口为空,因为源未知,RPF邻居未知(源可能有多个)

2.outgoing接口列表里为组播数据的出接口F1/0

针对于224.1.2.3的(S,G)表项:

1.incoming接口为RPF接口F0/0,RPF的邻居为0.0.0.0的原因是这是一台叶路由器

2.outgoing接口列表复制(*,G)【父项】的outgoing接口列表

接下来R3:

指定源组播与任意源组播区别(组播分布树及其转发模式)(12)

针对于224.1.2.3的(*,G)表项:

1.incoming接口为空,源未知

2.outgoing接口为F0/0,F1/0, F2/0(所有具有RPF neighbor的接口)

针对于具体的源12.1.1.1产生的到组224.1.2.3形成的组播路由表(S,G)

1.incoming接口为F0/0(RPF接口),RPF邻居为23.1.1.1--R2

2.outgoing接口复制父项的接口选项,由于是针对于12.1.1.1的,且outgoing表项中不能包括incoming表项中

的接口列表,因此,在复制父项的outgoing接口列表的过程中删除掉了F0/0接口(F0/0口存在于incoming列表中)

以上就是本期的内容,更多精彩内容持续分享!

,