5.6 PIM简介
如果读者正在准备CCIE考试,那么花费时间学习本章前面所介绍的Cisco不支持或部分支持(指的是DVMRP)的多播路由协议将是一种时间浪费,但每种协议都指出了多播路由协议所期望和不期望的内容。
DVMRP共享易于实现(只要打开该协议即可,无需做其他工作)的单播距离矢量协议,但这种简单性是以高开销为代价的,从而带来了严重的扩展性问题,仅适用于小型、高带宽且密集分布了大量组成员的网络。
MOSPF将链路状态协议的优点引入到路由表中,但带来的代价是设计复杂。MOSPF利用显式加入机制解决了DVMRP的topsy-turvy规则(即不转发特定多播组的数据包的路由器必须记住(保持状态)不转发该多播组的数据包),然而MOSPF的有源树仍然不适用于组成员稀疏分布的拓扑结构。虽然MOSPF对扩展性做了有限的提升,但是许多(如果不是大多数的话)网络设计者都不愿意接受MOSPF所带来的拓扑结构的复杂需求。
DVMRP是一种“自包含”协议,它使用自己内嵌的协议来定位用于创建和维护多播树所需的单播地址。从这种意义上来说,DVMRP协议与底层单播路由协议完全无关,但这种协议无关性的代价却是对网络资源(收集可能已经存在于单播路由表中的信息)的大量消耗。
注意: 这种代价也可能不像想象的那么高。如5.8.1小节所述,在没有内嵌式单播组件的情况下,代价与所运行的泛洪/剪除协议相关。
另一方面,MOSPF是单播协议的多播扩展,因而MOSPF虽然解决了独立单播协议的冗余性问题,但是不能脱离于OSPF独立运行。
CBT引入了真正的协议无关性特性,基于已有的单播路由表来确定单播目的地,根本不关心是哪种协议在维护这张路由表。虽然必须仔细规划核心路由器的放置位置,以尽量减少次优路径和流量瓶颈,但CBT具有足够的扩展能力来适应稀疏拓扑结构。目前,CBT正陷入Catch-22(第22条军规,寓意两难的尴尬境地),一方面,虽然现实生活中的多播应用都对该协议感兴趣,但始终受限于该协议的不成熟性;另一方面,由于该协议缺乏现实应用,因而始终难以成熟。除非CBT的设计者能够让CBT比当前广泛使用、也更灵活的PIM-SM更好,否则很难进入主流技术。
PIM(Protocol Independent Multicast,协议无关多播)是Cisco IOS惟一完全支持的IP多播路由协议(对于DVMRP来说,Cisco IOS仅仅支持将PIM连接到DVMRP网络上)。
与CBT类似,顾名思义,PIM具有协议无关性,也就是说,PIM利用单播路由表来定位单播地址,而不关心路由表是如何学习到这些单播地址的。
有一个标准的PIM消息格式列表,某些PIM消息仅用于PIM-DM(Protocol Independent Multicast,Dense Mode,协议无关多播—密集模式),某些消息仅用于PIM-SM(Protocol Independent Multicast, Sparse Mode,协议无关多播—稀疏模式),而某些消息则被两者所共用。所有的消息格式(包括仅用于PIM-DM的消息)都将在5.8节中进行详细描述。
目前的PIM版本是PIMv2,PIMv1将其消息封装在IP包中,协议号为2(IGMP),并使用多播地址224.0.0.2。PIMv2(Cisco IOSSoftware Release 11.3(2)T之后的版本均支持PIMv2)使用其自己的协议号103及保留的多播地址224.0.0.13,当PIMv2路由器与PIMv1路由器进行对等时,会自动将其接口设置为PIMv1.