18 CCNP讲解笔记-PIM 2(2)

2019-04-05 16:40

组播组信源开始发送流量:

如果此时是源树,第一跳路由器A收到组播组流量,我会第一个考虑把报文转

发给接收者。

如果此时是共享树,第一跳路由器A收到组播组流量后,我不是第一时间往接收 者转发,而是把信源发送过来的流量全部转发到RP上,在RP上所有组播流量集个 和,在由RP把组播流量下放给下游的路由器,直到最终的接收者。

这样做得好处是什么?

对于下游路由器C和E而言,我收到的组播流量是Source 1还是Source 2发 来的,对于C和E路由器来说不重要,因为不管你是哪个源给我发的,都是由RP 给我转发过来的。

此时C和E路由器在组播路由表项中,不再需要(S,G)表项。因为C和E根 本不会关心Source在哪里。

所以好处节约在由RP到接收者那块网络所有路由器上,他们收到组播流量的时 候,路由表项中只会形成(*,G)。 * = All Sources G = Group (*,G)用来表示我不关心源在哪里,只关心流量发给哪个组播组。

在一个组播域内使用共享树,那这个共享树是哪到哪?

答:共享树是从RP到达接收者,而信源达到RP依旧是源树!!!

共享树优势:

就是节省了RP下游所有路由器路由表项资源 共享树劣势:

从信源发送流量到达接收者,使用的不再是最优路径,使用的是次优路径。会 导致高延迟,高抖动。 怎样解决这劣势呢?

PIM协议有方式解决这个问题,当我们使用共享树的时候,只有第一个组播报 文会实现这种次优路径转发。

而当我们实现了树形结构切换之后,从第二份组播报文开始,我们的流量依据 会使用最短路径去转发。

至于怎么实现,一会去谈。

PIM(Protocol Independent Multicast)协议

当前有两个版本,v1和v2,当前使用最多的是PIMv2版本。该版本是一个业界标准协议。这个协议分为两种模式,Sparse Mode和Dense Mode。

而当今社会上使用最多的是第三种模式,Sparse-Dense-Mode。

1.PIM Neighbor Discovery

PIM是四层协议,协议号为 13 。

注意:路由器之间运行了PIM,在我们能够传递组播报文之前,先要关注PIM邻接关 系是否正确建立。这个邻接关系就是通过Hello报文来建立的。 Hello报文也是组播发送,目标组播地址为224.0.0.13。

Hello: 30s Hold: 3.5 X 30s

运行PIM的路由器想要建立邻接关系,必须是直连建立邻居。但是,我们的连接有两 种类型,一种是point-to-point,一种是MA网络。

PIM协议可能是学习OSPF协议,在MA网段建立邻接需要选举DR(指定路由器)。 DR的选举:

a.该网段内所有接口的PIM的优先级,优先级越高越优,缺省接口优先级都为1 b.看接口的IP地址,越大越优 DR的作用:

在IGMPv2中有查询者的概念,而IGMPv1中没有查询者。IGMPv1在一个MA网段内 如果选不出查询者,这个时候就由PIM的DR来充当查询者。

由于IGMPv2有查询者,所以对于PIM协议的DR这个概念来说,只适用于IGMPv1。

注意:

A. PIM协议下,只有DR,没有BDR。相对于OSPF协议来说,一旦DR选举出来,该 网络DR的角色不会随着新加入的路由器而会改变。

相对于PIM协议而言,DR是时时选举的。任何时候一台路由器连接到这个网段, 只要把接口PIM的优先级改高,我都可以抢占DR的角色。

B. 在OSPF协议中,DR是接口概念

而在PIM协议中,DR也是一个接口概念。每个MA网段都要选举出一个DR。

C. 在OSPF协议中,如果一个接口优先级为0,则表示放弃选举DR的能力 在PIM协议中,如果一个接口优先级为0,仍然可以参与DR的选举

注意:

PIM建立邻居后,是不会传递路由的。只有当收到数据层面的组播报文的时候,我才会形成路由表项。 问题:

既然PIM不传递路由,那运行PIM协议有什么用?有个重要原则跟大家提一下 答:

运行PIM后,路由器接口的工作改变

a.对于First hop Router的接收组播流量接口,如果该接口没有启用PIM,则 无论收到什么组播报文,都会本地拆包后将报文丢弃。 b.对于 List hop Router连接接收者所在网段的接口,如果该接口没有启用PIM, 则路由器不会周期性的发送IGMP Query报文。

c.对于中间路由器彼此互连的物理接口,如果没有启用PIM,这些路由器不会通 过任何接口转发任何组播报文。

下面对于Dense Mode和Sparse Mode在运作的时候注意的一些细节 1.Dense Mode

在这个Dense Mode下被开发的PIM时,初期我们的开发者这样定义该模式。他会假象 什么情况下需要使用该模式?

在整个路由选择域内,95%以上的PC都是组播组流量的接收者时,这个时候使用Dense

Mode。在这种情况下,我们的Dense Mode是基于一个Push model(推模型)来运作的。

先不提Push model,先把Dense Mode和Push model以及分发树来做一个对应。

此时看一下Push model是一个怎样的工作原理?

这里涉及到一个初始泛洪(Initial Flooding),如图,此时在所有的路由器上部署了PIM-DM之后,等邻接关系建立完毕,协议收敛完成。Source开始发送组播流量,这个组播流量到达第一跳路由器,第一跳路由器会通过所有的接口把这个流量泛洪下去。所有受到该泛洪流量的路由器呢,会通过其他接口在把该流量依次的泛洪下去。这个就是初始泛洪,也就是Push原理。

Push就是,只要组播组信源开始发送组播组流量,我不管下游有没有接收者,我都一股脑的把该流量给泼下去。

这种无谓的把流量泼下去,不知道接收者在哪。这样做仅仅浪费带宽。

对于该情况,Dense Mode该怎么补救呢?

这个补救方式如图,如果一台路由器判断它的下游,没有组播组的成员,我会通过接收组播流量的RPF接口,反向发送一个Prune Messages报文。

该报文的目的就是,该路由器告诉上游转发组播流量的路由器,本地没有接收者,请你不要在通过这个接口给我发送组播流量。

修剪最后的结果就是,只有接收者的那条链路会传递组播组报文。

注意:

一个接口收到Prune报文之后,会停止转发组播流量,但我不会永远停止发送组播组流量。因为如果永久停止发送组播组流量,不符合DM的设计原理。 DM的设计原理就是:全网95%以上都是组播组成员,谁又能知道当该接口被阻塞之后,多久之后,该邻居又会连接组播组成员呢。

重点:当一个接口收到Prune报文之后,我会在该接口开启一个计时器,该计时器缺省值180s。也就是一个接收收到Prune报文后,在该180s内该接口不会转发任何的组播流

量。但180s计时器一旦过期,立即通过这个接口在发送组播流量。以此循环。 PIM-DM的Push model工作总结:

初始情况下,只要PIM邻接关系建立完毕,只要信源发送组播流量。每台路由器收到之后,都会默认通过所有其他启用PIM的接口泛洪该组播流量。而此时会导致,大量的链路带宽被浪费。

此时,如果一台路由器发现自己下游并没有连接组播组成员,该路由器会通过RPF接口反向发送Prune报文,邻居路由器只要通过接口收到Prune报文,会开启一个1180s的倒计时计时器。

在这个计时器到期之前,该接口无法在转发组播流量。当该计时器过期,我会在通过这个接口发送组播组流量。

这就是每3分钟一次的泛洪与修剪过程。

问题:

路由器是怎么发现下游有没有组播组成员? 答:

通过IGMP协议,只要收到Report报文就是由组播组成员。

PIM-DM实验举例:

如图:R3是组播源,发送去往224.1.1.1组播组的流量。R2为接收者,也就是PC。R1、

R4、R5、R6为组播路由器。全网运行PIM-DM。

配置:

第一步:如图所示,先把各个接口配置上IP地址,起个Loopback接口。

第二步:做一个单播IGP路由协议,如果不做,其他路由器RPF校验失败。也就是在组播路 由选择协议之前,单播路由选择协议已经收敛完成。

(此时做IGP,R5要不要把35网段宣告进来?一定要,如果没宣告进来,R1及后 面的路由器的IGP表里没有35网段,就没法访问源,访问不了源地址,RPF校 验就失败。

此时R4要不要把24网段宣告进IGP?这就没有必要了,因为Source发送组播 组流量给目的地,Source不需要知道目的地在哪吧。因为只要我向这个组播地 址发,我的接收者只要加入这个组播组,接收者就能收到该组播组的流量。)

所以24网段可宣告可不宣告,35网段必须宣告进IGP。 全网运行OSPF协议

第三步:启用PIM协议 命令:

R(config)#ip multicast-routing distributed //该红色单词在三层交

换机上开启组播路由功能时才需要添加,路由器上不会添加该单词 R(config)#int f0/1

R(config-if)#ip pim dense-mode

Neighbor:直连PIM邻居的接口IP地址 Interface:本地连接邻居的接口

Uptime:邻接关系从建立开始计时,已经多久了

Expires:超时时间,也就是Hold time,默认3.5 X 30s Ver:PIM版本 Prio:优先级

Mode:描述邻居的角色,S代表状态可刷新

状态可刷新:对于一些早期设备,它启用PIM后,选举DR角色只看接口IP地址, 不识别优先级。如果该设备识别优先级,就打S,不识别优先级呢就打N。

第四步:R3为组播组信源,先把他模拟为PC 命令:

R3(config)#no ip routing

R3(config)#ip default-gateway 35.1.1.5 R2(config)#no ip routing R2(config)#int f0/1

R2(config-if)#ip igmp join-group 224.1.1.1

此时,由于没有产生组播流量,所以组播路由表是空的 但是R4组播路由表中有表项


18 CCNP讲解笔记-PIM 2(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:为了财富

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: