梅利333

从无到有,自有至精

导航

multicast-4 组播分布树及转发模式初识

组播分布树

两种树型结构,构建组播路由表的两种方法,转发数据的两种方式

 

两种树

1 source tree ,源树(SPT)  //又叫源树,也可以叫做最短路径树 shorted path tree

2 shared tree/共享树(RPT

 

源树的构建非常简单

由源向外发送数据,发给接收者 。从第一跳路由器到最后一跳路由器,整个路径,称之为最短路径树

 

 

举例说明

Source 1 发送数据,由destination 1 接收,那么黑色箭头就是最短路径树

同理,SOUCE2发送数据到DESTINATION 2 也是一样的道理,红色箭头代表着其最短路径

 

 

共享树,最主要的是有一个聚合点、

 

 

 

在这个结构中,

任何一台路由器的某一个接口,做成RP,聚合点,

 

聚合点的做用怎么说呢?有点儿像是bgp中的RR,

当source 2 发送一个数据出来时,由第一跳路由器直接发送给RP,因为RP是聚合点。

再则RP发送给下面的接收者,

总之一句话,第一跳路由器始终都会将数据发送给RP,然后再由RP统一安排

 比如说,现在source想发送给destination 1 数据该怎么走?

Source 2 发送给destination 2 又该怎么走呢?

 

 

看箭头所指的方向

从最后一跳路由器到RP之间,叫做共享树,

 

只要是动态组播路由协议,在发送数据时,就一定会用到这两种树,要么都用,要么指定用一种

具体用到哪一种,要看具体的动态路由协议了

 

 

组播转发模式

分为两种

1 dense mode 密集模式

2 sparse mode 稀疏模式

 

1 dense mode

共工作原理就是泛洪,先泛洪全网,为的就是去检测有没有接收者,由路由器向上级反应,我下面没有人需要这些数据,那么这些路由器就不再往下发了,

但这是有一个时间限制的,3分钟之内不再发送数据,3分钟之后还会继续泛洪

 

而有接收者的那些路由器上,通过这次泛洪就能看到组播数据了,

1 使用到的分布树类型为SPT  只用这一种树

2 支持该模式的组播路由协议 DVMRP(距离矢量组播路由协议)MOSPF(底层必须是ospf) PIM(协议无关组播)

3 隐式加入 (说的是接收者接入到组内时,只有最后一台设备是知道的.)

4 推模式—PUSH model  因为工作原理就是泛洪, 不管三七二十一,上来就向外泛洪

3分钟一次的泛洪和修剪

泛洪,这种模式适合较多的接收者时

 

优点和缺点

Dense mode 的优点: 在组播源与组成员之间建立最短路径,最大限度的降低数据延时

Dense mode 的缺点:每台组播路由器需要维护所有的源来构建的组播路由表,对设备的开销较大。

除了组成员很多的情况下,不建议使用该模式

 

2 sparse mode 稀疏模式

接收者较少时,推荐使用这种模式

1)     使用到的分布树类型 SPT  RPT 两种

从第一跳路由器到RP,叫做SPT,最短路径树,从RP到最后一跳路由器叫做共享树

所以两种树都用到了 也可以理解为 RP 是SPT的末端,是RPT的顶端

2)     支持该模式的组播路由协议有 CBT  PIM

3)     显式加入  是接收者主动申请的,

4)     拉模型  pull model ,谁需要谁拉过来,因为没有泛洪。是由接收者主动申请的加入,发送到RP

 

优点和缺点

优点:每台组播路由器在座的路径信息较少,降低消耗

缺点:组播源到组成员之间路径可能不是最短的,(因为RP的位置不一定,有可能会绕路)但是有弥补方法,switchover(可以切换路径,这个在后面细说)

除去这一个缺点,sparse 就没有缺点了,但是还被switchover给解决了,

可以说sparse mode 是没有缺点的

 

组播路由表mroute

两种形式,
(S,G)entries  S: source G group 指定的源,指定的组播,该如何转发

(*,G) entries  * 任何 G group 任何源,指定的组

 

PS:

SPT依赖于(S,G)表项转发数据

RPT依赖于(*,G)表项转发数据

 

 

解读mroute路由表项

 

 

可以看到这个条目是* G 的,任何源,到组239.1.1.1的流量,存活时间/超时时间(是不可能到0 的,因为有igmp协议的存在,末跳路由器和组成员之间有通用查询,并且是主机主动请求加入的组)

RP:由于现在使用的是SPT,根本就不存在RP,聚合点,

Flags: DC

最上面都有标识, D: dense 说明使用的是dense模式  C: connected 直连

S sparse模式,当然现在是用的dense模式,L local本地

Incoming interface ,收包入接口,RPF neighbor 现在还没有

这个接口是谁呢?那要看是哪种模式~

如果是S,G的话,那么这个接口就是去往源的方向的接口/或者是经过RPF校验的接口

如果是*,G的话,是连接RP的接口,当然现在我们用的是dense模式,没有RP

Outgoing interface list 发包出接口列表。

现在还不知道 

我们来测试一下

 

 

在之间前一定要确保所有的接口都已经开启了组播功能,ip pim dense

 通了之后,再到R7上去查看路由表

 

 

 

 

出现了(S,G)

S 192.168.1.10

G 239.1.1.1

并且会发现原有的*,G 超时计时器已经成为了stopped ,停止倒计时了,为什么?

因为在mroute表里,*,G是S,G的父级,换句话说,如果你想要构建S,G就必须有*,G

而有了S,G的*,G,就不用再倒计时了,

组地址一样的时候,有儿子就必然有爹,儿子活着,爹不可能死!!!

 

这时的一些信息就得以完善了,

Flags:T

 

 

T代表了SPT,源树的意思,这条路径就是最短路径了

Incoming interface 也有了,是f0/0接口,

RPF neighbor 是100.1.1.6 ,这是通过RPF校验出来的

Outgoing interface 是f0/1接口,转发状态,使用的是dense  后面跟着它的计时器

条目生成时间,以及倒计时,(这里的倒计时,如果下面有数据在走着,那它就不会倒计时)

 

无论是*,G,还是S,G,两个表项都是由incoming interface 和outgoing interface 来构建的,

其中incoming interface 就是RPF interface ,有且只有一个

Outgoing interface 可以有多个,并且在列表中没有先后顺序)

一个接口收,多个接口发,没有问题

S,G 的OIL,(outgoing interface list) 会继承*,G的,但是任何表项中的incoming interface 都不能出现在OIL中,如果冲突则在OIL中删除该接口,也就是说收包接口不可能出现在发包接口里。

上面的实例就是这样的。

 

SPT依赖于 S,G 表项来转发数据

RPT  依赖于*,G表项来转发数据

 

 

 

-------------------------------------------------

CCIE成长之路   --- 梅利

posted on 2020-10-25 21:20  梅利333  阅读(750)  评论(0编辑  收藏  举报