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

文档序号:9710756阅读:来源:国知局
域技术人员能够实现和使用本发明,并且在具体应用及其要求的上下文中提供下述说明。对所公开各实施例的各种调整对于本领域技术人员将是显而易见的,并且此处定义的一般原理可以应用到其它实施例和应用,而不背离本发明的精神和范围。因而,本发明不限于所示出的实施例,而应该符合与此处公开的原理和特征一致的最宽的范围。
[0062]TRILL(多链接透明互连)
[0063]TRILL组合了桥接和路由的优点。网桥(例如执行层-2转发的装置)可以透明地连接多个链接以形成单个局域网。在没有TRILL的情况下,网桥使用生成树协议(STP),该生成树协议约束在其上向树转发业务的拓扑,以防止环路。遗憾的是,在树上转发流量导致业务中在对应于树边缘的链接上,使得其它链接完全没有被使用。与网桥不同,互联网协议(IP)路由器(例如执行IP转发的装置)不需要形成生成树以用于转发业务。然而,转发IP业务的路由器需要比网桥更多的配置,并且在IP网络中移动节点要求改变节点的IP地址。IP网络中的每个链接与地址前缀关联,并且该链接的所有节点必须具有该IP前缀。如果节点移动到具有不同IP前缀的另一链接,该节点必须改变其IP地址。除非另外指出,属于“IP”在此公开内容中指“IPv4”和“IPv6” 二者。
[0064]TRILL网络包括“路由桥”(称为RBridge),该路由桥路由包,但类似于网桥,是通过接收包来获知层-2地址位置。由于包被路由,包转发不限于生成树。另外,由于跳计数包括在TRILL包中,在存在环路情况下,包并不在网络中一直循环。另外,由于获知了层-2地址位置,TRILL网络允许IP节点在网络中从一个链接移动到另一链接而没有任何约束。
[0065]图1示出了根据本发明一些实施例的TRILL网络。TRILL网络100可以是服务提供商的网络,其包括核心路由桥102和104以及边缘路由桥106、108和110。路由桥102、106、108和110被耦合到客户装置,而路由桥104未耦合到客户装置。特别地,路由桥102上的端口 P3可以耦合到客户C3在地点S1的网络中的装置;路由桥106、108和110上标记为P1的端口可以耦合到客户C1分别在地点S2、S3和S4的网络中的装置;以及路由桥110上的端口 P3可以耦合到客户C3在地点S5的网络中的装置。注意,图1中端口编号匹配客户编号,S卩,标记为P1的端口与客户C1关联,标记为P3的端口与客户C3关联,等等。之所以这是做是为了易于公开。通常,任何路由桥上的任何端口可以潜在地被分配到与一个或多个客户关联的一个或多个虚拟网络。
[0066]客户的网络中的虚拟局域网(VLAN)可以跨越多个客户地点。比如,客户C3的网络中的VLAN 112和114包括地点S1和S5中的节点。类似地,客户C1的网络中的VLAN 116和118包括地点S2和S3中的节点,并且客户C1的网络中的VLAN 120包括地点S3和S4中的节点。
[0067]属于同一 VLAN但是位于不同地点的节点可以通过TRILL网络100而彼此透明地通信。特别地,入口路由桥可以封装从客户接收的包(例如,具有或不具有一个或多个VLAN标签的以太网包),并且使用TRILL报头在TRILL网络100中路由该包。出口路由桥随后可以剥去TRILL报头并且在适当端口上发送原始客户包。比如,包122可以起源于客户C3在地点S1的网络,并且可以在具有与VLAN 112关联的VLAN标签的路由桥102的端口 P3上被接收。接着,作为用于此包的入口路由桥的路由桥102可以通过添加TRILL报头来封装包122,从而获得包124(TRILL报头为包124中的阴影部分)。接着,包124的TRILL报头可以用于通过TRILL网络100路由包124,直至包124到达路由桥110,路由桥110为该包的出口路由桥。路由桥110随后可以剥去包124上的TRILL报头,以获得原始包122,并且在端口 P3上发送包122,以使得该包可以被递送到客户C3在地点S5的网络中的VLAN 112中的期望目的地。在图1中,在入口路由桥处被接收的包以及从出口路由桥发送的包被示为是相同的。然而,这些包可以不同。比如,如果VLAN转变正在执行,则在入口路由桥处接收的包和从出口路由桥发送的包可以具有不同VLAN标签。
[0068]TRILL包格式和路由桥转发的细节可以从IETF草案“PBridge: Base ProtocolSpecificat1n” 中找到,该IETF草案可从以下网址获得 http: / / tools.1etf.0rg/html/draft-1etf-trill-rbridge-protocol-16,并且通过弓丨用结合于此。
[0069]尽管此公开内容中的一些示例是在包括路由桥的TRILL网络的上下文中给出,但是本发明不限于TREL网络或路由桥。术语“帧”或“包”通常是指比特的组。术语“帧”的使用不是意图将本发明限制于层-2网络。类似地,使用术语“包”不是意图将本发明限制于层-3网络。除非另外指出,术语“帧”或“包”可以与指代比特组的其它术语(诸如〃单元〃或〃数据报")替换。
[0070]网络虚拟化
[0071]网络虚拟化使得服务提供商能够在公共网络设施上规定虚拟网络(VN)。对于VN上的用户,看上去业务似乎是在特别为该用户构建的单独网络上输运。然而,实际上,来自多个VN的流量可以在公共网络设施上输运。
[0072]网络虚拟化具有许多用途。比如,网络虚拟化可以用于在同一物理网络上形成多个逻辑上不同的网络,以遵守政府法规。网络虚拟化的其它用途包括但不限于,在一个公司内的不同组织之间分割网络资源,由此降低网络成本并且简化网络管理。
[0073]用于处理通过网络虚拟化解决的问题的一种方法是复制网络中的资源(例如路由器、交换机等),使得资源可以基于每个客户而被规定。然而,此方法是不实际的,因为它昂贵并且它不能扩展。
[0074]本发明的一些实施例通过将VPN标识符嵌在TRILL报头中的TRILL选项字段中,在TRILL网络中实施网络虚拟化和/或分割。特别地,入口路由桥可以确定其从客户接收的每个包的VPN标识符,并且将VPN标识符嵌在TRILL报头中的TRILL选项字段中。接着,VPN标识符可以用于支持在TRILL网络中的网络虚拟化和/或分割。特别地,一旦VPN标识符被嵌入TRILL报头,TRILL网络中的路由桥可以使用VPN标识符来确定如何处理包。
[0075]在一些实施例中,该系统可以使用服务提供商VLAN标识符来实施网络虚拟化和/或分割。特别地,入口路由桥可以将适当S标签添加到从客户接收的包(注意,基于S标签的方法对于已经具有S标签的输入包可能不起作用)。接着,S标签可以用于实施网络中的虚拟化和/或分割。
[0076]包格式
[0077]图2示出包括根据本发明一些实施例的TRILL报头的以太网包的一部分。图2所示的包仅仅是用于说明目的,并且不是意图限制本发明。
[0078]包200可以包括一个或多个下述字段:外部MAC(介质访问控制)地址202、外部VLAN标签204、TRILL报头字段206、TRILL选项字段208、内部MAC地址210和内部VLAN标签212。典型地,该包从顶部传输到底部,即,与外部MAC地址202关联的位将在与外部VLAN标签204关联的位出现在传输介质上之前,出现在传输介质上,诸如此类。在下文讨论这些字段的内容以及它们的用途。
[0079]外部MAC地址202可以包括外目的MAC地址214和外源MAC地址216。在包穿过服务提供商的网络时,这些MAC地址和外部VLAN标签204典型地在每个TRILL跳均改变。特别地,在每跳,外源MAC地址216与用于该跳的源节点(例如路由桥)的MAC地址关联,外目的MAC地址214与用于该跳跃的目的节点(例如路由桥)的MAC地址关联,并且外部VLAN标签204与包括用于该跳跃的源节点和目的节点的VLAN关联。
[0080]外部VLAN标签204可以包括以太网类型字段218和外部VLAN标识符220。以太网类型字段218的值可以指示下一个字段为VLAN标识符。VLAN标识符220可以在服务提供商的网络中使用以形成多个广播域。
[0081 ] TRILL报头字段206可以包括以太网类型字段222和TRILL报头224。以太网类型字段222的值可以指示下一个字段为TRILL报头。TRILL报头224可以包括用于通过嵌在服务提供商的网络中的TRILL网络来路由包的信息。特别地,如图2所示,TRILL报头224可以包括:版本字段246,其指示TRILL版本;预留字段248,其可以预留用于将来使用;组播字段250,其指示此包是否为组播包;TRILL选项长度252,其指示跟随TRILL报头的任何TRILL选项字段的长度(就32位字而言);以及跳计数254,其可以在包穿过服务提供商的网络时在每个路由桥处递减。
[0082]TRILL报头224还包括出口路由桥别名256和入口路由桥别名258。入口路由桥别名258对应于从客户的网络接收包的入口路由桥,并且对于单播包,出口路由桥别名256对应于发送包到客户的网络的出口路由桥。对于组播包,出口路由桥别名256对应于作为包将在其上被转发的组播树的根部的路由桥。比如,在图1中,当包122在入口路由桥102被接收时,入口路由桥102可以使用包122中的报头信息来确定包122需要被路由到出口路由桥110。接着,入口路由桥102可以将TRILL报头字段206添加到包122以获得包124。特别地,路由桥102可以将包124的TRILL报头中的入口路由桥别名258设置为路由桥102的别名,以及将包124的TRILL报头中出口路由桥别名256设置为路由桥110的别名。路由桥102随后可以完全或部分地基于包124的TRILL报头来转发包124。
[0083]TRILL选项字段208可以包括比特编码选项以及以TLV(类型-长度-值)格式编码的一个或多个选项。特别地,TRILL选项字段208可以包括比特编码选项260(其为一比特选项标志)和TLV编码选项226。比如,20比特VPN标识符可以被编码为TLV编码的选项。特别地,类型字段262的值可以指示此选项指定VPN标识符。长度字段264可以指示以八比特组为单位的TLV编码选项的数据部分的长度。在图2所示包中,TLV编码选项226被用于指定20比特VPN标识符,并且长度字段264被设置为值0x6 3LV编码选项226的数据部分紧接着长度字段264之后开始。特别地,在图2所示包中,字段266、268和228的总长度(以八比特组为单位)等于长度字段264所指定的0x6。另外,如图2所示,TLV编码选项226中的数据部分的最后20比特可以用于指定VPN标识符228。
[0084]注意,20比特VPN标识符可以使用更少数据部分来指定,例如,使用仅仅0x3个八位字节替代0x6个八位字节。然而,一些实施例使用下述非显而易见的认知:可能期望将20位VPN标识符与字边界对齐,以简化芯片设计和/或改善性能。因而,在一些实施例中,使用0x6个八比特字节,而不是0x3个八比特字节以使得20比特VPN标识符与32比特字边界对齐。比如,如图2所示,VPN标识符228与32位字边界对齐。
[0085]内部MAC地址210可以包括内源MAC地址232和内目的MAC地址230。内部MAC地址210可以是存在于从客户的网络接收的包的报头中的MAC地址。比如,在图1中,假设客户C3在地点S1的网络内的VLAN 112中的源节点发送包到客户C3在地点S5的网络中的VLAN 112中的目的节点。在此场景中,内源MAC地址232可以对应于在地点S1的源节点,并且内目的MAC地址230可以对应于在地点S5的目的节点。
[0086]内部VLAN标签212可以包括一个或多个VLAN标签。比如,内部VLAN标签212可以包括:S标签,其包括以太网类型字段234和S-VLAN标识符236; C标签,其包括以太网类型字段238和C-VLAN标识符240;以及另一种标签,其包括以太网类型字段242和VLAN标识符244。外部VLAN标签204和内部VLAN标签212中的每个VLAN标签还可以包括:三比特优先级代码点(PCP)字段(在此公开内容中也称为“优先级”或“优先级位”),例如PCP 270;以及一比特CFI字段,例如CFI 272。当使用S标签时,CFI字段可以携带丢弃资格指示符(DEI)比特。以太网类型字段(例如234、238和242)中的值可以指示跟随的VLAN标签的类型。比如,以太网类型字段234和238可以指示跟随相应以太网类型字段的S标签的VLAN标识符以及C标签的VLAN标识符。S标签和C标签可以被客户用于形成例如在提供商桥接标准中所定义的堆叠VLAN架构。S标签还可以由服务提供商用于实施网络虚拟化和/或分割。包200还可以包括其它标签,每个标签具有指不标签的类型的标签类型字段,以及存储与该标签有关的内容(例如标识符)的字段。比如,包200可以包括32比特拥堵通知标签(CN标签),其包括16比特标签类型字段和16比特流标识符。拥堵通知标签可以由客户用于管理网络拥堵。
[0087]注意,包可以包括或不包括图2所示所有字段。比如,在一些实施例中,包可以不包括内部VLAN标签212和/或外部VLAN标签204的一个或多个。另外,在一些实施例中可以不允许字段的某种组合。比如,在一些实施例中,包可以包括S标签或者包括TRILL选项字段,但是不包括二者。附加地,某些字段的值可以彼此相关。比如,在一些实施例中,S-VLAN标识符236可以被拷贝到VPNID228的12个最低有效位。
[0088]VLAN标签在IEEE(电气和电子工程师学会)标准IEEE 802.1Q中指定。该标准的较早版本,包括并且直至此标准的IEEE 802.1Q-2005版本,描述了单个VLAN标签可以如何被添加到以太网包以在同一局域网(LAN)内形成多个广播域。术语提供商桥接是指此标准的修正,其允许S标签(服务VLAN标签有时称为提供商标签)被堆叠在单个以太网包中。提供商桥接使得服务提供商能够在共享的网络设施上运送来自多个客户的VLAN业务,而不约束每个客户可获得的VLAN地址空间。关于提供商桥接的更多细节,可以在标准IEEE802.lad的规范中找到。
[0089]在一些实施例中,该系统可以添加TRILL报头到提供商桥接包。在这些实施例中,从客户网络接收的包可以包括S标签。服务提供商的网络随后可以添加TRILL报头到包。在一些实施例中,该系统可以确保最外部VLAN标签中的优先级比特与S标签中的优先级比特相同。
[0090]内部虚拟网络标识符和内部策略标识符
[0091]当包在输入端口上被接收时,包报头由交换机处理以确定包将在其上被转发的输出口端口。通常,转发机制(例如针对执行转发查找而特别设计的集成电路)是数据路径中的瓶颈。因此,提高处理速度并且减小转发机制的尺寸和复杂度通常非常重要。
[0092]用于在路由桥中支持网络虚拟化的一种方法是直接使用VPN标识符和/或包报头中的其它字段来执行转发查找。遗憾的是,此方法会要求转发机制使用大量的比特来执行转发查找。结果,设计使用此方法执行转发的交换机成本会非常高。
[0093]本发明的一些实施例基于包在其上被接收的端口和/或包中的一个或多个字段(其可以包括VPN标识符)来确定内部虚拟网络标识符。接着,基于该内部虚拟网络标识符来转发该包。内部虚拟网络标识符的长度(就位而言)可以小于包中被用于确定内部虚拟网络标识符的一个或多个字段的组合长度。长度的这种减小可以提高转发机制的处理速度,并且减小实施的总尺寸和复杂度。
[0094]存在至少两个非显而易见的认知,所述认知允许我们将包中的
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1