专利名称:多层虚拟局域网(vlan)域映射机制的利记博彩app
技术领域:
本发明涉及计算机网络,更具体地说,涉及已被分段为多个虚拟局域网(VLAN)的计算机网络。
背景技术:
计算机网络一般包括多个互连的实体。实体可以由诸如服务器和终端站之类的“源发(source)”(即发送)或“吸收(sink)”(即接收)数据帧的任何网络设备组成。一种常见的计算机网络是局域网(“LAN”),它一般指单个建筑或者校园中的私有网络。LAN一般应用诸如以太网、FDDI或令牌环之类的数据通信协议(LAN标准),该数据通信协议定义由通信体系结构(即协议栈)的数据链路层和物理层执行的功能。
常常使用一个或多个中间网络设备来将LAN耦合到一起,并且允许相应的实体交换信息。例如,可以使用网桥在两个或多个LAN或者终端站之间提供“桥接”功能。一般来说,网桥是一个计算机,包括被耦合到LAN或终端站的多个端口。用于将网桥相互耦合的端口一般称为干线端口(trunk port),而用于将网桥耦合到LAN或终端站的端口一般称为接入端口。桥接功能包括在源端口处接收来自发送实体的数据,并且将该数据传递到至少一个目的地端口,以转发给接收实体。
虽然网桥可以在通信协议栈的各个级别运行,但是它们一般在第2层(L2)运行,该层在OSI参考模型中被称为数据链路层,并且包括逻辑链路控制(LLC)子层和媒体访问控制(MAC)子层。在数据链路层的数据帧一般包括头部,头部包含称作源地址的源发消息的实体的MAC地址,以及称作目的地地址的消息被发往的实体的MAC地址。为了执行桥接功能,L2网桥检查在源端口上接收到的每个数据帧的MAC目的地地址。然后该帧被切换到与该MAC目的地地址相关联的(一个或多个)目的地端口上。
通常称作路由器的其他设备可以在更高的通信层上运行,例如OSI参考模型的第3层(L3),它在传输控制协议/因特网协议(TCP/IP)网络中对应于因特网协议(IP)层。在IP层的分组也包括包含有IP源地址和IP目的地地址的头部。路由器或L3交换机可以将接收到的数据帧从LAN标准(例如,以太网)重组或转变到另一种标准(例如,令牌环)。因此,L3设备常常被用于互连不相似的子网。
虚拟局域网诸如LAN之类的计算机网络也可以被分为一系列逻辑网络段。例如,1995年2月28日授权给Ross的美国专利No.5,394,402(“′402专利”)公开了用于将网桥的任何端口与任何具体分出的网络组相关联的安排,该专利通过全文引用结合于此。具体地说,根据′402专利,通过使用将端口与具体虚拟局域网(VLAN)标号(designation)虚拟地关联起来的VLAN安排,可以将具体网桥的任何数目的物理端口与网桥中的任何数目的组相关联。更具体地说,Ross公开了一种网桥或集线器,其将VLAN标号与至少一个本地端口相关联,并且进一步将那些VLAN标号与从已被分配了VLAN标号的任何端口发送来的消息相关联。
用于每个端口的VLAN标号被存储在集线器的存储器部分,使得集线器每次在本地端口上接收到消息时,该端口的VLAN标号就与消息相关联。利用流处理元件实现关联,所述流处理元件基于在其上发起消息的本地端口,在存储器部分中查找VLAN标号。除了′402专利之外,电气电子工程师学会(IEEE)已经发布了用于虚拟桥接局域网的标准,标识为IEEE 802.1Q规范标准。
在许多情形中,希望将多个这种网桥或集线器互连,以便扩展网络中的端口的VLAN关联。实际上,Ross阐明了他的VLAN安排的目的是允许具有相同VLAN标号的所有网络端口和实体通过将VLAN标号与每个消息相关联来交换消息。从而,那些具有相同VLAN标号的实体好像它们都是相同LAN的一部分一样工作。VLAN配置的网桥和集线器被特别配置,以防止在具有不同VLAN标号的网络的部分之间交换消息,以便保持每个VLAN段的边界。诸如路由器之类的在L2上运行的中间网络设备可以在不同的VLAN段之间中继消息。IEEE 802.1Q规范标准还要求向网络消息的头部添加VLAN标识符(VID)字段。可以用与消息的VLAN标号相对应的数字值(0-4095)来加载VID字段。为了管理方便,常常用不同的颜色关联每个VLAN标号,例如红、蓝、绿等。
图1是遵守IEEE 802.1Q规范标准的数据链路(例如,以太网)帧100的局部框图。帧100包括头部102、数据字段104和帧校验序列(FCS)字段106。头部102包括MAC目的地地址(DA)字段108、MAC源地址(SA)字段110和指定数据字段104大小的长度/类型字段111。根据802.1Q规范标准,头部102还包括位置紧随DA和SA字段108、110之后的标签头部112。
标签头部112包括将帧标识为IEEE 802.1Q类型帧的标签协议标识符(TPID)字段114,以及标签控制信息字段116,标签控制信息字段116依次包括多个子字段,包括用户优先级字段118、规范格式指示符(CFI)字段120和虚拟局域网标识符(VID)字段122。CFI字段指示VID字段122的位顺序是规范的还是非规范的。VID字段122用来指定帧的虚拟局域网(VLAN)标号。
用户优先级用户优先级字段118准许网络实体选择要被施加到帧100上的期望的优先级。具体地说,称作802.1p规范标准的IEEE附录定义了8个可能的用户优先级值(0-7),每个值与特定的流量类型相关联。如802.1p规范标准所指定的,建议的用户优先级值和它们的对应流量类型如下所示。
用户优先级值流量类型描述1 后台大量传输2 多余/保留 n/a0 最佳努力当前LAN流量3 极大努力最佳努力类型的服务(例如对组织的最重要客户)
用户优先级值流量类型描述4 受控负载 重要商务应用5 视频(<100毫秒延迟和抖动) 最小抖动6 声音(<10毫秒延迟和抖动)通过LAN的单向传输7 网络控制以“必须到达那里”需求为特征来维护并支持网络基础设施中间网络设备可以具有每端口多个传输队列,并且依据802.1p规范标准,可以基于帧的用户优先级值,将帧分配给目的地端口的不同队列。例如,将用户优先级为“0”的帧放置到级别“0”队列(例如,非加快流量),而将用户优先级为“3”的帧放置到级别“3”队列中。此外,存储在较高级别队列(例如,级别3/极大努力)中的帧优选地在存储在较低级别队列(例如,级别1/后台)中的帧之前被转发。这通常称作优先级排队。从而,通过将用户优先级字段118的内容设置为具体的值,网络实体可以影响帧通过网络的速度。
如果一个具体的中间网络设备具有每个端口少于8个的队列,则可以将几种IEEE流量类型合并。例如,如果只出现3个队列,则队列1可以容纳最佳努力、极大努力和后台流量类型,队列2可以容纳受控负载和视频流量类型,并且队列3可以容纳声音和网络控制流量类型。IEEE 802.1p规范标准也认可中间网络设备可以重新生成接收到的帧的用户优先级值。即,中间网络设备可以转发具有与当接收到帧时该帧具有的用户优先级值不同的用户优先级值(仍旧在范围0-7中)的帧。不过,标准推荐保留优先级值不变。
城域网(MAN)在许多实例中,利用点到点链路、微波收发机、卫星连接等可以将多个LAN和/或终端站互连,以形成可以跨越数个城区、整个城市和/或例如旧金山湾区域的整个城市区域的城域网(MAN)。MAN一般互连位于物理上彼此远离但仍在城市区域中的各个校园和/或建筑中的多个LAN和/或终端站。传统的MAN一般依赖于采用在现有公共交换电话网(PSTN)的同步光网络(SONET)上运行的异步传输模式(ATM)的网络装备。由于大多数LAN利用以太网标准,所以在一个LAN处创建的网络消息或帧必须从以太网格式转变成ATM信元,以在SONET链路上发送。ATM信元然后必须被转变回以太网格式,以传递到目的地LAN或终端站。这种将每个网络消息从以太网转变到ATM,并且再转变回去的需求要求MAN包括昂贵的连网装备。MAN提供商也不得不租借或者以其他方式获得对SONET链路的接入。结果,建立和运行MAN可能是昂贵的。
另外,希望将许多不同的网络连接到MAN。然而,这些不同的网络中的至少某些可能仍然使用完全相同的VLAN标号来标识它们的流量。一旦这种流量进入MAN,则难以确定该流量是从哪个具体网络发起的。这可能导致由MAN产生的转发错误。
发明内容
简要地说,本发明涉及用于在客户虚拟局域网(VLAN)域和提供商VLAN域之间映射网络消息的系统和方法。更具体地说,诸如网桥之类的中间网络设备具有多个端口,用于在计算机网络中交换诸如帧之类的网络消息。计算机网络可以包括相互隔离的一个或多个客户网络和一个或多个提供商网络。此外,网桥可以被布置在提供商网络的边缘处,并且被耦合到多个客户网络。根据本发明,网桥的端口被特定地配置以运行为客户边界端口(耦合到客户网络)或者提供商端口(提供到提供商网络的其他部分的连通性)。在客户边界端口处,从客户网络接收已经具有VLAN标号(在这里称作帧的客户VLAN标号)的帧。在客户边界端口上接收到的帧还可以包括指定期望的服务对待水平的服务代价(CoS)字段(这里称作帧的客户CoS值)。
根据本发明,网桥基于在其上接收到帧的具体端口和它的客户VLAN标号,选择提供商或者传送VLAN标号,以与从客户网络接收到的每个帧相关联。网桥也可以基于在其上接收到帧的具体端口、帧的客户VLAN标号以及它的客户CoS值,选择提供商CoS值,以与帧相关联。在示例性实施例中,所选择的提供商VLAN标号和提供商CoS值被附加到接收到的帧上,接收的客户帧保持不变。然后,通过提供商网络传送新的帧。在提供商网络中的其他中间网络设备在做出转发决定中利用帧的提供商VLAN标号和提供商CoS值。在将帧传输出提供商网络之前,可以将帧的提供商VLAN标号和提供商CoS值剥离。
在示例性实施例中,提供商网络的网桥被配置以包括帧映射逻辑,以及在选择或者导出提供商VLAN标号和提供商CoS值中使用的一个或多个高度灵活的映射表,以与从客户网络接收到的帧相关联。具体地说,每个网桥都包括一个或多个入口VLAN映射表,一个或多个出口VLAN映射表,一个或多个CoS映射表和一个或多个网桥协议数据单元(BPDU)分类/转换表。在优选的实施例中,每个端口具有其自己的一组这样的表。一旦在给定的端口上从客户网络接收到帧,网桥就使用给定的边界端口和帧的客户VLAN标号(如果存在的话),对入口VLAN映射表执行查找,来选择适当的提供商VLAN标号以与帧相关联,并且标识适当的CoS映射表。然后,网桥使用帧的客户CoS值,对标识出的CoS映射表执行查找,来选择适当的提供商CoS值以与帧相关联。包括提供商VLAN标号和提供商CoS值的帧可以被传递到转发引擎,转发引擎标识要从其传输帧的一个或多个出站(outbound)端口。帧从标识出的出站端口的传输至少部分依赖于帧的提供商VLAN标号,其可以被用作到出口VLAN映射表的索引。此外,出口VLAN映射表可以被用来修改正在提供商网络中传送的帧,以及正退出提供商网络的帧。例如,出口VLAN映射表可以用来确定是否要将附加到帧的提供商VLAN标号与帧一起传输。
网桥也可以包括或者能够访问某些资源或服务,例如,优先级队列、过滤器设置、队列选择策略、拥塞控制算法、高速链路等,以在转发网络消息中使用。可以基于帧的提供商CoS值,选择具体的(一个和多个)资源以在转发帧中使用。
下面参考附图描述本发明,其中图1(先前讨论的)是现有技术的帧的框图;
图2是计算机网络的高度简化的图;图3是图2的计算机网络的中间网络设备的高度简化的局部功能图;图4、图5、图6和图8是图3的设备所使用的映射表的高度简化的示图;以及图7是根据本发明的网络消息的高度简化的局部框图。
具体实施例方式
图2是计算机网络200的高度简化的示图。计算机网络200包括城域网(MAN)202和多个客户网络,例如客户网络204-214。也被称作提供商网络的MAN 202除了其他服务之外还提供到客户网络204-214的互连服务。在示例性实施例中,每个客户网络202-214包括多个诸如个人计算机、工作站、服务器之类的实体或主机,它们都在大体相同的位置,并且互连形成一个或多个局域网(LAN),使得实体可以相互源发或吸收数据帧。如这里所使用的,术语“大体相同的位置”是指在单个校园或者在粗略的单个城区的区域中的单个建筑或多个建筑。可以通过一个或多个诸如在通信栈的第2层(L2)运行的交换机或网桥之类的客户操作的中间网络设备,将客户网络204-214的LAN互连。
客户网络204-214一般属于不同的组织,例如组织A、组织B和组织C。具体地说,组织A包括客户网络204(A1)、210(A2)和214(A3)。组织B包括客户网络206(B1)和212(B2)。组织C包括客户网络208(C1)。优选地,通过多个链路(例如链路216-223)将每个客户网络204-214耦合到MAN 202。如上所述,客户从MAN 202获得诸如互连服务之类的各种服务,使得第一客户网络(例如,客户网络204(A1))的实体可以与另一个客户网络(例如,客户网络214(A3))的实体通信。其他服务包括向客户提供到其他网络的接入,例如将客户与一个或多个因特网服务提供商(ISP)互连,并且创建允许不同的客户相互通信的外联网(extranet)。
本领域的普通技术人员将认识到也可以以其他方式使用本发明。
客户网络中的至少一些可以被组织到各自的客户网络管理员所选择的多个虚拟局域网(VLAN)段中。即,可以用VLAN标号给诸如帧之类的穿过每个客户网络的网络消息加标签。可以根据IEEE 802.1Q规范标准(通过全文引用结合于此)和/或根据来自Cisco Systems公司的交换机间链路(ISL)协议(如共同拥有的美国专利No.5,742,604所描述的,其也通过全文引用结合于此),给帧加标签。
MAN 202包括多个互连的中间网络设备,例如网桥或交换机226-232。具体地说,可以通过多个提供商链路234-240将交换机226-232互连。此外,诸如交换机226之类的每个交换机包括多个用于接收和转发消息的端口302。可以分别地标识每个交换机的端口302,例如端口0(P0)、端口1(P1)、端口2(P2)等。根据本发明,提供商交换机的被耦合到客户网络的那些端口302(例如,被耦合到客户网络204、208和206的交换机226处的端口P0、P3、P4和P5)被称作“客户边界端口”,而被耦合到MAN 202中的其他设备的端口(例如被耦合到设备228和232的端口P1和P2)优选地被称作“提供商端口”。
图2的计算机网络200仅仅是为了说明的目的,并不是要限制本发明。实际上,计算机网络200通常将包括更多的客户网络(也许数以千计)和其他的MAN。
图3是诸如交换机226之类的MAN 202的交换机的局部功能图。交换机226优选地包括管理卡(supervisor card)302和多个线卡(line card)或模块304和306(例如,线卡0和1)。管理卡302和线卡304和306通过高速消息总线308互连。此外,每个线卡304和306具有本地目标逻辑(LTL)存储器310、上行/下行链路(U/D链路)接口电路312和多个端口逻辑电路,例如在线卡304处的端口逻辑电路314、316和318,以及在线卡306处的端口逻辑电路320、322和324。每个端口逻辑电路定义或者建立物理端口302(图2),用于向计算机网络200(图2)发送网络消息和从计算机网络200接收网络消息。每个线卡304和306可以包括其他组件,例如微处理器、存储器等。每个线卡的端口逻辑电路通过布置在各自的线卡上的本地总线326相互互连,并且与LTL 310和U/D链路312互连。
端口逻辑电路314(P0)、316(P5)、318(P4)和324(P3)可以对应于在交换机226处配置的客户边界端口,端口逻辑电路320(P1)和322(P2)可以对应于在交换机226处配置的提供商端口。
管理卡302被配置并被编程,以执行所选择的交换机范围(switch-wide)功能,例如,参与并计算至少MAN 202的(一个或多个)活动拓扑,以及为穿过多于一个线卡的网络消息做出转发决定。为了提供这种转发决定,管理卡302优选地包括编码地址识别逻辑(EARL)电路330,EARL电路330执行线卡304和306的端口P之间的所有转发决定。为此,EARL电路330包含被配置以产生唯一目的地端口索引值的至少一个媒体访问控制(MAC)/VLAN转发数据库334和转发引擎332。布置在线卡304和306上的LTL 310实现“本地”转发决定,即,在相同线卡的端口之间的转发决定。
管理卡302还包括生成树协议(spanning tree protocol,STP)实体336,STP实体336在计算至少MAN 202中的一个或多个活动拓扑中进行协作。管理卡302还可以包括或者可以访问用于存储包括STP参数在内的配置和其他参数的主存储器338和非易失性存储器340。在管理卡302处的U/D链路342提供到消息总线308的连通性。
高速消息总线308优选地是用来对在插入交换机226的各种卡302、304和306之间的数据传输进行控制的交换矩阵。每个线卡的U/D链路312基本上在本地总线326与消息总线308之间进行接口。可以在由相应的U/D链路312驱动的各自的本地总线326上接收对各种LTL存储器310的输入。交换机226还包括公共总线(未示出),该公共总线类似地将线卡304和306与管理卡302互连,以支持在卡302、304和306之间的带外(out-of-band)通信。
应当理解,管理卡302可以包括其他组件,例如用于运行各种协议的(一个或多个)网络管理处理器、它自己的端口逻辑电路(P)、本地目标逻辑(LTL)存储器和本地总线。
与本发明一起使用的合适的中间网络设备平台包括来自San Jose,California的Cisco Systems公司的可购买到的Catalyst 4000和6000系列交换机。
根据本发明,每个端口优选地包括用于处理在各自的端口处接收到的帧的帧映射逻辑350。具体地说,如果被使能,则帧映射逻辑350选择提供商VLAN标号和提供商CoS值,以与在各自的客户边界端口处接收到的每个帧相关联。每个帧映射逻辑350包括或者以其他方式可以访问入口VLAN映射表400和多个CoS映射表500,以在导出要被关联到接收到的帧上的适当的提供商VLAN标号和适当的提供商CoS值中使用。在优选的实施例中,在每个端口逻辑电路314、316、318、320、322和324处提供分别的入口VLAN映射表400和相同的或者分别的一组CoS映射表500。例如,在端口P0处的帧映射逻辑350可以包括入口VLAN映射表400a,在端口P5处的帧映射逻辑350可以包括入口VLAN映射表400b,等等。
每个帧映射逻辑350还包括出口VLAN映射表600和一个或多个网桥协议数据单元(BPDU)映射表800。如入口VLAN映射表400a-c一样,每个端口优选地配置有不同的出口VLAN映射表600。
另外,包括充当提供商端口的那些端口(例如,端口P1和P2)在内的每个端口还可以包括多个传输队列,这些传输队列总地用端口P1处的标号362和端口P2处的标号364指定。包括提供商端口P1和P2在内的每个端口还可以包括被可操作地耦合到各自的传输队列362和364上的队列选择器逻辑366和368。如这里所述的,每个单独的传输队列被配置来缓冲网络消息或帧,以通过各自的端口转发。具体队列的选择依赖于帧的CoS值;具体地说,它的提供商CoS值。例如,可能存在用于每个CoS值的分别的传输队列,或者与多个CoS值相关联的帧可以被放置到相同的队列中。队列选择器逻辑366和368也可以被配置或被编程,以实现已知的拥塞避免策略或算法,例如加权公平队列(WFQ)、随机早检测(RED)加权随机早检测(WRED)等。
在优选的实施例中,通过被配置来产生序列逻辑电路和协作状态机的组合逻辑和多个寄存器,在硬件中实现帧映射逻辑350,例如除了其他设备之外,通过一个或多个专门设计的专用集成电路(ASIC),或者现场可编程门阵列(FPGA)和/或内容可寻址存储器(CAM)。或者,可以通过含有与这里描述的方法相关的程序指令的一个或多个软件模块或库来实现帧映射逻辑350,这些程序指令可由一个或多个处理元件执行,处理元件例如是布置在端口或线卡处的微处理器,或者布置在管理卡处的网络处理器。可以在任何计算机可读介质上存储和/或执行软件模块或库。然而,本领域的技术人员将认识到可以利用包括固件在内的各种软件和硬件的组合来实现本发明。
应当理解,线卡304和306和/或端口逻辑电路314-324可以包括其他组件。例如,每个端口逻辑电路314-324优选地包括颜色阻塞逻辑电路(Color Blocking Logic circuit)(未示出),如名为“Color Blocking LogicMechanism for High-Performance Switch”的共有美国专利No.5,764,636中所描述的,其通过全文引用结合于此。每个端口还可以具有用于存储要在消息总线308上发送的消息的多个队列或缓冲器,以及在这些缓冲器之间进行选择的队列选择器。
还应当理解,每个端口优选地包括所描述的所有功能。然而,依赖于端口的功能或角色,可以通过管理动作将诸如导出提供商VLAN和提供商CoS值之类的某些功能禁用。
图4是在交换机226的端口P4处配置的入口VLAN映射表400c的高度简化的示图。表400c优选地至少逻辑地组织为这样的表或阵列该表或阵列具有多个列和行,它们的交叉点定义用于存储信息的记录或单元。具体地说,表400c具有客户VLAN列402、提供商VLAN列404、CoS表索引列406、移除客户VLAN列408和BPDU列410,以及多个行412a-h。对于每行,在列402的单元中存储有客户VLAN标号,在提供商VLAN列404的单元中存储有提供商VLAN标号,在列406中存储有CoS表索引值,在移除客户VLAN列408中存储有标志,并且在BPDU列410中存储有标志。通过填充表400的行406a-h,网络管理员可以将一个或多个客户VLAN标号关联或映射到所选择的或期望的提供商VLAN标号、CoS表索引、移除客户VLAN标志和BPDU标志。此外,因为每个端口优选地具有它自己的入口VLAN映射表400,所以在给定的交换机中,从而在不同的交换机之间,可以逐端口地改变客户VLAN标号到提供商VLAN标号、CoS表索引、移除客户VLAN标志和BPDU标志的关联。即,在端口P4处的入口VLAN映射表400c可以具有第一组映射,而在端口P0处的入口VLAN映射表400a可以具有与第一组不同的第二组映射。
入口VLAN映射表400c(该表控制提供商VLAN的关联,并标识对于在端口P4处接收到的帧的合适的CoS映射表)例如将接收到的用客户VLAN标号“10”加标签的帧映射到提供商标号“16”,并将接收到的用客户VLAN标号“11”或“12”加标签的帧映射到提供商VLAN标号“10”。用客户VLAN标号“20”、“21”或“22”加标签的进入帧都与提供商标号“11”相关联。如行406g和406h中所示,没有用VLAN标号加标签的进入帧(例如,传统的以太网帧)以及用除了行406a-f中所示的之外的任何客户VLAN标号加标签的进入帧与提供商VLAN标号“12”相关联。此外,用客户VLAN“10”加标签的进入帧被映射到与索引“2”相对应的CoS映射表,用客户VLAN“11”加标签的帧被映射到与索引“1”相对应的CoS映射表,等等。
“加标签的帧”指诸如帧100(图1)之类的具有标签头部112,并且在VID 122字段中带有VLAN标号的网络消息。或者,加标签的帧可以对应于来自Cisco Systems公司的ISL帧格式。
如图所示,利用本发明,依赖于已被用以对接收到的消息加标签的客户VLAN标号,可以将不同的提供商VLAN标号与在给定的提供商边界端口处接收到的不同的网络消息相关联。此外,可以将多个客户VLAN标号(例如,客户VLAN标号“11”和“12”)与相同的提供商VLAN标号(例如,提供商标号10)相关联。同时,在被耦合到客户网络204(A1)的端口P5处,客户VLAN标号“10”、“11”和“12”可以都被映射到提供商VLAN标号“32”。
图5是在交换机226的端口P4处配置的具有索引值“7”的入口CoS映射表500c的高度简化的示图。表500c优选地至少逻辑地组织为这样的表或阵列该表或阵列具有多个列和行,它们的交叉点定义用于存储信息的记录或单元。具体地说,表500c具有客户CoS值列502、提供商CoS值列506和多个行506a-h。基于接收到的帧在它的用户优先级字段118(图1)中记载的CoS值,表500c的每行将接收到的帧映射到提供商CoS值。通过在入口VLAN映射表400的列406中指定的索引,来标识被选择用于导出提供商CoS值的具体CoS表500。通过填充行506a-h,网络管理员可以将各种客户CoS值关联或映射到所选择的或期望的提供商CoS值。此外,因为每个端口优选地具有它自己的客户VLAN到CoS表索引的映射,所以在MAN 202中,可以逐端口地改变客户CoS值到提供商CoS值的关联。
图6是在交换机226的端口P2处配置的出口VLAN映射表600d的高度简化的示图。表600d优选地至少逻辑地组织为这样的表或阵列该表或阵列具有多个列和行,并且它们的交叉点定义用于存储信息的记录或单元。具体地说,表600d具有提供商VLAN列602、添加VLAN列604、提供商VLAN列606、CoS表索引列608,以及多个行610a-g。在每行中,有在对应于列602的单元中的提供商VLAN、在对应于列604的单元中的添加VLAN标志,以及在对应于列608的单元中的CoS表索引值。依赖于在添加VLAN列604中的标志设置,在对应于提供商VLAN列606的单元中也可以存在具体的VLAN标号。图6基本上图示了用于由原始VLAN为“15”的干线端口使用的出口映射表。
应当理解,表400c、500c和600d的内容都仅仅是示意目的,并且在操作中,依赖于要由各自的端口执行的功能,表可以被不同地编程。也可以不同地修改和/或标注或描述表的内容。例如,对于面向提供商网络的一部分而不是客户网络的端口,假设表400已在这种端口上被使能,则入口VLAN映射表400的客户VLAN列402应被更准确地称为帧(或提供商)VLAN列。提供商网络中的帧可以不再具有客户VLAN。此外,对于面向客户网络而不是提供商网络的端口,则出口VLAN映射表600的提供商VLAN列606应被更准确地称为客户VLAN,因为它是通过这样的端口被添加到帧上的客户VLAN(假设各自的添加VLAN单元被设置了)。本领域的技术人员将认识到可以做出其他改变或修改。
本发明的操作假设布置在客户网络206(B1)中的网络实体生成要被传递到布置在客户网络212(B2)中的网络实体的网络消息,其中客户网络206(B1)和212(B2)都对应于组织B。源实体优选地将消息封装到一个或多个未加标签的以太网帧中。在该帧的DA字段中,客户网络206中的源实体加载客户网络212中的目标实体的MAC地址。在该帧的SA字段中,源实体加载它自己的MAC地址。在客户网络206中,通常由接收帧的第一交换机或网桥用客户VLAN标号给以太网帧加标签。可以根据来自CiscoSystem公司的ISL帧格式或者根据IEEE 802.1Q规范标准格式,或者根据某些其他VLAN帧格式,给帧加标签。假设通过在如图1所示的源地址字段110之后插入标签头部112来根据IEEE 802.1Q规范标准给以太网帧加标签。具体地说,首先接收帧的客户网络206中的网桥或交换机将例如“20”的VLAN标号加载到VID字段122中。客户网络206中的网桥或交换机也可以将例如“3”的CoS值加载到帧的用户优先级字段118中。应当理解,一般作为一个具体端口的函数来单独确定由网桥或交换机所选择的VLAN标号(即,VLAN标号“20”),该具体端口是在其上从源实体接收到未加标签的帧的端口。
根据本发明,该VLAN标号和CoS值是“客户”VLAN标号和“客户”CoS值。
然后,用VLAN加标签的帧被路由通过客户网络206,并且转发到在客户网络206和212之间提供连通性的MAN 202。应当理解,依赖于配置客户网络206中的链路的方式,在加标签的帧穿过客户网络206时,可以一次或多次将它从IEEE 802.1Q格式转变到ISL格式。
假设用VLAN加标签的帧在MAN 202中的交换机226的客户边界端口P4处被接收。用VLAN加标签的帧被端口P4的端口逻辑电路318捕捉。根据本发明,帧映射逻辑350首先确定是否用客户VLAN给帧加了标签。如果没有,则帧映射逻辑优选地访问默认帧VLAN表(未示出),来导出用于该帧的默认“客户”VLAN和默认“客户”CoS值。然后,帧映射逻辑350从VID字段122提取帧的客户VLAN标号(即,“20”)(或者在未加标签的帧的情形中,导出的默认“客户”VLAN)。帧映射逻辑350还从用户优先级字段118提取帧的客户CoS值(即,“3”)(或者导出的默认“客户”CoS值)。基于所提取的客户VLAN标号,帧映射逻辑导出用于所接收的帧的提供商VLAN标号、CoS表索引值和入口VLANBPDU标志状态。为了导出该信息,端口P4处的帧映射逻辑350优选地使用所提取的客户VLAN标号,对它的入口VLAN映射表400c(图4)进行查找。如入口VLAN映射表400c的行412d所指示的,客户VLAN“20”映射到提供商VLAN“11”、CoS表索引“7”和入口VLAN BPDU标志状态“否”。
接下来,帧映射逻辑350导出要与接收到的帧相关联的适当的提供商CoS值。为了导出适当的提供商CoS值,帧映射逻辑350对由来自匹配的行412d(图4)的CoS表索引值所标识的具体CoS映射表,即对应于索引“7”的CoS映射表,也就是表500c(图5),执行查找。如入口CoS映射表500c的行506d所指示的,客户CoS值“3”映射到提供商CoS值“4”。如下所述,然后,帧映射逻辑然后确定所接收的帧是否是BPDU消息。
假设该帧不对应于BPDU消息。端口P4处的帧映射逻辑350然后将消息驱动到交换机的消息总线308上。帧映射逻辑350优选地被配置为对包含有所导出的提供商VLAN、提供商CoS值和入口VLAN BPDU标志状态的帧生成分别的总线头部,例如数据总线(DBus)头部,而不是用导出的提供商VLAN标号和提供商CoS值来替换客户VLAN标号和客户CoS值。可以包括诸如目的地地址之类的其他信息的DBus头部可以被附加到原先接收到的帧100上。
原始帧100和DBus头部然后经由本地总线326和U/D链路312被驱动到交换机的高速消息总线308上,以由管理卡302接收。在管理卡302处,转发引擎332优选地利用帧的目的地地址字段108的内容和它的提供商VLAN,来对转发数据库334执行查找,以导出或标识要从其转发帧600的(一个或多个)出站端口。转发引擎332还可以通过将帧的源地址存储在转发数据库334中而获知(learn)它。假设转发引擎332确定要从端口P2转发帧。转发引擎332优选地命令对应于端口P2的端口逻辑电路322转发帧。转发引擎332还将帧和DBus头部发送到端口P2。或者,包括端口P2在内的每个端口可以与管理卡302同时从消息总线308接收帧和DBus头部。
端口P2处的帧映射逻辑350访问它的出口VLAN表600d,以确定是否应当在从端口P2转发之前,将提供商VLAN和提供商CoS值附加到帧100,以及如果应当的话,那些值应当是什么。具体地说,帧映射逻辑350使用已与帧相关联的提供商VLAN(即,VLAN“11”),对它的出口VLAN表600d(图6)执行查找。提供商VLAN“11”对应于行610b,行610b在列604处指示在转发之前应当将VLAN添加到帧。行610b的对应于列606的单元指定要被附加到帧的具体提供商VLAN,即“11”。
应当理解,通过包括分别的要被添加的提供商VLAN列606,本发明可以被配置为一旦交换机226接收到帧,就通过入口VLAN映射表600,添加不同于与帧100相关联的提供商VLAN的提供商VLAN。例如,出口VLAN映射表600d的行610e指示出与提供商VLAN“14”相关联的帧应当仍被端口P2转发,其中对其附加了提供商VLAN“13”。另外,如果将出口VLAN映射表600d的给定行的添加VLAN条目604设置为否,则在转发之前,没有提供商VLAN要被附加到帧。例如,行610f指示与提供商VLAN“15”相关联的帧不应当在转发之前具有任何被附加到它们上的提供商VLAN。
出口VLAN映射表600的每行610也可以在与列608相对应的单元中标识具体的CoS映射表,例如,行610b指定CoS映射表“7”。相应地,端口P2处的帧映射逻辑350访问与索引值“7”匹配的CoS映射表。帧映射逻辑350访问这个具体的CoS映射表,并且使用帧的客户CoS值(即,“3”)为帧导出相应的提供商CoS值。假设由索引值“7”标识的出站端口P2处的CoS映射表将客户CoS值“3”映射到提供商CoS值“4”。
应当理解,依赖于对端口P2处的出口表600和CoS表500编程的方式,该提供商CoS值可以与通过入站(inbound)端口P4与帧关联的提供商CoS值相同,或者可以不同。即,由索引值“7”标识的端口P2处的CoS映射表可以包含客户CoS值到提供商CoS值的与端口P4处由索引值“7”所标识的CoS映射表相同或者不同的映射。
图7是被附加了提供商VLAN和提供商CoS值的提供商帧700的优选格式的高度简化的框图。提供商帧700包括头部702、数据字段704和帧校验序列(FCS)字段706。头部702包括目的地地址(DA)字段708、源地址字段710、客户VLAN头部字段712和长度/类型字段714。头部字段708、710和712以及数据字段704含有与原始接收的帧100(图1)的相应字段相同的信息。具体地说,客户VLAN头部字段712包括客户TPID字段716、客户用户优先级字段718、客户规范格式指示符(CFI)字段720和客户VLAN ID(客户VID)字段722,这些字段含有与原始接收的帧的字段114、118、120和122(图1)中相同的信息。
提供商帧的头部702中也包括有提供商VLAN头部724,提供商VLAN头部724依次包括提供商TPID字段726、提供商用户优先级字段728、提供商CFI字段730和提供商VLAN ID(提供商VID)字段732。提供商VLAN头部724也可以被配置为包括一个或多个标志(未示出)。
在转发提供商帧700之前,长度/类型字段714和FCS字段706中所包含的值通常被重新计算。
在示例性实施例中,提供商TPID字段726是16位,提供商用户优先级字段728是3位,提供商CFI字段730是1位,并且提供商VID字段732是12位。
帧映射逻辑350优选地将导出的提供商CoS值(即,“4”)加载到提供商用户优先级字段728中。提供商CFI字段730优选地被设置以指示提供商VID字段732的位顺序是规范的还是非规范的。在提供商VID字段732中,帧映射逻辑350优选加载导出的提供商VLAN标号,即“11”。提供商TPID字段726优选地被设置为与由IEEE 802.1Q规范标准所规定的不同的值,以便区分提供商帧和802.1Q帧,并且将它标识为提供商帧。
应当理解,提供商VLAN头部724可以采用其他形式和/或可以在其他位置被附加到帧上。例如,可以省略提供商CFI字段730。
一旦已经如出站端口P2处的出口VLAN映射表600d的匹配的行610b处所要求的生成了提供商帧700,则提供商帧700被缓存在所选择的传输队列364。基于被输入到帧的提供商用户优先级字段728中的提供商CoS值(即,“4”),选择具体的传输队列。就是说,基于由出站端口P2通过它的出VLAN映射表和各自的CoS映射表所导出的提供商CoS值,选择传输队列。在选择用于缓存提供商帧602的合适的传输队列中,如用户优先级字段118(图1)中所包含的帧的原始(即,客户)CoS值优选地不被出站端口P2使用。
另外,在端口P2处的颜色阻塞逻辑确定是否可以从出站端口P2转发提供商帧700。具体地说,颜色阻塞逻辑确定出站端口P2是否在对于提供商VLAN标号的转发生成树状态中,所述提供商VLAN标号是如出站端口P2处的出口VLAN映射表600所确定的那样与帧相关联的提供商VLAN标号。这里,帧与提供商VLAN“11”相关联。假设端口P2在对于VLAN“11”的转发状态中,从而准许从端口P2转发提供商帧700。如果端口在对于VLAN“11”的阻塞生成树状态中,则颜色阻塞逻辑会阻止从端口P2发送提供商帧700。在确定是否可以从出站端口P2转发提供商帧700中,如客户VID字段722中所包含的帧的客户VLAN标号优选地被被端口P2处的颜色阻塞逻辑电路使用。换句话说,即使端口在对于帧的客户VID字段722中所包含的VLAN标号(即,帧的原始VLAN标号)的阻塞生成树状态中,提供商帧也可以从给定的出站端口被转发(只要端口在对于帧的提供商VLAN标号的转发状态中)。
当提供商帧700到达其相应的传输队列的头部,并且队列选择器逻辑368激活该传输队列时,提供商帧700从交换机226的出站端口P2被转发。即,提供商帧700被驱动到链路240上,并且在MAN 202的交换机232处被接收。因为提供商VLAN标号和提供商CoS值已经与提供商帧700相关联,并且被附加到提供商帧700,所以交换机232不需要重计算或重确定这些值。实际上,交换机232这个端口的帧映射逻辑电路可以被禁用。交换机232优选地利用如DA字段708中所包含的帧的目的地地址以及如提供商VID字段732中所包含的它的提供商VLAN,以标识交换机232要从其传输帧的(一个或多个)出站端口。每个出站端口可以利用如提供商用户优先级字段728中所包含的帧的提供商CoS值,以确定应当被利用来缓存提供商帧700的具体传输队列。另外,在每个出站端口处的颜色阻塞逻辑利用如提供商VID字段732中所包含的帧的提供商VLAN标号,结合端口的生成树状态,以确定是否可以从各自的出站端口转发提供商帧700。
这个过程在MAN 202中的其他交换机处被重复。
在交换机230处,转发引擎确定是否应当从耦合到客户网络212的端口传输提供商帧700。在这种情形中,与客户网络212耦合的交换机的出站端口处的出口VLAN映射表被编程,以指示在将帧转发到客户网络中之前是否应当将客户VLAN附加到帧。出站端口将帧所关联的提供商VLAN用作进入出口VLAN映射表的索引。例如,如果与匹配的表条目(例如,行610f)的列604相对应的单元被设置为否,则VLAN头部不被附加到帧。这一般是其中帧仍具有它自己的原始客户VLAN的情形。匹配的表条目仍然可以指定在与列608相对应的单元处的CoS表索引值。如果这样,则帧映射逻辑350使用帧的客户CoS值访问这个CoS表,导出提供商CoS值。在选择用于在传输之前缓存帧的适当的传输队列中,可以利用这个提供商CoS值。
在确定是否要转发帧中,在交换机230的出站端口处的颜色阻塞逻辑利用与帧内部关联的提供商VLAN。然后,交换机230将原始帧100传输到客户网络212(B2)中。
在将帧转发到目的地实体中,客户网络212中的中间网络设备使用VID字段122的客户VLAN标号和用户优先级字段118的客户CoS值。
如图所示,本发明的帧映射逻辑350基于接收到的帧的客户VLAN标号和在其上接收到帧的具体的入站端口,将每个接收到的帧映射到提供商VLAN标号。然后,在通过提供商网络(即,MAN 202)转发帧中,优选地利用这个提供商VLAN标号。类似地,基于接收到的帧的客户CoS值、客户VLAN标号和在其上接收到帧的端口,将每个接收到的帧映射到提供商CoS值。在提供商网络中,中间网络设备在路由和转发帧中优选地利用所分配的提供商VLAN标号和提供商CoS值。
此外,出口VLAN映射表的添加允许客户VLAN和客户CoS值被导出,并且在将帧转发到客户网络中之前被附加到帧。
另外,被附加到帧的提供商VLAN标号和/或提供商CoS可以在提供商网络(即,MAN 202)中的每个(或者至少多于1个)中间网络设备处被重新计算。类似地,在MAN 202中的每个中间网络设备可以导出不同的提供商VLAN和/或提供商CoS,以在内部处理帧中使用,而在转发帧之前仍附加相同的提供商VLAN和提供商CoS值。布置在MAN 202中的每个(或者多于1个)中间网络设备可以转发没有任何提供商VLAN头部724的帧。实际上,在实现不同的映射范例以达到不同的目的和/或由MAN 202提供不同的服务方面,本发明的表安排给网络管理带来了高度的灵活性。
应当理解,也可以将头部702转换成其他第2层(L2)头部,例如多协议标记交换(MPLS)、虚拟通道(VC)、帧中继等。如果MAN 202被划分成多个通过在第3层(L3)或更高层处运行的互连组构(fabric)互连的提供商网络(例如,公知的因特网),这可能是有利的。但是,由头部102和数据字段104组成的客户帧仍旧保持原样。就是说,这些字段将保持不被修改。
还应当理解,提供商交换机可以包括被多个端口访问的一个(或者多于1个)入口VLAN映射表400、一个(或者多于1个)CoS映射表500和一个(或者多于1个)出口VLAN映射表,而不是在每个端口处具有分别的入口VLAN映射表400、分别的CoS映射表500和分别的出口VLAN映射表600。在这种情形中,表400、500和600可以具有为每个端口留出的区。
本领域的技术人员将认识到也可以有其他的替换。例如,可以省略CoS映射表,并且将它们的信息合并到入口和出口VLAN映射表中。
另外,也可以在根据其他VLAN加标签方案而配置的链路上使用本发明,例如来自Cisco Systems公司的交换机间链路(ISL)协议。就是说,可以将VLAN头部添加到ISL格式化的帧上。
隧穿客户BPDU消息在另一方面中,本发明将配置网桥协议数据单元(BPDU)消息不加修改地从客户网络隧穿(tunnel)过MAN 202。在为网络200计算单个活动拓扑中,MAN 202不与各个客户网络204-214协作。而是,在MAN202中,网桥226-232优选地利用多生成树协议(MSTP)计算一个或多个分别的活动拓扑,所述多生成树协议(MSTP)如IEEE Draft 802.1s/D13规范标准中所描述的,其通过全文引用结合于此。由给定的组织的客户网络中的中间网络设备生成的BPDU消息优选地被隧穿通过MAN 202,并且传递到给定的组织的其他计算机网络中。
在示例性实施例中,通过利用映射表来将接收到的帧分类为三种可能类型中的一种来实现这个目标,三种可能的类型是数据帧、提供商BPDU消息或者客户BPDU消息。此外,交换机稍有不同地对待每种类型的帧。具体地说,数据帧被交换机转发,并且源地址被存储到交换机的转发数据库334中,即源地址被获知。在入站端口和被标识的(一个或多个)出站端口处,数据帧也经历颜色阻塞逻辑。在入站端口处,提供商BPDU消息不经历颜色阻塞逻辑。它们被发送到生成树协议实体336,并且被用在被交换机计算的一个或多个活动拓扑的计算中。提供商BPDU消息的源地址不被获知,并且提供商BPDU消息不被交换机转发。另一方面,客户BPDU消息不被发送到生成树协议实体336,即,不在交换机的生成树协议执行中利用。它们被转发,但是它们的源地址不被获知。在入站端口和出站端口处,客户BPDU也经历颜色阻塞逻辑。另外,客户BPDU的目的地MAC地址优选地被转换成所选择的多播地址,使得它们可以被“隧穿”过MAN 202。
在示例性实施例中,本发明通过利用在每个端口处提供的BPDU表800实现这些目标。在优选的实施例中,每个端口存在3种BPDU表BPDU识别和转换表;入口BPDU分类和转换表;以及出口BPDU分类和转换表800c。图8A是BPDU识别和转换表800a的高度简化的示图,表800a至少逻辑地被组织为这样的阵列该阵列具有多个列和行,它们的交叉点定义用于存储信息的单元。具体地说,BPDU识别和转换表800a具有地址掩码列802、旧目的地MAC地址列804、新目的地MAC地址列806、CoS表索引列808和多个行810a-h。地址掩码列802的单元包含要被应用到在各自行的列804和806中所包含的相应地址的掩码。旧目的地MAC地址列804的单元被编程为包含期望从客户网络接收到的BPDU消息的网桥多播目的地地址。新目的地MAC地址列806的单元被编程为包含可以将接收到的BPDU消息的网桥多播目的地地址转换到的多播地址。CoS表索引列808的单元被编程为包含在各自端口处分配给CoS映射表的索引值。
图8B是入口BPDU分类和转换表800b的高度简化的示图,表800b至少逻辑地被组织为这样的阵列该阵列具有多个列和行,它们的交叉点定义用于存储信息的单元。具体地说,表800b具有BPDU找到列822、入口VLAN BPDU标志列824、转换列826、可选的结果列828和多个行830a-c。BPDU找到列822通过匹配表800a的行810,指出接收到的帧是否被认为是BPDU。相应地,列822的单元可以被断言(assert)(例如,设置为是)或者反断言(de-assert)(例如,设置为否)。入口VLANBPDU标志列824指出由接收到的帧的入口VLAN映射表400的匹配的行421的列410所指定的入口VLAN BPDU标志的状态。相应地,列824的单元也可以被断言或者反断言。转换列826被编程为指定是否应当转换满足了各自行的列822和824中所指定的条件的接收到的帧的目的地MAC地址。
图8C是出口BPDU分类和转换表800c的高度简化的示图,表800c至少逻辑地被组织为这样的阵列该阵列具有多个列和行,它们的交叉点定义用于存储信息的单元。具体地说,表800c具有出口BPDU找到列842、转换列844、可选的结果列846和多个行848a-b。出口BPDU找到列通过匹配表800a的行810,指出要从各自端口被转发的帧是否被认为是BPDU。相应地,列842的单元可以被断言(例如,设置为是)或者反断言(例如,设置为否)。转换列844被编程为指定是否应当转换满足了各自行的列842中指定的条件的要被转发的帧的目的地MAC地址。
如上所述,一旦在给定的端口(P)处接收到帧,帧映射逻辑350首先确定接收到的帧是否是未加标签的。如果是,则帧映射逻辑可以访问默认的帧VLAN表来导出默认的“客户”VLAN和默认的“客户”CoS值,以与该帧相关联。接下来,帧映射逻辑利用帧的客户VLAN来对端口的入口VLAN映射表400执行查找,以导出提供商VLAN、CoS表索引值和BPDU标志值。假设表400的匹配的行412的入口VLAN BPDU标志被断言了,例如,被设置为是。接下来,帧映射逻辑将帧的客户CoS值用作索引来访问所标识的CoS映射表,并且导出提供商CoS值。然后,帧映射逻辑350使用帧的目的地MAC地址,在端口的BPDU识别和转换表800a(图8A)中执行查找。就是说,列802的每个掩码被应用到帧的目的地MAC地址,并且结果与旧目的地MAC地址列804的相应单元的内容相比较,以查看是否与表800a的任何行810a-h相匹配。进一步假设接收到的帧在表800a的行(例如,行810c)上匹配或“命中”。在响应中,帧映射逻辑提取在与行810c相对应的列806的单元处存储的新目的地MAC地址和在与行810c相对应的列808的单元处存储的CoS表索引值。
然后,帧映射逻辑350使用来自BPDU识别和转换表800a的匹配/不匹配条件的结果(在这种情况中,也被称作“是”条件的匹配)和来自表400的列410的BPDU标志的状态(在这种情形中为“是”),作为进入入口BPDU分类和转换表800b的索引。这种情形对应于行830b,其使得帧映射逻辑将接收到的帧分类为客户BPDU,并如列826所指定的,转换它的目的地MAC地址。具体地说,帧映射逻辑用从表800a的匹配的行(即,行810c)提取的新目的地MAC地址值来替换接收到的帧的目的地MAC地址。帧映射逻辑还访问由从表800a的列808提取的索引所指定的CoS映射表,并且导出提供商CoS值以与客户BPDU相关联。接下来,帧映射逻辑350清空(例如,反断言)对于接收到的帧而产生的DBus头部中包括的BPDU标志字段,从而使得客户BPDU帧绕过交换机的生成树实体336。替代地,具有新目的地MAC地址的帧被发送到交换机的转发引擎,使得可以给出转发决定。帧映射逻辑350还断言在DBus头部中的“不获知”标签字段,该字段阻止EARL 330将帧的源地址存储在它的过滤数据库中,即,阻止获知源地址。
在优选实施例中,新目的地MAC地址是多播地址,该多播地址被选择使得来自作为客户网络一部分的给定组织的BPDU消息优选地从被耦合到与给定组织相对应的客户网络的MAN 202的每个端口转发(如果从MAN 202到该客户网络有多于一个端口,甚至回到相同的客户网络)。新目的地MAC地址被选择使得MAN 202的交换机不将它们识别为BPDUMAC地址。相应地,在MAN 202中,经转换的客户BPDU消息被隧穿,好像它们是常规多播消息一样。
如果接收到的帧不与表800a的任何行810相匹配,则该帧的BPDU找到状态为否。在这种情形中,帧被分类为数据帧,如表800b的行830a所指示的,而不管与帧相对应的入口VLAN BPDU标志的状态,如“X”所指示。此外,如果接收到的帧与表800a的行810相匹配,但是从入口VLAN映射表400所导出的入口VLAN BPDU标志为否,则所接收的帧被分类为提供商BPDU,如表800b的行830c所指示。在响应中,帧被发送到交换机的生成树协议实体336,并且在交换机的生成树协议的执行中使用它的内容。
应当理解,通过包含表400的入口VLAN BPDU标志列410,与一个或多个客户VLAN相关联的BPDU帧于是可以被隧穿,而与其他客户VLAN相关联的帧不被隧穿。
在从给定的出站端口转发帧之前,帧映射逻辑350优选地使用帧的目的地MAC地址在端口的BPDU识别和转换表800a(图8A)中执行查找。就是说,列802的每个掩码被应用到帧的目的地MAC地址,并且这次将结果与新目的地MAC地址列806的相应单元的内容相比较,以查看是否存在与表800a的任何行810a-h的匹配。假设要被转发的帧在表800a的行(例如,行810d)上匹配或“命中”。在响应中,帧映射逻辑提取在与行810d相对应的列804的单元处存储的旧目的地MAC地址。然后,帧映射逻辑350使用来自BPDU识别和转换表800a的匹配/不匹配条件的结果(在这种情况中,被称作“是”条件的匹配),作为进入出口BPDU分类和转换表800c的索引。这种情形对应于行848b,其使得帧映射逻辑如列844所指定地转换帧的目的地MAC地址。这里,帧映射逻辑用从表800a的匹配的行(即,行810d)提取的旧目的地MAC地址值来替换接收到的帧的目的地MAC地址。换句话说,返回帧的原始目的地MAC地址。然后,具有旧目的地MAC地址的帧通过端口转发。
应当理解,一般只在面向客户网络的端口上使能出口BPDU分类和转换表800c。类似地,客户BPDU消息的转换优选地发生在MAN 202的边缘或边界处。在MAN 202中,地址已经被转换为多播值的客户BPDU消息简单地被转发。
本领域的技术人员将认识到,表800b和/或800c的内容可以被修改来实现其他期望的动作或结果。
本发明的灵活的VLAN映射表也可以被编程为允许MAN 202提供具体的服务,例如将主客户网络连接到分支客户网络、在客户网络和一个或多个因特网提供商(ISP)之间提供接入、创建由不同的客户使用的外联网,等等。
将主客户网络连接到分支客户网络假设客户网络204(A1)是具有许多VLAN段的主客户网络,使得在交换机226处接收的网络消息以客户VLAN被加了标签。还假设客户网络210(A2)是分支客户网络,使得整个网络210与单个VLAN相关联,例如,客户VLAN“10”。此外,假设在客户网络210(A2)中布置的中间网络设备没有被配置为识别或传送加标签的帧。本发明的表可以容易地被配置以支持这种安排。
具体地说,在交换机的端口P0和P5处的入口VLAN映射表400被配置为具有对于用客户VLAN“10”加标签的消息的条目,其使得一旦那些消息进入MAN 202,客户VLAN字段从那些消息移除。这通过断言(例如,设置为是)各自条目的移除客户VLAN单元实现,其中所述条目例如是条目412a(图4),它将客户VLAN“10”映射到提供商VLAN“16”,并且它的移除客户VLAN单元被设置为是。从而,当从客户网络204接收到消息时,在端口P0和P5处的帧映射逻辑350将那些帧映射到提供商VLAN 15,并且利用CoS映射表“2”来导出提供商CoS值。帧映射逻辑350还从接收到的帧中移除客户VLAN字段114、118、120和122(图1),并且添加提供商VLAN字段726、728、730和732。利用提供商VLAN和提供商CoS值,具有提供商VLAN字段(但是没有客户VLAN字段)的帧通过MAN 202被转发到交换机230。
在交换机230处,各自的出口VLAN映射表被配置以命令帧映射逻辑剥离提供商VLAN字段726、728、730和732。因为客户VLAN字段114、118、120和122已被剥离(回到当帧第一次在MAN 202处被接收时),所以当提供商VLAN字段被交换机230剥离时,帧实质上转换成了标准的(即,未加标签的)帧格式,例如传统的以太网。然后,未加标签的帧被转发到客户网络210中。
如所示的,MAN 202可以被用于取得用客户VLAN加标签的帧,以及在将帧转发到分支客户网络中之前剥离那些客户VLAN,所述分支客户网络未被配置为识别或传送加标签的帧。但是,帧在MAN 202中被转发时,它们仍与提供商VLAN和提供商CoS值相关联。
另一方面,交换机230从客户网络210(A2)接收未加标签的帧,所述未加标签的帧被预定用于与组织A相对应的其他网络,例如客户网络204(A1)。用默认的帧VLAN表配置交换机230的各个端口和/或它的入口VLAN映射表包括用于将没有客户VLAN的帧映射到提供商VLAN和提供商CoS值的条目,例如,条目412g。具体地说,当未加标签的帧在MAN 202中转发时,条目或行412g将未加标签的帧映射到提供商VLAN“16”,并且使用CoS映射表“4”来导出用于帧的提供商CoS值。
此外,如果希望的话,在交换机的端口P0和P5处的出口VLAN映射表可以被配置来在将从客户网络210(A2)接收到的帧转发到客户网络204(A1)中之前,将客户VLAN字段添加到那些帧上。具体地说,在交换机226处的端口P0和P5的出口VLAN映射表可以被配置为包括这样的行(例如,行610g)该行在把帧转发出MAN 202到客户网络204(A1)中之前,将VLAN添加到帧(由MAN 202最初接收的没有任何客户VLAN的帧)。行610g指定与提供商VLAN“16”相关联(但是没有客户VLAN字段)的帧应当具有在转发之前被添加的VLAN。此外,要被添加的VLAN是VLAN“10”,即与来自客户网络210(A2)的帧相关联的客户VLAN。交换机226从而生成具有图1中所示的格式的帧。在VID字段122中,交换机226输入VLAN“10”。在用户优先级字段118中,交换机226输入从如出口VLAN映射表600d的行610g所示的CoS映射表“4”导出的CoS值。
向客户提供到(一个或多个)ISP的接入假设客户A使用客户VLAN“30”来标识打算用于第一ISP(例如,ISP 1)的帧。一旦进入MAN 202,用客户VLAN“30”加标签的客户帧就被映射到选择出的被分配给ISP 1的提供商VLAN,例如“100”。如果ISP不能处理加VLAN标签的帧,则将面向客户A的各自的入口VLAN映射表进一步被配置来移除客户VLAN标签。这种帧只带有提供商VLAN“100”而通过MAN 202转发。面向ISP的端口的出口VLAN映射表被编程,使得ISP接收未加标签的帧。在相反的方向中,MAN 202从ISP接收未加标签的帧。入口VLAN映射表可以被配置来将未加标签的帧与提供商VLAN“100”相关联。用提供商VLAN“100”加标签的帧通过MAN 202转发。面向客户网络的端口的出口VLAN映射表将用提供商VLAN“100”加标签的帧映射到导致帧映射逻辑添加客户VLAN“30”的条目。相应地,在将帧转发到客户网络中之前,被设置为“30”的客户VLAN标志被附加到帧上。
应当理解,使用不同的客户VLAN来接入ISP 1的不同客户可以仍然都映射到MAN 202中的提供商VLAN“100”。因此,MAN 202只需要为ISP 1提供单个VLAN域,即使许多不同的客户正在接入ISP 1。此外,给定的客户可以接入许多不同的ISP。在这种情形中,客户可以通过选择不同的客户VLAN来指示它希望接入的具体ISP。然后,这些客户VLAN中的每个可以被映射到与相应的ISP相关联的不同的提供商VLAN。
客户外联网接入如上所述,MAN 202可以被用来创建一个或多个可以由不同的客户用来相互通信的外联网。例如,客户A可以将客户VLAN“50”用于与外联网1相对应的流量,而客户B将客户VLAN“60”用于外联网1。被布置在面向客户A的网络的MAN 202的端口处的入口VLAN映射表可以被编程以将客户VLAN“50”映射到提供商VLAN“200”,并且使得客户VLAN从帧剥离。面向客户B的端口的出口VLAN映射表可以被编程以将提供商VLAN“200”映射到客户VLAN“60”,并且使得在将帧转发到客户B的网络中之前,客户VLAN“60”被添加到帧上。在相反的方向中,将在MAN 202中从客户B接收的用客户VLAN“60”加标签的帧被映射到提供商VLAN“200”,并且移除它们的客户VLAN标签。在退出MAN 202并进入客户A的网络之前,与提供商VLAN“200”相关联的帧被映射到客户VLAN“50”,并且各自的出口VLAN映射表被编程以使得在传输到客户网络A中之前,VLAN“50”被添加到帧上。
本领域的技术人员将认识到,根据本发明的高度灵活的VLAN映射表,可以实现许多其他的安排。
本发明的VLAN映射表的添加允许端口与传统的接入或干线端口功能不同地操作。尽管如此,表仍可被编程,使得端口展现传统的接入或干线端口的行为。
前面的描述已经针对了本发明的特定实施例。但是,很清楚,可以对所描述的实施例做出其他变化和修改,并且获得它们的某些或全部优点。例如,本发明可以与运行不同类型LAN标准的计算机网络一起使用,例如令牌环、帧中继、无线等。因此,所附权利要求的目的是覆盖落入本发明的真实精神和范围内的所有这些变化和修改。
权利要求
1.一种在计算机网络内交换网络消息中使用的中间网络设备,在所述中间网络设备处接收的消息中的至少一些与第一虚拟局域网(VLAN)标号相关联,所述中间网络设备包括多个端口,被配置以发送和接收网络消息;帧映射逻辑,被配置以处理在所述端口处接收的网络消息;和入口VLAN映射数据结构,所述入口VLAN映射数据结构可由所述帧映射逻辑访问,并且被配置以将多个第一VLAN标号映射到对应的第二VLAN标号,该表可由所述帧映射逻辑访问,其中所述帧映射逻辑基于被接收的网络消息的第一VLAN标号和在其上接收所述消息的所述端口,访问所述入口VLAN映射数据结构,并且将所述消息与第二VLAN标号相关联。
2.根据权利要求1所述的中间网络设备,其中,所述帧映射逻辑还被配置和安排以通过将所述第二VLAN标号附加到所述接收的网络消息上,将所述第二VLAN标号与所述接收的消息相关联。
3.根据权利要求2所述的中间网络设备,其中,所述帧映射逻辑还被配置和安排以从所述中间网络设备的被选择的端口发送对其附有所述第二VLAN标号的所述接收的网络消息。
4.根据权利要求1所述的中间网络设备,还包括转发引擎,所述转发引擎被配置和安排以对接收的网络消息做出转发决定,其中,所述转发引擎至少部分地基于与接收的网络消息相关联的所述第二VLAN标号,对所述接收的消息做出转发决定。
5.根据权利要求1所述的中间网络设备,其中,所述接收的网络消息具有格式,并且所述消息的格式遵守电气电子工程师学会(IEEE)802.1Q规范标准和交换机间链路(ISL)协议中的一个。
6.根据权利要求1所述的中间网络设备,还包括一个或多个可由所述帧映射逻辑访问的服务代价(CoS)映射数据结构,每个CoS映射数据结构由各自的索引值标识,其中所述入口VLAN映射数据结构还被配置以将多个第一VLAN标号映射到在标识各自的CoS映射数据结构中使用的对应的索引值,被接收的网络消息与第一CoS值相关联,并且所述帧映射逻辑(1)基于接收的网络消息的第一VLAN标号和在其上接收所述消息的端口,访问所述入口VLAN映射数据结构,以便导出用于所述消息的索引值,并且(2)访问与所述导出的索引值相关联的具体CoS映射数据结构,以便导出用于与帧相关联的第二CoS值。
7.根据权利要求6所述的中间网络设备,其中,所述帧映射逻辑还被配置和安排以通过将所述第二CoS值附加到所述接收的网络消息,将所述第二CoS值与所述接收的消息相关联。
8.根据权利要求7所述的中间网络设备,还包括多个传输队列,每个传输队列被配置以在由所述中间网络设备转发之前缓存网络消息,其中,所述网络消息基于所述消息的第二CoS值被放置在被选择的传输队列中。
9.根据权利要求8所述的中间网络设备,其中所述接收的网络消息具有遵守电气电子工程师学会(IEEE)802.1Q规范标准的格式,并且包括用户优先级字段和VLAN标识符(VID)字段,所述用户优先级字段携带所述消息的第一CoS值,并且所述VID字段携带所述消息的第一VLAN标号。
10.根据权利要求1所述的中间网络设备,还包括可由所述帧映射逻辑访问的出口VLAN映射数据结构,所述出口VLAN映射数据结构被配置以将多个第二VLAN标号映射到如下的指示是否应将第二VLAN标号附加到接收的网络消息上,并且如果这样的话,要被附加的具体第二VLAN标号,其中在发送网络消息之前,所述帧映射逻辑访问所述出口VLAN映射数据结构,并且确定在所述网络消息被发送之前是否将第二VLAN标号附加到所述网络消息上。
11.根据权利要求6所述的中间网络设备,还包括可由所述帧映射逻辑访问的出口VLAN映射数据结构,所述出口VLAN映射数据结构被配置以将多个第二VLAN标号映射到如下的指示是否应将第二VLAN标号附加到接收的网络消息上,并且如果这样的话,要被附加的具体第二VLAN标号,其中在发送网络消息之前,所述帧映射逻辑访问所述出口VLAN映射数据结构,并且确定在所述网络消息被发送之前是否将第二VLAN标号附加到所述网络消息上。
12.根据权利要求11所述的中间网络设备,其中,每个端口以分别配置的入口VLAN映射数据结构、分别配置的一组CoS映射数据结构和分别配置的出口VLAN映射数据结构来配置。
13.根据权利要求12所述的中间网络设备,其中,所述入口VLAN映射数据结构、所述CoS映射数据结构和所述出口VLAN映射数据结构每个被配置为可单独编程的表。
14.一种在具有多个用于发送和接收网络消息的端口的中间网络设备中,用于将从客户域接收的网络消息映射到提供商域的方法,所述方法包括如下步骤在给定的端口处从所述客户域接收网络消息,所述网络消息与第一虚拟局域网(VLAN)标号相关联;基于所述消息的第一VLAN标号和在其上接收所述消息的所述给定的端口,标识第二VLAN标号;以及将所述网络消息与所述第二VLAN标号相关联。
15.根据权利要求14所述的方法,还包括如下步骤编程至少一个数据结构,以包含第一VLAN标号到第二VLAN标号的映射。
16.根据权利要求14所述的方法,其中,所述关联步骤包括如下步骤将所述标识出的第二VLAN标号附加到所述接收的网络消息上。
17.根据权利要求16所述的方法,还包括如下步骤从被选择的端口发送对其附加有所述第二VLAN标号的从所述客户域接收的所述网络消息。
18.根据权利要求14所述的方法,其中,所述接收的网络消息还与第一服务代价(CoS)值相关联,所述方法还包括如下步骤基于所述消息的第一CoS值、所述消息的第一VLAN标号和在其上接收所述消息的所述给定的端口,标识第二CoS值;以及将所述网络消息与所述标识出的第二CoS值相关联。
19.根据权利要求18所述的方法,其中,将所述网络消息与所述标识出的第二CoS值相关联的步骤包括如下步骤将所述第二CoS值附加到所述网络消息上。
20.一种在计算机网络内转发消息中使用的中间网络设备,被接收的网络消息中的至少一些与第一虚拟局域网(VLAN)标号和第一服务代价(CoS)值相关联,所述中间网络设备包括多个端口,被配置以发送和接收所述网络消息;用于基于在给定的端口上接收的网络消息的第一VLAN标号和在其上接收所述消息的所述给定的端口,将第二VLAN标号映射到所述接收的消息的装置;用于基于所述接收的网络消息的第一VLAN标号、在其上接收所述消息的所述给定的端口和所述接收的消息的第一CoS值,将第二CoS值映射到所述接收的消息的装置;和用于将所述第二VLAN标号和所述第二CoS值与所述接收的消息相关联的装置。
全文摘要
一种系统在客户虚拟局域网(VLAN)域和提供商VLAN域之间映射网络消息。具体地说,中间网络设备的一个或多个端口包括帧映射逻辑,并且还可以包括多个高度灵活的、可编程的映射表。根据本发明,与客户VLAN相关联的接收到的帧被映射到提供商VLAN,该提供商VLAN作为帧的客户VLAN和在其上接收到帧的具体端口的函数而被选择。帧也可以被映射到提供商CoS值,该提供商CoS值作为帧的客户CoS值、客户VLAN和在其上接收到帧的端口的函数而被选择。提供商VLAN标号和提供商CoS值可以被附加到帧上。提供商域中的转发决定至少部分地基于帧的提供商VLAN标号和提供商CoS值。
文档编号H04L12/46GK1708957SQ200380102431
公开日2005年12月14日 申请日期2003年10月27日 优先权日2002年10月29日
发明者苏兰·萨米尼达·德西尔瓦, 诺曼·W·芬恩 申请人:思科技术公司