发明内容
本发明提供一种标签重标记的处理方法和设备,以利用分配MPLS标签的消息来实现标签重标记。
为了达到上述目的,本发明提供一种标签重标记的处理方法,应用于包括下游设备和上游设备的多协议标签交换MPLS网络中,该方法包括以下步骤:
当所述下游设备上具有标签重标记的配置时,所述下游设备通过所述标签重标记的配置获得所述上游设备对应的标签重标记的EXP值;
所述下游设备将所述EXP值添加到用于为所述上游设备分配MPLS标签的消息中,并将所述消息发送给所述上游设备;
所述上游设备从所述消息中获得所述EXP值,并利用所述EXP值进行标签重标记。
所述标签重标记的配置包括:
需要进行标签重标记的路由IP地址信息;
需要进行标签重标记的EXP值。
所述消息中还携带进行标签重标记的操作类型,该操作类型包括更新EXP值;所述上游设备利用所述EXP值进行标签重标记,具体包括:
当操作类型为更新EXP值时,所述上游设备将自身的MPLS标签中的EXP值重标记为所述EXP值。
所述消息中还携带进行标签重标记的操作类型,该操作类型包括删除EXP值;所述方法还包括:
当操作类型为删除EXP值时,所述上游设备将自身的MPLS标签中的EXP值重标记为默认值。
所述方法还包括:当所述下游设备上不具有标签重标记的配置,且所述下游设备不是所述MPLS网络中的出口路由器时,如果所述下游设备接收到用于为所述下游设备分配MPLS标签的消息,且用于为所述下游设备分配MPLS标签的消息中携带EXP值以及EXP值传输的距离,则所述下游设备将该距离减1;
如果处理结果大于等于1,所述下游设备将用于为所述下游设备分配MPLS标签的消息中携带的EXP值添加到用于为所述上游设备分配MPLS标签的消息中,并将用于为所述上游设备分配MPLS标签的消息发送给所述上游设备。
在用于为所述上游设备分配MPLS标签的消息中,还携带有EXP值传输的距离,所述EXP值传输的距离是:为所述下游设备分配MPLS标签的消息中携带的EXP值传输的距离减1的结果。
用于分配MPLS标签的协议包括:标签分发协议LDP;用于分配MPLS标签的消息包括:LDP的标签映射消息。
一种标签重标记的处理设备,应用于包括下游设备和上游设备的多协议标签交换MPLS网络中,该处理设备作为所述MPLS网络的下游设备或者上游设备,且该处理设备包括:通信模块和处理模块;其中:
当处理设备作为下游设备时,
所述处理模块,用于当自身具有标签重标记的配置时,通过所述标签重标记的配置获得上游设备对应的标签重标记的EXP值;将所述EXP值添加到用于为上游设备分配MPLS标签的消息中;
所述通信模块,用于将所述用于为上游设备分配MPLS标签的消息发送给上游设备;
当处理设备作为上游设备时,
所述通信模块,用于接收来自下游设备的用于为上游设备分配MPLS标签的消息;
所述处理模块,用于从所述用于为上游设备分配MPLS标签的消息中获得EXP值,并利用获得的所述EXP值进行标签重标记。
所述标签重标记的配置包括:
需要进行标签重标记的路由IP地址信息;
需要进行标签重标记的EXP值。
在用于为上游设备分配MPLS标签的消息中,还携带进行标签重标记的操作类型,该操作类型包括更新EXP值;当处理设备作为上游设备时,
所述处理模块,具体用于当操作类型为更新EXP值时,将自身的MPLS标签中的EXP值重标记为用于为上游设备分配MPLS标签的消息中携带的EXP值。
在用于为上游设备分配MPLS标签的消息中,还携带进行标签重标记的操作类型,该操作类型包括删除EXP值;当处理设备作为上游设备时,
所述处理模块,还用于当操作类型为删除EXP值时,将自身的MPLS标签中的EXP值重标记为默认值。
当处理设备作为下游设备时,
所述处理模块,还用于当自身不具有标签重标记的配置,且自身不是所述MPLS网络中的出口路由器时,如果接收到用于为自身分配MPLS标签的消息,且用于为自身分配MPLS标签的消息中携带EXP值以及EXP值传输的距离,则将该距离减1;
如果处理结果大于等于1,则将用于为自身分配MPLS标签的消息中携带的EXP值添加到用于为上游设备分配MPLS标签的消息中。
在用于为上游设备分配MPLS标签的消息中,还携带有EXP值传输的距离,所述EXP值传输的距离是:为自身分配MPLS标签的消息中携带的EXP值传输的距离减1的结果。
用于分配MPLS标签的协议包括:标签分发协议LDP;用于分配MPLS标签的消息包括:LDP的标签映射消息。
与现有技术相比,本发明至少具有以下优点:
通过利用分配MPLS标签的消息来实现标签重标记,使得MPLSQOS业务中的标签重标记不再需要进行QOS类和流行为的配置,也不需要与接口进行绑定,简化了配置;而且可使得MPLSQOS业务中的标签重标记与分发标签的过程结合起来,实现了半自动化,使MPLS标签重标记不再需要在接口上都使能QOS策略。
具体实施方式
本发明提出一种标签重标记的处理方法,该方法应用于包括下游设备和上游设备的MPLS网络中,如图2所示,为本发明应用场景示意图。在MPLS域中,包括PE1、PE2和PE3,该PE1为MPLS域的入口路由器、PE2为MPLS域的交换路由器、PE3为MPLS域的出口路由器;实际应用中,交换路由器并不局限于PE2这一台路由器,可以包含多个交换路由器。
从入口路由器到出口路由器的方向上,依次为上游设备和下游设备,例如,入口路由器PE1与交换路由器PE2之间,PE1为上游设备,PE2为下游设备,交换路由器PE2与出口路由器PE3之间,PE2为上游设备,PE3为下游设备。
基于图2所示的组网情况,如图3所示,该方法包括以下步骤:
步骤301,在下游设备上实现标签重标记的配置。例如,在PE3和/或PE2上实现标签重标记的配置。
本发明中,该标签重标记的配置中至少包括:需要进行标签重标记的路由IP地址信息(如需要进行标签重标记的路由IP地址、以及该IP地址的掩码);需要进行标签重标记的EXP值。
此外,该标签重标记的配置中还可以包括:EXP值传输的距离(即向上游设置EXP值的最远路径),2台相邻设备之间的距离为1。
基于上述情况,本发明中提供的一种实现标签重标记的配置的方式为:通过采用如下命令实现标签重标记的配置。
mplsfecdest-addrmask-lengthexpexp_value[distancenum]
在上述的命令中,dest-addr:为需要进行标签重标记的路由IP地址;
mask-length:为IP地址的掩码;
exp:为需要进行标签重标记的EXP值;
num:为向上游设置EXP值的最远路径。
此外,需要注意的是,针对已经实现标签重标记的配置的设备,还可以通过以下命令取消标签重标记的配置。
undomplsfecdest-addrmask-length
步骤302,当下游设备上具有标签重标记的配置时,下游设备通过标签重标记的配置获得上游设备对应的标签重标记的EXP值。
其中,由于标签重标记的配置中包含有需要进行标签重标记的上游设备的IP地址信息以及需要进行标签重标记的EXP值,因此,下游设备可通过标签重标记的配置获得上游设备对应的标签重标记的EXP值。
例如,当PE3上具有标签重标记的配置时,PE3获得PE2对应的标签重标记的EXP值;和/或,当PE2上具有标签重标记的配置时,PE2获得PE1对应的标签重标记的EXP值。
步骤303,下游设备将EXP值添加到用于为上游设备分配MPLS标签的消息中,并将该消息发送给上游设备。
例如,PE3将EXP值添加到用于为PE2分配MPLS标签的消息中,并将消息发送给PE2;PE2将EXP值添加到用于为PE1分配MPLS标签的消息中,并将消息发送给PE1。
步骤304,上游设备从消息中获得EXP值,并利用EXP值进行标签重标记。例如,PE2利用来自PE3的EXP值进行标签重标记、PE1利用来自PE2的EXP值进行标签重标记。
本发明中,在用于为上游设备分配MPLS标签的消息中,还可以携带进行标签重标记的操作类型,该操作类型包括更新EXP值(该更新EXP值包括添加EXP值的操作类型)和删除EXP值;
当操作类型为更新EXP值时,上游设备利用EXP值进行标签重标记具体为:上游设备将自身的MPLS标签中的EXP值重标记为消息中携带的EXP值;当操作类型为删除EXP值时,上游设备直接将自身的MPLS标签中的EXP值重标记为默认值。
此外,需要说明的是,对于下游设备来讲,当下游设备上不具有标签重标记的配置,且下游设备不是MPLS网络中的出口路由器时,如果下游设备接收到用于为自身分配MPLS标签的消息,且用于为自身分配MPLS标签的消息中携带EXP值以及EXP值传输的距离,则下游设备将该距离减1;
之后,如果处理结果大于等于1,则下游设备将用于为自身分配MPLS标签的消息中携带的EXP值添加到用于为上游设备分配MPLS标签的消息中,并将用于为上游设备分配MPLS标签的消息发送给上游设备。
进一步的,在用于为上游设备分配MPLS标签的消息中,还携带有EXP值传输的距离,EXP值传输的距离是:为下游设备分配MPLS标签的消息中携带的EXP值传输的距离减1的结果。
以上述应用场景为例,如果PE3上不具有标签重标记的配置,由于PE3是MPLS网络中的出口路由器,则不采用本发明提供的技术方案进行处理。
如果PE2上不具有标签重标记的配置,由于PE2不是MPLS网络中的出口路由器,则当PE2接收到用于为自身分配MPLS标签的消息(该过程为PE3经过上述步骤301-步骤303的处理后,发送给PE2的),且消息中携带EXP值以及EXP值传输的距离,则PE2将该距离减1;如果处理结果大于等于1,则PE2获知需要继续向上游的PE1通知EXP值;因此,PE2将来自PE3的消息中携带的EXP值添加到用于为PE1分配MPLS标签的消息中,并将用于为PE1分配MPLS标签的消息发送给PE1。
后续处理与上述步骤304的处理过程类似,在此不再赘述。
需要说明的是,本发明中,用于分配MPLS标签的协议包括但不限于:LDP(LabelDistributionProtocol,标签分发协议);用于分配MPLS标签的消息包括:基于LDP的标签映射(LABELMAPPING)消息。
以下结合基于LDP的LABELMAPPING消息对本发明进行进一步说明。
在MPLS域中进行标签重标记的过程中,MPLS域中标签分发使用的协议是LDP协议,本发明中,在LDP的LABELMAPPING消息中加入一个嵌套的EXPparameter(参数),该EXPparameter可包含3个字节,分别为:
(1)EXPVALUE(值),即为EXP的取值(取值范围为0到7),可为1个字节。
(2)EXPOPERATION(操作),即为进行标签重标记的操作类型,包括更新和删除(如取值为0时表示操作类型为更新,取值为1时表示操作类型为删除),可为1个字节。
(3)EXPDISTANCE(距离),即为从本台设备起向自身的上游设置EXP值的距离,可为1个字节。
需要说明的是,上述字节数、以及取值可以根据实际情况进行调整。
综上所述,本发明中,可采用该嵌套的EXPparameter来实现标签重标记的过程,如果在本台设备上具有标签重标记的配置,则会触发LDP的LABELMAPPING消息的发送,该LABELMAPPING消息的FECElements中会嵌套一个EXPparameter的字段,包含EXP的3个字节的内容。
基于图2所示的应用场景以及LABELMAPPING消息,下面结合一个例子进行说明。
一条路由(如1.1.1.1的路由)进入MPLS域,PE3会首先判断自身是否具有标签重标记的配置,如果没有,则走正常的LDP分发标签的过程,该过程本发明中不再赘述;如果有,则在LDP分发标签的过程中加入一个设置EXP值的过程,具体过程包括:
1、根据标签重标记的配置获取设置EXP值的相关参数,包括三个参数:
a、EXP值的大小(在添加或者更新EXP值时需要,在删除EXP值时,将EXP值设置为默认值0);
b、对EXP值的操作类型,包括更新和删除(更新操作包括添加这个操作动作);
c、考虑到在MPLS域内并不是所有的设备均需要进行流量控制,因此需要考虑到进行EXP值的跳数,该跳数的1跳的大小定义为:PE设备开始向上游推一次标签的距离,例如,PE3到PE2的跳数为1,PE3到PE1的跳数为2。
2、在获得参数之后,将参数作为一个嵌套的字段置于LABELMapping消息的FECElement中,然后发往上游。
3、在上游设备收到一个LABELMapping消息后,进行EXPElement字段的查询,并进行EXP值跳数的判断,如果EXP值跳数-1>=0,则说明需要进行EXP值的相关操作;之后,进行EXP值的操作类型的判断,如果是更新操作,则读取EXP值,将该EXP值与MPLS标签进行绑定,并触发本台设备继续发送携带有EXPElement字段的LABELMapping消息给上游设备;如果是删除操作,则需要将EXP值与MPLS标签的绑定删除。
综上所述,本发明中,在进行MPLS标签重标记时,不再依赖于在流量的入接口上绑定QOS策略,将标签重标记过程与LDP分配标签的过程有机的结合起来,在需要使用MPLSQOS业务时,在LDP进行分配标签的同时,即可以根据流量的目的FEC来进行标签的重标记。这样,无须在任何设备的流量入接口上绑定QOS策略来进行标签的重标记,且可以根据LDP由下游向上游发送标签的方案实现EXP值跟随标签的分发而进行半自动化的配置,大大减少了配置和修改EXP值的工作量。
基于与上述方法同样的发明构思,本发明还提出了一种标签重标记的处理设备,应用于包括下游设备和上游设备的多协议标签交换MPLS网络中,该处理设备作为所述MPLS网络的下游设备或者上游设备,如图4所示,该处理设备包括:通信模块11和处理模块12;其中:
当处理设备作为下游设备时,
所述处理模块12,用于当自身具有标签重标记的配置时,通过所述标签重标记的配置获得上游设备对应的标签重标记的EXP值;将所述EXP值添加到用于为上游设备分配MPLS标签的消息中;
所述通信模块11,用于将所述用于为上游设备分配MPLS标签的消息发送给上游设备;
当处理设备作为上游设备时,
所述通信模块11,用于接收来自下游设备的用于为上游设备分配MPLS标签的消息;
所述处理模块12,用于从所述用于为上游设备分配MPLS标签的消息中获得EXP值,并利用获得的所述EXP值进行标签重标记。
本发明中,所述标签重标记的配置包括:需要进行标签重标记的路由IP地址信息;需要进行标签重标记的EXP值。
在用于为上游设备分配MPLS标签的消息中,还携带进行标签重标记的操作类型,该操作类型包括更新EXP值;当处理设备作为上游设备时,
所述处理模块12,具体用于当操作类型为更新EXP值时,将自身的MPLS标签中的EXP值重标记为用于为上游设备分配MPLS标签的消息中携带的EXP值。
在用于为上游设备分配MPLS标签的消息中,还携带进行标签重标记的操作类型,该操作类型包括删除EXP值;当处理设备作为上游设备时,
所述处理模块12,还用于当操作类型为删除EXP值时,将自身的MPLS标签中的EXP值重标记为默认值。
当处理设备作为下游设备时,
所述处理模块12,还用于当自身不具有标签重标记的配置,且自身不是所述MPLS网络中的出口路由器时,如果接收到用于为自身分配MPLS标签的消息,且用于为自身分配MPLS标签的消息中携带EXP值以及EXP值传输的距离,则将该距离减1;
如果处理结果大于等于1,则将用于为自身分配MPLS标签的消息中携带的EXP值添加到用于为上游设备分配MPLS标签的消息中。
在用于为上游设备分配MPLS标签的消息中,还携带有EXP值传输的距离,所述EXP值传输的距离是:为自身分配MPLS标签的消息中携带的EXP值传输的距离减1的结果。
本发明中,用于分配MPLS标签的协议包括:标签分发协议LDP;用于分配MPLS标签的消息包括:LDP的标签映射消息。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。