一种二层组播路径跟踪方法、装置及系统的制作方法

文档序号:7846763阅读:314来源:国知局
专利名称:一种二层组播路径跟踪方法、装置及系统的制作方法
技术领域
本发明涉及通信领域,特别涉及一种二层组播路径跟踪方法、装置及系统。
背景技术
IP组播就是通过使用特定的IP组播地址,按照最大投递的原则,将IP数据包传输到位于一个组播群组的主机;通常把工作在数据链路层的IP组播称为二层组播。在二层组播中,通过侦听/拦截组播路由器和主机之间交互的IGMP(Internet Group Management Protocol,因特网组管理协议)报文,可以获知交换机的哪些端口下连接着一个组播群组的组成员主机,只将组播数据发送至这些端口,从而实现了组播数据在二层网络中的转发。 在二层组播中,如果想获知组播数据在组播路由器和组成员主机之间的组播转发路径,主要通过路径跟踪的方法来实现。现有技术需通过命令行或逐台排查设备节点来跟踪组播数据在组播路由器和组成员主机之间的组播转发路径,从而可以获知组播数据的组播转发路径。在实现本发明的过程中,发明人发现现有技术至少存在以下问题庞大的二层组播网络中涉及的组播设备太多,现有技术中的路径跟踪方法使得运维成本增加,效率降低。

发明内容
为了降低运维成本,提高效率,本发明实施例提供了一种二层组播路径跟踪方法、 装置及系统。所述技术方案如下一种二层组播路径跟踪方法,所述方法包括获取路径跟踪请求报文;判断二层组播转发表中组播成员端口的端口实例状态;当所述端口实例状态中存在所述非^erEdge状态,添加自身设备的介质访问控制MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备;当所述端口实例状态均为所述^erEdge状态,终结路径跟踪请求报文,添加自身设备的MAC地址至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从所述 NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息, 将所述组播路径信息发送至查询设备。一种二层组播路径跟踪装置,包括获取模块,用于获取路径跟踪请求报文;判断模块,用于判断二层组播转发表的组播成员端口的端口实例状态;第一处理模块,用于当所述端口实例状态中存在非^erEdge状态,添加自身设备的介质访问控制MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备;第二处理模块,用于当所述端口实例状态均为^erEdge状态,终结路径跟踪请求报文,添加自身设备的MAC地址至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息,将所述组播路径信息发送至查询设备。一种二层组播路径跟踪系统,包括上述二层组播跟踪装置和查询设备,所述查询设备用于接收从所述NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息。本发明实施例提供的技术方案带来的有益效果是通过二层组播中的每一跳二层组播设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,直到终结路径跟踪请求报文,使得请求报文中包含了从 NetEdge状态端口实例对应设备到^erEdge状态端口实例对应设备的组播路径信息;相比较现有技术而言,降低了运维成本,提高了效率。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例1中提供的一种二层组播路径跟踪方法实施例的流程图;图2是本发明实施例2中提供的一种二层组播路径跟踪方法实施例的流程图;图3是本发明实施例3中提供的一种二层组播路径跟踪方法实施例的流程图;图4是本发明实施例3中提供的获取路径跟踪请求报文方法实施例的流程图;图5是本发明实施例4中提供的一种二层组播路径跟踪方法实施例的流程图;图6是本发明实施例4中提供的动态设置^erEdge状态或非^erEdge状态端口实例的方法实施例的流程图;图7是本发明实施例4中提供的IGMPvl Report报文格式示意图;图8是本发明实施例4中提供的IGMPv2 Report/Leave报文格式示意图;图9是本发明实施例4中提供的IGMPv3 Report报文格式示意图;图10是本发明实施例4中提供的动态设置端口实例的组网示意图;图11是本发明实施例5中提供的二层组播mtrace报文处理方法实施例的组网示意图;图12是本发明实施例6提供的一种二层组播路径跟踪装置实施例的结构示意图;图13是本发明实施例7中提供的一种二层组播路径跟踪装置实施例的结构示意图;图1 是本发明实施例8中提供的一种二层组播路径跟踪装置实施例的第一结构示意图;图14b是本发明实施例8中提供的一种二层组播路径跟踪装置实施例的第二结构示意图;图1 是本发明实施例9中提供的一种二层组播路径跟踪装置实施例的结构示意图; 图15b是本发明实施例9中提供的一种二层组播路径跟踪装置实施例的结构示意
0036]图16是本发明实施例10中提供的一种二层组播路径跟踪系统实施例的结构示意

具体实施例方式
本发明实施例提供一种二层组播路径跟踪方法、装置及系统。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。发明实施例中二层组播的mtrace报文包含二层组播的信息字段,如组播源、组播组、组播介质访问控制(MAC,Media Access Control)地址和系统MAC地址。所述二层组播的mtrace报文包括路径跟踪查询(Query)报文、路径跟踪请求(Request)报文和路径跟踪响应(Response)报文。实施例1参考图1,图1为本发明实施例1中提供的一种二层组播路径跟踪方法实施例的流程图。所述二层组播路径跟踪方法包括SlOl 获取路径跟踪请求报文。当获取路径跟踪请求报文的执行主体是所述NetEdge状态端口实例对应的二层组播设备时,获取路径跟踪请求报文具体包括接收由查询设备发送的路径跟踪查询报文;将所述路径跟踪查询报文修改为路径跟踪请求报文。或者,当获取路径跟踪请求报文的执行主体不是所述NetEdge状态端口实例对应的二层组播设备时,获取路径跟踪请求报文具体包括接收由上游二层组播设备发送的路径跟踪请求报文。S102 判断二层组播转发表中组播成员端口的端口实例状态,当所述端口实例状态中存在非^erEdge状态时,执行S103 ;当所述端口实例状态均为^erEdge状态时,执行 S104。S103 添加自身设备的介质访问控制MAC地址至所述路径跟踪请求报文,经所述 # UserEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备。S104 终结路径跟踪请求报文,添加自身设备的MAC地址至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息,将所述组播路径信息发送至查询设备。本实施例中,二层组播中的每一跳二层组播设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,直到终结路径跟踪请求报文,使得路径跟踪请求报文中包含了从NetEdge状态端口实例对应设备到UserEdge状态端口实例对应设备的组播路径信息;相比较现有技术而言,降低了运维成本,提高了效率。实施例2
参考图2,图2为本发明实施例2中提供的一种二层组播路径跟踪方法实施例的流程图。所述二层组播路径跟踪方法包括S201 设置二层组播设备的端口实例状态,所述端口实例状态包括网络侧边缘 NetEdge状态、用户侧边缘^erEdge状态和非^erEdge状态。在二层组播中,二层组播设备既可以直接连接主机,又可以直接连接其他的二层组播设备,因此端口或虚拟局域网(Vlan,Virtual local area network)端口可以作为主机或二层组播设备的接口 ;NetEdge状态、UserEdge状态和非^erEdge状态都是基于端口或Vlan端口,为了描述方便,将端口或Vlan端口统称为端口实例。所述NetEdge状态的端口实例主要用于终结路径跟踪查询报文,发送路径跟踪请求报文,防止路径查询报文被无限止的在二层组播网络中转发;所述非^erEdge状态端口实例主要用于转发二层组播mtrace报文;所述^erEdge状态端口实例主要用于终结路径跟踪请求报文,发送路径跟踪响应报文,防止路径请求报文被无限止的在二层组播网络中转发。在实际应用中,由于连接组播源或组播路由器的二层组播设备较少,所以可以直接静态设置二层组播设备的端口实例为NetEdge状态,具体地,可以指定直接连接上游组播源或组播路由器的二层组播设备的端口实例状态为NetEdge状态。对于本领域技术人员而言,设置二层组播设备的端口实例状态为NetEdge状态的方法不仅仅局限于此方法,在此不作赘述。对于二层组播设备的^erEdge状态端口实例或非^erEdge状态端口实例也可以进行静态设置,具体地,可以指定二层组播设备上直接连接下游二层组播设备的端口实例状态为非^erEdge状态,可以指定二层组播设备上直接连接下游主机的端口实例状态为^erEdge状态;或者,也可以动态设置二层组播设备的^erEdge状态端口实例或非 UserEdge状态端口实例。S202 获取路径跟踪请求报文。当获取路径跟踪请求报文的执行主体是所述NetEdge状态端口实例对应的二层组播设备时,获取路径跟踪请求报文具体包括接收由查询设备发送的路径跟踪查询报文;将所述路径跟踪查询报文修改为路径跟踪请求报文。或者,当获取路径跟踪请求报文的执行主体不是所述NetEdge状态端口实例对应的二层组播设备时,获取路径跟踪请求报文具体包括接收由上游二层组播设备发送的路径跟踪请求报文。S203 判断二层组播转发表中组播成员端口的端口实例状态,当所述端口实例状态中存在所述非^erEdge状态时,执行S204 ;当所述端口实例状态均为所述^erEdge状态时,执行S205。每个二层组播设备上都有一个二层组播转发表,所述二层组播转发表中存储着自身设备的组播成员端口,所述组播成员端口直接或间接连接组成员主机。二层组播转发表的具体形式与现有技术类似,在此不再赘述。所述组播成员端口的端口实例状态存储于端口实例状态集中,所述端口实例状态集主要用于存储二层组播设备上所有组播成员端口的端口实例状态信息。
S204 添加自身设备的介质访问控制MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备。实际应用中,下游设备接收所述添加了 MAC地址的路径跟踪请求报文后,再循环执行S203,直至当所述端口实例状态均为所述^erEdge状态时,执行S205。S205 终结路径跟踪请求报文,添加自身设备的MAC地址至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从所述NetEdge状态端口实例对应设备到所述 UserEdge状态端口实例对应设备的组播路径信息,将所述组播路径信息发送至查询设备。实际应用中,获取从所述NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息,也就表示获取了从组播源或组播路由器到组成员主机之间的组播转发路径信息。本实施例中,二层组播中的每一跳二层组播设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,直到终结路径跟踪请求报文,使得路径跟踪请求报文中包含了从NetEdge状态端口实例对应设备到^erEdge状态端口实例对应设备的组播路径信息;相比较现有技术而言,降低了运维成本,提高了效率。在二层组播网络中,二层组播设备可以是二层组播交换机,也可以是其他二层组播设备,本发明实施例并不局限于此。下述实施例3和实施例4主要以二层组播交换机为例进行详细描述。实施例3参考图3,图3为本发明实施例3中提供的一种二层组播路径跟踪方法实施例的流程图。所述二层组播路径跟踪方法包括S301 设置交换机设备的端口实例状态,所述端口实例状态包括=NetEdge状态、 UserEdge状态和非^erEdge状态。在实际应用中,由于连接组播源或组播路由器的交换机设备较少,所以可以直接静态设置交换机设备的端口实例状态为NetEdge状态,具体地,可以指定直接连接上游组播源或组播路由器的交换机设备的端口实例状态为NetEdge状态。对于本领域技术人员而言,设置交换机设备的端口实例状态为NetEdge状态的方法不仅仅局限于此方法,在此不作赘述。对于交换机设备的^erEdge状态端口实例或非^erEdge状态端口实例也可以进行静态设置,具体地,可以指定交换机设备上直接连接下游交换机设备的端口实例状态为非^erEdge状态;可以指定交换机设备上直接连接下游主机的端口实例状态为^erEdge 状态。S302 获取路径跟踪请求报文。本实施例中的执行主体可以是二层网络中的任一交换机设备,如果执行主体是所述NetEdge状态端口实例对应的交换机设备时,参考图4,图4为本发明实施例3中提供的获取路径跟踪请求报文方法实施例的流程图,所述获取路径跟踪请求报文包括S302a 接收由查询设备发送的路径跟踪查询报文。二层组播中,查询设备通过路由器口向上游交换机设备发送路径跟踪查询报文, 所述路径跟踪查询报文经过二层组播交换机设备通过路由器口一跳一跳地转发至NetEdge状态端口实例对应的交换机设备。其中,所述路径跟踪查询报文的二层头的源MAC为自身设备的MAC地址,即查询设备的MAC地址;所述路径跟踪查询报文承载的IP报文的源地址为任意地址,目的地址为要查询的组地址;mtrace报文类型为Query,封装要查询的组播信息(S,G)、(*,G)或 (GMAC)。S302b 将所述路径跟踪查询报文修改为路径跟踪请求报文。NetEdge状态端口实例对应的交换机设备收到所述路径跟踪查询报文后,将 mtrace报文类型由Query修改为Request,添加所述查询设备的MAC地址和本设备的MAC 地址至路径跟踪请求报文,将所述路径跟踪查询报文的二层头的源MAC地址修改为自身设备的MAC地址,所述自身设备的MAC地址为所述NetEdge状态端口实例对应的交换机设备的MAC地址。如果执行主体不是所述NetEdge状态端口实例对应的交换机设备时,所述获取请求报文包括接收由上游交换机设备发送的路径跟踪请求报文。实际应用中,通过上游交换机设备的非^erEdge状态端口实例接收路径跟踪请求报文,所述路径跟踪请求报文中包含从所述NetEdge状态端口实例对应的交换机设备到自身设备的上一跳交换机的组播路径信息。S303 判断二层组播转发表中组播成员端口的端口实例状态,当所述端口实例状态中存在所述非^erEdge状态时,执行S304 ;当所述端口实例状态均为所述^erEdge状态时,执行S305。二层组播中的每一跳交换机设备收到所述路径跟踪请求报文后,查询自身设备上的二层组播转发表,判断所述二层组播转发表中组播成员端口的端口实例状态,当所述端口实例状态中存在所述非^erEdge状态时,执行S304 ;当所述端口实例状态均为所述 UserEdge状态时,执行S305。S304 添加自身设备的MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备。实际应用中,下游设备接收所述添加了 MAC地址的路径跟踪请求报文后,再循环执行S303,直至当所述端口实例状态均为所述^erEdge状态时,执行S305。S305 终结路径跟踪请求报文,将自身设备的MAC地址添加至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从所述NetEdge状态端口实例对应设备到所述 UserEdge状态端口实例对应设备的组播路径信息,将所述组播路径信息发送至查询设备。终结路径跟踪请求报文;将自身设备的MAC地址添加到所述请求报文中,即将所述^erEdge状态端口实例对应的交换机设备的MAC地址添加到所述路径跟踪请求报文中, 因此所述路径跟踪请求报文包含了从所述NetEdge状态端口实例对应交换机设备到所述 UserEdge状态端口实例对应交换机设备的组播路径信息;从所述请求报文中获取所述组播路径信息并发送至查询设备,由查询设备将所述组播路径信息进行显示。实际应用中,获取从所述NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息,也就表示获取了从组播源或组播路由器到组成员主机之间的组播转发路径信息。在本实施例中,二层组播中的每一跳交换机设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,直到终结路径跟踪请求报文,使得路径跟踪请求报文中包含了从NetEdge状态端口实例对应交换机设备到^erEdge状态端口实例对应交换机设备的组播路径信息;相比较现有技术而言,降低了运维成本,提高了效率。实施例4参考图5,图5为本发明实施例4中提供的一种二层组播路径跟踪方法实施例的流程图,所述二层组播路径跟踪方法包括S501 设置交换机设备的端口实例状态,所述端口实例状态包括=NetEdge状态、 UserEdge状态和非^erEdge状态。本实施例中交换机设备端口实例的NetEdge状态、^erEdge状态或非^erEdge 状态的设置方法和实施例3中交换机设备端口实例的NetEdge状态、UserEdge状态或非 UserEdge状态的设置方法类似,具体可以参考S301中的方法进行设置,在此不再赘述。对于交换机设备端口实例的^erEdge状态或非^erEdge状态的设置也可以进行动态设置。S502 获取路径跟踪请求报文。本实施例中路径跟踪请求报文的获取方法和S302中路径跟踪请求报文的获取方法相似,具体可以参考S302,在此不再赘述。S503:判断二层组播转发表中组播成员端口的端口实例状态中是否存在所述非 UserEdge状态,如果是,执行S504,如果否,执行S505。二层组播中的每一跳交换机设备收到所述路径跟踪请求报文后,查询二层组播转发表,判断所述二层组播转发表中组播成员端口的端口实例状态中是否存在所述非 UserEdge状态,如果存在,执行S504,如果不存在,执行S505。S504 添加自身设备的MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备。实际应用中,当所述端口实例状态中存在所述非^erEdge状态时,添加自身设备的MAC地址至所述路径跟踪请求报文,沿着组播转发表经所述非^erEdge状态的端口实例向下游交换机设备发送所述添加了 MAC地址的路径跟踪请求报文。由于将自身设备的MAC 地址添加至所述路径跟踪请求报文,因此所述路径跟踪请求报文包含了从所述NetEdge状态端口实例对应交换机设备到自身设备的组播路径信息。如果请求组播的组播成员的端口实例状态中既有^erEdge状态,又有非 UserEdge状态时,则不需要向^erEdge状态的端口实例转发所述路径跟踪请求报文,防止路径跟踪报文被转发至主机,只需要向非^erEdge状态的端口实例转发所述路径跟踪请求报文。S505:判断组播转发表中请求组播的组播成员的端口实例状态是否都为所述 UserEdge状态,如果是,执行S506。S506 终结路径跟踪请求报文,将自身设备的MAC地址添加至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从所述NetEdge状态端口实例对应设备到所述 UserEdge状态端口实例对应设备的组播路径信息,将所述组播路径信息发送至查询设备。终结路径跟踪请求报文;将自身设备的MAC地址添加到所述路径跟踪请求报文中,即将所述^erEdge状态端口实例对应交换机设备的MAC地址添加到所述路径跟踪请求报文中,因此所述路径跟踪请求报文包含从所述NetEdge状态端口实例对应交换机设备到所述^erEdge状态端口实例对应交换机设备的组播路径信息。将所述路径跟踪请求报文修改为路径跟踪响应报文,发送所述路径跟踪响应报文至查询设备,由所述查询设备将从所述NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息进行显示;具体地,将mtrace报文类型由Request修改为Response,同时将路径跟踪响应报文的二层头的目的MAC地址修改为查询设备的MAC 地址,向整个二层网络单播转发所述路径跟踪响应报文,其中,所述路径跟踪响应报文中包含了从所述NetEdge状态端口实例对应交换机设备到所述^erEdge状态端口实例对应交换机设备的组播路径信息。查询设备接收所述路径跟踪响应报文后,终结所述路径跟踪响应报文;从所述路径跟踪响应报文中获取从所述NetEdge状态端口实例对应交换机设备到所述^erEdge状态端口实例对应交换机设备的组播路径信息,将组播成员信息按照从NetEdge状态端口实例对应交换机设备到下游交换机设备的顺序进行显示。实际应用中,获取从所述NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息,也就表示获取了从组播源或组播路由器到组成员主机之间的组播转发路径信息。对于交换机设备端口实例的^erEdge状态或非^erEdge状态的动态设置具体可以参见图6,图6为本发明实施例4中提供的动态设置^erEdge状态或非^erEdge状态端口实例的方法实施例的流程图,具体包括S601a 将连接下游二层组播设备的端口实例状态均设置为^erEdge状态。S601b 接收IGMP报告报文或离开报文,根据所述IGMP报告报文或离开报文修改自身设备的二层组播转发表。在二层组播中,IGMP报告报文或离开报文具体为IGMPVl/v2/v3报告(Iteport)报文或 IGMPv2 离开(Leave)报文,所述 IGMPvl/v2/v3 Report 报文或 IGMPv2 Leave 报文只能由主机发出,并且这类IGMP报文在经过每台交换机设备时都是线性的,从下到上只有一份,因此最先收到这类IGMP报文的交换机设备就是连接主机最近的二层组播交换机设备。当主机发送IGMP报告报文时,表示主机申请加入组播群组;当主机发送IGMP离开报文时,表示主机申请离开组播群组。每一跳交换机设备接收IGMP报告报文或离开报文后,根据所述IGMP报告报文或离开报文修改自身设备的二层组播转发表,具体地,如果接收的是IGMP报告报文,则将接收IGMP报告报文的端口添加到自身设备的二层组播转发表的组播成员端口中;如果接收的IGMP离开报文,则将接收IGMP离开报文的端口从自身设备的二层组播转发表的组播成员端口中删除。S601c:判断所述IGMP报告报文或离开报文中的标记Flag值是否与自身设备默认设置的Flagset值一致,如果是,执行S601d,如果否,执行S601e。所述Flag值可以通过以下任一方式进行存储,具体为1)在所述IGMP报告报文或离开报文承载的IP报文中新增的Option字段来存储所述Flag值,即将所述Flag值存储于所述新增的Option字段;其中,所述Option字段的插入位置位于所述IP报文的报文头后,用于记录本节点的系统MAC地址+端口实例。或者,2)复用IGMP报告报文或离开报文的报文头中的第二个字段来存储所述Flag值, 即将所述Flag值存储于所述IGMP报告报文或离开报文的报文头中的第二个字段。参考图7-图9,其中,图7为本发明实施例4中提供的IGMPvl R印ort报文格式示意图,图8为本发明实施例4中提供的IGMPv2 Report/Leave报文格式示意图,图9为本发明实施例4中提供的IGMPv3 Report报文格式示意图。图7中IGMPvl Report报文的报文头中的第二个字段在RFC1112中的说明是不使用区域当发送时为0,当接收时忽略。图8中IGMPv2 R印ort/Leave报文的报文头中的第二个字段在RFC2236中的说明是最大响应时间区域仅仅在会员身份查询消息中有意义, 在其他所有消息中,当发送时置为0,接收时忽略。图9中IGMPv3 Report报文的报文头中的第二个字段在RFC3376中的说明是保留区域当传送时置为0,当接收时忽略。通过对IGMPvl/v2/v3 R印ort报文或IGMPv2 Leave报文的报文头中的第二个字段的分析可知,IGMPvl/v2/v3 R印ort报文或IGMPv2 Leave报文的报文头中的第二个字段都是发送时为0,接收时忽略,所以该字段是可以复用做其他的用途,因此本实施例复用 IGMP报告报文或离开报文的报文头中的第二个字段来存储Flag值。其中,由主机发出的符合协议的IGMP报告报文或离开报文中的Flag值为零。但是,主机设备有可能发出不符合协议的IGMP报告报文或离开报文,其中不符合协议的IGMP 报告报文或离开报文中的Flag值为非零值。所述自身设备默认设置的Flagset值为零,所述Flagset值可以认为是设备可信任的IGMP中Flag值。当所述IGMP报告报文或离开报文中的标记Flag值与自身设备默认设置的Flagset值(零)一致,表示所述IGMP报告报文或离开报文是由主机发出的。S601d:所述端口实例WherEdge状态保持不变,将所述Flag值修改为第一非零值,发送所述修改后的IGMP报告报文或离开报文至上游交换机设备。如果所述IGMP报告报文或离开报文中的Flag值是零,也就是说,所述IGMP报告报文或离开报文是由主机发出,由离主机最近的交换机设备端口实例接收到,则将离主机最近的交换机设备端口实例的^erEdge状态保持不变,将所述Flag值由零修改为第一非零值,发送所述修改后的IGMP报告报文或离开报文至上游交换机设备。S601e 修改所述Flagset值为预定的Flagset值,判断所述Flag值与所述预定的 Flagset值是否一致,如果是,执行S601f,如果否,执行S601g。如果所述IGMP报告报文或离开报文中的Flag值不是零,也就是说,所述IGMP报告报文或离开报文有可能是由主机设备发出的不符合协议的IGMP报文,也有可能是经过下游交换机设备修改后的IGMP报文;所以需要修改所述Flagset值为预定的Flagset值后,再进行判断,从而执行相应处理。所述预定的Flagset值为由主机发出的不符合协议的IGMP报文中Flag值的经验值。S601f:所述端口实例WherEdge状态保持不变,将所述Flag值修改为第二非零值,发送所述修改后的IGMP报告报文或离开报文至上游交换机设备。如果所述Flag值与所述预定的Flagset值一致,也就是说,所述IGMP报文为由主机发出的不符合协议的IGMP报文,因此所述端口实例的^erEdge状态保持不变,将所述 Flag值修改为第二非零值,发送所述修改后的IGMP报告报文或离开报文至上游交换机设备。S601d中的所述第一非零值和S601f中的所述第二非零值为除所述预定的 Flagset值之外的任一非零值。S601g 将所述端口实例的^erEdge状态修改为非^erEdge状态,所述Flag值不变,发送所述IGMP报告报文或离开报文至上游交换机设备。如果所述Flag值与预置的Flagset值不一致,也就是说,所述IGMP报文为经过下游交换机设备修改后的IGMP报文,因此将所述端口实例的^erEdge状态修改为非 UserEdge状态,所述Flag值不变,发送所述IGMP报告报文或离开报文至上游交换机设备。这样,IGMP报告报文或离开报文一跳一跳地转发至NetEdge状态端口实例,所述 NetEdge状态端口实例对应交换机设备将IGMP报告报文或离开报文中的Flag还原为零后发送至组播路由器或组播源。本实施例S601c中可以不判断所述IGMP报告报文或离开报文中的标记Flag值是否与自身设备默认设置的Flagset值一致,而是直接判断所述IGMP报告报文或离开报文中的标记Flag值是否为零,如果是执行S601d,如果否,执行S601e,相应的S601e也可以用下属方案来代替,具体的,S601e 判断所述Flag值与预定值是否一致,如果是,执行S601f,如果否,执行S601g,其中,所述预定值为由主机发出的不符合协议的IGMP报文中Flag值的经验值。通过上述动态设置,二层组播中的交换机都确定了端口实例的^erEdge状态或非^erEdge状态,参考图10,图10为本发明实施例4中提供的动态设置端口实例的组网示意图。在本实施例中,二层组播中的每一跳交换机设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,直到终结路径跟踪请求报文,使得路径跟踪请求报文中包含了从NetEdge状态端口实例对应交换机设备到^erEdge状态端口实例对应交换机设备的组播路径信息;相比较现有技术而言,降低了运维成本,提高了效率。实施例5参考图11,图11为本发明实施例5提供的二层组播mtrace报文处理方法实施例的组网示意图,其中,虚线箭头表示路径跟踪查询报文的路径,实线箭头表示路径跟踪请求报文的路径,点划线箭头表示路径跟踪响应报文的路径;交换机1为NetEdge状态端口实例对应设备,交换机4为查询设备;用户包括用户1、用户2、用户3和用户4,其中,用户1、 用户2和用户3为组成员主机,用户4不是组成员主机;与用户1和用户2直接连接的交换机5的端口实例状态均为^erEdge状态,与用户3直接连接的交换机6的端口实例状态为 UserEdge状态,与用户4连接的交换机2的端口实例状态为^erEdge状态。图11中的路径跟踪查询报文的路径为由交换机4经过交换机2到交换机1 ;路径跟踪请求报文的路径为由交换机1经交换机2到交换机5,由交换机1经交换机3到交换机6 ;路径跟踪响应报文的路径为由交换机5经交换机2到交换机4,由交换机6经交换机3、交换机1交换机2到交换机4。
对于路径跟踪查询报文、路径跟踪请求报文和路径跟踪响应报文的详细处理流程请参见上述本发明实施例的描述,在此不再赘述。在本实施例中,二层组播中的每一跳交换机设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,最终由查询设备将从NetEdge状态端口实例对应交换机设备到^erEdge状态端口实例对应交换机设备的组播路径信息进行显示;相比较现有技术而言,降低了运维成本,提高了效率。上述本发明实施例主要是针对IGMP-S协议的描述,对于IGMP-P协议的处理过程与IGMP-S协议相似,具体可以参见上述本发明实施例的描述。基于本发明实施例类似的原理,可以对mtrace的参数进行扩展,例如增加IPv6 的信息,实现对IPv6转发的数据流的跟踪;或者,在路径跟踪Request报文中增加字段, 用来指明每台交换机设备上二层组播的状态(如二层组播设置IGMP/MLD(Multicast Listener Discover,组播侦听发现协议)Snooping、静态组;或存在的组播成员信息)来实现组播的操作、管理和维护(0AM,Operation Administration and Maintenance)功能。实施例6参考图12,图12为本发明实施例6提供的一种二层组播路径跟踪装置实施例的结构示意图,所述二层组播路径跟踪装置包括获取模块102,用于获取路径跟踪请求报文。判断模块103,用于判断二层组播转发表的组播成员端口的端口实例状态。第一处理模块104,用于当所述端口实例状态中存在非^erEdge状态,添加自身设备的介质访问控制MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备。第二处理模块105,用于当所述端口实例状态均SherEdge状态,终结路径跟踪请求报文,将自身设备的MAC地址添加至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息,将所述组播路径信息发送至查询设备。在本实施例中,二层组播中的每一跳二层组播设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,使得路径跟踪请求报文中包含了从NetEdge状态端口实例对应设备到^erEdge状态端口实例对应设备的组播路径信息;相比较现有技术而言,降低了运维成本,提高了效率。实施例7参考图13,图13为本发明实施例7提供的一种二层组播路径跟踪装置实施例的结构示意图,所述二层组播路径跟踪装置包括设置模块101,用于设置二层组播设备的端口实例状态,所述端口实例状态包括 网络侧边缘NetEdge状态、用户侧边缘^erEdge状态和非^erEdge状态。在实际应用中,由于连接组播源或组播路由器的二层组播设备较少,所以可以直接静态设置二层组播设备的端口实例状态为NetEdge状态,具体地,可以指定直接连接上游组播源或组播路由器的二层组播设备的端口实例状态为NetEdge状态。对于本领域技术人员而言,设置二层组播设备的端口实例状态为NetEdge状态的方法不仅仅局限于此方法,在此不作赘述。
对于二层组播设备的^erEdge状态端口实例或非^erEdge状态端口实例也可以进行静态设置,具体地,可以指定直接连接下游二层组播设备的端口实例状态为非 UserEdge状态;可以指定直接连接下游主机的端口实例状态为^erEdge状态;或者,也可以动态设置二层组播设备的^erEdge状态端口实例或非^erEdge状态端口实例。获取模块102,用于获取路径跟踪请求报文。判断模块103,用于判断二层组播转发表的组播成员端口的端口实例状态。二层组播中的每一跳二层组播设备收到所述路径跟踪请求报文后,查询二层组播转发表,判断所述二层组播转发表中组播成员端口的端口实例状态。第一处理模块104,用于当所述端口实例状态中存在所述非^erEdge状态,添加自身设备的介质访问控制MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备。第二处理模块105,用于当所述端口实例状态均为所述^erEdge状态,终结路径跟踪请求报文,将自身设备的MAC地址添加至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从所述NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息,将所述组播路径信息发送至查询设备。在本实施例中,二层组播中的每一跳二层组播设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,使得路径跟踪请求报文中包含了从NetEdge状态端口实例对应设备到^erEdge状态端口实例对应设备的组播路径信息;相比较现有技术而言,降低了运维成本,提高了效率。实施例8参考图14a,图1 是本发明实施例8中提供的一种二层组播路径跟踪装置实施例的第一结构示意图,所述二层组播路径跟踪装置包括设置模块101、获取模块102、判断模块103、第一处理模块104和第二处理模块105 ;其中,所述判断模块103、第一处理模块104和第二处理模块105的功能与实施例 5中所述判断模块103、第一处理模块104和第二处理模块105的功能类似,在此不再赘述。所述设置模块101包括第一设置单元1011和第二设置单元1012 所述第一预置单元1011,用于设置二层组播设备的端口实例状态为NetEdge状态。其中,所述第一设置单元1011包括NetEdge设置子模块,用于静态设置直接连接上游组播源或组播路由器的端口实例的状态为NetEdge状态。所述第二设置单元1012,用于设置二层组播设备的端口实例状态为^erEdge状态或非^erEdge状态。所述第二设置单元1012包括^erEdge设置子模块101 和非^erEdge设置子模块1012b 所述^erEdge设置子模块1012a,用于静态设置二层组播设备的端口实例状态为 UserEdge状态,其中,直接连接下游主机的端口实例状态为^erEdge状态。所述非^erEdge设置子模块1012b,用于静态设置二层组播设备的端口实例状态为非^erEdge状态,其中,连接下游二层组播设备的端口实例状态为非^erEdge状态。
当执行主体是所述NetEdge状态端口实例对应设备时,所述获取模块102包括第一接收单元1021和第一修改单元1022 所述第一接收单元1021,用于接收由查询设备发送的路径跟踪查询报文。所述第一修改单元1022,用于将所述路径跟踪查询报文修改为二层组播请求报文。或者,当执行主体不是所述NetEdge状态端口实例对应设备时,所述获取模块102 包括第二接收单元1023,如图14b所示,图14b是本发明实施例8中提供的一种二层组播路径跟踪装置实施例的第二结构示意图所述第二接收单元1023,用于接收由上游二层组播设备发送的二层组播请求报文。在本实施例中,二层组播中的每一跳二层组播设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,使得路径跟踪请求报文中包含了从NetEdge状态端口实例对应设备到^erEdge状态端口实例对应设备的组播路径信息;相比较现有技术而言,降低了运维成本,提高了效率。实施例9参考图1 和15b,图1 为本发明实施例9中提供的一种二层组播路径跟踪装置实施例的第一结构示意图;图1 为本发明实施例9中提供的一种二层组播路径跟踪装置实施例的第二结构示意图。所述二层组播路径跟踪装置包括设置模块101、获取模块102、判断模块103、第一处理模块104和第二处理模块105 ;其中,所述判断模块103、第一处理模块104和第二处理模块105的功能与实施例7中所述判断模块103、第一处理模块104和第二处理模块105 的功能类似,可参照实施例7中相关描述,在此不再赘述。所述设置模块101包括第一设置单元1011和第二设置单元1012,其中,所述第一设置单元1011的功能与实施例8中所述第一设置单元1011的功能类似,具体可参照实施例8中相关描述,在此不再赘述。所述获取模块102包括第一接收单元1021和第一修改单元1022,其中,所述第一接收单元1021和第一修改单元1022的功能与实施例8中所述第一接收单元1021和第一修改单元1022的功能类似,具体可参照实施例8中相关描述,在此不再赘述;或者,所述获取模块102包括第二接收单元1023,其中,所述第二接收单元1023的功能与实施例8中所述第二接收单元1023的功能类似,具体可参照实施例8中相关描述,在此不再赘述。所述第二设置单元1012可以包括初始化子模块1012c、第一接收子模块1012d、 第一判断子模块1012e、第一处理子模块1012f、第二判断子模块1012g、第二处理子模块 1012h、第三处理子模块1012i 初始化子模块1012c,用于将连接下游二层组播设备的端口实例状态均设置为 UserEdge 状态;第一接收子模块1012d,用于接收因特网组管理协议IGMP报告报文或离开报文, 根据所述IGMP报告报文或离开报文修改自身设备的二层组播转发表;第一判断子模块1012e,用于判断所述IGMP报告报文或离开报文中的标记Flag值是否与自身设备默认设置的Flagset值一致;
第一处理子模块1012f,用于当第一判断模块的判断结果为是时,所述端口实例的 ^erEdge状态保持不变,将所述Flag值修改为第一非零值,发送所述修改后的IGMP报告报文或离开报文至上游二层组播设备,所述第一非零值为除预定的Flagset值之外的任一非零值;第二判断子模块1012g,用于第一判断模块的判断结果为否时,修改所述Flagset 值为所述预定的Flagset值,判断所述Flag值与所述预定的Flagset值是否一致;第二处理子模块1012h,用于当第二判断模块的判断结果为是时,所述端口实例的 UserEdge状态不变,将所述Flag值修改为第二非零值,发送所述修改后的IGMP报告报文或离开报文至上游交换机设备,所述第二非零值为除所述预定的Flagset值之外的任一非零值;第三处理子模块1012i,用于当第二判断模块的判断结果为否时,将所述端口实例的^erEdge状态修改为非^erEdge状态,所述Flag值不变,发送所述IGMP报告报文或离开报文至上游二层组播设备。在本实施例中,二层组播中的每一跳二层组播设备获取路径跟踪请求报文,经过相应的判断处理后,将自身设备的MAC地址添加到路径跟踪请求报文中进行下发,使得路径跟踪请求报文中包含了从NetEdge状态端口实例对应设备到^erEdge状态端口实例对应设备的组播路径信息;相比较现有技术而言,降低了运维成本,提高了效率。实施例10参考图16,图16为本发明实施例10提供的一种二层组播路径跟踪系统实施例的结构示意图,所述二层组播路径跟踪系统包括二层组播路径跟踪装置11,用于获取路径跟踪请求报文;判断二层组播转发表的组播成员端口的端口实例状态;当所述端口实例状态中存在非^erEdge状态,添加自身设备的介质访问控制MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备;当所述端口实例状态均为 UserEdge状态,终结路径跟踪请求报文,添加自身设备的MAC地址至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息,将所述组播路径信息发送至查询设备。 查询设备22,用于接收从NetEdge状态端口实例对应设备到^erEdge状态端口实例对应设备的组播路径信息。所述二层组播路径跟踪装置11还用于设置二层组播设备的端口实例状态,所述端口实例状态包括网络侧边缘NetEdge状态、用户侧边缘^erEdge状态和非^erEdge状态。所述设置二层组播设备的端口实例状态包括静态设置直接连接上游组播源或组播路由器的端口实例状态为NetEdge状态;静态设置二层组播设备的端口实例状态为^erEdge状态或非^erEdge状态,其中,直接连接下游主机的端口实例状态为^erEdge状态,连接下游二层组播设备的端口实例状态为非^erEdge状态;动态设置二层组播设备的端口实例状态为^erEdge状态或非^erEdge状态,具体包括将连接下游二层组播设备的端口实例状态均设置为^erEdge状态;接收因特网组管理协议IGMP报告报文或离开报文,根据所述IGMP报告报文或离开报文修改自身设备的二层组播转发表;判断所述IGMP报告报文或离开报文中的标记Flag值是否与自身设备默认设置的Flagset值一致,如果是,所述端口实例的^erEdge状态保持不变,将所述Flag 值修改为第一非零值,发送所述修改后的IGMP报告报文或离开报文至上游二层组播设备; 如果否,修改所述Flagset值为预定的Flagset值,判断所述Flag值与所述预定的Flagset 值是否一致,如果是,所述端口实例的^erEdge状态保持不变,将所述Flag值修改为第二非零值,发送所述修改后的IGMP报告报文或离开报文至上游二层组播设备;如果否,将所述端口实例的^erEdge状态修改为非^erEdge状态,所述Flag值不变,发送所述IGMP报告报文或离开报文至上游二层组播设备;所述第一非零值和所述第二非零值为除所述预定的Flagset值之外的任一非零值。其中,所述根据所述IGMP报告报文或离开报文修改自身设备的二层组播转发表具体为将接收IGMP报告报文的端口添加到自身设备的二层组播转发表的组播成员端口 ;将接收IGMP离开报文的端口从自身设备的二层组播转发表的组播成员端口中删除。所述获取路径跟踪请求报文包括NetEdge状态端口实例对应设备接收由查询设备发送的路径跟踪查询报文; NetEdge状态端口实例对应设备将所述路径跟踪查询报文修改为路径跟踪请求报文。或者,所述获取路径跟踪请求报文包括非NetEdge状态端口实例对应设备接收由上游二层组播设备发送的路径跟踪请求报文。所述查询设备22还用于发送路径跟踪查询报文至二层组播跟踪装置。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。 对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种二层组播路径跟踪方法,其特征在于,所述方法包括获取路径跟踪请求报文;判断二层组播转发表中组播成员端口的端口实例状态;当所述端口实例状态中存在非用户侧边缘^erEdge状态,添加自身设备的介质访问控制MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备;当所述端口实例状态均为^erEdge状态,终结路径跟踪请求报文,添加自身设备的MAC地址至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从网络侧边缘 NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息, 将所述组播路径信息发送至查询设备。
2.根据权利要求1所述的方法,其特征在于,所述获取路径跟踪请求报文之前进一步包括设置二层组播设备的端口实例状态,所述端口实例状态包括网络侧边缘NetEdge状态、用户侧边缘^erEdge状态和非^erEdge状态。
3.根据权利要求2所述的方法,其特征在于,所述设置二层组播设备的端口实例状态包括静态设置直接连接上游组播源或组播路由器的端口实例状态为NetEdge状态。
4.根据权利要求2所述的方法,其特征在于,所述设置二层组播设备的端口实例状态包括静态设置二层组播设备的端口实例状态为^erEdge状态或非^erEdge状态,其中,直接连接下游主机的端口实例状态为^erEdge状态,连接下游二层组播设备的端口实例状态为非^erEdge状态。
5.根据权利要求2所述的方法,其特征在于,所述设置二层组播设备的端口实例状态包括动态设置二层组播设备的端口实例状态为^erEdge状态或非^erEdge状态,具体包括将连接下游二层组播设备的端口实例状态均设置为^erEdge状态;接收因特网组管理协议IGMP报告报文或离开报文,根据所述IGMP报告报文或离开报文修改自身设备的二层组播转发表;判断所述IGMP报告报文或离开报文中的标记Flag值是否与自身设备默认设置的 Flagset值一致,如果是,所述端口实例的^erEdge状态保持不变,将所述Flag值修改为第一非零值,发送所述修改后的IGMP报告报文或离开报文至上游二层组播设备;如果否,修改所述Flagset值为预定的Flagset值,判断所述Flag值与所述预定的 Flagset值是否一致,如果是,所述端口实例的^erEdge状态保持不变,将所述Flag值修改为第二非零值,发送所述修改后的IGMP报告报文或离开报文至上游二层组播设备;如果否,将所述端口实例的^erEdge状态修改为非^erEdge状态,所述Flag值不变,发送所述 IGMP报告报文或离开报文至上游二层组播设备;所述第一非零值和所述第二非零值为除所述预定的Flagset值之外的任一非零值。
6.根据权利要求5所述的方法,其特征在于,所述Flag值存储于所述IGMP报告报文或离开报文的报文头中的第二个字段; 或者,所述Flag值存储于所述IGMP报告报文或离开报文承载的IP报文中新增的Option字段,所述Option字段的插入位置位于所述IP报文的报文头后。
7.根据权利要求5所述的方法,其特征在于,所述根据所述IGMP报告报文或离开报文修改自身设备的二层组播转发表具体为将接收IGMP报告报文的端口添加到自身设备的二层组播转发表的组播成员端口 ;将接收IGMP离开报文的端口从自身设备的二层组播转发表的组播成员端口中删除。
8.根据权利要求1所述的方法,其特征在于,所述获取路径跟踪请求报文包括 所述NetEdge状态端口实例对应设备接收由查询设备发送的路径跟踪查询报文; 所述NetEdge状态端口实例对应设备将所述路径跟踪查询报文修改为路径跟踪请求报文。
9.根据权利要求1所述的方法,其特征在于,所述获取路径跟踪请求报文包括非NetEdge状态端口实例对应设备接收由上游二层组播设备发送的路径跟踪请求报文。
10.一种二层组播路径跟踪装置,其特征在于,包括 获取模块,用于获取路径跟踪请求报文;判断模块,用于判断二层组播转发表的组播成员端口的端口实例状态; 第一处理模块,用于当所述端口实例状态中存在非^erEdge状态,添加自身设备的介质访问控制MAC地址至所述路径跟踪请求报文,经所述非^erEdge状态的端口实例发送所述添加了 MAC地址的路径跟踪请求报文至下游设备;第二处理模块,用于当所述端口实例状态均为^erEdge状态,终结路径跟踪请求报文,添加自身设备的MAC地址至所述路径跟踪请求报文,从所述路径跟踪请求报文中获取从NetEdge状态端口实例对应设备到所述^erEdge状态端口实例对应设备的组播路径信息,将所述组播路径信息发送至查询设备。
11.根据权利要求10所述的装置,其特征在于,进一步包括设置模块,用于设置二层组播设备的端口实例状态,所述端口实例状态包括网络侧边缘NetEdge状态、用户侧边缘^erEdge状态和非^erEdge状态。
12.根据权利要求11所述的装置,其特征在于,所述设置模块包括第一设置单元,用于设置二层组播设备的端口实例状态为NetEdge状态; 第二设置单元,用于设置二层组播设备的端口实例状态为^erEdge状态或非 UserEdge 状态。
13.根据权利要求12所述的装置,其特征在于,所述第一设置单元包括NetEdge设置子模块,用于静态设置直接连接上游组播源或组播路由器的端口实例的状态为NetEdge状态。
14.根据权利要求12所述的装置,其特征在于,所述第二设置单元包括 UserEdge设置子模块,用于静态设置二层组播设备的端口实例状态为^erEdge状态,其中,直接连接下游主机的端口实例状态为^erEdge状态;非^erEdge设置子模块,用于静态设置二层组播设备的端口实例状态为非^erEdge状态,其中,连接下游二层组播设备的端口实例状态为非^erEdge状态。
15.根据权利要求12所述的装置,其特征在于,所述第二设置单元包括初始化子模块,用于将连接下游二层组播设备的端口实例状态均设置为^erEdge状态;第一接收子模块,用于接收因特网组管理协议IGMP报告报文或离开报文,根据所述 IGMP报告报文或离开报文修改自身设备的二层组播转发表;第一判断子模块,用于判断所述IGMP报告报文或离开报文中的标记Flag值是否与自身设备默认设置的Flagset值一致;第一处理子模块,用于当第一判断模块的判断结果为是时,所述端口实例的^erEdge 状态保持不变,将所述Flag值修改为第一非零值,发送所述修改后的IGMP报告报文或离开报文至上游二层组播设备,所述第一非零值为除预定的Flagset值之外的任一非零值;第二判断子模块,用于第一判断模块的判断结果为否时,修改所述Flagset值为所述预定的Flagset值,判断所述Flag值与所述预定的Flagset值是否一致;第二处理子模块,用于当第二判断模块的判断结果为是时,所述端口实例的^erEdge 状态不变,将所述Flag值修改为第二非零值,发送所述修改后的IGMP报告报文或离开报文至上游交换机设备,所述第二非零值为除所述预定的Flagset值之外的任一非零值;第三处理子模块,用于当第二判断模块的判断结果为否时,将所述端口实例的 UserEdge状态修改为非^erEdge状态,所述Flag值不变,发送所述IGMP报告报文或离开报文至上游二层组播设备。
16.根据权利要求10所述的装置,其特征在于,所述获取模块包括第一接收单元,用于NetEdge状态端口实例对应设备接收由查询设备发送的路径跟踪查询报文;第一修改单元,用于NetEdge状态端口实例对应设备将所述路径跟踪查询报文修改为路径跟踪请求报文。
17.根据权利要求10所述的装置,其特征在于,所述获取模块包括第二接收单元,用于非NetEdge状态端口实例对应设备接收由上游二层组播设备发送的路径跟踪请求报文。
18.—种二层组播路径跟踪系统,其特征在于,包括如权利要求10-17任一项所述的二层组播跟踪装置和查询设备,所述查询设备用于接收从NetEdge状态端口实例对应设备到 UserEdge状态端口实例对应设备的组播路径信息。
19.根据权利要求18所述的系统,其特征在于,所述查询设备还用于发送路径跟踪查询报文至二层组播跟踪装置。
全文摘要
本发明实施例公开了一种二层组播路径跟踪方法、装置及系统,属于通信领域。二层组播路径跟踪方法实施例包括获取路径跟踪请求报文;判断二层组播转发表的组播成员端口的端口实例状态;当端口实例状态中存在非UserEdge状态,添加MAC地址至路径跟踪请求报文,经非UserEdge状态的端口实例发送路径跟踪请求报文至下游设备;当端口实例状态均为UserEdge状态,终结路径跟踪请求报文,将MAC地址添加至路径跟踪请求报文,从路径跟踪请求报文中获取从NetEdge状态端口实例对应设备到UserEdge状态端口实例对应设备的组播路径信息,将组播路径信息发送至查询设备。本发明实施例可以降低运维成本,提高效率。
文档编号H04L12/18GK102265554SQ201180000900
公开日2011年11月30日 申请日期2011年6月20日 优先权日2011年6月20日
发明者周正斌 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1