一种组播报文的传输方法及交换的制造方法

文档序号:8003525阅读:257来源:国知局
一种组播报文的传输方法及交换的制造方法
【专利摘要】本发明公开了一种组播报文的传输方法及交换机。该方法中,服务器中设置有虚拟交换机,虚拟交换机通过多个接口与外部网络中的多个交换机连接,该方法包括:第一交换机通过虚拟交换机接收邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括交换机与虚拟交换机连接的接口所对应的组播地址;在第一交换机的组播路由表中与虚拟交换机连接的出接口对应组播地址与第一交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,第一交换机根据预设规则在与虚拟交换机相连的交换机中确定一个转发交换机,并确定仅由转发交换机向虚拟交换机转发该组播地址的组播报文。该方法减少了冗余流量。
【专利说明】一种组播报文的传输方法及交换机

【技术领域】
[0001]本发明涉及通信【技术领域】,特别是涉及一种组播报文的传输方法及交换机。

【背景技术】
[0002]—台物理服务器上可以运行多台虚拟机(英文:virtual machine,缩写:VM),这些VM通过虚拟交换机(英文:vitual switch,简称:vSwitch)来实现一台物理服务器上的多台VM之间的互相通信,以及该物理服务器上的VM与连接到该物理服务器的外部网络之间的通信。如图1所示的服务器中,VMl和VM2分别连接到vSwitch上;vSwitch通过物理网络接口卡(英文:physical network interface card,简称:pNIC)pNICl、pNIC2 与外部网络中的多个交换机连接,通常为了保证可靠性,vSwitch有两个或两个以上的pNIC; vSwitch在接收到来自VM的流量时,会根据负荷分担的原则选择一个pNIC向外部网络转发。
[0003]在通常的IP组播处理流程中,服务器可以向网关发送因特网组管理协议(英文:Internet Group Management Protocol,缩写:IGMP)报告(英文:Report),以表不对某个组播组的报文感兴趣,网关记录该服务器感兴趣的组播组的信息,当该组播组的组播报文到达该网关后,该网关即向服务器转发该组播报文。
[0004]当该IP组播处理应用于上述图1所示的场景中时,如图2所示,在VMl和VM2同时对组播组Gl感兴趣的情况下,VMl和VM2分别发送IGMP Report报文,由于vSwitch的负荷分担的选择,VMl和VM2的IGMP r印ort可能分别从不同的pNIC转发至网关,由此,网关从不同的路径收到要求加入组播组Gl的IGMP R印ort报文。当组播组Gl的组播报文到达网关后,网关会分别沿上述两条路径转发组播报文,最终会有两相同的组播报文进入服务器。当服务器上的pNIC更多时,进入服务器的重复组播报文可能会增加更多倍,这些冗余流量会影响服务器的性能。


【发明内容】

[0005]本发明中提供了一种组播报文的传输方法及交换机,能够减少进入服务器的冗余流量,从而改善服务器的性能。
[0006]为了解决上述技术问题,本发明公开了如下技术方案:
[0007]第一方面,提供一种组播报文的传输方法,包括:
[0008]服务器中设置有虚拟交换机和多个虚拟机,所述虚拟机通过所述虚拟交换机与外部网络通信,所述虚拟交换机通过多个接口与外部网络中的多个交换机连接,所述组播报文的传输方法包括:
[0009]第一交换机通过所述虚拟交换机接收所述第一交换机的邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址;其中,所述第一交换机是所述多个交换机中的一个交换机,所述第一交换机的邻居交换机为除所述第一交换机之外与所述虚拟交换机连接的交换机;
[0010]在所述第一交换机的组播路由表中与所述虚拟交换机连接的出接口所对应组播地址与所述第一交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,所述第一交换机根据预设规则在与所述虚拟交换机相连的交换机中确定一个转发交换机,并且确定在与所述虚拟交换机连接的交换机中仅由所述转发交换机向所述虚拟交换机转发所述组播地址的组播报文。
[0011]结合上述第一方面,在第一方面的第一种可能的实现方式中,在所述第一交换机接收其邻居交换机中各交换机的组播路由信息之前或之后,还包括:
[0012]所述第一交换机通过所述虚拟交换机向所述第一交换机的邻居交换机发送所述第一交换机的组播路由信息,所述第一交换机的组播路由信息至少包括所述第一交换机与所述虚拟交换机连接的接口所对应的组播地址。
[0013]结合上述第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,若在所述第一交换机接收其邻居交换机中各交换机的组播路由信息之前,所述第一交换机通过所述虚拟交换机向所述第一交换机的邻居交换机发送所述第一交换机的组播路由信息,则在所述第一交换机发送所述第一交换机的组播路由信息之前,还包括:
[0014]所述第一交换机查看是否接收到所述虚拟交换机转发的由所述第一交换机的邻居交换机发送的探测报文,若是,所述第一交换机再通过所述虚拟交换机向所述第一交换机的邻居交换机发送所述第一交换机的组播路由信息。
[0015]第二方面,提供一种交换机,服务器中设置有虚拟交换机和多个虚拟机,所述虚拟机通过所述虚拟交换机与外部网络通信,所述虚拟交换机通过多个接口与外部网络中的多个交换机连接,所述交换机为所述多个交换机中的一个交换机,所述交换机包括:
[0016]信息接收单元,用于通过所述虚拟交换机接收所述交换机的邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址;其中,所述交换机是所述多个交换机中的一个交换机,所述交换机的邻居交换机为除所述交换机之外与所述虚拟交换机连接的交换机;
[0017]决策单元,用于在所述交换机的组播路由表中与所述虚拟交换机连接的出接口所对应组播地址与所述交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,根据预设规则在与所述虚拟交换机相连的交换机中确定一个转发交换机,并且确定在与所述虚拟交换机连接的交换机中仅由所述转发交换机向所述虚拟交换机转发所述组播地址的组播报文。
[0018]结合上述第二方面,在第一种可能的实现方式中,还包括:
[0019]信息发送单元,用于在所述信息接收单元接收其邻居交换机中各交换机的组播路由信息之前或之后,通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址。
[0020]结合上述第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
[0021]判定单元,用于当在所述交换机接收其邻居交换机中各交换机的组播路由信息之前,所述信息发送单元通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息时,则在所述信息发送单元发送所述交换机的组播路由信息之前,查看是否接收到所述虚拟交换机转发的由所述交换机的邻居交换机发送的探测报文;
[0022]所述信息发送单元,具体用于当所述判定单元的判断结果为接收到所述虚拟交换机转发的由所述交换机的邻居交换机发送的探测报文时,通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息。
[0023]第三方面,提供一种组播报文的传输系统,包括服务器和多个交换机,其中,所述服务器中设置有虚拟交换机和多个虚拟机,所述虚拟机通过所述虚拟交换机与外部网络通信,所述虚拟交换机通过多个接口与外部网络中的所述多个交换机连接;
[0024]所述交换机,用于通过所述虚拟交换机接收所述交换机的邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址;其中,所述交换机是所述多个交换机中的一个交换机,所述交换机的邻居交换机为除所述交换机之外与所述虚拟交换机连接的交换机;在所述交换机的组播路由表中与所述虚拟交换机连接的出接口所对应组播地址与所述交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,根据预设规则在与所述虚拟交换机相连的交换机中确定一个转发交换机,并且确定在与所述虚拟交换机连接的交换机中仅由所述转发交换机向所述虚拟交换机转发所述组播地址的组播报文。
[0025]结合上述第三方面,在第一种可能的实现方式中,所述交换机,还用于在接收其邻居交换机中各交换机的组播路由信息之前或之后,通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址。
[0026]结合上述第三方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
[0027]所述交换机,还用于当在接收其邻居交换机中各交换机的组播路由信息之前,通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息时,在所述交换机发送所述交换机的组播路由信息之前,查看是否接收到所述虚拟交换机转发的由所述交换机的邻居交换机发送的探测报文,若是,所述交换机再通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息。
[0028]本发明通过交换机之间交换组播组路由信息,使得交换机可以确定对同一组播组的组播报文由一个交换机转发至虚拟交换机,实现了对进入服务器的重复组播报文的阻塞,减小了冗余流量对服务器性能以及虚拟机业务可用性的影响。

【专利附图】

【附图说明】
[0029]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1为网络的结构示意图;
[0031]图2为应用IP组播处理的一个场景不意图;
[0032]图3为本发明实施例中一种控制冗余流量的方法流程图;
[0033]图4为本发明方法实施例的一种应用场景示意图;
[0034]图5为本发明实施例一种交换机的结构示意图;
[0035]图6为本发明实施例另一种交换机的结构示意图。

【具体实施方式】
[0036]为了使本【技术领域】的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
[0037]参见图3,为本发明实施例一种组播报文的传输方法流程图。
[0038]如图1所示,服务器中设置有vSwitch和多个VM,VM通过vSwitch与外部网络通信,vSwitch通过多个接口,如pNIC,与外部网络中的多个交换机连接。本发明实施例中,组播报文的传输方法包括:
[0039]步骤301,第一交换机通过所述vSwitch接收所述第一交换机的邻居交换机中各交换机的组播路由信息。
[0040]该第一交换机为与vSwitch连接的多个交换机中的任一个,此处“第一”仅为表述方便,并非特指。第一交换机的邻居交换机为除该第一交换机之外与所述vSwitch连接的交换机。
[0041]其中,第一交换机的所述邻居交换机中各交换机的组播路由信息至少包括该交换机自身与vSwitch连接的接口所对应的组播地址。具体的,上述各交换机可以从自身的组播路由表中选择出出接口为与vSwitch连接的接口的组播路由表项,然后将该组播路由表项或该组播路由表项中的组播地址作为组播路由信息通过vSwitch发送至第一交换机。
[0042]各交换机通过vSwitch转发组播路由信息至第一交换机的过程,在一种可能的实现方式中,可以通过某协议报文来实现。该报文中除了包含上述组播路由信息外,还包括以下字段:
[0043]DMAC:该报文的目的MAC地址,该DMAC字段的值可以为特定二层组播地址,例如第一二层组播地址。vSwitch接收到报文后,若该DMAC字段的值为第一二层组播地址,则将该报文转发至其他与该vSwitch相连的交换机。与该vSwitch连接的多个交换机中的任意一个交换机,不转发接收到的目的MAC地址为该第一二层组播地址的报文。
[0044]SRC MAC:报文的源MAC地址。该源MAC地址的值为发送该报文的交换机的MAC地址。
[0045]可选的,该报文中还可以包括:
[0046]Pr1rity:发送该报文的交换机的优先级。该优先级用于表征交换机转发组播报文的转发级别,优先级越高,则由该交换机负责转发组播报文的几率越大。可以用优先级的数值大表示优先级高,可以用优先级的数值小表示优先级高。
[0047]vSwitch接收到该报文后,在所述DMAC字段的值为上述第一二层组播地址的情况下,将该报文转发至与该vSwitch连接的交换机(不包含发送该报文的交换机)。从而,第一交换机可以获知其邻居交换机中的各交换机的组播路由信息。
[0048]步骤302,在所述第一交换机的组播路由表中与所述vSwitch连接的出接口所对应组播地址与所述第一交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,所述第一交换机根据预设规则在与vSwitch相连的交换机中确定一个转发交换机,并且确定在与所述vSwitch连接的交换机中仅由所述转发交换机向所述vSwitch转发所述组播地址的组播报文。
[0049]第一交换机在接收到各交换机发送的组播路由信息后,查询自身的组播路由表,查找出接口为vSwitch的组播路由表项,获得该表项中的组播地址。当第一交换机接收到的组播地址中与自身组播路由表中出接口为与vSwitch连接的接口的组播路由表项的组播地址中,至少两个组播地址相同时,说明该组播地址对应的从交换机到达vSwitch的路径至少有两条,一条经过第一交换机到达vSwitch,其它的路径经过其它交换机到达vSwitch。
[0050]为了避免该组播组的报文由多条路径传输至vSwitch造成冗余流量,该第一交换机可以根据预先设定的规则,在第一交换机及上述具有相同组播地址的至少一个交换机中确定出一个交换机,由该确定出的交换机向vSwitch转发该组播组的组播报文。
[0051 ] 可选的,如果上述协议报文中包括发送该报文的交换机的优先级,第一交换机可以根据上述协议报文中包含的优先级信息确定由优先级最高的交换机负责转发组播组报文。
[0052]可选的,第一交换机可以根据上述协议报文中的SRC MAC,确定由SRC MAC字段值大的交换机负责转发组播组报文。
[0053]在确定出负责转发组播组报文的交换机后,如果第一交换机是与vSwitch相连的交换机中除了转发交换机外的其他交换机中的一个交换机,则第一交换机可以通过设置自身的组播路由表来不向所述vSwitch转发所述组播地址的组播报文。具体方法可以是:第一交换机将其组播路由表中包括所述组播地址和与所述vSwitch连接的接口的接口标识的组播路由表项删除。
[0054]本发明实施例通过交换机之间交换组播组路由信息,使得交换机可以确定对同一组播组的组播报文由一个交换机转发至vSwitch,实现了对进入服务器的重复组播报文的阻塞,减小了冗余流量对服务器性能以及虚拟机业务可用性的影响。
[0055]在所述第一交换机接收其邻居交换机中各交换机的组播路由信息之前或之后,还包括:
[0056]第一交换机通过vSwitch向第一交换机的邻居交换机发送第一交换机的组播路由信息,该第一交换机的组播路由信息至少包括第一交换机与vSwitch连接的接口所对应的组播地址。
[0057]其中,该第一交换机发送组播路由信息的方法与其邻居交换机中各交换机发送组播路由信息的方法相同。第一交换机首先从自身的组播路由表中选择出出接口对应为vSwitch的组播地址,然后将这些组播地址作为组播路由信息通过vSwitch转发至邻居交换机的各交换机。
[0058]第一交换机也可以通过上述结构的协议报文来实现vSwitch转发其组播路由信息至其他交换机的过程,该报文中除了包含上述组播路由信息外,还包括以下字段:
[0059]DMAC:该报文的目的MAC地址,该DMAC字段的值可以为特定二层组播地址,例如第一二层组播地址。vSwitch接收到报文后,若该DMAC字段的值为第一二层组播地址,则将该报文转发至其他与该vSwitch相连的交换机。对于与该vSwitch连接的多个交换机中的任意一个交换机,不转发接收到的目的MAC地址为第一二层组播地址的报文。
[0060]SRC MAC:报文的源MAC地址。该源MAC地址的值即为第一交换机的MAC地址。
[0061]该报文中也还可以包括:
[0062]Pr1rity:发送该报文的交换机的优先级。该优先级用于表征交换机转发组播报文的转发级别,优先级越高,则由该交换机负责转发组播报文的几率越大。
[0063]在本发明的另一实施例中,若第一交换机接收其邻居交换机中各交换机的组播路由信息之前,第一交换机首先通过vSwitch向第一交换机的邻居交换机发送第一交换机的组播路由信息,则在第一交换机发送第一交换机的组播路由信息之前,还包括:
[0064]第一交换机查看是否接收到所述vSwitch转发的由所述第一交换机的邻居交换机发送的探测报文,若是,第一交换机再通过vSwitch向第一交换机的邻居交换机发送第一交换机的组播路由信息。
[0065]可选的,第一交换机的邻居交换机中的各交换机可以先发送探测报文,并通过vSwitch转发探测报文至其他交换机,该探测报文的目的是为了使接收到探测报文的交换机得知还存在其他交换机连接至vSwitch上。
[0066]该探测报文可以包含以下字段:
[0067]DMAC:该报文的目的MAC地址,该DMAC字段的值可以为特定二层组播地址,例如第一二层组播地址。vSwitch接收到报文后,若该DMAC字段的值为第一二层组播地址,则将该报文转发至其他与该vSwitch相连的交换机。对于与该vSwitch连接的多个交换机中的任意一个交换机,不转发接收到的目的MAC地址为第一二层组播地址的报文。
[0068]SRC MAC:报文的源MAC地址。该源MAC地址的值为发送该报文的交换机的MAC地址。
[0069]若第一交换机接收到其他交换机发送探测报文即可获知该第一交换机存在邻居交换机,继而可以确定在向vSwitch转发某一组播组的组播报文时,有可能存在多个交换机向vSwitch转发同一组播报文的情况,也即存在冗余流量,此时,为了进一步确定是否有冗余流量的存储,第一交换机可以继续执行前述实施例中的步骤301?302。
[0070]若第一交换机没有接收到其他交换机发送的探测报文,则说明该第一交换机不存在邻居交换机,进而也就不可能存在多个交换机向vSwitch转发同一组播报文的情况,也即不存在冗余流量,此时,第一交换机无需执行前述实施例的步骤,从而可以节约因发送组播路由信息而占用的资源。
[0071]该实施例通过vSwitch在与其连接的交换机之间转发探测报文,使得各交换机可以获知其他与vSwitch连接的交换机,进而再通过交换机之间交换组播组路由表,使得交换机可以确定同一组播组的组播报文由一个交换机转发至vSwitch,实现了对进入服务器的重复组播报文的阻塞,减小了冗余流量对服务器性能以及虚拟机业务可用性的影响。
[0072]当然,在第一交换机接收其它交换机发送的探测报文之前或之后,该第一交换机均可通过vSwitch向其它交换机发送探测报文,该探测报文的结构与前述邻居交换机向第一交换机发送的探测报文的结构相同,此处不再赘述。
[0073]可选的,为了防止因网络拓扑变化而导致组播报文的传输错误,上述探测报文和包含组播路由信息的协议报文均可以周期性的发送,在每一个周期各交换机均可以执行上述实施例的步骤。
[0074]如果各交换机接收到的其他交换机的组播路由信息发生变化,则根据变化后的路由信息执行相应操作。第一交换机在内存保存有其删除的组播路由表项。在组播路由信息发生变化之前,第一交换机是与vSwitch相连的交换机中除了转发交换机外的其他交换机中的一个交换机,在组播路由信息发生变化之后,第一交换机成为转发交换机,则第一交换机将原来删除的组播路由表项从内存拷贝至硬件的组播路由表中。
[0075]为了更好的理解本发明的技术方案,以下结合具体实例进行说明。
[0076]如图4所示,vSwitch的两个pNIC分别和交换机A的GE2/0/0出接口及交换机B的GE I/0/0相连。
[0077]交换机A和交换机B分别向vSwitch发送探测报文。vSwitch在接收到两探测报文后,根据其中的DMAC,将交换机A发送的探测报文转发至交换机B,将交换机B发送的探测报文转发至交换机A。
[0078]交换机A、B在接收到对方的探测报文后可确定与vSwitch连接的交换机有A、B,并可确定双方的邻居关系。
[0079]然后,交换机A、B相互交换组播组路由信息。交换机A在交换机A、B的组播组路由信息中查找到同一组播G2的组播地址,从而交换机A可确定组播组G2对应的到达vSwitch的路径有两条,一条由交换机A发送至vSwitch,另一条由交换机B发送至vSwitch。交换机B执行与交换机A相同的动作,也可获知前述两路径。
[0080]交换机A获取交换机B的MAC值,然后与自身的MAC值作对比,若交换机A的MAC值大,则根据预设规则,由交换机A负责转发组播组G2的组播报文,GE2/0/0出接口保持转发状态。交换机B执行相同动作,发现交换机A的MAC值更大时,则确定由交换机A负责转发组播组G2的组播报文,将组播组G2对应的GE1/0/0出接口的表项直接从组播路由表中删除。
[0081]从而组播组G2的组播报文只能通过交换机A的出接口 GE2/0/0发送至vSwitch,从而避免了交换机B对组播组G2的组播报文的重复发送,减少了冗余流量。
[0082]以上是对本发明方法实施例的描述,下面对实现上述方法的装置和系统进行介绍。
[0083]参见图5,为本发明实施例一种交换机的结构示意图。
[0084]该交换机与一服务器具有连接关系,该服务器中设置有vSwitch和多个虚拟机,所述虚拟机通过所述vSwitch与外部网络通信,所述vSwitch通过多个接口与外部网络中的多个交换机连接,所述交换机为所述多个交换机中的一个交换机,该交换机包括:
[0085]信息接收单元501,用于通过所述vSwitch接收所述交换机的邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述vSwitch连接的接口所对应的组播地址;其中,所述交换机是所述多个交换机中的一个交换机,所述交换机的邻居交换机为除所述交换机之外与所述vSwitch连接的交换机;
[0086]决策单元502,用于在所述交换机的组播路由表中与所述vSwitch连接的出接口所对应组播地址与所述交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,根据预设规则在与所述vSwitch相连的交换机中确定一个转发交换机,并且确定在与所述vSwitch连接的交换机中仅由所述转发交换机向所述vSwitch转发所述组播地址的组播报文。
[0087]本发明实施例通过上述单元实现了对进入服务器的重复组播报文的阻塞,减小了冗余流量对服务器性能以及虚拟机业务可用性的影响。
[0088]在本发明的另一实施例中,该交换机还可以包括:
[0089]信息发送单元,用于在所述信息接收单元接收其邻居交换机中各交换机的组播路由信息之前或之后,通过所述vSwitch向所述交换机的邻居交换机发送所述交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述vSwitch连接的接口所对应的组播地址。
[0090]在本发明的另一实施例中,该交换机还可以包括:
[0091]判定单元,用于当在所述交换机接收其邻居交换机中各交换机的组播路由信息之前,所述信息发送单元通过所述vSwitch向所述交换机的邻居交换机发送所述交换机的组播路由信息时,则在所述信息发送单元发送所述交换机的组播路由信息之前,查看是否接收到所述vSwitch转发的由所述交换机的邻居交换机发送的探测报文;
[0092]所述信息发送单元,具体用于当所述判定单元的判断结果为接收到所述vSwitch转发的由所述交换机的邻居交换机发送的探测报文时,通过所述vSwitch向所述交换机的邻居交换机发送所述交换机的组播路由信息。
[0093]本发明实施例还提供了一种组播报文的传输系统,如图1所示,该系统包括服务器和多个交换机,其中,所述服务器中设置有vSwitch和多个虚拟机,所述虚拟机通过所述vSwitch与外部网络通信,所述vSwitch通过多个接口与外部网络中的所述多个交换机连接;
[0094]所述交换机,用于通过所述vSwitch接收所述交换机的邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述vSwitch连接的接口所对应的组播地址;其中,所述交换机是所述多个交换机中的一个交换机,所述交换机的邻居交换机为除所述交换机之外与所述vSwitch连接的交换机;在所述交换机的组播路由表中与所述vSwitch连接的出接口所对应组播地址与所述交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,根据预设规则在与所述vSwitch相连的交换机中确定一个转发交换机,并且确定在与所述vSwitch连接的交换机中仅由所述转发交换机向所述vSwitch转发所述组播地址的组播报文。
[0095]在另一实施例中,所述交换机,还用于在接收其邻居交换机中各交换机的组播路由信息之前或之后,通过所述vSwitch向所述交换机的邻居交换机发送所述交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述vSwitch连接的接口所对应的组播地址。
[0096]在另一实施例中,所述交换机,还用于当在接收其邻居交换机中各交换机的组播路由信息之前,通过所述vSwitch向所述交换机的邻居交换机发送所述交换机的组播路由信息时,在所述交换机发送所述交换机的组播路由信息之前,查看是否接收到所述vSwitch转发的由所述交换机的邻居交换机发送的探测报文,若是,所述交换机再通过所述vSwitch向所述交换机的邻居交换机发送所述交换机的组播路由信息。
[0097]如图6所示,本发明实施例还提供了一种交换机,包括PNIC601、处理器602和存储器 603、和交换网芯片 604 (英文:switched fabric circuit,简称为 fabric circuit)。
[0098]其中,处理器602可以为中央处理器(英文:central processing unit,缩写:CPU)。上述交换网芯片604为硬件芯片,可以是以下一种或多种的组合:专用集成电路(英文:applicat1n-specific integrated circuit,缩写:ASIC),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),复杂可编程逻辑器件(英文:complexprogrammable logic device,缩写:CPLD)和网络处理器(英文:network processor,缩写:NP)。存储器603可以是易失性存储器(英文volatile memory),例如随机存取存储器(英文:random_access memory,缩写:RAM),或者非易失性存储器(英文:non_volatilememory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)。pNIC601用于实现交换机与服务器的物理连接。PNIC601和存储器603都和处理器602相连。图6中粗线为总线(英文:bus)。
[0099]存储器603,存储程序代码,并将存储的程序代码传输给处理器602。交换网芯片604用于接收并转发组播数据报文,交换网芯片604中存储有组播路由表。
[0100]该交换机与服务器通过pNIC501物理连接,该服务器中设置有vSwitch和多个虚拟机,所述虚拟机通过所述vSwitch与外部网络通信,所述vSwitch通过多个接口与外部网络中的多个交换机连接,处理器602根据存储器603存储的程序指令,执行上述图3所示实施例中的操作步骤:
[0101]通过vSwitch接收所述交换机的邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述vSwitch连接的接口所对应的组播地址;其中,所述交换机是所述多个交换机中的一个交换机,所述交换机的邻居交换机为除所述交换机之外与所述vSwitch连接的交换机;
[0102]在所述交换机的组播路由表中与所述vSwitch连接的出接口所对应组播地址与所述交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,根据预设规则在与vSwitch相连的交换机中确定一个转发交换机,并且确定在与所述vSwitch连接的交换机中仅由所述转发交换机向所述vSwitch转发所述组播地址的组播报文。
[0103]在处理器602确定出转发交换机后,如果该交换机是与vSwitch相连的交换机中除了转发交换机外的其他交换机中的一个交换机,则处理器602可以通过设置交换网芯片604中的组播路由表来不向所述vSwitch转发所述组播地址的组播报文。具体方法可以是:处理器602将交换网芯片604中存储的组播路由表中包括所述组播地址和与所述vSwitch连接的接口的接口标识的组播路由表项删除。
[0104]后续如果某些交换机的组播路由信息发生变化,则根据变化后的路由信息执行相应操作。若处理器602在交换网芯片604中存储的组播路由表中包括所述组播地址和与所述vSwitch连接的接口的接口标识的组播路由表项,在组播路由信息发生变化之前,若处理器602确定该交换机是与vSwitch相连的交换机中除了转发交换机外的其他交换机中的一个交换机,则该交换机的处理器602在交换网芯片604的组播路由表中删除所述组播地址和与所述vSwitch连接的接口的接口标识的组播路由表项,但在存储器603中保存该被删除的组播路由表项。在组播路由信息发生变化之后,若处理器602确定该交换机成为转发交换机,则处理器602可以将原来删除的组播路由表项从存储器603拷贝至交换网芯片604的组播路由表中。
[0105]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0106]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0107]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接。
[0108]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0109]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0110]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器(英文:Flash memory)、硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0111]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种组播报文的传输方法,其特征在于,服务器中设置有虚拟交换机和多个虚拟机,所述虚拟机通过所述虚拟交换机与外部网络通信,所述虚拟交换机通过多个接口与外部网络中的多个交换机连接,所述组播报文的传输方法包括: 第一交换机通过所述虚拟交换机接收所述第一交换机的邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址;其中,所述第一交换机是所述多个交换机中的一个交换机,所述第一交换机的邻居交换机为除所述第一交换机之外与所述虚拟交换机连接的交换机; 在所述第一交换机的组播路由表中与所述虚拟交换机连接的出接口所对应组播地址与所述第一交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,所述第一交换机根据预设规则在与所述虚拟交换机相连的交换机中确定一个转发交换机,并且确定在与所述虚拟交换机连接的交换机中仅由所述转发交换机向所述虚拟交换机转发所述组播地址的组播报文。
2.根据权利要求1所述的方法,其特征在于,在所述第一交换机接收其邻居交换机中各交换机的组播路由信息之前或之后,还包括: 所述第一交换机通过所述虚拟交换机向所述第一交换机的邻居交换机发送所述第一交换机的组播路由信息,所述第一交换机的组播路由信息至少包括所述第一交换机与所述虚拟交换机连接的接口所对应的组播地址。
3.根据权利要求2所述的方法,其特征在于,若在所述第一交换机接收其邻居交换机中各交换机的组播路由信息之前,所述第一交换机通过所述虚拟交换机向所述第一交换机的邻居交换机发送所述第一交换机的组播路由信息,则在所述第一交换机发送所述第一交换机的组播路由信息之前,还包括: 所述第一交换机查看是否接收到所述虚拟交换机转发的由所述第一交换机的邻居交换机发送的探测报文,若是,所述第一交换机再通过所述虚拟交换机向所述第一交换机的邻居交换机发送所述第一交换机的组播路由信息。
4.一种交换机,其特征在于,服务器中设置有虚拟交换机和多个虚拟机,所述虚拟机通过所述虚拟交换机与外部网络通信,所述虚拟交换机通过多个接口与外部网络中的多个交换机连接,所述交换机为所述多个交换机中的一个交换机,所述交换机包括: 信息接收单元,用于通过所述虚拟交换机接收所述交换机的邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址;其中,所述交换机是所述多个交换机中的一个交换机,所述交换机的邻居交换机为除所述交换机之外与所述虚拟交换机连接的交换机; 决策单元,用于在所述交换机的组播路由表中与所述虚拟交换机连接的出接口所对应组播地址与所述交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,根据预设规则在与所述虚拟交换机相连的交换机中确定一个转发交换机,并且确定在与所述虚拟交换机连接的交换机中仅由所述转发交换机向所述虚拟交换机转发所述组播地址的组播报文。
5.根据权利要求4所述的交换机,其特征在于,还包括: 信息发送单元,用于在所述信息接收单元接收其邻居交换机中各交换机的组播路由信息之前或之后,通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址。
6.根据权利要求5所述的交换机,其特征在于,还包括: 判定单元,用于当在所述交换机接收其邻居交换机中各交换机的组播路由信息之前,所述信息发送单元通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息时,则在所述信息发送单元发送所述交换机的组播路由信息之前,查看是否接收到所述虚拟交换机转发的由所述交换机的邻居交换机发送的探测报文; 所述信息发送单元,具体用于当所述判定单元的判断结果为接收到所述虚拟交换机转发的由所述交换机的邻居交换机发送的探测报文时,通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息。
7.—种组播报文的传输系统,其特征在于,包括服务器和多个交换机,其中,所述服务器中设置有虚拟交换机和多个虚拟机,所述虚拟机通过所述虚拟交换机与外部网络通信,所述虚拟交换机通过多个接口与外部网络中的所述多个交换机连接; 所述交换机,用于通过所述虚拟交换机接收所述交换机的邻居交换机中各交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址;其中,所述交换机是所述多个交换机中的一个交换机,所述交换机的邻居交换机为除所述交换机之外与所述虚拟交换机连接的交换机;在所述交换机的组播路由表中与所述虚拟交换机连接的出接口所对应组播地址与所述交换机的邻居交换机中至少一个交换机的组播路由信息的组播地址相同的情况下,根据预设规则在与所述虚拟交换机相连的交换机中确定一个转发交换机,并且确定在与所述虚拟交换机连接的交换机中仅由所述转发交换机向所述虚拟交换机转发所述组播地址的组播报文。
8.根据权利要求7所述的系统,其特征在于, 所述交换机,还用于在接收其邻居交换机中各交换机的组播路由信息之前或之后,通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息,所述交换机的组播路由信息至少包括所述交换机与所述虚拟交换机连接的接口所对应的组播地址。
9.根据权利要求8所述的系统,其特征在于, 所述交换机,还用于当在接收其邻居交换机中各交换机的组播路由信息之前,通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息时,在所述交换机发送所述交换机的组播路由信息之前,查看是否接收到所述虚拟交换机转发的由所述交换机的邻居交换机发送的探测报文,若是,所述交换机再通过所述虚拟交换机向所述交换机的邻居交换机发送所述交换机的组播路由信息。
【文档编号】H04L12/801GK104348737SQ201310335364
【公开日】2015年2月11日 申请日期:2013年8月2日 优先权日:2013年8月2日
【发明者】江兴烽 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1