CCIE SP — 组播 IP 多播路由介绍

Some Well-Known Reserved Multicast Addresses

Address Group
—————————————
224.0.0.1 All systems on this subnet
224.0.0.2 All routers on this subnet
224.0.0.4 DVMRP routers
224.0.0.5 All OSPF routers
224.0.0.6 OSPF designated routers
224.0.0.9 RIP-2 routers
224.0.0.10 EIGRP routers
224.0.0.13 PIM routers
224.0.0.15 CBT routers
224.0.1.39 Cisco-RP-Announce
224.0.1.40 Cisco-RP-Discovery 224.0.1.40 Cisco-RP-Discovery

以太网组播地址的映射

具有多播功能的以太网、令牌环和FDDI的NIC都采用保留的IEEE802地址0100.5E00.0000来决定唯一的多播MAC地址。

以太网接口把组IP地址的最后23bit映射到保留的MAC地址的最后23bit组成一个多播MAC地址,如上图所示。图中,以太网的多播MAC地址是由IP地址的最后23bit连接在MAC地址0100.5E00.0000的前256bit后构成。 如OSPF的224.0.0.5的组播MAC地址0100.5E00.0005就是这么得来的。

为什么组播MAC需要映射?难道直接用原来的MAC不行么(10进制转16进制)? 其实,D类地址跟A、B、C类完全是不同的,当初定义就不一样,所以,MAC地址的算法自然也就不一样!在考虑组播时不要拿它跟普通IP做对比。 另外,组播的源地址大部分在软件上设置(如视频电视等),当然router上也可以设置组播源

从上面的图中可以看出,每一个组播MAC都会对应32个不同的地址,因为D类地址规则是“1110”又因组播MAC是由IP地址的后23位映射的,所以中间有“10111”五位可变的位,也就是2的5次方,32个组合。 虽然有重复,但根据IETF的观点,这种可能性比较小,在此可以不用深入研究为什么可能性小。

组播管理协议IGMP

IGMPv2的主机功能

1. Membership Report 消息
主机加入组播时发出,不会等待路由器的查询。此信息发送的时间间隔为10s. 因为主机发的信息是组播的,所以组中的其他成员也会收到这个信息,如果主机在它的计时器超时前收到Membership Report信息,他就不会再发送此信息,这样可以节约带宽,不会使整个子网充斥这Membership Report信息。

2. Version 1 Membership Report 消息
为了兼容IGMPv1的消息而设置的。

3. Leave Group 消息
主机退出时发出的消息。

IGMPv2的路由功能:

1. General Query
路由器对所有子网进行轮询查找是否有组员存在。默认时间间隔为60s,可以通过ip igmp query-interveal命令来更改此默认时间。

此查询包含Max Response Time的值,这个值是主机用Membership Report来响应查询的时间,这个值的默认时间为10s,可以通过ip igmp query-max-response-time来改变。Max Response Time占用了8bit。

此消息被发向“子网中的所有系统”224.0.0.1 ,也就是所有支持多播的设备。如果路由器连续3次发送的查询没有回应,那么它就认为它的子网中没有此组的组员。

2. Group-Specific Query
主机正常退出时会发送Leave Group ,当路由器收到此信息后,必须判断子网中是否有组员存在,为了这个目的,路由器会发送Group-Specific Query,与Greneral Query不同的是,它包含的是组的地址,目的地址是组地址而不是224.0.0.1。

如果此信息被破坏或被丢弃,组员收不到,那么路由器会认为没有组员存在而停止转发组数据。因此路由器会每隔1s分别发送2个Group-Specific Query消息。

当多播路由器被激活时,他认为自己是查询者,所以会发送General Query和 Group-Specific Query消息。当子网中有多个路由器时,会选较小IP地址的路由器做查询者。 当路由器收到General Query时,会查看源地址,如果它自己的IP地址更小,那么会继续发送查询;当新路由器收到一个General Query,发现此路由器有较小的IP,那么那么他会成为非查询者。

非查询者有一个非查询者时间间隔,也就是Other Query Present Interval,是默认时间的2倍,也就是120s,可用ip igmp query-timeout来改变。如果过了120s还收不到查询者的查询时,他会认为查询者不存在了,并自己成为查询者。

IGMPv1:

1. 没有leave group消息。
2. 没有group-specfic query消息
3. 不在查询消息中存在最大响应时间,而在主机中固定一个最大响应时间,为10s。
4. 没有选举过程,所以可能在一个子网中存在多个查询者。

IGMP v1&v2

Gold#debug ip igmp
IGMP debugging is on
Gold#
IGMP: Send v2 Query on Ethernet0/0 to 224.0.0.1
IGMP: Received v2 Report from 172.16.1.23 (Ethernet0/0) for 239.1.2.3
IGMP: Received v1 Report from 172.16.1.254 (Ethernet0/0) for 228.0.5.3
IGMP: Starting old host present timer for 228.0.5.3 on Ethernet0/0
IGMP: Send v2 Query on Ethernet0/0 to 224.0.0.1
IGMP: Received v2 Report from 172.16.1.23 (Ethernet0/0) for 239.1.2.3
IGMP: Received v1 Report from 172.16.1.254 (Ethernet0/0) for 228.0.5.3
IGMP: Starting old host present timer for 228.0.5.3 on Ethernet0/0

路由器不断发送版本2的General Queries消息,而且最大响应时间不为0。路由器收到239.1.2.3的IGMPv2的Membership Report消息与组228.0.5.3的IGMPv1的Membership Report。版本1的消息会使路由器为这个组设置一个 old host present timer时间,版本1的主机会忽略它。主机将版本2的查询理解为版本1的查询。

组成员资格协议CGMP

交换网中多播的控制方法:

1. CGMP
下面将详细讲解。

2. 手工配置的交换式多播树
静态的绑定端口和组播地址,主要有以下缺点:
1,手工配置,不适合大量部署。
2,不能跨越VLAN

3. GMRP
动态的添加多播地址,是一个开放协议,802.1p,它是一个严格的2层协议。

4. IGMP监听
支持多个厂家的3层协议,检查所有经过的IGMP消息,如果用软件来实施,那会严重降低交换机的性能,所以当交换机的硬件转发支持IGMP时(或有专门的ASIC),才推荐用这个。

CGMP的操作

CGMP是cisco的专有协议,只有路由器能产生CGMP包,交换机只能读取这些包。

CGMP分2种包:
1. Join,路由器发出,告诉交换机向多播组加入一个或多个组员。
2. Leave, 路由器发出,告诉交换机删除一个或多个组员,或是整个组。

2种包的信息包括了:
1. GDA:组目的地址
2. USA:单播源地址。

当CGMP的路由器启动后,它向交换机发送一个CGMP的join包,这个包中的GDA为0(0000.0000.0000.0000),USA设置为自己的MAC地址。于是交换机知道多播路由器连接在它收到这个包的端口上。路由器每隔60s发送一个包来维持存活。

以下是CGMP的操作过程:

主机发送IGMP Membership Report,经过交换机到达路由器,路由器会发送Join包给交换机,交换机收到后,根据包的信息,建立MAC地址与组播地址的映射关系,当路由器发送IGMP查询时,交换机会把查询信息发送到除接受端口外的所有组端口上。

主机发送IGMP Leave消息,路由器收到后,发出2个IGMP Group-Specific Query查询,交换机收到后,把此消息转到组的端口上,如果有还有组员响应,那么路由器发送IGMP Leave包到交换机,交换机收到后,根据包中的描述,删除跟组员相对应的端口。如果没有组员响应,路由器也发送IGMP Leave包,交换机收到后,删除整个组。

上面讲到都是EGMP 的Leave包,但意义不同,以下是CGMP包的格式:

Type GDA USA Function
Join Zero Router MAC Identifies the port as a multicast router port.
Join Group MAC Member MAC Identifies the multicast group and adds the member’s port to the group.
Leave Group MAC Member MAC Removes the member port from the specified group.
Leave Group MAC Zero Removes the group from the CAM.
Leave Zero Router MAC Removes all groups and ports bound for the router’s port from the CAM.
Leave Zero Zero Removes all groups from all switches.
本文出自 Frank's Blog

版权声明:


本文链接:CCIE SP — 组播 IP 多播路由介绍
版权声明:本文为原创文章,仅代表个人观点,版权归 Frank Zhao 所有,转载时请注明本文出处及文章链接
你可以留言,或者trackback 从你的网站

留言哦

blonde teen swallows load.xxx videos