当前位置:首页 > 组播学习笔记
单播路由协议和组播路由协议的区别:单播路由是决定数据时从哪(走哪)出去的一种协议; 而组播路由协议则是决定数据时从哪个接口进来的一种协议(既防止接受重复报文;既路由器接收一个组播报文只可能有一个接口)
1、RPF(reverse path forwarding )反向路径转发,把路由器的包的进入接口称之为RPF接口,一个路由器只有一个RPF接口。
2、RPF校验:如右图所示:当路由器接收到一个源地址为151.10.3.21的组播数据的时,路由器会做RPF校验,这时,路由器会找自己的单播路由表,来查找源151.10.3.21的路由,在右图所示的例子中,查找的结果是从s1口出去的,而组播数据时从s0口进来的,这是RPF校验失败。 3、当最后一跳路由后面有负载均衡的链路时,这时候选举RPF接口的办法是,在RPF校验的时候:1、优选与到达源地址路由条目的最短路由管理距离(多个路由协议)的接口;2、如果以上是一样的,那就选择最小metric的哪条链路的接口;3、如果若果metric值一样,那就选择较大的IP地址的那个接口作为RPF接口。
4、当我们需要基于组来做组播的负载分担的时候,可以写一条组播的静态路由来干扰个别流量的的走向。
全局下#ip mroute 1.1.1.1 255.255.255.255 +入接口(其中1.1.1.1 255.255.255.255是发送组播数据的源地址。入接口就是本地路由器上的组播数据进入的接口)组播的静态路由的AD是0 5、组播中的两棵树
A、source –rooted:源树(SPT)
原理:当一个网络中有多个组播数据源的时候,每个源会在这个网络中生成一棵树,这时就
会在本地产生一个表项(组播路由表)他会标识出这个组播数据流量是从哪个接口进来的,要从哪个接口出去。运SPT的缺点是:占用路由器的cost。优点是:源到达接受者是最优的。
B、shared trees:共享树(RPT)
原理:当有多个组播数据源的时候,在网络中指定一个RP路由器,这时,所有的组播数据流
量都发向RP设备,然后,网络中以RP为源树,来形成一棵树,这个模型是一个分段模型,在RP以前还是源树,在RP以后就是共享树了。
6、PIM的两种模式。
1、sparse mode:稀疏模式 2、dense mode:密集模式;(有组播流量才能够形成树形结构)所谓的密集模式就是接受者非常
多。使用的模式是push模式,使用的树是spt树,其运行原理:当源路由器有组播数据流量向下发的时候,第一跳路由器会将流量发向所有的最后一跳路由器,一旦组播流量泛洪完成后,每台设备上就会产生一个表项(S,G),如果有的最后一跳设备上面没有接受者,那么就会发送一个pruning 包,当源树的根收到pruning包之后就会修剪掉没有接受者的设备的组播表项。到了这个时候,组播流量就只向有接受者的最后一跳设备发送,在这个过程完成后,每三分钟会泛洪一次组播流量,也会在进行一次修剪。如此,循环这个过程。(如果,网络在接受者比较多,那么这种模式就比较好。)
3、PIM的工作原理:当两台设备的接口都运行PIM的sparse或者dense模式,就开始建立邻
居,发hello包,发送的组播地址:224.0.0.13,30s发送一次,hold时间是105s ,(在IGMPv1中选举查询者就是在这个过程中进行的,选举规则是:先比接口优先级,再比接口的IP地址较高)
4、当邻居建立成功后,可以使用命令#show ip pim neighbor 查看。这时会看到这个表有三
个状态属性,如下图所示:
Dense mode 的配置:
首先,在设备上面需要配置的设备上面启IGP路由,为了防止RPF校验失败; 其次,开启设备的组播路由功能,全局下#ip multicast-routing
最后,在所有转发组播流量的接口下配置PIM模式#ip pim dense-mode
(在ping组播地址的时候,要是没有回包,很有可能是接受者的最后一跳路由器没有回去的路由)
5、在PIM中修改接口的优先级#ip pim dr-priority+优先级
6、查看组播路由表:#show ip mroute,在查看组播路由器的路由表的时候后面的flags位的字母
分别表示:D---表示运行的是dense模式;S——表示运行的是sparse模式;T——表示SPT位置位了,表示组播数据已经从形成好的源树开始转发。
7、组播中的通用规则:
A、当组播运行的时候,其路由表中产生一个(S,G)就会自动产生一个(*,G);但是在dense
模式下(*,G)不做组播数据转发
8、sparse 模式:稀疏模式,其使用了pull模式来转发组播流量,其用到了SPT树和RPT树。这
种模式只要有了接受者就会形成树形结构。
原理:(右图为例)在运行sparse模式之前,在网
络中选取一个RP,当接受者加入一个组之后,连接接受者的的最后一跳设备会向RP发出一个(*,G)的join包,此时,RP到达最后一跳路由器,这棵树(RPT)就形成了,——让RP知道有接受者。在这个过程中从RP路由器到最后一跳路由器都会形成一个(*,G)的表项;当第一跳路由器接收到组播流量的时候,会向RP用单播发送一个register报文(S,G),register报文里面IP包头之后封装的是PIM信息,——目的是查看RP上面有无该组的组员。这时,有两种情况,如果有的话,
那么就直接把这个register包解封装,就按照正常的组播流量向下走;然后,RP会向第一跳路由器发送一个join信息(S,G),——因为所有的组播流量都封装在一个单播数据包中,最终需要通过组播路由表来转发,当第一跳路由器收到后——形成spt树。组播流量就会通过spt发个RP,再通过RPT发给接收者。这时,第一跳路由器仍在向RP发送单播register报文,为了抑制这种现象,RP就会向第一跳路由器就会以单播的形式向第一跳路由器发送一个 (S,G)register stop报文,来禁止第一跳路由器单播发送register(S,G)报文。 如果在第一跳路由器发送register报文的时候,RP路由器上没有接收者的信息,那么RP就会直接向第一跳路由器发送register stop 报文,将组播流量在第一跳设备上面丢掉。
9、在运行sparse模式的时候,设备会自动运行switchover,当最后一跳路由器在从RP接收到组播
流量的时候,最后一跳路由器就会向源发送一个(S,G)join的报文,这时就自己切换到最短路径了,切换的筏值是看组播的速率0kbps,当组播流量的速率大于0kbps就会向SPT转换。(默认切换)要使得不切换需要在最后一跳路由器上面配置:#ip pim spt-threshold infinity
配置:和dense 模式的配置一样,只不过命令行不一样;RP的配置:
1、静态配置(一般使用环回口,要通告进IGP)在设备的全局下配置:#ip pim rp-address +RP设备的地址(在组播运行的所有的设备上面都要配置)
2、动态RP,auto-RP(cisco私有){ C-RP –候选RP:可以有多个设备来申请成为RP;MA映射代理:决定这些候选RP谁来当RP}原理:当运行了C-RP的设备会周期性的向224.0.1.39发送 消息,而这个消息只有MA能识别,选择IP地址最大的来做RP,选好RP之后,MA设备会向224.0.1..40发送谁是RP。(注:在一个网络中要有多个C-RP和MA备份)
1、先将模式调整为:sparse-dense mode
2、C-RP和MA所指的环回口要通告进入IGP
配置:在借口下:#ip pim sparse-dense mode(修改模式)
#ip pim send-rp-announce loopback 0 scope 8(配置C-Rp) # ip pim send-rp-discovery loopback 0 scope 8(配置MA)(现在运用的环
回口要运行PIM,因为这个环回口要发送组播流量)
查看选举结果:#show ip pim rp mapping (动态选出来的RP优于静态的RP)
10、DR在sparse模式下的作用是负载发送join包和register消息。 A、如果运行的是IGMPv1,DR充当了查询者的作用 B、DR在dense模式中没有作用。
C、DR在sparse模式下的作用是负责发送join包和register消息;当在源端出现MA网络,那么
选举出来的DR,就向RP发送register报文,当在最后一跳路由器出现冗余,那么选举出的DR就向RP发送join报文。
共分享92篇相关文档