当前位置:文档之家› 组播笔记

组播笔记

TCP/IP路有技术卷二——组播笔记IGMP协议总共有三种版本,版本1、版本2和版本3。

可以通过命令ip igmp version修改;三层协议,与ICMP一样,封装在IP包中,协议号为2 。

IGMP为linklocal的,其TTL值为1;IGMPv2 主机功能总共有三种消息类型:1.Membership Report由主机发出,显式表示希望加入一个组播组,或者用来响应路由器的 Membership Query。

其目的地址时这个组播组的地址。

为保证路由器可靠收到,主机一般发送一个或者两个复制的报告;网络中其他同组主机在接收到一个主机发送的Membership Report后,就不再发送相同报告了;2.version 1 Membership Report与1类消息一样,用来兼容版本一;3.leave group用来推出一个组,其中包含退出组的组播地址,但是目标地址为224.0.0.2。

当接收到这个消息时,路由器会发送查询来检测网络中是否还有组员;IGMPv2 路由器功能1.General Query用来查询网络中是否有组员,周期性发送,默认周期为60s。

目标地址为224.0.0.1。

可通过命令ip igmp query-interveal 来修改。

如果在3次查询(3 min )内没有收到相应的话,则认为网络中没有相关组员;此查询包含一个max-response-time,规定主机相应这个查询的最长的等待时间,默认10s 中。

可通过命令ip igmp query-max-response-time修改。

2.Group-specific Query当路由器收到一个leave group消息时,发送group-specific query消息来查询网络中是否还有其他组员。

目标地址为这个组播组的组播地址;一般路有器会每 1 秒发送两个查询来保证所有主机能正确接收到;当网络中有多个路由器时,通常是lan 网络,则会选举出来一个指定路由器,通过接受其他路由器发送的查询,路由器会通过ip地址进行选举,一般ip 地址较小的成为指定路由器。

非指定路由器停止发送。

如果在查询时间间隔2倍时间(120s)内没有收到查询的话,则证明指定路由器出现问题,选举出来一个新的指定路由器。

可通过命令ip igmp querier-timeout 进行修改;可以使用命令show ip igmp group查询当前路由器加入的组播组;CGMP协议:根据交换原理,交换机泛洪广播与多播数据帧。

但是在交换网络中,应用组播的效果同样是很明显的。

IGMP为三层协议,但是在交换网络中交换机制检测二层信息,如果通过软件检测三层信息就会降低交换机的性能。

所以,在交换网络中,交换机通过CGMP来完成相关管理功能。

Cisco交换机限制组播流量的三种方式:z CGMPz GMRPz IGMP监听z手工配置的交换式多播树CGMP工作原理:只有路由器能够产生CGMP数据包,交换机只是监听数据包。

CGMP有两种数据包:z Join 路由器向交换机通告向多播组中加入一个组员z Leave 路由器向交换机通告从多播组中删除一个组员两种数据包格式相同,目标地址为保留MAC地址0100.0CDD.DDDD。

数据包内的信息为一个或多个MAC地址对:z组目的地址 (Group Destination Address) GDAz单播源地址 (Unicast source address) USACGMP路由器启动后,会发送一个CGMP join数据包,GDA为0,USA为自己的MAC地址。

路由器60s 发送一次来保活。

当有主机发送igmp report时,路由器向交换机发送cgmp join数据包,通告主机MAC与组MAC地址,交换机将地址加入CAM中。

USA为主机MAC地址,GDA为组播组MAC地址;当路由器接收到IGMP leave group时,会向网络中发送group-specific query查询,如果有组员响应,则路由器向交换机发送CGMP leave通告,GDA为组播组MAC地址,USA为退出组员MAC地址。

如果没有回应,则CGMP leave中的GDA为组播组MAC地址,USA 为0,从交换机中删除该组。

CGMP数据包内GDA、USA对应表:CGMP数据包格式:多播路由问题IP路由多播协议:距离矢量多播路由协议-DVMRPMOSPFCBTPIM-DM 密集模式PIM-SM 疏松模式每一个多播路由器都有一个多播转发表,表里面记录(源,组),或简写为(S,G)。

路由器在进行组播转发时,使用反向路径转发(RPF)防止环路。

RPF原理:路由器在转发组播数据时,会进行RPF检验,只有组播数据从在与源连接的上游接口收到后,才会进行转发。

多播路由:多播路由与单播路由不同,组播路由判断到源的最短路径,这种方式称为反向路径转发;组播路由选择协议的功能:判断上游接口通过查询单播路由表判断与(S,G)对关联的下游接口通过IGMP了解组员,使用反向路径组播(RPM)对组播树进行管理疏松、密集模式:疏松拓扑为网络中组员较少的网络拓扑,密集拓扑为网络中组员较少的拓扑。

一般LAN为密集拓扑,WAN为疏松拓扑。

但是没有严格界限。

显式加入与隐式加入:显式加入为接收者主动加入,隐式加入为发送者发起。

隐式加入一般称为“广播与剪除”或“扩散与剪除”。

即组播流量转发到所有路由器上,路由器在通过发送IGMP消息查询网络中有没有组员,没有则剪除。

隐式加入适合密集模式显示加入是有主机发送加入消息后,路由器才会转发组播流量,这种方式适用于疏松模式。

基于源的树与基于共享的树:源树:共享树:PIM-DM模式特性:z密集模式组播路由选择协议z使用基于源的分发树(SPT)z与单播协议无关z使用隐式加入,推模式,先泛滥,再修剪PIM-DM step-by-step :A-PIM的消息类型(PIMv2)Hello Message用来发现与建立邻居关系,发送周期30s,超时时间为hello的3.5倍,默认105s。

可以使用命令 ip pim query-interval进行修改Join/PruneJoin用来向上游路由器通告其想加入pim组播树,Prune则用来向上游通告将自身从组播树中剪除。

Graft向上游路由器通告网络中的主机加入一个新的组播组Graft-ACK上游路由器发送,用来确认受到一个Graft消息Assert当一个网络中连接有两个或多个路由器时,用来选举一个指定路由器所有的PIM消息使用组播地址224.0.0.13。

当组播源开始发送组播数据后,PIM-DM使用扩散方式建立多播树,每台路由器在收到组播包后,就在其组播转发表里面添加一个条目。

最后组播数据会扩散到所有路由器上面。

如果路由器连接的网络中没有组成员的话,路由器就向上游路由器发送一个Prune消息。

所以,PIM-DM的工作模式又叫做“扩散,剪除”。

组播路由器表:在路由器中,PIM组播分发树是以组播路有表的形式呈现的:组播路由表中列出的信息包括:z(*,G)或者(S,G) 有效时间-2:59sz Incoming interface:上游邻居z Outgoing interface:下游邻居z RPF 反向路径转发与单播路有表相似,相关Flags缩写的解释在上面已经列出,例如DCL,表示:Dense,Connected,Local。

当单播路由发生变化,会重新计算RPF接口;源树为最短路径树-SPT,共享树为会聚点数-RPT。

DM模式使用SPT。

Prune:如果路由器连接的网络中的最后一个组员离开组播组的话,路由器会向上游路由器发送一个Prune信息,如果这台路由器是上游唯一连接路由器,那么上游路由器也会向其上游路由器发送Prune信息。

组播路由表中相关(S,G)的Flags会变为P,相关接口状态会从Forward变为Prune。

当路由器收到一个Prune消息后,会启动一个210s的计时器,如果计时器超时,则状态变回转发状态;Graft:当路由器已经向上游发送一个Prune消息后,所连接子网中又有组员请求加入时,路由器会以单播形式向上游发送一个Graft消息,上游路由器收到后会将收到消息的接口转为forward 状态,并以单播形式发送一个GraftACK。

如果发送Graft的路由器在3s中内没有收到确认,则重新发送;Assert:当在一个多路访问网络中有多台路由器时,路由器会通过发送Assert报文选举一个forwarder。

选举机制如下:选择拥有最低度量值[administrative distance / metric] (到组播源的单播路由协议的管理距离和度量)如果度量一样,则选择拥有最高IP地址的如果非DR路由器在105s内没有收到DR的Hello消息,则证明DR出现问题,重新选举DR;Prune 消息覆盖:如上图,Copper所连接网络中没有组员,向上游路由器Mercury发送一个Prune消息,但是同样直连的路由器Sliver从相同的E0接口上面接受组播数据,所以为了避免影响Sliver,Mercury在收到Prune消息后,会等待3s,路由器Sliver收到Copper发送的Prune消息后,发现组播地址时自己要接收的组播地址,则会向上游Mercury发送一个Join消息,这时,Mercury收到的Join消息会覆盖掉Prune消息。

防止通信中断。

这就是Prune覆盖;PIM-SM模式PIM-SM模式同时支持源数与共享树,支持显示加入;共享树与源树的最大区别是共享树是与源无关的。

也就是说多个源共享一个树。

PIM-SM Step-by-Step:PIM-SM的消息类型:Hello 和PIM-DM中的hello功能相同Bootstrap 用来选举BSR,消息目标地址为224.0.0.13 ,TTL为1;Candidate-RP-AdvertisementJoin/Prune 与PIM-DM相同Assert 与PIM-DM相同RegisterRegister-Stop共享树植根于组播网络中的一台路由器,在PIM-SM中,称为会聚点(rendezvous point RP)。

在共享树建立之前,所有加入路由器必须知道如何到达RP,可通过以下三种方式:1.静态配置RP地址2.使用自举协议指定和宣告RP3.Cisco私有的RP协议来指定和宣告RP静态配置,管理开销大,通常用于小型多播网络;BSR-自举协议BSR(BootStrap Router)协议是开放标准的选举与管理RP机制;候选自举路由器——Candidate bootstrap router C-BSRBSR是用来管理RP的路由器,可以手工配置多个C-BSR,每个C-BSR有一个0-255的优先级和一个标识自己的IP地址,要从多个C-BSR中选举出来一个BSR,多个C-BSR 通过比较优先级来选举出一个BSR,优先选择拥有最高优先级的。

相关主题