专利名称:三层交换机上实现组播精确到端口转发的方法
技术领域:
本发明属于网络通信中的组播相关技术领域,尤其涉及实现组播精确到端口的转发方法。
背景技术:
目前,在组播领域,主要还是基于接口的组播,也就是说,在一个虚拟LAN(VLAN)域中,是在该域进行广播达到目的的。
因特网组管理协议(IGMP)实现上,有一个特性如果一个用户收到某一个组的IGMP报告报文(IGMP REPORT报文),就不再发出IGMP REPORT报文,这个特性在协议上称为“REPORT抑制”,因此,不克服这个特性,将无法实现精确到端口的转发,而从协议上看,克服这个特性,就只能是让REPORT报文不进行转发,而是直接收到协议层。所谓IGMP REPORT报文,主要目的为主机(HOST)向组播路由器报告自己属于哪个组播组。
目前,阻止在域内广播的实现是在二层交换机上实现IGMP SNOOP或者其它协议,保证在二层设备上能够精确到端口。
但在3层交换机,如果将REPORT报文抓上来,不让它转发,将带来一个致命缺陷,在图1所示组网环境中,主机host和端口e1、e2、e3在同一个VLAN中,e1所在交换机1与e3所在交换机2同时使能PIM(协议无关组播协议)和IGMP,但e3所在交换机为DR(指定路由器)。交换机1实现IGMP精确到端口,交换机2也实现精确到端口,但交换机2为PIM的DR,交换机1连接了用户主机host,此时,用户的REPORT报文被交换机1截获,直接送到协议层,并且不让该报文进行转发,但由于交换机1本身不是PIM的DR,因此,实际上,交换机1对该报文是不会上报用户加入的,同时,DR也由于没有收到REPORT报文,因此,也不会加入该用户,于是,该用户将永远无法点播!
发明内容
本发明的目的是在原有的IGMP协议上,增加一种代理的方法,从而能够在3层交换机上,克服IGMP的REPORT抑制带来的缺陷,实现精确到端口的转发。
本发明的技术方案如下三层交换机上实现组播精确到端口转发的方法,称为IGMP代理方法,包括以下步骤1.网络配置时,将IGMP的主查询器和PIM的DR设在同一个交换机上。
2.确定主查询器所在的端口,其他各个IGMP代理交换机获得主查询器所在的端口。可以分为如下两种情况如果网络中只有一台交换机运行IGMP和PIM,则在步骤1中进行网络配置时,同时指定主查询器端口,各个IGMP代理交换机直接记录主查询器所在端口。
如果网络中有多台交换机同时运行IGMP和PIM,则PIM通过竞争,竞选出DR;IGMP通过竞争,竞选出IGMP主查询器。按照协议,PIM可以指定DR,并定出DR的优先级;对于IGMP,在V1版本中,如果本交换机是DR则将自己认为是主查询器,在V2版本中则是按照IP地址进行竞选,IP地址小者为查询者。各IGMP交换机参与竞选获得主查询器所在端口的过程如下首先默认自己是DR(则此时没有路由器端口,直接将REPORT报文送到PIM层处理),如果收到一个IGMP的QUERY报文,记录该端口,则对该QUERY报文的IP地址和DR的IP地址比较,如果发现新的QUERY报文显示的IP地址小于DR的IP地址,则认为新的QUERY报文的IP地址所在的交换机为DR,更换DR的地址为新的IP地址,并更新DR所在端口为QUERY报文所在端口。竞选过程也可以在下述步骤3中同时完成。
3.主查询器向各个IGMP代理交换机发出IGMP查询报文(IGMP QUERY报文),IGMP代理交换机收到该报文,并向入端口以外的所有端口转发该QUERY报文。主查询器发出QUERY报文,主要目的为让所有主机都能收到查询报文,从而让主机收到该查询报文后及时响应,并发出REPORT报文(如果该主机确实属于某组播组的话)。
本步骤中,也可以同时完成各IGMP交换机竞选以获得主查询器所在端口的过程。
4.当交换机的某一个端口收到用户主机发出的REPORT报文时,截获到协议层,并不让该报文转发;交换机检查自己在该REPORT报文所示的组播组内是否是DR,并由IGMP协议对该REPORT报文进行下述处理如果检查结果发现自己不是DR,则记录收到REPORT报文的端口,同时将该成员增加报告通过主查询器所在的端口向DR转发,由DR将成员增加报告送给PIM协议层;如果检查结果发现自己是DR,则直接将成员增加报告送给PIM协议层,同时记录收到REPORT报文的端口,并标记为组成员端口;5.当组播数据报文到达时,即可按照如下方式精确到端口进行转发组播数据报文到达DR,通过组成员端口转发至IGMP交换机,数据报文到达下级交换机后,下级交换机再通过所记录的收到REPORT报文的端口转发至用户主机。
图3示出了本发明方法的处理流程。
图2示出了一个具体的精确转发的例子。在图2中,e1为DR所在端口,即主查询器所在端口,e2、e4为REPORT报文所在端口(即组成员端口),e3即为非组播成员端口。e1、e2、e3、e4在同一VLAN,此交换机启动了IGMP,此时,并且,IGMP已经记录了e2、e4为某一组播组成员所在的端口,e1为组播数据流进入的端口,当e1端口数据流流入,交换机将能够按照所记录的e2、e4端口进行精确转发,此时e3端口所在的用户将不会收到此数据。
本发明的优点和积极效果本发明在原有的IGMP协议上增加一种代理,从而能够在三层交换机上,克服IGMP的REPORT抑制带来的缺陷,组播更容易地实现精确到端口。在有3层交换机在场的情况下,更好地节约带宽,同时,由于能够在三层交换机上精确到端口,能够克服以往组播广播造成的计费缺陷,能够针对用户进行计费。
图1为三层交换机组网系统示意框图;
图2为精确到到端口转发的示意图;图3为本发明的IGMP代理方法的处理流程图。
具体实施例方式按照本发明的技术方案,描述一个本发明方法的实例过程网络启动,交换机竞选PIM的DR与IGMP的主查询器(网络配置可以很方便地使得两者在同一个交换机上)。由于各个IGMP交换机会将QUERY报文进行透传,因此,IGMP的主查询器的竞选没有障碍。
主查询器发出QUERY报文。
下级交换机接收到QUERY报文,发现自己不应该是主查询器,将该QUERY报文转发给出进端口外的VLAN中的其它所有端口,并记录进端口。
HOST发出REPORT报文,下级交换机收到报文后,将该报文向记录的QUERY报文的入端口转发,同时,本交换机记录收到的REPORT报文的端口(PORTLISTNN)。
DR收到REPORT报文,上报给PIM,并同时记录收到REPORT报文的端口(PORTLISTDR)。
组播数据报文到达DR,通过PORTLISTDR转发。
数据报文到达下级端口,通过PORTLISTNN进行转发。
权利要求
1.三层交换机上实现组播精确到端口的转发的方法,其特征在于包括以下步骤(1)网络配置时,将IGMP的主查询器和PIM的DR设在同一个交换机上;(2)确定主查询器所在的端口,其他各个IGMP代理交换机获得主查询器所在的端口;(3)主查询器向各个IGMP代理交换机发出QUERY报文,IGMP代理交换机收到该报文,并向入端口以外的所有端口转发该QUERY报文;(4)当交换机的某一个端口收到用户主机发出的REPORT报文时,截获到协议层,并不让该报文转发;交换机检查自己在该REPORT报文所示的组播组内是否是DR,并由IGMP协议对该REPORT报文进行下述处理如果检查结果发现自己不是DR,则记录收到REPORT报文的端口,同时将该成员增加报告通过主查询器所在的端口向DR转发,由DR将成员增加报告送给PIM协议层;如果检查结果发现自己是DR,则直接将成员增加报告送给PIM协议层,同时记录收到REPORT报文的端口,并标记为组成员端口;(5)当组播数据报文到达时,即可按照如下方式精确到端口进行转发组播数据报文到达DR,按照组成员端口转发至IGMP代理交换机,数据报文到达代理交换机后,再通过代理交换机所记录的收到REPORT报文的端口转发至用户主机。
2.如权利要求1所述的三层交换机上实现组播精确到端口的转发的方法,其特征在于,所述步骤(2)中各个IGMP代理交换机获得主查询器所在的端口的方式是在步骤(1)中进行网络配置时指定主查询器所在的端口,各个IGMP代理交换机记录所指定的主查询器所在端口。
3.如权利要求1所述的三层交换机上实现组播精确到端口的转发的方法,其特征在于,所述步骤(2)中各个IGMP代理交换机获得主查询器所在的端口的方式是各IGMP交换机通过竞选,竞选出主查询器,其他各个IGMP代理交换机获得主查询器所在端口。
4.如权利要求3所述的三层交换机上实现组播精确到端口的转发的方法,其特征在于,所述各IGMP交换机竞选主查询器的过程如下首先默认自己是DR,如果收到一个IGMP的QUERY报文,记录该端口,则对该QUERY报文的IP地址和DR的IP地址比较,如果发现新的QUERY报文显示的IP地址小于DR的IP地址,则认为新的QUERY报文的IP地址所在的交换机为DR,更换DR的地址为新的IP地址,并更新DR所在端口为QUERY报文所在端口。
全文摘要
本发明提供了在三层交换机上实现组播精确到端口转发的方法,即在网络配置时,将IGMP的主查询器和PIM的DR设在同一个交换机上;确定主查询器所在的端口,其他各个IGMP代理交换机获得该端口;当交换机收到用户主机发出的REPORT报文时,截获到协议层,并不让该报文转发,交换机如果不是DR,则记录收到REPORT报文的端口,同时将该成员增加报告通过主查询器所在的端口向DR转发,交换机如果是DR,则直接将成员增加报告送给PIM协议层,同时记录收到REPORT报文的端口,并标记为组成员端口;当组播数据报文到达时,即可实现精确到端口进行转发。本发明的方法在原有的IGMP协议上增加一种代理,能够在三层交换机上克服IGMP的REPORT抑制带来的缺陷。
文档编号H04L12/16GK1484406SQ0315325
公开日2004年3月24日 申请日期2003年8月11日 优先权日2003年8月11日
发明者胡虹, 胡 虹 申请人:北京港湾网络有限公司