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

文档序号:9710756阅读:来源:国知局
一个或多个字段映射到更短尺寸的内部虚拟网络标识符,而不显著影响网络虚拟化功能性。第一非显而易见的认知为,即使每个客户被赋予创建大量虚拟网络的能力,也不可能每一个客户都将规定大量的虚拟网络。比如,即使每个客户可以被赋予创建4K VLAN的能力,也不可能每一个客户都将规定4K VLAN。因此,内部虚拟网络标识符不必长得足以应对每个客户均规定4KVLAN的情形。注意,全部4K VLAN地址空间对于每个客户仍是可获得的。
[0095]第二非显而易见的认知为,多个虚拟网络可以被映射到单个内部虚拟网络标识符。注意,如果路由桥需要在本地端口上转发包到客户,则路由桥需要为虚拟网络分配唯一内部虚拟网络标识符。比如,入口或出口路由桥可以为其包被转发到路由桥上面向客户的端口的每个虚拟网络分配唯一内部虚拟网络标识符。然而,如果路由桥不是一组虚拟网络的入口或出口路由桥,则路由桥可以将这组虚拟网络映射到共同的“通过”内部虚拟网络标识符。比如,如果路由桥不是多个(VLAN标识符,VPN标识符)元组的入口或出口路由桥,则路由桥可以将这些(VLAN标识符,VPN标识符)元组映射到同一内部虚拟网络标识符。
[0096]图3示出根据本发明一些实施例的交换机。
[0097]交换机300可以包括可以经由例如总线的通信信道而彼此通信的多个机制。交换机300可以使用一个或多个集成电路来实现。在一些实施例中,交换机300为路由桥(例如路由桥102),其包括确定机制302、转发机制304、封装机制306和策略应用机制308。在一些实施例中,这些机制可以是专用集成电路的一部分。
[0098]确定机制302可以配置成基于包在其上被接收的端口和/或包中的一个或多个字段来确定包(例如以太网包)的内部虚拟网络标识符和/或内部策略标识符。特别地,包的报头中被用于确定内部虚拟网络标识符和/或内部策略标识符的字段可以包括S-VLAN标识符、C-VLAN标识符、VPN标识符和/或一个或多个MAC地址。交换机和/或端口配置可以规定哪些字段被用于确定内部虚拟网络标识符和/或内部策略标识符。比如,交换机的一个端口可以配置成将所有包映射到特定内部虚拟网络标识符和/或特定内部策略标识符。交换机的另一端口可以配置成将一组C-VLAN标识符映射到对应一组内部虚拟网络标识符和/或对应一组内部策略标识符,并且在C-VLAN标识符不在这组C-VLAN标识符中时,将默认内部虚拟网络标识符和/或默认内部策略标识符指定给该包。
[0099]转发机制304可以配置成基于内部虚拟网络标识符来转发包。特别地,转发机制304可以包括使用内部虚拟网络标识符而被索引的表(例如存储器中的阵列)。表中的每个记录(例如阵列单元)可以包括指示如何转发该包的信息。比如,记录可以包括标识传出端口的端口标识符。记录还可以包括用于调整报头中的一个或多个字段的指令和/或信息(例如,该记录可指示VLAN转变将被执行和指定新VLAN标识符)。附加地,记录可以包括需要被添加到包的报头字段(例如TRILL报头和/或S标签)。
[0100]封装机制306可以配置成将包封装在TRILL包中。特别地,封装机制306可以添加TRILL报头到该包以获得TRILL包。在一些实施例中,包报头信息可以用于确定需要被添加到包的TRILL报头。换言之,在这些实施例中,TRILL报头和内部虚拟网络标识符被同时确定。在一些实施例中,内部虚拟网络标识符可以用于确定需要被添加到包的TRILL报头(例如,转发表中的记录可以指定TRILL报头)。一旦TRILL报头被添加,TRILL包可以通过传出端口被发送。
[0101]在一些实施例中,转发机制304或封装机制306可以配置成添加S标签(如果S标签尚未存在于该包中)以实施网络虚拟化。特别地,如果从客户接收的包包括C标签,但不包括S标签,则路由桥可以添加S标签到该包以支持在TRI LL网络内的网络虚拟化和/或分割。在此公开内容中描述的该系统和技术可以用于使用嵌在TRILL报头中的VPN标识符或者使用S标签来实施网络虚拟化和/或分割。
[0102]在一些实施例中,策略应用机制308可以配置成根据与内部策略标识符关联的策略来处理包。如果期望根据同一策略处理来自这些虚拟网络的包,则来自不同虚拟网络的包可以被映射到同一内部策略标识符。策略通常可以包括指定包在该系统中如何被处理的任意规则组。当策略应用机制308根据给定策略处理包时,该系统可以执行一个或多个动作,所述动作可以包括但不限于:丢弃包,在具体链接或路径上路由包,和/或修改包的报头中的信息。策略应用机制308针对包所执行的基于特定策略的动作可以取决于包中存储的信息,并且可以无视由转发机制304对包作出的转发决定。
[0103]注意,图3仅仅用于说明的目的,并且并非意图将本发明限制于所公开的形式。特别地,在一些实施例中,交换机300可以不是路由桥,和/或可以包括比图3所示机制更少或更多的机制。
[0104]图4A给出的流程图示出了根据本发明一些实施例的用于基于内部虚拟网络标识符来转发包的处理。
[0105]该处理可以由交换机执行,例如路由桥102。在接收到包时,交换机可以基于包在其上被接收的端口和/或包的报头中的一个或多个字段,来确定包的内部虚拟网络标识符(操作402)。特别地,内部虚拟网络标识符可以基于下述来确定:客户VLAN标识符、服务提供商VLAN标识符、源MAC地址和/或VPN标识符。比如,交换机可以通过在上下文可寻址(context-addressable)存储器中查找包的报头中的一个或多个字段,来确定内部虚拟网络标识符。如果查找失败,交换机可以将默认内部虚拟网络标识符指定给包。默认内部虚拟网络标识符可以在一个或多个粒度水平被定义,例如在虚拟网络范围或物理网络范围的基础上、在系统范围的基础上,和/或在每个端口的基础上定义。
[0106]接着,交换机可以基于内部虚拟网络标识符来转发该包(操作404)。交换机可以附加地通过添加TRILL报头将包封装在TRILL包中,并且通过基于内部虚拟网络标识符所确定的传出端口来发送TRILL包。
[0107]图4B给出的流程图示出了依据本发明一些实施例的用于基于内部策略标识符来对包应用策略的处理。
[0108]该处理可以由交换机执行,例如路由桥102。在接收到包时,交换机可以基于包在其上被接收的端口和/或包的报头中的一个或多个字段来确定包的内部策略标识符(操作452)。特别地,内部策略标识符可以基于下述来确定:客户VLAN标识符、服务提供商VLAN标识符、源MAC地址和/或VPN标识符。比如,交换机可以通过在上下文可寻址存储器中查找包的报头中的一个或多个字段,来确定内部策略标识符。如果查找失败,交换机可以将默认内部策略标识符指定给该包。默认内部策略标识符可以在一个或多个粒度水平被定义,例如在虚拟网络范围或物理网络范围的基础上、在系统范围的基础上,和/或在每个端口的基础上被定义。
[0109]接着,交换机可以基于内部策略标识符来处理该包(操作454)。基于内部策略标识符来处理包可涉及执行一个或多个动作,所述动作可以包括但不限于:丢弃包,在特定链接或路径上路由包,和/或修改包的报头中的信息。所执行的基于特定策略的动作可以取决于包中存储的信息,并且可以无视基于内部虚拟网络标识符对包作出的转发决定。
[0110]图5A示出了依据本发明一些实施例的包报头信息和内部虚拟网络标识符之间的映射的示例。
[0111]如上所述,包在其上被接收的端口和/或包的报头中的一个或多个字段可以被映射到内部虚拟网络标识符。图5A所示映射将来自包的报头的(VLAN标识符,VPN标识符)元组映射到内部虚拟网络标识符。图5所示映射仅仅用于说明目的并且并非意图将本发明限制于所公开的形式。
[0112]图5A中示出的映射可以对应于图1中的路由桥102、104、106、108和110。路由桥106上的映射可以将(VLAN标识符,VPN标识符)元组506和508分别映射到内部虚拟网络标识符IVNID-01和IVNID-02。路由桥108上的映射可以将元组506、508和510分别映射到内部虚拟网络标识符IVNID-03、IVNID-04和IVNID-05。路由桥110上的映射可以将元组502、504和510分别映射到内部虚拟网络标识符IVNID-06、IVNID-07和IVNID-08。
[0113]路由桥102上的映射可以将元组502和504分别映射到内部虚拟网络标识符IVNID-
09和IVNID-10。如果与元组506、508和510关联的业务通过路由桥102,这些元组可以被映射到公共内部虚拟网络标识符,即IVNID-11。如果所有业务通过路由桥104,则路由桥可以将所有元组映射到公共内部虚拟网络标识符,即IVNID-12。
[0114]在一些实施例中,内部虚拟网络标识符的范围不延伸超出路由桥。因此,不同路由桥可以将同一元组映射到不同内部虚拟网络标识符。比如,元组506在路由桥106、108、102和104分别被映射到内部虚拟网络标识符IVNID-O1、IVNID-O3、IVNID-10PIVNID-12。
[0115]当路由桥106在报头信息包括元组506的端口P1上接收包时,它可以使用图5A所示映射来确定关联的内部虚拟网络标识符,即IVNID-01。接着,路由桥106可以基于IVNID-01转发该包。特别地,路由桥106可以使用IVNID-01作为关键字来执行转发查找。查找操作的结果可指示TRILL报头将被添加到包以获得TRILL包,并且所得到的TRILL包将被转发到路由桥102。在路由桥102,TRILL包可以基于TRILL报头而被转发到路由桥108。
[0116]注意,路由桥102可以基于报头信息来确定内部虚拟网络标识符(例如IVNID-11)。然而,由于该包具有TRILL报头,内部虚拟网络标识符可以被路由桥102忽略以用于转发包的目的(假定包不是针对用于VLAN 112或114)。
[0117]当包在路由桥108被接收时,内部虚拟网络标识符(例如IVNID-03)可以基于报头信息被确定。接着,内部网络标识符可以用于执行转发查找。查找操作的结果可指示该包将在端口 P1上被转发到VLAN 116。因此,路由桥108可以在端口 P1上将该包转发到VLAN 116。
[0118]图5B示出了依据本发明一些实施例的包报头信息和内部策略标识符之间的映射的示例。
[0119]如上所述,包在其上被接收的端口和/或包的报头中的一个或多个字段可以被映射到内部策略标识符。图5B所示映射将来自包的报头的(VLAN标识符,VPN标识符)元组映射到内部策略标识符(IPID)。通常,内部策略标识符和期望被强加的策略之间存在一对一映射。图5B所示映射仅仅用于说明目的并且并非意图将本发明限制于所公开的形式。
[0120]图5B中示出的映射可以对应于图1中的路由桥102和110。路由桥110上的映射可以将(VLAN标识符,VPN标识符)元组502、504、510分别映射到内部策略标识符IPID-01、IPID-02和IPID-02。路由桥102上的映射可以将元组502和504映射到内部策略标识符IPID-03。注意,相同元组可以由不同路由桥进行不同处理(就哪个策略被应用而言)。比如,路由桥110对与元组502和504关联的包应用不同策略(因为如图5B所示,这些元组被映射到不同IPID),而路由桥102对与元组502和504关联的包应用同一策略。另外,路由桥可以对属于不同虚拟网络和/或客户的包应用同一策略。比如,元组504和510可以分别对应于属于VLAN114和120的包。如图5B所示,路由桥110将元组504和510映射到同一IPID,即路由桥110对来自VLAN 114(其属于客户C3)和VLAN 120(其属于客户C1)的包应用同一策略。
[0121]支持TRILL网络中的多个组播树
[0122]当组播包在输入端口时被接收时,组播包报头由交换机处理,以确定组播包在其上将被转发的一组输出口端口。通常,转发机制(例如,针对执行转发查找设计的专用集成电路)是数据路径中的瓶颈。因此,提高处理速度并且减小转发机制的尺寸和复杂度通常非常重要。
[0123]用于支持多个组播树的一种方法是在给定源地址和组播群组地址,在转发表中具有多个转发条目(例如,每个组播树一个条目)。遗憾的是,此方法会显著增大转发表的大小或者严重限制可以被转发表支持的组播群组的数目。
[0124]—些实施例基于组播包的报头中的一个或多个字段来确定内部组播群组标识符。组播群组标识符随后用于确定将通过其转发组播包的一组出口端口。
[0125]图6A示出了根据本发明一些实施例的可以如何确定内部组播群组标识符。
[0126]内部组播群组标识符612由两个比特组组成。第一比特组608可以由查找转发表604使用组播包的源地址和组播地址602来确定。在一些实施例中,转发表604使用内容可寻址存储器来实施。第二比特组610可以基于组播包中的组播树标识符606来确定。如果组播包不具有组播树标识符,交换机可以独立地选择第二比特组610,例如通过使用基于哈希的技术。
[0127]注意,转发表并不存储交换机支持的每个组播树的条目。反而,转发表存储给定源地址和组播地址的单个条目。第二比特组随后用于从与给定源地址和组播地址关联的多个组播树选择特定树。由于转发表不需要存储每个组播树的条目,与要求转发表存储每个组播树的条目的其它方法相比,本发明的一些实施例能够支持显著更大数目的组播树。
[0128]图6B和6C示出了依据本发明一些实施例的用于同一源和组播地址的不同组播树。
[0129]路由桥622-636可以位于TRILL网络中。组播群组可以包括路由桥622、626、628、630和636(组播群组中的路由桥使用虚线圆示出)。图6B和6C使用虚线示出两个组播树。注意,两个组播树的根部均在路由桥630处。
[0130]图6D示出了根据本发明一些实施例的可以如何确定内部组播群组标识符。
[0131]当组播包在路由桥626被接收时,它可以使用组播包的源和组播地址652来查找转发表654,从而获得第一比特组658。源和组播地址652可以是以太网地址或IP地址。
[0132]接着,路由桥626可以使用组播包中的组播树标识符来确定第二比特组。注意,组播包中的组播树标识符识别组播包将在其上被转发的组播树。在一些实施例中,组播树标识符为路由桥别名。比如,路由桥630可以与可以对应于根部设在路由桥630的多个组播树的多个别名关联。
[0133]图6B中示出的组播树可以与组播树标识符656关联,并且路由桥626可以使用组播树标识符656以确定第二比特组660。图6C中说明的组播树可以与组播树标识符666关联,并且路由桥626可以使用组播树标识符666以确定第二比特组670。
[0134]路由桥626随后可以组合第一比特组和第二比特组以获得内部组播群组标识符。比如,如果组播包包含组播树标识符656,路由桥626可以将第一比特组658与第二比特组660组合,以获得内部组播群组标识符662。另一方面,如果组播包包含组播树标识符666,路由桥626可以将第一比特组658与第二比特组670组合以获得内部组播群组标识符672。
[0135]图6E示出根据本发明一些实施例内部组播群组标识符可以如何用于确定出口端口组。
[0136]出口端口查找表680可以用于基于内部组播群组标识符来确定出口端口组。比如,在路由桥626处使用内部组播群组标识符662执行表查找可以输出出口端口组{P-636}。端口 P-636代表耦合到路由桥636的路由桥626上的端口。类似地,在路由桥6
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1