用于处理和/或转发包的方法和设备的制造方法_4

文档序号:9710756阅读:来源:国知局
26处使用内部组播群组标识符672执行表查找可以输出出口端口组{P-622,P-636}。端口P-622代表耦合到路由桥622的路由桥626上的端口。一旦出口端口组被确定,该系统可以通过这些出口端口来转发组播包的副本。出口端口查找表680可以被实施为使用内部组播群组标识符被索引的阵列。阵列中的每个条目可以存储出口端口组。
[0137]TRILL网络中的网络层组播
[0138]—些实施例提供用于执行网络层(例如IP层)组播的系统和技术。计算机联网典型地使用经常称为网络协议栈的分层软件架构来实现。每个层通常与一组协议关联,所述协议定义用于处理该层中的包的规则和惯例。每个下层执行针对紧接着在其上方的层的服务以帮助处理包。在源节点处,当有效载荷通过源节点的网络协议栈从高层移动到下层时,每个层典型地添加报头。当有效载荷从最下层移动到在目的节点的最高层时,目的节点典型地通过处理和移除每个层的报头来执行逆处理。
[0139]在网络层(例如IP层)的组播群组成员可以跨越多个虚拟网络,例如,VPN和/或VLAN。比如,在图1中,网络层组播群组可以包括分别作为在地点S2、S3和S4的VLAN 116,118和120的以部分的端主机。在一些实施例中,路由桥可以执行网络层组播,S卩,除了基于TRILL报头、VPN标识符、MAC地址和/或VLAN标签来转发包之外,路由桥还可以基于网络层组播地址来转发包。
[0140]图7示出根据本发明一些实施例路由桥在TRILL网络中可以如何执行网络层组播。
[0141]路由桥702-716可以位于TRILL网络,其包括多个虚拟网络,例如VPN和/或VLAN。每个虚拟网络可以支持多个TRILL组播树。比如,使用虚线说明的TRILL组播树718可以属于VLAN VI,并且使用短划线说明的TRILL组播树720可以属于VLAN V2。
[0142]网络层(例如IP层)组播群组可以包括跨过多个虚拟网络(例如VPN和/或VLAN)分布的端主机。比如,组播群组可以包括位于耦合到路由桥702、708、712和716(这些路由桥已经通过在它们周围绘制圆而被突出显示)的VPN和/或VLAN中的端主机。当用于此组播群组的组播包在路由桥被接收时,路由桥可以在特定VLAN上的TRILL组播树上转发组播包。比如,当组播包在路由桥704被接收时,它可以在VLAN VI上的TRILL组播树718上转发该包。
[0143]当组播包在路由桥710被接收时,它可以基于组播包的网络层组播地址来转发该包。特别地,路由桥710可以确定该组播包需要在VLAN VI和VLAN V2二者上被转发。路由桥710可以在VLAN V2上被支持的多个组播树的任何一个上转发组播包。然而,为了保证正确的组播转发,路由桥710会需要沿着与该组播包在其上被接收的同一组播树在VLAN VI上转发组播包。特别地,如果路由桥710在VLAN VI上在与该组播包在其上被接收的组播树不同的组播树上转发组播包,它可能形成转发环路和/或组播包可能不能到达组播群组中的所有端主机。注意,如果网络不支持多个组播树,则这些问题并不出现。
[0144]注意,路由桥可以配置或不配置成执行网络层组播。比如,在上面的示例中,路由桥704未被配置成执行网络层组播,而路由桥710配置成执行网络层组播。
[0145]在一些实施例中,组播包可以是TRILL组播包,并且可以包括与组播包将在其上被转发的组播树关联的组播树标识符。TRILL组播包的报头可以包括指示该TRILL包为组播包的组播字段(例如图2中的组播字段250)。出口路由桥别名(例如图2中的出口路由桥别名256)可以对应于组播包将在其上被转发的组播树的根部。
[0146]图8示出根据本发明一些实施例的交换机。
[0147]交换机800可以包括可以经由例如总线的通信信道而彼此通信的多个机制。交换机800可以使用一个或多个集成电路来实现。
[0148]在一些实施例中,交换机800为路由桥(例如路由桥102),其包括接收机制802、确定机制804、转发机制806、封装机制808和解封装机制810。在一些实施例中,这些机制可以是专用集成电路的一部分。
[0149]接收机制802可以配置成接收组播包(例如以太网或TRILL组播包)。确定机制804可以配置成基于与组播包关联的源地址、组播地址和组播树标识符字段,来确定内部组播群组标识符。
[0150]转发机制806可以配置成基于内部组播群组标识符,来转发该包。特别地,转发机制806可以包括使用内部组播群组标识符来索引的表(例如存储器中的阵列)。表中的每个记录(例如阵列单元)可以包括指示如何转发该包的信息。比如,记录可以包括识别出口端口的一组出口端口标识符。记录还可以包括用于修改报头中的一个或多个字段的指令和/或信息(例如,记录可指示VLAN转变将被执行以及指定新VLAN标识符)。附加地,记录可以包括需要添加到包的报头字段(例如TRILL报头)。当组播包将被发送到被耦合到出口端口的多个VLAN时,这多个组播包的副本可以在交换机800的出口端口上被发送。
[0151]封装机制808可以配置成将组播包的副本封装在TRILL组播包中。特别地,封装机制808可以添加TRILL报头到组播包的副本以获得TRILL组播包。在一些实施例中,TRILL报头和内部组播群组标识符可以同时被确定。一旦TRILL报头被添加,TRILL组播包可以通过传出端口被发送。
[0152]解封装机制810可以配置成解封TRILL组播包(例如通过移除TRILL报头),以获得封装在TRILL组播包中的组播包。该组播包随后可以被转发到客户的网络(例如客户VLAN)。
[0153]在一些实施例中,交换机800(例如图7中的路由桥710)可以配置成执行网络层组播。在这些实施例中,接收机制802可以配置成接收包括网络层组播地址的组播包。特别地,接收机制802可以在与第一虚拟网络(例如VLAN V1)关联的第一组播树(例如图7中的TRILL组播树718)上接收组播包。组播包可以包括与第一组播树关联的第一组播树标识符。第一组播树标识符可以是在第一组播树的根部的路由桥的别名。
[0154]确定机制804可以配置成基于网络层组播地址,来确定与包将在其上被转发的一个或多个虚拟网络关联的一个或多个组播树。比如,确定机制804可以配置成基于网络层组播地址来确定与组播包将在其上被转发的第二虚拟网络(例如VLAN V2)关联的第二组播树(例如图7中的TREL组播树720)。
[0155]转发机制806可以配置成在一个或多个组播树上转发组播包。比如,转发机制806可以配置成在与第一虚拟网络关联的第一组播树上转发组播包,并且在与第二虚拟网络关联的第二组播树上转发组播包的副本。组播包的副本可以包括与第二组播树关联的第二组播树标识符。第二组播树标识符可以是在第二组播树的根部的路由桥的别名。
[0156]在一些实施例中,确定机制804可以配置成基于该网络层组播地址和该组播包的网络层源地址来确定内部组播群组标识符,并且转发机制806可以配置成基于内部组播群组标识符来转发组播包。
[0157]注意,图8仅仅用于说明的目的,并且并非意图将本发明限制于所公开的形式。特别地,在一些实施例中,交换机800可以不是路由桥,和/或可以包括比图8所示更少或更多的机制。
[0158]图9A给出的流程图示出了根据本发明一些实施例的用于基于内部组播群组标识符来转发包的处理。
[0159]该处理可以由例如路由桥102的交换机执行。在接收到组播包(例如以太网或TRILL组播包)时,交换机可以基于与组播包关联的源地址(例如源MAC或IP地址)、组播地址(例如组播MAC或IP地址)以及组播树标识符字段,来确定内部组播群组标识符(操作902)。
[0160]在一些实施例中,该系统可以通过组合下述两比特组来确定内部组播群组标识符:基于源地址和组播地址确定的一个比特组,以及基于组播树标识符确定的第二比特组。特别地,在一些实施例中,组合这两个比特组涉及串接这两个比特组以形成内部组播群组标识符。
[0161]比如,源IP地址和组播IP地址可以用于在上下文可寻址存储器中查找第一比特组。如果组播包包括组播树标识符(例如路由桥别名),则组播树标识符可以用于确定第二比特组。如果组播包并不包括组播树标识符,则该系统可以通过对组播包中的一个或多个字段进行哈希处理(或者通过任何其它手段)来确定第二比特组。接着,第一比特组可以与第二比特组串接以获得内部组播群组标识符。
[0162]接着,交换机可以基于内部组播群组标识符来转发组播包(操作904)。特别地,该系统可以基于内部组播群组标识符来确定一出口端口组。接着,该系统可以通过出口端口组中的每个端口来发送组播包的至少一个副本。交换机可通过添加TRILL报头而附加地将组播包封装在TRILL组播包中,并且通过基于内部组播群组标识符确定的出口端口组来发送TRILL组播包的副本。
[0163]图9B给出的流程图示出了根据本发明一些实施例的用于在TRILL网络中执行网络层组播的处理。
[0164]该处理可以由例如图7中的路由桥710的交换机执行。交换机可以接收包括网络层组播地址的组播包(例如以太网或TRILL组播包),其中组播包在与第一虚拟网络关联的第一组播树上被接收(操作952)。比如,路由桥710可以在VLAN VI上的TRILL组播树718上从路由桥704接收组播包。
[0165]接着,交换机可以基于网络层组播地址来确定与组播包将在其上被转发的第二虚拟网络关联的第二组播树(操作954)。比如,路由桥710可以确定组播包将在其上被转发的VLAN V2上的TRILL组播树720。第二组播树可以随机被确定,或它可以基于链接利用率来确定(例如,通过确定拥堵最少的组播树)。
[0166]交换机随后可以在与第一虚拟网络关联的第一组播树上转发组播包,并且在与第二虚拟网络关联的第二组播树上转发组播包的副本(操作956)。比如,路由桥710可以在TRILL组播树718上将组播包转发到路由桥708和714,并且在TRILL组播树720上将组播包的副本转发到路由桥706和716。
[0167]每个虚拟网络的洪泛
[0168]如果转发查找操作失败,交换机可以洪泛包以确保包到达其期望目的。遗憾的是,洪泛会消耗大量的网络资源。因此,如果可能的话,通常期望限制洪泛范围。
[0169]在基于IVNID的方法中,来自多个虚拟网络(例如VPN或VLAN)的包可以被映射到同一IVNID值。比如,在图5A中,(VLAN标识符,VPN标识符)元组506、508和510在路由桥102上被映射到同一 IVNID值。在一种方法中,如果包的转发查找操作失败,交换机可以将包至少洪泛到映射到该包的IVNID的那些虚拟网络。比如,如果对于与IVNID-11关联的包,在路由桥102上的转发查找操作失败,路由桥102可以至少在与元组506、508和/或510关联的端口上洪泛包。
[0170]在超过所需的虚拟网络上洪泛包会浪费联网资源。因此,在本发明的一些实施例中,在每个虚拟网络的基础上执行洪泛。特别地,在一些实施例中,基于VPN标识符在端口执行过滤,并且如果该包不包括VPN标识符字段,则可以基于该包中的其它字段来确定VPN标识符(例如,VPN标识符可以基于S-VLAN标识符来确定)。比如,路由桥102可以基于IVNID确定一个出口端口组。接着,路由桥102可以将包的副本提供到该出口端口组。只有当包中的虚拟网络标识符(例如,TRILL报头中的VPN标识符或者基于包中的其它字段确定的VPN标识符)与出口端口关联时,每个出口端口随后可以洪泛包。换言之,一旦包基于IVNID已经被提供到出口端口组,出口端口随后可以基于包中的虚拟网络标识符字段来过滤包。比如,如图5A所示,所有包在路由桥104上被映射到IVNID-12。这种情况下,如果转发查找失败,包可以被提供到路由桥104上的所有出口端口。每个出口端口随后可以根据出口端口是否与该包中的虚拟网络标识符关联来洪泛包。
[0171]图10示出了根据本发明一些实施例的交换机。
[0172 ]交换机1000可以包括可以经由例如总线的通信信道而彼此通信的多个机制。交换机1000可以使用一个或多个集成电路来实现。在一些实施例中,交换机1000为路由桥(例如路由桥102),其包括转发查找机制1002、确定机制1004和洪泛机制1006。在一些实施例中,这些机制可以是专用集成电路的一部分。
[0173]转发查找机制1002可以配置成基于包的报头中的一个或多个字段来执行转发查找操作。包的报头中的一个或多个字段可以包括但不限于:客户VLAN标识符、服务提供商VLAN标识符、源MAC地址、目的MAC地址、入口路由桥别名以及出口路由桥别名。在一些实施例中,转发查找机制1002可以配置成使用内容可寻址存储器来执行查找。
[0174]交换机1000可以基于包在其上被接收的端口和/或包的报头中的一个或多个字段来确定包(例如以太网包)的内部虚拟网络标识符。交换机和/或端口配置可以指定哪些字段被用于确定内部虚拟网络标识符。比如,交换机的一个端口可以配置成将所有包映射到特定内部虚拟网络标识符。交换机的另一端口可以配置成将一组C-VLAN标识符映射到对应的一组内部虚拟网络标识符,并且当C-VLAN标识符不在这组C-VLAN标识符中时,将默认内部虚拟网络标识符分配给该包。
[0175]如果转发查找操作是成功的,交换机1000可以基于转发查找操作的结果以及内部虚拟网络标识符来转发该包。交换机可以包括使用内部虚拟网络标识符来索引的表(例如存储器中的阵列)。表中的每个记录(例如阵列单元)可以包括用于转发包的信息。比如,该记录可以包括用于修改报头中的一个或多个字段的指令和/或信息(例如,记录可指示VLAN转变将被执行并且指定新VLAN标识符)。附加地,记录可指示需要添加到包的报头字段(例如TRILL报头)。一旦包被提供到出口端口,该系统可以确定用于该包的封装。特别地,在出口端口该系统可以确定是否使用C标签、S标签、TRI LL报头和/或包含VPN标识符的TRI LL选项字段通过该出口端口来发送该包。该系统还可以执行转变操作,诸如转变C标签、S标签和/或VPN标识符。
[0176]然而,如果转发查找操作失败,确定机制1004可以基于包的报头中的虚拟网络标识符来确定一组出口端口。比如,该系统可以基于VLAN标签中的VLAN标识符或TRILL选项字段中的VPN标识符,或者其组合来确定这组出口端口。
[0177]洪泛机制1006可以配置成在该组出口端口上洪泛包。由于洪泛是在基于包的报头中的虚拟网络标识符而确定的一组出口端口上执行,所以与在所有端口上洪泛包而不管网络中的特定节点是否属于与该包关联的虚拟网络的方法相比,该洪泛更高效。
[0178]在一些实施例中,通过在可以基于包的报头中的虚拟网络标识符来确定的组播树上转发包,由此洪泛包。特别地,交换机1000可以创建其报头包括组播树标识符的TRILL组播包。接着,交换机1000可以在与组播树标识符关联的这组出口端口上转发TRILL组播包。在一些实施例中,组播树标识符是作为组播树的根部的路由桥的别名。
[0179]注意,图10仅仅用于说明的目的,并且并非意图将本发明限制于所公开的形式。在一些实施例中,交换机1000可以不是路由桥,和/或可以包括比图10所示映射更少或更多的机制。
[0180]在一些实施例中,确定机制1004可以基于与该包关联的IVNID和/或包的报头中的一个或多个字段来确定出口端口组。接着,洪泛机制1006可以将包的副本提供到该出口端口组中的每个出口端口。只有当包中
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1