具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
本发明的主要思想是:对于任一虚电路,本地服务提供商边缘设备(PE)建立与该虚电路的本地用户边缘设备(CE)的接入电路;同时,本地PE与连接该虚电路的远端CE的对端PE建立工作隧道和保护隧道,并在所述工作隧道和保护隧道上分别建立工作虚链路和保护虚链路;记录所述接入电路和所述工作虚链路以及保护虚链路的关联关系;对接入电路转发来的数据报文,根据所述关联关系,将数据报文从工作虚链路和保护虚链路转发。
下面结合图1和图2进行说明。
图1是本发明实施例向对端PE发送数据报文的方法流程图,包括以下步骤:
步骤101、本地PE接收数据报文。
这里,所述数据报文是本地CE发来的,本地PE接收到本地CE的数据报文后,可以利用标签栈实现数据报文在二层虚拟专用网络中的透明传输。
步骤102、本地PE解析转发数据报文的接入电路,查找与解析的接入电路关联的工作虚链路和保护虚链路。
在本步骤之前,本地PE已经预先与虚电路的本地CE建立了接入电路(可以通过已有方式实现,如该接入电路可以是物理链路或虚拟局域网VLAN),与连接该虚电路的远端CE的对端PE建立了工作隧道和保护隧道并在工作隧道和保护隧道上分别建立了工作虚链路和保护虚链路,记录了该接入电路和工作虚链路以及保护虚链路的关联关系,因此,本地PE接收到本地CE的数据报文后,可以解析得到转发该数据报文的接入电路;而且,根据记录的关联关系,可以查找到该接入电路关联的工作虚链路和保护虚链路。
接入电路与工作虚链路以及保护虚链路的关联关系,可以通过配置建立,例如,可以将接入电路、工作虚链路、保护虚链路在本地PE中对应的虚端口配置在同一虚拟转发实例(VFI)中,从而建立起接入电路、工作虚链路、保护虚链路的关联关系。
步骤103、本地PE根据解析的接入电路关联的虚电路标签和查找到的工作虚链路关联的隧道标签封装数据报文且由查找到的工作虚链路转发至所述对端PE,以及根据解析的接入电路关联的虚电路标签和查找到的保护虚链路关联的隧道标签封装数据报文且由查找到的保护虚链路转发到所述对端PE。
本地PE与虚电路的本地CE建立接入电路后,会为本地CE分配绑定了该接入电路的虚电路标签(假设该虚电路为VC1),并将VC1的虚电路标签通告给对端PE,用以标识本地PE与本地CE之间的接入电路连接。同样,对端PE为虚电路VC1的远端CE分配的虚电路标签并至少通告给本地PE,用以标识对端PE与远端CE之间的接入电路连接。
本地PE与对端PE建立工作隧道和保护隧道,基于工作隧道和保护隧道建立工作虚链路和保护虚链路,向对方分配对应于工作虚链路的入方向隧道标签和保护虚链路的入方向隧道标签。
即,本地PE通过工作虚链路向对端PE转发的数据报文的外层隧道标签是对端PE为工作虚链路所分配的入方向隧道标签,内层标签是标识对端PE为VC1的远程CE分配的虚电路标签;即,本地PE通过保护虚链路向对端PE转发的数据报文的外层隧道标签是对端PE为保护虚链路所分配的入方向隧道标签,内层标签是标识对端PE为VC1的远程CE分配的虚电路标签。
本步骤中,将接入电路关联的虚电路标签作为内层标签封装到数据报文中,根据接入电路查找到的工作虚链路后,将查找到的工作虚链路关联的隧道标签作为外层标签封装到数据报文中,然后由查找到的工作虚链路转发至对端PE;同时,将接入电路关联的虚电路标签作为内层标签封装到数据报文中,根据接入电路查找到的保护虚链路后,将查找到的保护虚链路关联的隧道标签作为外层标签封装到数据报文中,然后由查找到的保护虚链路转发至对端PE,从而实现了本端PE对报文的双发功能。
上述实施例中,通过在本地PE上记录接入电路和工作虚电路以及保护虚电路的关联关系,从而使得本地PE能够实现报文的双发功能。另外,本地PE还能够进一步实现报文的选收功能。
图2为本发明实施例选收对端PE的封装数据报文的方法流程图,包括以下步骤:
步骤201、本地PE接收封装数据报文。
这里,封装数据报文是对端PE通过工作虚链路和保护虚链路转发的。对端PE亦具有图1a所示本发明实施例中本地PE的报文双发功能。
步骤202、本地PE解封装包含关联于所述工作虚链路的隧道标签的封装数据报文,将数据报文由所述虚电路标签关联的接入电路转发到本地CE,以及丢弃包含关联于所述保护虚链路的隧道标签的封装数据报文。
上述本发明实施例中,还可以对工作虚链路和保护虚链路的连通性进行检测,确定所述工作虚链路以及所述保护虚链路的连通状态,用以在工作虚链路断开连接时,选收保护虚链路的封装数据报文,从而提高数据报文传输的可靠性。
对工作虚链路和保护虚链路的连通性检测,具体可以是在本地PE以及远端PE上运行OAM、APS等协议,并设置ACL规则将工作虚链路以及保护虚链路上接收到的OAM、APS等协议报文上送到CPU,CPU对上送的OAM、APS协议报文进行处理,确定工作虚链路和保护虚链路的连通性。
如果本地PE确定所述工作虚链路断开连接且所述保护虚链路连通,则选收经由保护虚链路转发来的封装数据报文。接收到封装数据报文后,解封装包含关联于所述保护虚链路的隧道标签的封装数据报文,将数据报文由所述虚电路标签关联的接入电路转发到本地CE。
另外,本地PE检测确定工作虚链路恢复连接后,如果保护虚链路连通,则为了减少链路切换引起的震荡,本地PE可以继续选收经由保护虚链路发来的封装数据报文,而丢弃经由工作虚链路发来的封装数据报文。
因此,所述本地PE确定所述工作虚链路恢复连接且所述保护虚链路连通,则丢弃包含关联于所述工作虚链路的隧道标签的封装数据报文,解封装包含关联于所述保护虚链路的隧道标签的封装数据报文,将数据报文由所述虚电路标签关联的接入电路转发到本地CE。
本地PE检测确定工作虚链路恢复连接后,如果保护虚链路断开连接,则需要重新选收经由工作虚链路发来的封装数据报文,用以保证通信不中断,提高通信的可靠性。
因此,所述本地PE确定所述工作虚链路恢复连接且所述保护虚链路断开连接,则解封装包含关联于工作虚链路的隧道标签的封装数据报文,将数据报文由所述虚电路标签关联的接入电路转发至本地CE。
下面结合图3对上述本发明实施例进行举例说明。
图3为本发明实施例二层虚拟专用网络的组网示意图,其中包括虚拟专用网VPN1的本地站点1的用户边缘设备CE1和远程站点2的CE2,服务提供商边缘设备PE1、PE2,以及连接PE1和PE2的骨干设备P1、P2,以及连接PE1和PE2的骨干设备P3、P4,在PE 1上接入CE1,在PE2上接入了CE2。这里,骨干设备只转发PE间的报文,对报文不做任何其他操作。
根据上述本发明实施例,PE1与VPN1的CE1建立接入电路AC1并为AC 1分配对应于虚电路VC1的虚电路标签,PE2与VPN1的CE2建立接入电路AC2并为AC2分配对应于虚电路VC1的虚电路标签。PE1与PE2相互通告分配的VC标签。PE1与PE2建立工作隧道(如图3中所示的PE1通过P1和P2连接到PE2的链路)和保护隧道(如图3中所示的PE 1通过P3和P4连接到PE2的链路),在所述工作隧道和保护隧道上分别建立工作虚链路以及保护虚链路,向对方分配关联于工作虚链路的入方向隧道标签和保护虚链路的入方向隧道标签。
在PE1上建立所述接入电路AC1与所述工作虚链路以及保护虚链路的关联关系,可以采用以下方式:修改接入电路AC1、工作虚链路、保护虚链路在PE1中对应的虚端口的属性,使各虚端口对应于第一VFI。为了能够将从接入电路AC1转发来的报文同时从工作虚链路,和保护虚链路发送出去,可以在第一VFI上禁止MAC地址学习,同时将接入电路AC1、工作虚链路、保护虚链路在PE1中对应的虚端口加入到第一VFI广播对应的IPMC表项中,从而使从接入电路AC1转发来的报文走广播流程,实现从工作虚链路,和保护虚链路同时发送的双发功能。这样,在PE1上建立了接入电路AC1、工作虚链路、保护虚链路的关联关系。另外,为了避免将从工作虚链路转发来的报文从保护虚链路发送,以及将从保护虚链路转发来的报文从工作虚链路发送,还需要在工作虚链路和保护虚链路在PE1中对应的虚端口上设置水平分割属性。这样,在PE1上建立了接入电路AC1与工作虚链路以及保护虚链路的关联关系。
同样,也可以在PE2上建立所述接入电路AC2与工作虚链路以及保护虚链路的关联关系:修改接入电路AC2、工作虚链路、保护虚链路在PE2中对应的虚端口的属性,使各虚端口对应于第二VFI;在第二VFI上禁止MAC地址学习,同时将接入电路AC2、工作虚链路、保护虚链路在PE2中对应的虚端口加入到第二VFI广播对应的IPMC表项中;在工作虚链路和保护虚链路在PE2中对应的虚端口上设置水平分割属性。这样,在PE2上建立了接入电路AC2与工作虚链路以及保护虚链路的关联关系。
在PE1上和PE2上分别建立了接入电路与工作虚链路以及保护虚链路的关联关系后,就可以实现报文的1+1保护倒换,以PE1向PE2发送报文为例:
PE1接收到从AC1转发来的数据报文时,根据该报文所属的VLAN和接收该报文的接口,可以确定对应的源虚端口为接入电路AC 1对应的虚端口,进而根据AC1对应的虚端口确定第一VFI;然后再根据第一VFI广播对应的IPMC表项,确定目的虚端口为工作虚链路以及保护虚链路对应的虚端口,进而确定工作虚链路以及保护虚链路;最后,将接入电路AC1关联的虚电路标签VC2(也即PE2为CE2分配的绑定了接入电路AC2的虚电路标签)封装为该数据报文的内层标签,将工作虚链路关联的隧道标签(也即PE2为PE1分配的关联于工作虚链路的入方向隧道标签)封装为该数据报文的外层标签,并将该封装的数据报文从工作虚链路发送;同时,将接入电路AC1关联的虚电路标签VC2封装为该数据报文的内层标签,将保护虚链路关联的隧道标签(也即PE2为PE1分配的关联于保护虚链路的入方向隧道标签)封装为该数据报文的外层标签,并将该封装的数据报文从保护虚链路发送。这样,PE1实现了报文的双发。
PE2接收到包含关联于工作虚链路的隧道标签的封装数据报文后,解封装该数据报文,并根据解封装得到的内层标签VC2确定对应的第二VFI;根据第二VFI广播对应的IPMC表项,确定目的虚端口为接入电路AC2以及保护虚链路在PE2中对应的虚端口,但是,由于在工作虚链路和保护虚链路对应的虚端口上设置了水平分割属性,因此,只会将该数据报文由接入电路AC2转发到CE2。另外,PE2还将接收到的包含关联于所述保护虚链路的隧道标签的封装数据报文丢弃,实现报文的选收。
需要说明的是,按照现有的VLL业务流程,PE2接收到封装数据报文后,根据接封装得到的内层标签VC2可以直接确定源虚端口SVP,根据源虚端口可以直接确定目的虚端口,并将报文从目的虚端口对应的接口发送。然而,在本实施例中,为了能够实现报文的双发,修改了将工作虚链路、保护虚链路以及接入电路AC2在PE2中对应的虚端口的属性,将各虚端口配置在了同一VFI中,因此,PE2不再按照VLL业务流程处理报文,而是按照VPLS业务流程处理报文,因而,根据内层标签VC2可以直接确定第二VFI,而不是目的虚端口。
以上对PE1向PE2发送报文的过程进行了详细说明,PE2向PE1发送报文的原理与上述PE1向PE2发送报文的原理相同,不再赘述。
另外,还可以利用OAM协议、APS协议等对工作虚链路和保护虚链路进行连通性检测,以便在工作虚链路和保护虚链路渐进行保护倒换,提高通信可靠性。
在工作虚链路和保护虚链路均连通时,PE2选收工作虚链路转发来的封装数据报文,为了能够选收工作虚链路上的封装数据报文,可以将MPLS标签映射表中工作虚链路关联的隧道标签的操作设置为弹出(pop)。而当检测到工作虚链路断开连接且保护虚链路连通时,PE2需要选收保护虚链路转发来的封装数据报文,此时,可以将MPLS标签映射表中保护虚链路关联的隧道标签的操作设置为pop。另外,为了避免链路切换带来的震荡,当工作虚链路恢复连接且保护虚链路连通时,PE2可以继续选收保护虚链路转发来的封装数据报文,而丢弃工作虚链路转发来的封装数据报文,直到保护虚链路断开连接,再恢复选收工作虚链路转发来的封装数据报文。
在实际应用中,当可以使用多种方法丢弃工作虚链路或保护虚链路转发来的封装数据报文,例如,可以采用将报文转发到黑洞端口的方法。以丢弃保护虚链路转发来的封装数据报文为例,具体的设置方法为:将MPLS标签映射表中保护虚链路关联的隧道标签的操作修改为交换(Swap)并指向黑洞丢弃。这样,当接收到携带保护虚链路关联的隧道标签的封装数据报文时,可以根据预先设定的Swap动作,将该接收到的封装数据报文转发到黑洞端口。
以上对本发明方法实施例进行了详细说明,本发明还提供了一种服务提供商边缘设备。
参见图4,图4是本发明实施例服务提供商边缘设备的结构示意图,该服务提供商边缘设备包括:连接单元401、接收单元402、转发控制单元403;其中,
连接单元401,用于与任一虚电路的本地CE建立接入电路,与连接该虚电路的远程CE的对端PE建立工作隧道和保护隧道并在工作隧道以及保护隧道上分别建立工作虚链路以及保护虚链路,记录建立的接入电路与建立的工作虚链路以及保护虚链路的关联关系;
接收单元402,用于接收数据报文;
转发控制单元403,用于解析转发数据报文的接入电路,查找与解析的接入电路关联的工作虚链路和保护虚链路,根据解析的接入电路关联的虚电路标签以及查找到的工作虚链路关联的隧道标签封装数据报文且由查找到的工作虚链路转发至所述对端PE,以及根据解析的接入电路关联的虚电路标签以及查找到的保护虚链路关联的隧道标签封装数据报文且由查找到的保护虚链路转发到所述对端PE。
所述接收单元402,进一步用于接收封装数据报文;
所述转发控制单元403,进一步用于解封装包含关联于所述工作虚链路的隧道标签的封装数据报文,将数据报文由所述虚电路标签关联的接入电路转发到本地CE,以及丢弃包含关联于所述保护虚链路的隧道标签的封装数据报文。
较佳地,
所述服务提供商边缘设备还包括:检测单元403;
所述检测单元403,用于检测所述工作虚链路以及所述保护虚链路的连通状态,将所述工作虚链路或所述保护虚链路断开连接的状态则通知所述转发控制单元403;
所述转发控制单元403,进一步用于确定所述工作虚链路断开连接且所述保护虚链路连通,则解封装包含关联于所述保护虚链路的隧道标签的封装数据报文,将数据报文由所述虚电路标签关联的接入电路转发到本地CE。
所述检测单元403,进一步用于将所述工作虚链路或所述保护虚链路恢复连接的状态通知所述转发控制单元403;
所述转发控制单元403,进一步用于确定所述工作虚链路恢复连接且所述保护虚链路连通,则丢弃包含关联于所述工作虚链路的隧道标签的封装数据报文,解封装包含关联于所述保护虚链路的隧道标签的封装数据报文,将数据报文由所述虚电路标签关联的接入电路转发到本地CE。
所述转发控制单元403,进一步用于确定所述工作虚链路恢复连接且所述保护虚链路断开连接,则解封装包含关联于工作虚链路的隧道标签的封装数据报文,将数据报文由所述虚电路标签关联的接入电路转发至本地CE。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。