《使用RGMP协议基础内容与案例分析》由会员分享,可在线阅读,更多相关《使用RGMP协议基础内容与案例分析(13页珍藏版)》请在金锄头文库上搜索。
1、使用 RGMP: 基础内容与案例分析介绍路由器端口群管理协议(RGMP)和IGMP侦听一起用于强制组播业务发送至实际需要该业务的层中。IGMP侦听将组播业务发送至路由器所有端口。有了RGMP,组播业务仅被发送至需要对其进行接收的端口。由于RGMP在组播网络的骨干上运行,知道了组播的基础知识(IGMP、PIM、组播路由)将有助于理解本文。硬件和软件版本RGMP是一个在Catalyst交换机与路由器之间运行的协议,两者都需要支持RGMP以使功能正常作用。下列交换机支持RGMP: Catalyst 6000:从软件版本5.4开始 运行本机模式的Catalyst 6000:从软件12.1(3a)E3开
2、始 Catalyst 5000:从软件版本5.4开始 下列Cisco IOS 路由器软件版本支持RGMP: 12.2 主系列版本 12.1E 12.1T (从版本12.1(5)T1开始) 12.0S (从版本12.0(10)S开始) 12.0ST (从版本12.0(11)ST开始) 协议限制路由器和交换机上都需要运行RGMP。 您需要在交换机上启用IGMP侦听。 RGMP将仅对配置有协议独立组播(PIM)分散模式的群组有效。 不支持直接连接至一RGMP交换机发送组播业务的源。 不支持将多个路由器连接至同一交换机端口(例如在同一集线器上的两个路由器)。 不支持将多个路由器连接至同一非RGMP交换
3、机。 如果不遵守这些限制,将有可能导致组播连接中断。 RGMP减少网络负载RGMP的目的是去除不必要的组播业务。以下图表说明的是没有启用RGMP的假设网络:我们现在有一个连接至R1的组播源以及一个连接至R4的接收机。该群组的RP在R2之后。业务由R1转发至交换机(每个PIM与mroute表格,当接收机在交换机接口之后)。交换机将使用IGMP侦听来对这个只有源的网络进行探测,并创建一个指向所有路由器(R1、R2、R3与R4)的静态Content-Address Memory (CAM)条目。组播业务将发送至所有路由器,其中包括不需要该业务的R3。这个组播业务量很大,可能会对路由器R3产生不必要的
4、负载。RGMP已经克服了这个问题。 下图显示了启用RGMP的同一个网络 (假设路由器与交换机均有RGMP能力):R2与R4将对交换机发送至RGMP加入组播群组。R3将不发送RGMP 加入消息。结果,交换机将仅向R2与R4的群组转发从R1接收的组播业务,而不向R3发送。这样就减少了网络上的业务量。RGMP详情RGMP和CGMP类似,是一个在路由器和交换机之间运行的协议。路由器发送RGMP数据包,交换机接收RGMP数据包。交换机从不发送RGMP数据包,而路由器将忽略任何可能接收到的RGMP数据包。RGMP数据包是类型为IGMP的IP数据包,且被发送至预留的群组地址224.0.0.25(MAC地址0
5、1 - 00 - 5e - 00 - 00 - 19)。它们作为IGMP数据包发送,保活时间(TTL)为1。地址224.0.0.25是对应于所有交换机组播地址的预留地址。一个RGMP数据包基本包括一个类型字段、一个群组地址字段以及一个校验和。下表显示RGMP数据包的不同类型:描述作用Hello当在路由器上启用RGMP时,将没有组播数据业务通过交换机发送至路由器,除非为一个组发送RGMP 加入消息.Bye当路由器上禁用RGMP时,所有组播数据业务将通过交换机发送至路由器。Join对于从第3层群组地址G中组播的MAC地址,组播数据业务将被发送至路由器。在RGMP数据包的群组地址字段中,这些数据包的
6、群组为G。LeaveMult群组G的组播数据业务将不发送至路由器。在RGMP数据包的群组地址字段中,这些数据包的群组为G。Hello与Bye数据包使用0.0.0.0作为RGMP数据包中的群组地址。Join与Leave使用让路由器发生响应的群组地址(加入或者离开)。 RGMP数据包使用以下的地址类型:地址类型所用地址所有RGMP数据包的目的地MAC地址01-00-5e-00-00-19所有RGMP数据包的目的地IP地址224.0.0.25用于RGMP Hello与Bye的群组地址0.0.0.0用于RGMP Join与Leave的群组地址TD 发送Join或者Leave的组播群组是什么使路由器发送
7、RGMP数据包RGMP Hello 每当路由器上启用RGMP时,该路由器将向交换机送出一条RGMP Hello信息,指出交换机不应该把组播数据业务转发至该路由器上,除非发送某组的RGMP 加入消息。同样,请注意必须在路由器上对PIM进行配置,以使该功能生效。在同一重发间隔中发送RGMP Hello信息作为PIM Hello信息(默认值为30秒)。RGMP Hello信息始终先于PIM Hello信息。 RGMP Bye 每当路由器禁用RGMP,它将发送RGMP Bye信息至交换机,指出路由器不再执行RGMP,且所有组播业务应再次转发至该路由器。 RGMP 加入消息每当路由器发送PIM 加入消息
8、时,它同时构建RGMP 加入消息并在送出PIM 加入消息的同一接口处送出。使用上述图表举例,R4从群组G接收机接收IGMP报告的同时向RP发送PIM 加入信息。它还在同一接口上发送RGMP Join,该信息随后由交换机S1截获。S1对数据包进行处理,并将该路由器端口添加到群组G的第2层静态条目(静态CAM条目)。这样可以在该端口上实现对群组G的业务转发。综述: 每当路由器创建(*,G)条目时,将发送RGMP Join,发送接口和路由器发送PIM Join信息的接口是同一个。 每当路由器创建(S,G)条目时,将发送RGMP Join。路由器将在通向S的接口上发送PIM Join信息,然后RGMP
9、 Join也在同一通向S的接口上进行发送。 RGMP Join将在发送PIM Join时发送,但不在接收PIM Join时发送。 如果有多个源发送至群组G,且只有一个(*,G)条目,将只送出一条RGMP Join。 RGMP Leave当路由器发送(*,G)或者(S,G)的PIM Prune消息时,它同样会检查:对于PIM Prune的发送接口,该群组是否至少有一个其它的mroute 条目。如果没有其它的条目,RGMP Leave将在同一接口进行发送。 当交换机接收RGMP数据包时将发生什么当路由器禁用RGM而交换机启用IGMP侦听时,交换机中的各组播群组转发条目列出输出端口表,其中包括所有组
10、播路由器端口以及响应主机所加入到组播群组的所有端口,当启用了RGMP时,将发生以下变化: 交换机不向RGMP路由器发送任何组播群组,除非特地给出请求(除224.0.0.x和224.0.139-40)范围中预留的组。 交换机仍向非RGMP路由器群组发送组播业务。 RGMP Hello: 当从某个路由器端口接收到一个RGMP Hello数据包时,交换机将把该路由器端口作为有RGMP能力的端口标记,普通的组播业务将不再发送至该组播路由器端口。 RGMP Bye: 收到RGMP Bye时,我们取消作为RGMP路由器端口的路由器端口的标记,并在VLAN中的所有现有群组中添加该端口。 RGMP Join:
11、 当某个特殊群组接收RGMP Join数据包时,交换机将添加该路由器端口,由该端口接收RGMP Join并发送至群组目的地端口列表中。RGMP Join也被转发至所有RGMP路由器端口。 RGMP Leave: 当某个特殊群组接收RGMP Leave数据包时,交换机将从对接收该群组产生响应的端口群组中去除该路由器端口。 RGMP配置与检验在交换机上启用RGMP: #set igmp enable !- 如果以前没有进行该设置 #set rgmp enable您可以通过通过输入以下命令来检验设定: #sh rgmp group #sh multi router #sh rgmp stat #sh
12、 multi group在路由器上配置RGMP: #ip rgmp !- 处于接口模式and, if not done previously:#ip multicast-routing !- 处于全局配置模式 #ip pim sparse-mode !- 处于接口模式运行本地IOS的Catalyst 6000上的RGMP运行本地IOS的Catalyst 6000上的RGMP具有以下特点: 默认值是在所有L2端口(交换机端口)上启用RGMP,且无法禁用。 如果需要L3组播接口起到RGMP路由器的作用,则需要在所有L3组播端口上启用RGMP;通过在接口方式(和通常IOS路由器上一样)中发出ip r
13、gmp命令来实现。 通过IGMP侦听探测到的运行RGMP的接口以及所有其它的RGMP路由器可以通过发出以下命令进行检验: Boris#sh ip igmp snooping mrouter vlan ports -+- 1 Po3,Router 10 Gi3/8,Router 11 Gi3/8,Router 100 Router 101 Router 198 Po3,Router 199 Po3,Router+ 222 Router +- RGMP capable router port Boris#处理输出结果显示本地6000的VLAN 199接口上配置了ip rgmp在VLAN 199上,
14、路由器标记为具有RGMP能力。本地IOS中的路由器代替了VLAN 199中的6500路由器本身。 案例分析以下图表说明使用RGMP的实际网络:在本例中,仅fido和taras中的多层交换机功能卡(MSFC)是具有RGMP能力的路由器;donald、daniella以及piggy是无RGMP能力的路由器。由组播源4.4.4.1向224.1.1.1进行发送,224.1.1.1位于piggy后的串口上。 Taras - msfc在VLAN 2与VLAN 3之间执行 VLAN间路由。VLAN 2中没有接收机,而VLAN 3中有两个接收机:一个在fido后面,另一个在donald后面。 注意: 在下节中
15、,没有由具体命令处理的输出结果被认为来自路由器上的 debug ip rgmp 和来自交换机上的set trace mcast 5 命令在交换机上启用RGMP首先,我们在taras(Catalyst 6000交换机)上启用RGMP,假定还没有路由器进行了RGMP配置。一旦启用了RGMP,交换机将组播MAC地址01 - 00 - 5e - 00 - 00 - 19添加至系统CAM表,这意味着交换机开始对所有发送至该MAC地址的数据包进行接收。该地址相当于由RGMP使用的224.0.0.25: taras (enable) set rgmp enableRGMP enabled.taras (enable) sh cam sys * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry