多协议标签转换网络系统的制作方法

文档序号:7760995阅读:238来源:国知局
专利名称:多协议标签转换网络系统的制作方法
技术领域
本发明一般涉及一种用于把分组分配到多个逻辑地捆绑的物理链路的通信设备,更具体地涉及一种MPLS(MultiProtocol Label Switching多协议标签转换)网络系统,该系统被设计成通过仅参考MPLS网络的出口边沿节点(edge node)中的MPLS帧的首部来把分组分配到多个物理链路(被捆绑成好像一个逻辑链路),在不造成次序颠倒的情况下提高负载分担效果。
背景技术
MPLS作为一种加快IP(Internet Protocol网际协议)网络(例如互联网)中分组转发处理(分组转换处理)的技术受到关注。MPLS是这样一种协议通过把包含20位标签的MPLS首部附加到诸如IP分组的转发对象分组,使得该分组能够基于附加在该分组的20位标签在MPLS网络内被路由选择。
MPLS能够不通过网络层(节省时间)而比基于网络层上的路由选择表的正常路由选择(也就是说基于搜索IP地址的路由选择)更高速地进行分组路由选择。此外,MPLS可以作为构成VPN(Virtual PrivateNetwork虚拟个人网络)的基干并因此受到运营商(公共运营商或通信服务提供商)的关注。期待MPLS今后会得到广泛应用。
在此,图1示出了如何在基于MPLS的网络层对分组(IP分组)进行路由选择(分组转换)。参考图1,在该MPLS网络系统中,作为用户站点的多个具有IP地址(前缀)[a]和[d]的提供商网络被连接到MPLS网络。这些提供商网络容纳诸如分别给出IP地址[A]和[D]的个人计算机等终端设备。
MPLS网络中的入口和出口边沿节点以及各个转换节点(核心或内部节点)通过利用用于分配MPLS标签的LDP(Label DistributionProtocol标签分配协议),在该MPLS网络中建立标签转换路径(LSPLabel Switched Path)。
各个节点创建并保留如图1所示的路由选择表(标签表)。由入口和出口边沿节点保留的每个路由选择表存有数条信息(例如目的地IP地址(前缀)、转发标签和转发接口)。由每个转换节点保留的路由选择表存有数条信息(诸如接收标签、转发标签和转发接口)。
在建立标签转换路径之后,MPLS网络中的入口边沿节点把MPLS帧(MPLS分组)转发到后段的转换节点,其中,该MPLS帧是通过把包含IP分组转换标签(Switching Label或转发标签forwarding Label)的MPLS首部附加到该IP分组来组合而成的,此后通过基于该IP分组转换标签的标签转换,把该转发对象分组路由选择到出口边沿节点。
下面,图2示出了在利用MPLS构成VPN的情况中基于网络层协议分组(IP分组)的路由选择。参考图2,在该MPLS网络系统中,作为用户站点的具有IP地址(前缀)[a]和[c]的用户网络被连接到MPLS网络。这些用户网络容纳诸如分别给出IP地址[A]和[C]的个人计算机等终端设备。
MPLS网络中的入口边沿节点、出口边沿节点和各个转换节点通过利用用于分配MPLS标签和mp-BGP(multiprotocol-Extension BorderGateway Protocol多协议扩展边沿网关协议)的LDP,在MPLS网络中建立IP分组路由选择标签转换路径和VPN标签转换路径。
入口边沿节点创建并保留如图2所示的VPN标签表。为每个VPN(也就是说每个虚拟路径)创建这种VPN标签表,并且该VPN标签表存有数条信息(例如目的地IP地址(前缀),转发标签和目的地边沿节点的IP地址)。
各个节点创建并保留如图2所示的路由选择表。由入口边沿节点保留的路由选择表存有数条信息(例如目的地IP地址,转发标签和转发接口)。由各个转换节点和出口边沿节点保留的每个路由选择表存有数条信息(例如接收标签,转发标签和转发接口)。
在建立标签转换路径之后,MPLS网络中的入口边沿节点把MPLS帧转发到后段的转换节点,其中,该MPLS帧是通过把包含IP分组转换标签(转发标签)和VPN识别标签的两条MPLS首部附加到该IP分组来组合而成的,此后通过基于该IP分组转换标签和该VPN识别标签的标签转换,把该转发对象分组路由选择到出口边沿节点。
另一方面,在运营商网络中,重要的是增加网络容量和提高可靠性,并通过采用多种现有负载分担技术来实现这些目标。在此关注“链路聚集(trunking)”,其被定义为一种用于在物理链路层进行负载分担的技术。
链路聚集是把相邻节点间的多个物理链路集合为一个逻辑链路的技术的总称。实现该目的的技术包括由供应商提供的技术、由IEEE.P802.3ad规定的以太网的“链路集合”等。
通过利用链路聚集技术获得以下优点。
(1)捆绑多个物理链路,从而可以建立一个超过单个物理链路的传输速率上限的大容量链路。(2)此外,如果某个物理链路上发生故障,则可以通过捆绑为该逻辑链路的其余物理链路进行数据通信,从而可以提高可靠性。
图3是示出如何把帧转发到通过链路聚集捆绑的多个物理链路的说明图。但是图3所示的路由选择模块是由于所示节点#1,#2为转换节点而给出的组成部件,与链路聚集没有直接关系。
参考图3,对把帧从节点#1转发到节点#2的情况中的各个节点的处理进行说明。为了便于说明,从涉及节点#1的转换阶段中的处理开始讨论。路由选择模块是诸如以太网上的桥接器中的路由选择模块,其搜索以帧内目的地MAC地址为关键字的学习表,从而确定一条目的地链路。
如果由该路由选择模块确定为目的地的链路是经过链路聚集的多个物理链路(被集合成一个逻辑链路)之一,则在转发阶段,计算关键字生成模块根据一个预定算法(通过输入(输入信息)帧的一个首部)执行计算,并输出计算关键字。
根据该计算关键字,链路分配模块选择多个物理链路(被捆绑作为一个逻辑链路)之一并把该帧转发到该选定的物理链路。
下面,对接收阶段中的处理进行说明。在从物理链路之一接收该帧的节点#2中,链路集合模块识别到从对应于该接收物理链路的逻辑链路接收该帧。
因此,帧转发节点#1把去往一个逻辑链路的多个帧分配到多个物理链路,从而实现负载分担。
关于由计算关键字生成模块采用的算法,需要注意以下几点(1)也就是说,有效分配通信量使得负载集中在多个候选物理链路中的一个物理链路上。(2)此外,当一系列从同一个源流向目的地的单向通信量被定义为每个应用(例如,每个诸如Telnet(远程登录),FTP(文件传送协议),SMTP(简单邮件传送协议)等的应用层协议)上执行的通信会话中的“流”时,属于同一个流的帧的计算关键字具有相同的值,从而属于同一个流的帧被分配到同一个物理链路。
需要考虑注意点(2)的原因是如果在分配中节点#1把属于同一个流的帧转发到不同的物理链路,则节点#2不能识别这些帧属于同一个流。结果,存在的问题是在路由选择处理中不能确保属于一个流的帧的次序。此问题称为“次序颠倒”。
在考虑上述注意点(1)和(2)时,一种用于分配帧的有效方法可以是如下一种方案计算关键字生成模块采用的算法采用例如,一个不可逆单向函数(例如,哈希(hash)函数),该函数使用帧首部中包含的源和目的地址域(MAC帧情况中的Mac地址和IP分组(帧)情况中的源和目的地IP地址)中的值作为输入,并且链路分配模块根据获得的关键字值(作为伪随机数的哈希值),把帧分配到多个作为链路聚集对象的物理链路中的任何一个链路。
在此情况中,确保属于同一个流的帧被转发到同一个物理链路,并因此依据哈希函数恰当地分配所述帧。
下面考虑对MPLS帧进行计算关键字生成处理和链路分配处理以获得上述链路聚集的情况。
首先,MPLS协议允许基于信息在MPLS首部的后部填充不同类型的协议。MPLS具有下述特点和优点仅根据MPLS首部(主要由MPLS标签组成)可以对附加了该标签(分组转换标签)的帧进行路由选择。一般,该标签的值从附加该标签之前的帧的首部中的目的地址映射,而不是从源地址映射。
在此考虑一种生成用于利用链路聚集技术把MPLS帧分配到物理链路的计算关键字的情况。在此情况中,当以输入MPLS标签的方式生成计算关键字时,该标签不包含源识别信息,从而属于流向同一目的地的流的所有帧具有相同的计算关键字,结果这些帧被分配到同一个物理链路。
图4是通过一个具体示例说明该问题的解释图。图4示出了MPLS网络系统结构的一个示例,其中,通过利用MPLS在用户网络#1,#2,#3之间构建VPN,并且标签值α被映射到用户网络#3中的一个地址。
也就是说,在把用户网络#1连接到用户网络#3的标签转换路径LSP和把用户网络#2连接到用户网络#3的标签转换路径LSP上,帧中的标签值是[α]。注意到在构建VPN时,在如图2所示的出口边沿节点之前,实际的帧是作为附加了两条标签的帧在流动,但图4中示出的帧是附加了一个标签值的MPLS帧,这是因为仅注意出口边沿节点。
在该MPLS网络系统中,当从用户网络#1,#2把IP分组发送到目的地用户网络#3时,从MPLS网络中的入口边沿节点(边沿节点#1,#2)把作为MPLS帧(每个具有标签值α)的各个IP分组转发到出口边沿节点(边沿节点#3)。
在出口边沿节点中,当为标签值α计算该计算关键字时,该计算的结果总是一个固定值,结果所有去往用户网络#3的帧被转发到图4中的用户网络#3所容纳的同一个物理链路(例如,由粗线表示的连接到转换节点(路由器等)的物理链路)。这造成不能实现负载分担的问题。
一种用于避免该负载分担问题的方法是从源识别信息和目的地识别信息(不是仅从目的地识别信息)映射该MPLS帧的标签值。但是,在此情况中,最初在建立标签转换路径时对每个目的地识别信息/标签对可能发生协商,并且由于更细致的映射程度增加了标签分配的通信量。因此该方法导致新的问题。
针对该负载分担问题的另一种方法是把更高级首部(高于MPLS)的源和目的地址域中的数条信息用作图4中的出口边沿节点中计算关键字生成模块的输入。但是,在此情况中,MPLS网络中的出口边沿节点需要识别一个更高级协议(高于MPLS)并通过分析该首部来抽出源和目的地址。
在MPLS上可以设置各种类型的协议的情况下,问题是需要对每个协议进行首部分析,该处理非常耗时。此外,这会丧失MPLS能够仅基于MPLS首部进行分组路由选择的基本优点,因此上述方法存在问题。

发明内容
本发明的主要目的是提供一种技术,当MPLS网络中的接收MPLS帧的边沿节点(出口边沿节点)以仅参考MPLS首部的方式把分组(帧)分配到多个物理链路(被捆绑成一个逻辑链路)时,该技术能够在不造成次序颠倒的情况下提高负载分担的效果。
为了实现该目的,根据本发明的边沿节点属于第一网络,并通过逻辑地捆绑的物理链路连接到第二网络或终端设备,并且属于第一网络的入口边沿节点包括一个模块,该模块根据基于分组首部计算并存储在分组首部的关键字值,把分组分配到物理链路。
在此被考虑作为第一网络的是,例如,诸如由运营商(公共运营商或通信服务提供商)提供的MPLS网络,ATM(异步传输模式)网络等的网络。此外,被考虑作为第二网络的网络是用作用户网络的LAN(局域网)和用作提供商网络的WAN(广域网)。
此外,根据本发明的边沿节点包括生成模块,该模块通过把在附加MPLS首部(使得转发对象帧能够基于MPLS协议在MPLS网络中被转发)之前的转发对象帧的首部中包含的一条源识别信息和一条目的地识别信息用作输入值,生成用于确定分配目的地链路的关键字值;嵌入模块,该模块把由生成模块生成的关键字值嵌入MPLS首部的特定字段中;发送模块,该模块把包含该关键字值(被嵌入MPLS首部的特定字段中)的MPLS帧发送到MPLS网络;抽出模块,该模块从通过MPLS网络接收的MPLS帧的MPLS首部中的特定字段抽出该关键字值;以及确定模块,该模块根据由抽出模块抽出的关键字值,在多个物理链路(事先被逻辑地捆绑为一个链路)中确定一个物理链路作为分配目的地链路。
此外,根据本发明的MPLS网络系统包括第一边沿节点和第二边沿节点,第一边沿节点具有生成模块,该模块通过把在附加MPLS首部(使得转发对象帧能够基于MPLS协议在MPLS网络中被转发)之前的转发对象帧的首部中包含的一条源识别信息和一条目的地识别信息用作输入值,生成用于确定分配目的地链路的关键字值;嵌入模块,该模块把由生成模块生成的关键字值嵌入MPLS首部的特定字段中;发送模块,该模块把包含该关键字值(被嵌入其MPLS首部的特定字段中)的MPLS帧发送到MPLS网络;第二边沿节点具有抽出模块,该模块从通过MPLS网络接收的MPLS帧的MPLS首部中的特定字段抽出该关键字值;和确定模块,该模块根据由抽出模块抽出的关键字值在多个物理链路(事先被逻辑地捆绑为一个链路)中确定一个物理链路作为分配目的地链路。
在该MPLS网络系统中,第一边沿节点中的生成模块可以生成一个伪随机数作为用于确定该分配目的地链路的关键字值,其中,该伪随机数是通过把转发对象帧的首部中包含的源识别信息和目的地识别信息作为输入值,利用一个单向函数执行计算获得的。
第一边沿节点还可以具有标签附加模块,该模块通过把转发对象帧转换标签和VPN识别标签中至少一个作为MPLS网络中使用的MPLS首部附加到转发对象帧的方式组合MPLS帧,第二边沿节点还可以具有标签删除模块,该模块把作为MPLS首部附加到转发对象帧中的标签删除。
第一边沿节点中的嵌入模块可以把由生成模块生成的关键字值嵌入到至少一个作为MPLS首部的填充首部(shim header)中的特定字段中。
第一边沿节点中的嵌入模块可以把该关键字值嵌入填充首部中的特定字段的具有预定长度的位置,当在MPLS网络中转发该MPLS帧时可重写该填充首部。
第一边沿节点中的嵌入模块可以把由生成模块生成的关键字值嵌入到多个填充首部中作为MPLS首部的一个专用首部的特定字段中。
第二边沿节点还可以具有一个通知模块,当在MPLS网络中为MPLS帧建立标签转换路径时,该通知模块把用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置通知给第一边沿节点。
第一边沿节点还可以具有一个存储模块,该模块存储所通知的用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置。
第二边沿节点中的确定模块可以根据用于确定分配目的地链路的关键字值(由抽出模块抽出)和从MPLS首部的特定字段中获得的值的连接值,在多个物理链路(事先被逻辑地捆绑为一个链路)中确定一个物理链路作为分配目的地链路。


结合附图,参考以下详细说明,可以更好地理解本发明上述的以及其他的特征和优点。
图1是在现有MPLS网络系统中如何对一个IP分组进行路由选择的解释图;图2是现有MPLS网络系统中的VPN的解释图;图3是现有MPLS网络系统中的链路聚集技术的解释图;图4是说明在现有MPLS网络系统中关于确定分配目的地链路问题的解释图;图5是说明本发明的一个实施例中MPLS网络系统的基本结构的一个示例的方框图;图6是说明本发明的一个实施例中MPLS网络系统的第一具体示例的方框图;图7示出了本发明的一个实施例中的系统中的VPN识别标签;
图8示出了本发明的一个实施例中的系统中每个VPN的路由选择表;图9示出了本发明的一个实施例中用于在系统的MPLS网络内路由选择IP分组的路由选择表;图10示出了本发明的一个实施例中的系统中的标签表;图11示出了本发明的一个实施例中的系统中把计算关键字值映射到物理接口的表;图12示出了本发明的一个实施例中的系统中不同的帧和首部格式;图13是本发明的一个实施例中的系统中包含IP分组转换的MPLS首部的标签转换的示例解释图;图14是本发明的一个实施例中的系统中包含IP分组转换的MPLS首部的标签转换的示例的解释图;图15是说明本发明的一个实施例中MPLS系统的第二具体示例的方框图;图16是说明本发明的一个实施例中MPLS系统的第三具体示例的方框图;图17是说明本发明的一个实施例中MPLS系统的第四具体示例的方框图;图18示出了本发明的一个实施例中的系统中把计算关键字值映射到物理接口的表的另一个示例;图19是说明本发明的一个实施例中MPLS系统的第五具体示例的方框图;图20是说明本发明的一个实施例中MPLS系统的第六具体示例的方框图;图21是说明本发明的一个实施例中MPLS系统的第七具体示例的方框图;图22是说明本发明的一个实施例中MPLS网络系统的基本结构的一个修正示例的解释图;
具体实施例方式
下面,参考附图对本发明的一个实施例进行说明。
图5是本发明的一个实施例中的系统的基本结构的示例图。参考图5,MPLS网络系统1包括MPLS网络2、位于该MPLS网络2的入口位置的入口边沿节点(可以简称为入口节点或边沿节点)3、和位于MPLS网络2的出口位置的出口边沿节点(可以简称为入口节点或边沿节点)4。
入口边沿节点3和出口边沿节点4通过MPLS网络2中创建的标签转换路径LSP接收和转发分组。通过一个物理链路,入口边沿节点3被连接到作为用户站点的外部网络。经由通过链路聚集技术的多个物理链路(经过链路聚集后好像被集合或捆绑为一个逻辑链路),出口边沿节点4被连接到作为用户站点的外部网络。
入口边沿节点3由计算关键字生成模块(对应于根据本发明的计算关键字创建模块)30、标签附加模块32和计算关键字存储模块33构成。
在MPLS网络2的入口边沿节点3中,计算关键字生成模块30利用一个单向函数(例如哈希函数)把在被附加MPLS首部之前的帧(转发对象帧)的首部中包含的一条源识别信息和一条目的地识别信息作为输入值,来执行计算,并生成用于把分组分配到多个链路(称作链路分配)的计算关键字,也就是说,用于确定分配该帧(分组)的链路的关键字值(诸如哈希值等伪随机数)。算法31被定义为由计算关键字生成模块30用以获得计算关键字的算法。
在MPLS网络2中的入口边沿节点3中,标签附加模块32通过把包含MPLS网络2中使用的分组转换标签和VPN识别标签中至少一个的首部信息插入到诸如IP分组的分组(转发对象分组)作为MPLS首部,来组合MPLS帧(MPLS分组)。
在MPLS网络2的入口边沿节点3中,计算关键字存储(嵌入)模块33把由计算关键字生成模块30获得的计算关键字嵌入作为MPLS首部的填充首部中的一个特定字段中。
出口边沿节点4由标签转换模块40、计算关键字抽出模块41、链路分配模块42、和标签删除模块43构成。
在MPLS网络2的出口边沿节点4中,标签转换模块40获得数条信息,这些信息是关于帧转发接口和在根据MPLS首部包含的标签值转发该帧时使用的标签的信息。
在MPLS网络2的出口边沿节点4中,计算关键字抽出模块41从MPLS首部的特定字段抽出关键字值。
在MPLS网络2的出口边沿节点4中,链路分配模块42根据由计算关键字抽出模块41抽出的关键字值,在由链路聚集技术捆绑的多个物理链路中选择并确定一个目的地物理链路。
在MPLS网络2的出口边沿节点4中,标签删除模块43把包含MPLS网络2中的分组转换标签和VPN识别标签中至少一个的首部信息作为MPLS首部从诸如IP分组的分组中删除。
在MPLS网络2中的入口边沿节点3中,计算关键字生成模块30获得用于确定分配帧(分组)的链路的关键字值(可以称为计算关键字值),其中,在被附加MPLS首部之前的帧的首部中包含的源识别信息和目的地识别信息被用作输入值。
标签附加模块32把MPLS首部附加到转发对象帧,并且计算关键字存储模块33把该关键字值嵌入MPLS首部。入口边沿节点3把如此组合的MPLS帧转发到标签转换路径LSP。
在MPLS网络2中的出口边沿节点4(通过标签转换路径LSP接收到附加了MPLS首部的帧)中,标签转换模块40确定帧转发接口,并确定当转发该帧时删除该MPLS首部。此后,计算关键字抽出模块41从该MPLS首部抽出关键字值。
根据该关键字值,链路分配模块42从经链路聚集捆绑的多个物理链路中选择并确定一个目的地物理链路。出口边沿节点4把转发对象帧(由标签删除模块43删除了MPLS首部)转发到选定的物理链路。
注意到,在实际的MPLS网络系统1中,入口边沿节点3和出口边沿节点4的结构中包括彼此具有的所有组件,以便以相反的转发方向处理分组。
根据上述基本结构的示例,虽然未示出,在MPLS网络系统1中,至少有一个转换节点(可以被称为内部节点或核心节点)位于入口边沿节点3和出口边沿节点4之间的中继位置。但是,如下所述,也可以采用没有一个转换节点位于入口边沿节点3和出口边沿节点4之间的中继位置的结构。
根据标签转换模块(未示出)执行的MPLS帧转发处理(仅参考分组转发标签来转发作为MPLS帧的分组),该转换节点把MPLS帧路由选择到出口边沿节点4。此外,如下所述,该转换节点可以具有与出口边沿节点4相同的结构。
下面,通过参考图6~12对MPLS网络系统的第一具体示例进行说明。注意到,在下面说明的每个具体示例中,每个节点的接收阶段不直接与本发明相关联,因此省略对它的解释。
讨论首先涉及MPLS网络系统中建立的VPN结构。图6示出了基于MPLS在用户网络(#1)5、用户网络(#2)6和用户网络(#3)7之间建立VPN以及把标签值α映射到用户网络7中的一个地址的示例。更具体地,在把用户网络5连接到用户网络7的标签转换路径LSP和把用户网络6连接到用户网络7的标签转换路径LSP上,MPLS帧的MPLS首部中包含的标签值是[α]。
然后对操作进行讨论。该操作从下面的处理开始位于MPLS网络2的入口位置的边沿节点(#1,#2)3把MPLS首部附加到IP分组并作为MPLS帧转发该分组,并以下面的处理结束位于MPLS网络2的出口位置的边沿节点(#3)4(已接收该MPLS帧)以仅参考MPLS首部的方式把该IP分组分配到多个物理链路(通过链路聚集被集合)之一。
首先,假设入口边沿节点(#1)3接收从用户网络5容纳的终端设备A发送的IP分组。
然后,基于VPN识别表71(参见图7),路由选择模块34确定映射到接收接口(接口号1)的VPN(VPN号1)。
基于VPN路由选择表81(参见图8),路由选择模块34获得VPN识别标签值(转发标签)α和目的地边沿节点的IP地址(第3层地址)(分别映射到IP分组中包含的目的地IP地址(前缀)[C])。在此情况中,获得边沿节点(#3)4的IP地址作为目的地边沿节点的IP地址。
基于用于在MPLS网络2中进行路由选择的路由选择表91(参见图9),路由选择模块34获得MPLS网络2中使用的IP分组转换标签(转发标签150)(用于把帧(分组)转发到目的地边沿节点(#3)4的IP地址)和输出接口(接口号0)。
然后,计算关键字生成模块30抽出一个源IP地址[A]和一个目的地IP地址[C](包含在从路由选择模块34接收的IP分组中),并基于算法31计算用于确定分配该帧(分组)的链路的关键字值。在此以算法31为例,其中,假设该算法(利用哈希算法)如下以2位为单位划分每个32位源IP地址和32位目的地IP地址,计算其异或值,通过该计算获得一个2位数值
作为计算关键字。
标签附加模块32把两条MPLS首部(每个包括4字节)附加到由一个IP首部(20字节)和数据组成的IP分组。图12(a)示出了MPLS帧的格式,其中,通过附加包含VPN识别标签的填充首部作为MPLS首部,把IP分组封装到该MPLS帧中。图12(b)示出了通过进一步把填充首部(包含MPLS网络2中使用的IP分组转换标签)插入(堆栈)到图12(a)所示的MPLS帧的方式组合的MPLS帧的格式。图12(c)示出了作为在以太网和PPP(点对点协议)中使用的MPLS首部的填充首部的格式。
注意到,MPLS帧的格式可以包含在不同类型协议(由诸如ATM等使用)上应用MPLS时使用的首部格式,还可以包含封装后的格式,但是,这些格式不直接与本发明相关联,因此对其进行略述。
计算关键字存储模块33还把上述计算关键字(此例中为2位)嵌入到MPLS帧(附加了MPLS首部)的MPLS首部中的特定字段中。嵌入目的地字段的字段位置和字段长度事先可以任意选择,但是,该计算关键字被嵌入到存有VPN识别标签的字段的最高2位(作为嵌入目的地字段)。
图12(d)示出了嵌入该计算关键字之后的MPLS帧的格式。在图12(d)所示的例子中,第二填充首部中20位标签字段的2位位置被用于嵌入2位计算关键字,因此该VPN识别标签必须是一个能够表示为18位之内的值。
在入口边沿节点(#1)3中,由上述处理组合的MPLS帧通过标签转换路径LSP被路由选择到一个未示出的转换节点,并进一步根据标签转换模块的MPLS帧转换处理(通过仅参考IP分组转换标签转发该MPLS帧)把该MPLS帧路由选择到出口边沿节点4。
图12(e)示出了根据该路由选择处理由出口边沿节点4接收到的MPLS帧的格式。在MPLS网络2的转换节点中,包含MPLS帧的IP分组转换标签的第一填充首部通过标签交换(标签转换)和TTL(驻留时间)递减被重写,从而对该MPLS帧进行路由选择。但是,MPLS帧的VPN识别标签字段被提供在第二填充首部中,因此在MPLS网络2的转换节点中,计算关键字的关键字值(被嵌入到VPN识别标签字段中)不会被重写。
根据正常的MPLS转换处理,就在出口边沿节点4之前删除包含该IP分组转换标签的第一填充首部,此时把帧格式从图12(d)中的格式转换成图12(e)中的格式。
在通过标签转换路径LSP接收到如图12(e)所示格式的MPLS帧的出口边沿节点4中,标签转换模块40通过参考标签表101(参见图10)获得分别关于输出标签(转发标签)和输出接口的信息。在此示例中,该输出标签信息是[标签删除],该输出接口号(信息)是[逻辑接口#0]。
计算关键字抽出模块41从标签字段(存有VPN识别标签)的最高2位位置抽出计算关键字值
。假设总体上在该系统中静态确定该计算关键字被存在该2位位置,但是,也可以通过节点间的协商动态确定存储位置。下面对用于动态确定该计算关键字存储位置的算法的一个具体示例进行详细说明。
在计算关键字抽出模块41抽出该计算关键字之后,链路分配模块42从多个物理接口#0-0至#0-3(被定义为对应单个逻辑接口#0的多个输出接口)中确定一个映射到该计算关键字的物理接口作为输出目的地。
在此,链路分配模块42包括表111,如图11所示,该表把计算关键字值映射到用于每个逻辑接口的物理接口。基于计算关键字值
,链路分配模块42通过参考表111来确定物理接口#0-0作为输出目的地。
随后,标签删除模块43把作为MPLS首部的填充首部从MPLS帧删除,并把包含源IP地址[A]和目的地IP地址[C]的IP分组转发到物理接口#0-0。结果,该IP分组(从出口边沿节点4转发来的)流经物理链路#0-0,并通过用户网络7中的转换节点(路由器等)被路由选择到用户网络7中容纳的终端设备C。
在作为出口边沿节点4的下一个中继段(hop)的转换节点(在用户网络7中)中,当接收到来自现有物理链路之一的帧时,关于现有技术的讨论中所涉及的链路集合模块识别到从包括(对应于)该帧接收物理链路的单个逻辑链路接收到该帧。
通过上述处理,出口边沿节点4把作为IP分组从入口边沿节点(#1)3转发来的MPLS帧分配到多个物理链路(通过链路聚集技术被集合)之一。
在MPLS网络系统1中,把帧从入口边沿节点(#2)3转发到出口边沿节点4的操作也基本相同,但是,由入口边沿节点(#2)3从用户网络6接收到的两条IP分组中包含的源和目的地IP地址与由上述入口边沿节点(#1)3接收到的IP分组中包含的值不同,因此,出口边沿节点4中的IP分组分配对象的物理链路与上述情况中的不同。
下面,对该操作进行说明。当入口边沿节点(#2)3接收到两个由用户网络6容纳的终端设备B发送的IP分组时,路由选择模块34基于VPN识别标签72判断映射到该分组接收接口(接口号1)的VPN(VPN号1)(参见图7)。
然后,路由选择模块34从VPN路由选择表82(参见图8)中获得映射到IP分组中包含的目的地IP地址(前缀)的VPN识别标签(转发标签)α和目的地边沿节点IP地址(第3层地址)。
根据用于在MPLS网络2上对IP分组进行路由选择的路由选择表92(参见图9),路由选择模块34获得一个IP分组转换标签(转发标签150)和一个输出接口(输出接口号0),其中,该IP分组转换标签用于把帧(分组)转发到目的地边沿节点(#3)4的IP地址。
根据算法31,计算关键字生成模块30抽出IP首部中包含的源IP地址[B]和目的地址[C]、[D],然后以2位为单位划分所有位并计算其异或值。此外,计算关键字生成模块30输出[10]作为关于具有目的地IP地址[C]的IP分组的计算关键字值,并输出[11]作为关于具有目的地IP地址[D]的IP分组的计算关键字值,作为计算的结果。
标签附加模块32通过把作为MPLS首部的2段填充首部附加到IP分组来组合MPLS帧(参见图12(b))。计算关键字存储模块33把该MPLS帧转发到每个标签转换路径LSP,其中,计算关键字值被嵌入到由标签附加模块32组合的MPLS帧的字段(在第二填充首部中存有VPN识别标签)中最高2位位置中(参见图12(d))。
在通过标签转换路径LSP接收这些MPLS帧的出口边沿节点4中,首先标签转换模块40从标签表101获得分别作为关于输出标签和输出接口的信息的[标签删除]和[逻辑接口#0](参见图10)。
然后,计算关键字抽出模块41从对应于相应IP分组的多个MPLS帧的多个字段(每个存有VPN识别标签)的最高2位位置抽出计算关键字值[10],[11]。
在抽出计算关键字之后,根据相应的计算关键字值,链路分配模块42搜索表111(把计算关键字值映射到每个逻辑接口的物理接口),从而确定物理接口#0-2、#0-3作为输出目的地。
标签删除模块43把MPLS首部从MPLS帧上删除并将该帧作为IP分组转发到所确定的物理接口#0-2、#0-3。结果,这些IP分组流经多个物理链路(通过链路聚集被捆绑为一个逻辑链路)中的物理链路#0-2,#0-3。
在上述第一具体示例中基于一个或多个转换节点位于入口边沿节点3和出口边沿节点4之间的中继位置的前提进行了讨论,但是,也可以采用一种甚至没有一个转换节点位于该中继位置的结构。在此情况中,入口边沿节点3转发如图12(e)(不是图12(d))所示格式的MPLS帧。
也就是说,在中继位置不包括转换节点的结构中,根据正常的MPLS转换处理,入口边沿节点3以仅附加包含VPN识别标签的填充首部的方式(不附加包含IP分组转换标签的第一填充首部)转发该MPLS帧。
在采用上述结构和操作的MPLS网络系统1中,出口边沿节点4(接收到附加MPLS首部的帧)能够以仅参考MPLS首部把这些帧分配到多个物理链路(通过链路聚集被集合)的方式,来转发三条转发对象帧(IP分组)(每条具有不同的源和目的地IP地址)。此外,具有相同源/目的地IP地址的帧全部被分配到同一个物理链路,从而当分配帧时,在不造成次序颠倒的情况下可以提高负载分担的效果。
在MPLS网络系统的第一具体示例中,用于确定分配MPLS帧(分组)的物理链路的关键字值被嵌入到该MPLS帧的第二填充首部中的标签字段中。在修正示例中,可以把该关键字值嵌入同一个首部的其他字段中。
此外,在第一具体示例中基于MPLS网络2的入口边沿节点3和出口边沿节点4之间的物理链路没有通过链路聚集捆绑的假设进行了说明,但是,这些物理链路可以通过链路聚集捆绑。在此情况中,例如,入口边沿节点3可以基于由计算关键字生成模块30获得的关键字值来确定帧分配对象的物理链路,并且转换(核心)节点(CN)可以基于以与出口边沿节点4完全相同的方式从MPLS首部抽出的关键字值来确定帧分配对象的物理链路(参见图22)。
在第一具体示例中,每个2位关键字值(例如

,[10],[11])被映射到一个物理链路,但是,也可以通过例如,使关键字值

只映射到物理链路#0-0,关键字值[10],[11]被映射到物理链路#0-1,来将各个关键字值映射到一个任意的、但比关键字值表示的数小的物理链路。
根据该第一具体示例,出口边沿节点4总是操作计算关键字抽出模块41和链路分配模块42。但是,出口边沿节点4也可以仅在例如,标签表101具有一个用于表示输出接口是由链路聚集获得的逻辑接口还是物理接口的标记,当该标记表示[输出目的地=逻辑接口]的情况下,操作计算关键字抽出模块41和链路分配模块42。
此外,在第一具体示例中示出了IP被分层作为基于MPLS构成的VPN上的高级协议的情况。但是在VPN上分层的协议(不包括IP)也可以是诸如IPX(因特网分组交换)等网络层协议。
下面,结合附图7~15对MPLS网络系统的第二具体示例进行说明。
在上述第一具体示例中例举了把计算关键字嵌入到包含VPN识别标签的MPLS首部(第二填充首部)的标签字段中的方案。但是在此例举作为对其的修正示例的方案是把计算关键字嵌入到包含MPLS网络2中使用的IP分组转换标签的MPLS首部(第一填充首部)。
首先,在解释第二具体示例的操作之前,对应用对象系统进行说明。根据正常的MPLS操作,如图1所示的现有MPLS网络系统那样,由于MPLS网络中直接位于出口边沿节点之前的转换节点删除包含IP分组转换标签(在MPLS网络中使用)的MPLS首部,因此MPLS网络中的出口边沿节点不使用该方法。
但是,MPLS操作可以采用其他方式在不删除包含IP分组转换标签(在MPLS网络中使用)的MPLS首部的情况下,把MPLS帧路由选择到MPLS网络的出口边沿节点。图13和14示出了MPLS网络系统的这种结构的一个示例。
图13示出了在诸如ATM(异步传输模式)网络上操作MPLS的结构。也就是说,直接位于出口边沿节点4之前的转换节点CN通过在MPLS首部中存储指示下一个中继段节点的标签(以实现标签弹出(Pop)[可删除的]和基于IPv4首部的路由选择),来转发MPLS帧,而不是象如图1所示的那样删除MPLS首部。该标签被IETE(Internet Engineering TaskForce因特网I程任务组)标准RFC-3032定义为IPv4显式无效标签(Explicit Null Label)并具有值
。当MPLS帧从标签转换路径上流过时,出口边沿节点4接收到标签值为
的MPLS帧。
图14示出了一种模式(尽管该模式在标签转换路径的扩展模式方面不具有一般性)通过标签转换路径把附加一个正常标签(非显式无效标签)的MPLS帧路由选择到出口边沿节点4。也就是说,直接位于出口边沿节点4之前的转换节点CN转发包含,例如,标签值[350]的MPLS帧,而不是如图1所示的删除该MPLS首部,出口边沿节点4接收该附加MPLS首部的MPLS帧。
在图15所示的第二具体示例的MPLS网络系统中,该应用对象可以包括下面一种情况包含IP分组转换标签(在MPLS网络2中使用)的这类MPLS帧流到出口边沿节点4。
假设在该MPLS网络系统1中,如图14所示的用于路由选择的标签转换路径LSP从入口边沿节点(#1)3和入口边沿节点(#2)3扩展到出口边沿节点4。
此外,在该系统1的MPLS网络2中没有建立VPN。也就是说,基于下面的前提对该操作进行解释只在IP分组上附加一段包含该转换标签的MPLS首部作为MPLS帧被路由选择。注意到,各个节点中包括的不同类型的表与第一具体示例中所示的相同。
首先,假设位于MPLS网络2的入口位置的入口边沿节点(#1)3接收到包含源IP地址[A]和目的地IP地址[C]的IP分组,该IP分组是由提供商网络(#1)8(被定义为用户站点)中容纳的终端设备A转发的。
在该具体示例中,网络不是VPN,因此入口边沿节点(#1)3中的路由选择模块34不根据接收接口来判断VPN,并从MPLS网络2中使用的IP分组转换路由选择表91(参见图9)获得IP分组转换标签(在MPLS网络2中使用)和一个输出接口(用于转发到IP分组中包含的目的地IP地址[C])。
然后,计算关键字生成模块30基于算法31(如第一具体示例),以2位为单位划分IP分组首部中包含的源/目的地IP地址(每个具有32位)的所有位,并计算其异或值,从而获得计算关键字值。
标签附加模块32把一个包含IP分组转换标签的MPLS首部(填充首部)附加到该IP分组。图12(a)示出了在附加了MPLS首部之后的MPLS帧格式的示例。
在附加MPLS首部的MPLS帧中,计算关键字存储模块33进一步把该计算关键字(在该示例中为2位)嵌入到MPLS首部的特定字段中。嵌入位置是在第一填充首部的特定字段中,而不是第二MPLS首部的字段中。
在此,该计算关键字被嵌入到,例如,3位Exp字段中作为嵌入位置的最高2位位置。图12(f)示出了在嵌入该计算关键字之后的MPLS帧格式。注意到,3位Exp字段的2位被用于嵌入该计算关键字,因此Exp的值必须是等于或小于1位的值。
通过以上执行的处理,根据MPLS帧转换处理,如图14所示,相应的转换节点CN(位于MPLS网络2的内部位置)把入口边沿节点(#1)中组合的MPLS帧路由选择到出口边沿节点4。然后,接收到该MPLS帧的出口边沿节点4以与所示的第一具体示例完全相同的方式,把MPLS帧作为IP分组分配到通过链路聚集捆绑的多个物理链路中的任何一个。
注意到,在下面的情况中采用相同的处理位于MPLS网络2的入口位置的入口边沿节点(#2)3接收到两条由提供商网络(#2)9(被定义为用户站点)中容纳的终端设备B发送的IP分组,并通过转换节点把所处理的MPLS帧(两条IP分组)路由选择到提供商网络(#3)10。
在上述第二具体示例中例举了下面的方案计算关键字被嵌入到MPLS首部(第一填充首部)中的Exp字段,但是,作为一种替代方案,该计算关键字可以被嵌入到MPLS首部中的TTL(驻留时间)字段。在此,以如下方式对MPLS帧进行路由选择MPLS网络2中的每个转换节点CN通过标签交换和TTL递减来对第一填充首部进行重写。
一般地,虽然与Exp字段不能在MPLS网络2的转换节点CN中被重写不同,通常在转换节点中,有可能TTL字段会以1为单位进行递减(重写)而导致重写计算关键字值,但是,通常不会发生通过多如几十个转换节点对单独一个MPLS帧进行路由选择的情况。
因此,在MPLS网络2的入口边沿节点3中,如果计算关键字被嵌入到,例如,8位TTL字段的最高2位中,并且如果[63]被存储在其余6位TTL字段中,则在MPLS帧被路由选择到出口边沿节点4之前不重写该计算关键字值,因此也就是说即使当计算关键字被嵌入到TTL字段时也不存在实用性方面的问题。
此外,第二具体示例对下面的方案进行了说明在MPLS网络2上没有构建VPN,并且在MPLS网络2中,在转发对象MPLS帧上只附加一段MPLS首部进行路由选择。但是,如果建立了VPN,则该第一MPLS首部(第一填充首部)可应用为存储字段。在此情况中,VPN识别标签被存储在第二MPLS首部(第二填充首部)中。
下面,结合图6和16对MPLS网络系统1的第三具体示例进行说明。
该第三具体示例主要对下面的情况进行讨论入口边沿节点3的计算关键字存储模块33把关于关键字值嵌入位置的通知发给标签转换路径LSP(从入口边沿节点3扩展出)上提供的每个节点。
在此给出下面一种情况的说明由计算关键字存储模块33存储计算关键字的位置是第二填充首部(包含MPLS网络2中使用的VPN识别标签)中标签字段的最高2位位置。
首先,当建立标签转换路径LSP时,出口边沿节点4的字段通知模块(未示出)把嵌入对象的位置(计算关键字存储模块33在该位置嵌入了计算关键字)通知给标签转换路径LSP上存在的所有节点。因此,一种具体方法是扩展LDP(标签分配协议),该协议是建立标签转换路径LSP时使用的标签分配协议,并且如图16(a)所示,把表示在字段(对应于两条MPLS首部(64位))中的嵌入位置的掩码值存储在LDP消息中。
也就是说,当在MPLS网络2上建立标签转换路径LSP时,出口边沿节点4把图16(a)中的消息插入(存储)到LDP消息中,并把基于LDP的帧转发到MPLS网络2。
MPLS网络2中接收到该基于LDP的帧的转换节点或入口边沿节点3从该帧抽出图16(a)中的LDP消息,并在MPLS首部中存储关键字值或者存储该值作为用于从MPLS首部抽出该关键字值的掩码值。
因此,每个包括计算关键字存储模块33的模块可以确定MPLS首部中存储的关键字值的位置或基于掩码值确定该位置。
在此示例中,与第二MPLS首部(第二填充首部)的最高2位相对应的位置的掩码值是[1],从而可以识别到第二MPLS首部中的标签字段的最高2位与计算关键字嵌入位置相对应(图16(b))。
如果如图13或14所示的那样扩展标签转换路径LSP,使得MPLS帧(其MPLS首部未被删除)在MPLS网络2上被路由选择到出口边沿节点4,则如图16(b)所示,MPLS网络2中的转换节点和出口边沿节点4可以识别该关键字值嵌入位置。
但是,如果如图1或2所示的那样扩展标签转换路径LSP,使得MPLS帧的一个MPLS首部被MPLS网络2中直接位于出口边沿节点之前的转换节点删除,则MPLS网络2中的转换节点如图16(b)所示识别嵌入位置,而出口边沿节点4忽略在掩码的0~31位之内的掩码值,但识别在32~63位之内的掩码值作为属于第一MPLS首部的掩码值。
通过第三具体示例中的处理,可以对根据第一和第二具体示例在整个系统中静态设置的计算关键字嵌入位置进行动态设置。
下面,通过结合附图6~10,12,17和18对MPLS网络系统1的第四具体示例进行说明。
第四具体示例处理下面情况在MPLS网络系统1中使用MPLS协议的MPLS网络2内的出口边沿节点4中,通过链路聚集捆绑的多个物理链路(好像一个逻辑链路)的数量比由计算关键字存储模块33嵌入的关键字的关键字长能够表示的链路数量大。
作为该讨论的前提的系统基本上具有图6所示的(在解释第一具体示例时参考的)结构,但是,和图6所示的系统不同,通过链路聚集捆绑的物理链路数是8(参见图17)。
在此情况中,如果所嵌入的关键字具有2位长度,则8条物理链路(#0-0~#0-7)的表示超过了上述2位基本表示,这一点不同于第一具体示例。此外,出口边沿节点4具有用于把分组分配到该8条物理链路的链路分配模块42。
VPN结构、用于连接用户网络(#1)5和用户网络(#3)7的标签转换路径LSP、用于连接用户网络(#2)6和用户网络(#3)7的标签转换路径LSP上附加的标签以及各个模块保留的表与第一具体示例中的相同。但是图18所示的表181代替图11所示的表111。
在此对如下操作进行说明位于MPLS网络2的入口位置的入口边沿节点(#1)3和入口边沿节点(#2)3中的每一个把MPLS首部附加到IP分组,并转发由此组合的MPLS帧,通过标签转换路径LSP接收到该MPLS帧的出口边沿节点4以仅参考该MPLS首部的方式,把分组(帧)分配到通过链路聚集被捆绑的该8条物理链路之一。
首先,入口边沿节点(#1)3和入口边沿节点(#2)3中的每一个以与第一具体示例所示的方式完全相同的方式,把MPLS首部附加到在MPLS网络2外部接收的IP分组,并把如此组合的MPLS帧转发到出口边沿节点4。
在此情况中,关于由入口边沿节点(#1)3从用户网络5接收到的IP分组的计算关键字值是
,关于具有目的地IP地址[C]的IP分组(由入口边沿节点(#2)3从用户网络(#2)6接收)的计算关键字值是[10],关于具有目的地IP地址[D]的分组的计算关键字值是[11]。
首先,在接收到三条由入口边沿节点(#1)3和(#2)3转发的MPLS帧的出口边沿节点4中,标签转换模块40从标签表101(参见图10)获得数条关于输出标签和输出接口的信息。在此情况中,这三条MPLS帧中的每一条的这些信息都是[标签删除]和[逻辑接口#0]。
然后,针对这些MPLS帧,计算关键字抽出模块41从存有VPN识别标签的字段的最高2位位置中抽出作为计算关键字值的
,[10]和[11]。
在抽出该关键字值之后,当在对应于输出逻辑接口#0的8个物理接口(#0-0~#0-7)中确定分配目的地物理接口时,链路分配模块42基于算法31,通过输入MPLS首部的特定字段中的信息和计算关键字并由此输出3位关键字值的方式,执行计算。
在此,例举的算法31包括以1位为单位划分20位标签值并且把通过计算其异或值获得的1位值连接到由计算关键字抽出模块41抽出的2位计算关键字值。如果计算其异或值的结果为
,则分别获得3位计算关键字值


作为位连接的结果。
链路分配模块42包括把3位计算关键字值映射到每个逻辑接口的物理接口号的表181(参见图18),从而确定物理接口[#0-0],[#0-2],[#0-3]分别作为基于计算关键字值


搜索该表181所得的输出目的地接口。
标签删除模块43删除作为MPLS首部的第二填充首部,并把IP分组转发到由链路分配模块42获得的各物理接口。结果,该IP分组被转发到物理链路#0-0,#0-2,#0-3。
下面,结合附图6~12和19对MPLS网络1的第五具体示例进行说明。
在第五具体示例中处理下述情况在MPLS网络2中,入口边沿节点(#1)3把一个新MPLS首部(第三填充首部)插入到IP分组并把计算关键字值存储在该首部中,而不是把计算关键字值存在MPLS分组转换标签或VPN识别标签所属的MPLS首部中。
作为该讨论的前提的系统基本上具有图6所示的(在说明第一具体示例时所参考的)结构。此外,VPN结构、用于连接用户网络(#1)5和用户网络(#3)7的标签转换路径LSP、在用于连接用户网络(#2)6和用户网络(#3)7的标签转换路径LSP上附加的标签以及各个模块保留的表与第一具体示例中的相同。
在此对如下操作进行说明位于MPLS网络2的入口位置的入口边沿节点(#1)3把MPLS首部附加到IP分组,并转发如此组合的MPLS帧,通过标签转换路径LSP接收到该MPLS帧的出口边沿节点4以仅参考该MPLS首部的方式把分组(帧)分配到通过链路聚集被捆绑的多个物理链路之一。
首先,当入口边沿节点(#1)3从用户网络(#1)5接收到IP分组时,路由选择模块34基于VPN识别标签71(参见图7)来判断对应于该接收接口的VPN。
然后,路由选择模块34从每个VPN的路由选择表81(参见图8)获得一个VPN识别标签和目的地边沿节点的一个IP地址(每个映射到IP分组中包含的目的地IP地址[C])。
此外,路由选择模块34获得在MPLS网络2中使用的IP分组转换标签和用于转发到所获得的目的地边沿节点的IP地址(从在MPLS网络2中使用的IP分组转换路由选择表91(参见图9)获得)的输出接口。
然后,计算关键字生成模块30抽出包含在IP分组首部中的源IP地址[A]和目的地IP地址[C],并基于算法31来计算用于确定分配目的地链路的计算关键字。标签附加模块32把两条MPLS首部(填充首部)附加到该IP分组。图12(b)示出了在附加了两条MPLS首部之后的帧格式。
针对附加了MPLS首部的MPLS帧,计算关键字存储模块33把第三MPLS首部插入到如图12(b)所示格式的MPLS帧(由标签附加模块32输出)的第二MPLS首部(包含VPN识别标签)之后。该第三MPLS首部被定义为专门用于存储该计算关键字的首部。
计算关键字存储模块33把该计算关键字(在此示例中为2位)嵌入到在此填充的第三MPLS首部中的特定字段中。作为嵌入目的地的字段的字段位置和字段长度是可以任意选择的,但是,该计算关键字被嵌入到标签字段中作为嵌入目的地的最高2位位置。图12(g)示出了嵌入之后的MPLS帧格式。
如图19所示,基于MPLS帧转换处理,由位于MPLS网络2的内部位置的多个转换节点CN中的标签转换模块把由上述处理组合的MPLS帧路由选择到出口边沿节点4。图12(h)示出了由出口边沿节点4接收到的MPLS帧格式。
注意到以如下方式对MPLS帧进行路由选择通过在MPLS网络2的转换节点中进行标签交换和TTL递减,对图12(g)所示的MPLS帧中的第一填充首部进行重写。由于在第三填充首部中提供了用于嵌入计算关键字值的标签字段,所以在MPLS网络2的转换节点CN中该计算关键字值不会被重写。
在接收到如图12(h)所示格式的MPLS帧的出口边沿节点4中,首先标签转换模块40从表101(参见图10)获得数条关于输出标签和输出接口的信息。在此情况中,输出标签信息和输出接口号变为[标签删除]和[逻辑接口#0]。
计算关键字抽出模块41从第二MPLS首部之后的第三MPLS首部(不是存有VPN识别标签的第二MPLS首部)的标签字段的最高2位位置抽出一个计算关键字值
,然后把该第三MPLS首部设定为待删除的对象。
链路分配模块42在对应于输出逻辑接口#0的多个物理接口中确定物理接口#0-0为映射到计算关键字值
的输出目的地。
标签删除模块43设定图12(h)所示的MPLS帧(由出口边沿节点4接收)中的所有填充首部(图12(g)中的第二和第三填充首部)作为删除对象。具有源IP地址[A]和目的地IP地址[C]的IP分组被转发到由链路分配模块42确定的物理接口#0-0,最终该IP分组流经该物理接口#0-0。
注意到,尽管在此未说明,由入口边沿节点(#2)3执行的把新MPLS首部(第三填充首部)附加到IP分组并把计算关键字值存储在该首部的处理与入口边沿节点(#1)3中的处理基本相同。
下面,结合附图20对MPLS网络系统1的第六具体示例进行说明。
在根据第六具体示例的MPLS网络系统1中,MPLS网络2中的出口边沿节点4把作为多个终端设备的服务器(是具有相同IP地址和MAC地址的多个负载分担对象服务器)P,Q,R,S连接到相应的链路,而不是把多个捆绑的物理链路连接到提供商网络(#3)10中的单个转换节点。
服务器P~S为Web服务器,这些服务器分别具有提供商网络10的网络“前缀”中的IP地址[P,Q,R,S]并保留相同的内容数据。
假设入口边沿节点(#1)3和(#2)3的操作与第一具体示例中的相同,则从终端设备A,B发送的IP分组被分配发送到两个服务器P和R。
从出口边沿节点4分配发送的IP分组(属于同一个流(会话))总被分配到同一个服务器,从而同一个流的通信(分组)不会被分配到不同的服务器。这可以被采用作为服务器负载分担方案。
下面,结合附图21对MPLS网络系统1的第七具体示例进行说明。
上述第一至第六具体示例中,关于MPLS网络系统1讨论了以参考MPLS帧的MPLS首部的方式,MPLS网络2中的出口边沿节点4把分组分配到多个物理链路(通过链路聚集技术被捆绑)中的任何一个,这对于MPLS网络2中的入口边沿节点3和出口边沿节点4采用图21所示结构的情况特别有效。
在根据该第七具体示例的MPLS网络系统1中,在入口边沿节点3中基于IPv4的线路卡51和基于IPv6的线路卡52,在出口边沿节点4中基于MPLS的线路卡60实现上述各具体示例中例举的元件(功能)。
在入口边沿节点3中,多个线路卡50,51,52通过一个切换结构SF相互连接。此外,在出口边沿节点4中,多个线路卡60,61,62,63,64通过一个切换结构SF相互连接。每个基于MPLS的线路卡50,60仅处理附加了MPLS首部的帧(MPLS帧)作为一个硬件处理对象,也就是说,在线路卡内处理该MPLS首部,并把没有附加MPLS首部的帧(IP分组)设为软件处理对象(由未示出的CPU执行软件进行处理)。
基于IPv4的线路卡51,61,62仅把没有附加MPLS首部的IPv4帧设为硬件处理对象并把其他帧设为软件处理对象。此外,基于IPv6的线路卡52,63,64仅把没有附加MPLS首部的IPv6帧设为硬件处理对象并把其他帧设为软件处理对象。
在采用该结构的入口边沿节点3和出口边沿节点4中,如下所述,在基于MPLS的线路卡中,确定一个输出目的地物理链路的处理是一个仅基于MPLS首部执行的处理,而基于IPv4和IPv6首部的处理变得没必要。该方案便于简化硬件和提高转换性能。
在此,对入口边沿节点3和出口边沿节点4中的处理进行略述。首先,在入口边沿节点3中,在接收到IPv4分组的基于IPv4的线路卡51中,路由选择模块34确定一个输出目的地物理接口和线路卡,在内置标签附加模块32把MPLS首部附加到该分组之后,计算关键字存储模块33存储该计算关键字,并且把附加了该MPLS首部的帧转发到基于MPLS的线路卡50。该基于MPLS的线路卡50在MPLS网络2上原样转发该附加了MPLS首部的帧。
然后,在出口边沿节点4中,当接收到附加了MPLS首部的帧时,在基于MPLS的线路卡60中,在内置标签转换模块40确定输出逻辑接口之后,链路分配模块42确定一对输出目的地物理链路和线路卡(例如,物理链路#0-0和线路卡61),并且标签删除模块43删除该MPLS首部,从而把IPv4分组(没有附加MPLS首部)转发到线路卡61。
在采用图21所示结构的MPLS网络系统1中,特别是在出口边沿节点4中,基于MPLS的线路卡60可以仅根据MPLS首部(不参考基于MPLS的线路卡60中的IPv4和IPv6首部)来确定输出目的地物理链路。该方案便于简化硬件并提高转换性能。
在该MPLS网络系统1中,以仅参考MPLS首部的方式把分组分配到多个物理链路(通过链路聚集被捆绑),从而出口边沿节点4通过仅参考MPLS首部对连接到MPLS网络2的基于MPLS的线路卡60进行操作以执行转换处理,从而可以简化并加快处理。
此外,通过一个切换结构SF建立基于MPLS的线路卡60和基于IPv4的线路卡61、62之间的连接以及该线路卡60和基于IPv6的线路卡63、64之间的连接。因此,当假设覆盖基于IPv4的线路卡61、62或基于IPv6的线路卡63、64中的两种线路卡以支持链路聚集的情况时,在仅参考MPLS首部的处理范围内,连接到MPLS网络2的基于MPLS的线路卡60可以提高负载分担效果而不造成任何序列颠倒。
在上述的一个实施例中例举了下面的情况根据对应于OSI(开放式系统互联)参考模型的第三层(网络层)的IP首部中包含的源IP地址和目的地IP地址,出口边沿节点3中的计算关键字生成模块30生成计算关键字。但是,这些计算对象也可以被设定为IP首部的协议字段值、OSI参考模型的第四层(传输层)上的协议首部、以及诸如HTTP(超文本传输协议)的应用中唯一的首部中包含的源识别信息和目的地识别信息。
上述的一个实施例中的相应处理也作为可由计算机执行的程序来提供,并且该程序可以被记录在诸如CD-ROM,软盘等记录介质上,也可以通过通信线路发布。
尽管以上仅详细说明了本发明的一些实施例,但本领域的技术人员可以理解,在不背离本发明的新颖性和优点的情况下可以对优选实施例进行修改。因此,所有上述修改都包括在由所附权利要求所定义的本发明的范围内。
权利要求
1.一种MPLS网络系统,该系统包括第一边沿节点,该节点包括生成模块,该模块通过把在被附加MPLS首部之前的转发对象帧的首部中包含的一条源识别信息和一条目的地识别信息作为输入值,生成用于确定分配目的地链路的关键字值,其中,该MPLS首部使得该帧能够基于MPLS协议在MPLS网络内被转发;嵌入模块,该模块把由所述生成模块生成的关键字值嵌入到MPLS首部中的特定字段中;以及发送模块,该模块把包含被嵌入到其MPLS首部的特定字段中的关键字值的MPLS帧发送到MPLS网络;以及第二边沿节点,该节点包括抽出模块,该模块从通过MPLS网络接收到的MPLS帧的MPLS首部中的特定字段抽出该关键字值;以及确定模块,该模块根据由所述抽出模块抽出的关键字值,在预先被逻辑地捆绑为一个链路的多个物理链路中确定一个物理链路作为分配目的地链路。
2.根据权利要求1所述的MPLS网络系统,其中,所述第一边沿节点中的所述生成模块生成伪随机数作为用于确定该分配目的地链路的关键字值,其中,通过把转发对象帧的首部中包含的源识别信息和目的地识别信息作为输入值,利用单向函数执行计算来获得该伪随机数。
3.根据权利要求1所述的MPLS网络系统,其中,该源识别信息和目的地识别信息是源地址和目的地址。
4.根据权利要求1所述的MPLS网络系统,其中,所述第一边沿节点还包括标签附加模块,该模块通过把转发对象帧转换标签和VPN识别标签中的至少一个标签作为MPLS网络中使用的MPLS首部附加到转发对象帧来组合MPLS帧,以及所述第二边沿节点还包括标签删除模块,该模块把作为MPLS首部附加到转发对象帧中的标签删除。
5.根据权利要求1所述的MPLS网络系统,其中,所述第一边沿节点中的所述嵌入模块把由所述生成模块生成的关键字值嵌入到至少一个作为MPLS首部的填充首部中的特定字段中。
6.根据权利要求5所述的MPLS网络系统,其中,所述第一边沿节点中的所述嵌入模块把该关键字值嵌入到该填充首部中的特定字段中具有预定长度的位置中,其中,当在MPLS网络内转发该MPLS帧时,可以对该填充首部进行重写。
7.根据权利要求1所述的MPLS网络系统,其中,所述第一边沿节点中的所述嵌入模块把由所述生成模块生成的关键字值嵌入到多个填充首部中作为MPLS首部的一个专用首部中的特定字段中。
8.根据权利要求1所述的MPLS网络系统,其中,所述第二边沿节点还包括通知模块,当在MPLS网络中建立用于MPLS帧的标签转换路径时,该模块把用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置通知给所述第一边沿节点。
9.根据权利要求8所述的MPLS网络系统,其中,所述第一边沿节点还包括存储模块,该模块存储用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置。
10.根据权利要求1所述的MPLS网络系统,其中,所述第二边沿节点还包括通知模块,当在MPLS网络中建立用于MPLS帧的标签转换路径时,该模块把用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置通知给MPLS帧标签转换路径上的核心节点和所述第一边沿节点。
11.根据权利要求10所述的MPLS网络系统,其中,所述核心节点和所述第一边沿节点分别还包括存储模块,该模块存储所通知的用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置。
12.根据权利要求1所述的MPLS网络系统,其中,所述第二边沿节点中的所述确定模块根据由所述抽出模块抽出的、用于确定分配目的地链路的关键字值和从MPLS首部中的特定字段获得的值的连接值,从预先被逻辑地捆绑为一个链路的多个物理链路中确定一个物理链路作为分配目的地链路。
13.根据权利要求1所述的MPLS网络系统,还包括一个核心节点,该节点包括抽出模块,该模块从通过MPLS网络接收到的MPLS帧的MPLS首部中的特定字段中抽出关键字值;以及确定模块,该模块根据由所述抽出模块抽出的关键字值,从预先被逻辑地捆绑为一个链路的多个物理链路中确定一个物理链路作为分配目的地链路。
14.一种边沿节点,属于第一网络并通过逻辑地捆绑的多个物理链路连接到第二网络或终端设备,包括分配模块,该模块根据由属于第一网络的入口边沿节点基于分组首部所计算并存储在该分组首部中的关键字值,把分组分配到物理链路。
15.一种边沿节点,该节点包括生成模块,该模块通过把在被附加MPLS首部之前的转发对象帧的首部中包含的一条源识别信息和一条目的地识别信息作为输入值,生成用于确定分配目的地链路的关键字值,其中,该MPLS首部使得该帧能够基于MPLS协议在MPLS网络内被转发;嵌入模块,把由所述生成模块生成的关键字值嵌入到MPLS首部中的特定字段中;发送模块,把包含被嵌入到其MPLS首部的特定字段中的关键字值的MPLS帧发送到MPLS网络;抽出模块,从通过MPLS网络接收到的MPLS帧的MPLS首部的特定字段中抽出关键字值;以及确定模块,根据由所述抽出模块抽出的关键字值,该模块在预先被逻辑地捆绑为一个链路的多个物理链路中确定一个物理链路作为分配目的地链路。
16.根据权利要求15所述的边沿节点,其中,所述生成模块生成伪随机数作为用于确定分配目的地链路的关键字值,其中,通过把转发对象帧的首部中包含的源识别信息和目的地识别信息作为输入值,利用一单向函数执行计算而获得该伪随机数。
17.根据权利要求15所述的边沿节点,其中,该源识别信息和目的地识别信息是源地址和目的地址。
18.根据权利要求15所述的边沿节点,还包括标签附加模块,该模块通过把转发对象帧转换标签和VPN识别标签中的至少一个标签作为MPLS网络中使用的MPLS首部附加到转发对象帧来组合MPLS帧,以及标签删除模块,该模块把作为MPLS首部附加到转发对象帧中的标签删除。
19.根据权利要求15所述的边沿节点,其中,所述嵌入模块把由所述生成模块生成的关键字值嵌入到至少一个作为MPLS首部的填充首部中的特定字段中。
20.根据权利要求19所述的边沿节点,其中,所述嵌入模块把该关键字值嵌入到该填充首部中的特定字段的具有预定长度的位置中,其中,当在MPLS网络内转发该MPLS帧时,可以对该填充首部进行重写。
21.根据权利要求15所述的边沿节点,其中,所述嵌入模块把由所述生成模块生成的关键字值嵌入到多个填充首部中作为MPLS首部的一个专用首部的特定字段中。
22.根据权利要求15所述的边沿节点,还包括通知模块,当在MPLS网络中建立用于MPLS帧的标签转换路径时,该模块把用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置通知给MPLS帧标签转换路径上的其他节点。
23.根据权利要求22所述的边沿节点,还包括存储模块,该模块存储所通知的用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置。
24.根据权利要求15所述的边沿节点,其中,所述确定模块根据由所述抽出模块抽出的、用于确定分配目的地链路的关键字值和从MPLS首部中的特定字段获得的值的连接值,从预先被逻辑地捆绑为一个链路的多个物理链路中确定一个物理链路作为分配目的地链路。
25.一种确定分配目的地链路的方法,该方法包括以下步骤通过把在被附加MPLS首部之前的转发对象帧的首部中包含的一条源识别信息和一条目的地识别信息作为输入值,生成用于确定分配目的地链路的关键字值,其中,该MPLS首部使得该帧能够基于MPLS协议在MPLS网络内被转发;把生成的关键字值嵌入到MPLS首部中的特定字段中;把包含被嵌入到其MPLS首部的特定字段中的关键字值的MPLS帧发送到MPLS网络;从通过MPLS网络接收到的MPLS帧的MPLS首部中的特定字段抽出关键字值;以及根据抽出的关键字值,在预先被逻辑地捆绑为一个链路的多个物理链路中确定一个物理链路作为分配目的地链路。
26.根据权利要求25所述的确定分配目的地链路的方法,还包括把所生成的关键字值嵌入至少一个作为MPLS首部的填充首部的特定字段中。
27.根据权利要求26所述的确定分配目的地链路的方法,还包括把该关键字值嵌入到该填充首部中的特定字段的具有预定长度的位置中,其中,当在MPLS网络内转发该MPLS帧时可以对该填充首部进行重写。
28.根据权利要求25所述的确定分配目的地链路的方法,还包括把所生成的关键字值嵌入到多个填充首部中作为MPLS首部的一个专用首部中的特定字段中。
29.根据权利要求25所述的确定分配目的地链路的方法,还包括当在MPLS网络中建立用于MPLS帧的标签转换路径时,把用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置通知给MPLS帧标签转换路径上的节点。
30.根据权利要求29所述的确定分配目的地链路的方法,还包括存储所通知的用于确定分配目的地链路的关键字值在MPLS首部的特定字段中的嵌入位置。
31.根据权利要求25所述的确定分配目的地链路的方法,还包括根据用于确定分配目的地链路的所抽出的关键字值和从MPLS首部的特定字段获得的值的连接值,在预先逻辑地捆绑为一个链路的多个物理链路中确定一个物理链路作为分配目的地链路。
全文摘要
MPLS网络系统中的第一边沿节点包括生成模块,通过把在被附加MPLS首部之前的转发对象帧的首部中包含的一条源识别信息和一条目的地识别信息作为输入值,生成用于确定分配目的地链路的关键字值,其中,该MPLS首部使得该帧能够基于MPLS协议在MPLS网络内被转发;嵌入模块,把由生成模块生成的关键字值嵌入到MPLS首部的特定字段中;以及发送模块,把包含被嵌入到其MPLS首部的特定字段中的关键字值的MPLS帧发送到MPLS网络。第二边沿节点包括抽出模块,从通过MPLS网络接收到的MPLS帧的MPLS首部中的特定字段抽出关键字值;以及确定模块,根据由所述抽出模块抽出的关键字值,在预先被逻辑地捆绑为一个链路的多个物理链路中确定一个物理链路作为分配目的地链路。
文档编号H04Q11/04GK1433195SQ0310061
公开日2003年7月30日 申请日期2003年1月17日 优先权日2002年1月18日
发明者久保田真, 鹤冈哲明 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1