一种实现异构网络互联的方法和设备
技术领域
本发明涉及通信技术领域,特别是涉及一种实现异构网络互联的方法和设备。
背景技术
MPLSL2VPN是基于MPLS(MultiprotocolLabelSwitching,多协议标签交换)的二层VPN(VirtualPrivateNetwork,虚拟专用网络)技术,它利用MPLS技术在不同用户节点间建立二层连接。
采用MPLSL2VPN技术,运营商可以在统一的MPLS或IP骨干网上透明传输不同数据链路层(包括ATM(AsynchronousTransferMode,异步传输模式)、FR(FrameRelay,帧中继)、VLAN(虚拟局域网)、Ethernet(以太网)、PPP(PointtoPointProtocol,点对点协议)等)的二层数据,使得数据链路层业务可以跨越MPLS或IP骨干网传递。从用户的角度来看,MPLS或IP骨干网是一个二层交换网络,用户感知不到MPLS或IP骨干网的存在。以Ethernet类型的用户网络为例,通过MPLSL2VPN连接的Ethernet节点感知不到MPLS或IP骨干网的存在,就好像节点之间直接通过以太网链路相连。
如图1为一种简单的L2VPN组网示意图,假设CE1和CE2是用户网络的边缘设备,PE1,P和PE2服务提供商网络的设备。CE1和CE2分别通过AC1和AC2接入到PE1和PE2。在PE1和PE2之间建立一条公网隧道,公网隧道可以是GRE隧道,普通LSP隧道或其它类型的隧道。然后,再在PE1和PE2之间建立PW,两端分别与AC1和AC2相连。这样L2VPN就建立好了,用户网络Site1和Site2就连通了。
现有技术中,CE接入PE的链路类型多种多样,如ATM、FR、HDLC、Ethernet、PPP等,每一种链路类型对应的链路上所传输的报文需要按照的链路封装类型进行封装。不同接入链路类型的CE之间可以通过MPLSL2VPN网络互相通信,即MPLSL2VPN可以连接异构的网络。MPLSL2VPN实现异构网络互联的方式有两种:IPinterworking和Ethernetinterworking。
IPinterworking方式
假设CE1与PE1之间的链路封装类型为Ethernet、CE2与PE2之间的链路封装类型为PPP,则现有技术中基于IPinterworking实现异构网络互联的方式包括以下步骤:
a1,CE1将目的地址为CE2的以太网数据帧发送给PE1。
a2,PE1判断接收到的以太网数据帧内封装的是否为IP报文。若是,则删除以太网头、添加PW标签和Tunnel标签后,将报文转发给P。否则,丢弃该报文。
a3,P根据外层的Tunnel标签将报文转发给PE2。
a4,PE2删除Tunnel标签和PW标签,为报文添加PPP头(PE2与CE2之间的链路封装类型为PPP)后,将PPP数据帧发送给CE2。
Ethernetinterworking方式
Ethernetinterworking和IPinterworking类似,但要求公网隧道中传输的是Ethernet报文,可以支持FrameRelay,ATMAAL5,Ethernet,以太虚拟局域网EthernetVLAN各封装类型之间的互通。
假设CE1与PE1之间的链路封装类型为ATMAAL5、CE2与PE2之间的链路封装类型为FrameRelay,则现有技术中基于Ethernetinterworking实现异构网络互联的方式包括以下步骤:
b1,CE1将目的地址为CE2的以ATMAAL5数据帧发送给PE1。
b2,PE1判断接收到的ATMAAL5数据帧内层封装的是否为以太网数据帧。若是,则删除ATMAAL5封装、添加PW标签和Tunnel标签后,将报文转发给P。否则,丢弃该报文。
b3,P根据外层的Tunnel标签将报文转发给PE2。
b4,删除Tunnel标签和PW标签,为报文添加FrameRelay封装后,将FrameRelay数据帧发送给CE2。
在实现本发明的过程中,本申请发明人发现现有技术中实现异构网络互联的方法至少存在以下缺陷:进行异构互联的两端的PE需要同时支持IPinterworking(PWtype0x000B)或Ethernetinterworking(PWtype0x0005)中的一种,如果有一端设备不支持interworking,则不能实现异构MPLSL2VPN的互联,即现有技术提供的实现异构互联的方法不能兼容不支持interworking功能的PE设备。
发明内容
本发明公开了一种实现异构网络互联的方法和设备,应用于MPLSL2VPN中,能够在其中一端PE不支持interworking时,仍能实现MPLSL2VPN的异构互联,实现了对现有技术中不能支持interworking的PE的兼容。
为了达到上述目的,本发明实施例提供一种实现异构网络互联的方法,应用于基于多协议标签交换的二层虚拟专用网络MPLSL2VPN中,所述MPLSL2VPN包含第一运营商边缘PE设备、第一用户边缘CE设备、第二PE、第二CE,所述第一CE与所述第一PE相连,所述第二CE与所述第二PE相连,所述第一CE与所述第一PE之间的链路封装类型为第一二层封装类型,所述第二CE与所述第二PE之间的链路封装类型为第二二层封装类型,所述方法包括:
当所述第一PE接收到所述第一CE发送给所述第二CE的第一报文时,删除所述第一报文中携带的第一二层封装类型的二层封装,根据获取的第二CE与第二PE之间的链路封装信息在所述第一报文中添加第二二层封装类型的二层封装并发送给所述第二PE;
当所述第一PE接收到所述第二CE发送给所述第一CE的第二报文时,删除所述第二报文中携带的第二二层封装类型的二层封装,根据自身与第一CE之间的链路封装信息在所述第二报文中添加第一二层封装类型的二层封装并发送给所述第一CE。
本发明实施例还提供了一种实现异构网络互联的设备,作为第一运营商边缘PE设备应用于基于多协议标签交换的二层虚拟专用网络MPLSL2VPN中,所述MPLSL2VPN包含第一运营商边缘PE设备、第一用户边缘CE设备、第二PE、第二CE,所述第一CE与所述第一PE相连,所述第二CE与所述第二PE相连,所述第一CE与所述第一PE之间的链路封装类型为第一二层封装类型,所述第二CE与所述第二PE之间的链路封装类型为第二二层封装类型,其特征在于,所述第一PE包括:
第一处理模块,用于在所述第一PE接收到所述第一CE发送给所述第二CE的第一报文时,删除所述第一报文中携带的第一二层封装类型的二层封装,根据获取的第二CE与第二PE之间的链路封装信息在所述第一报文中添加第二二层封装类型的二层封装并发送给所述第二PE;
第二处理模块,用于在所述第一PE接收到所述第二CE发送给所述第一CE的第二报文时,删除所述第二报文中携带的第二二层封装类型的二层封装,根据自身与第一CE之间的链路封装信息在所述第二报文中添加第一二层封装类型的二层封装并发送给所述第一CE。
与现有技术相比,本发明实施例至少具有以下优点:通过使第一PE在接收到第一CE发送给所述第二CE的第一报文后,将第一报文的二层封装替换为第二二层封装类型的二层封装,使对端的第二PE设备能够在接收到所述第一报文后,无需再为所述第一报文添加二层封装。同时,由于使第一PE能够在接收到核心网发送的携带二层封装的第二报文时删除该第二报文的二层封装,对端的第二PE也无需在接收到第二CE发送给第一CE的报文时,删除其中的二层封装。从而能够在对端的第二PE不支持interworking时,仍能够实现第一CE与第二CE的二层异构互联。
附图说明
图1是现有技术中一种L2VPN组网示意图;
图2是本发明实施例提供的一种实现异构网络互联的方法的流程示意图;
图3是本发明实施例提供的一种实现异构网络互联的方法的流程示意图
图4是本发明实施例提供的一种实现异构网络互联的设备的结构示意图。
具体实施方式
现有技术中,实现异构网络互联的方法的主要问题在于:
对于异构网络两端的任一PE来说,为了能够将从核心网接收到的报文成功发送给相应的CE,必须根据自身与该CE之间的链路封装类型(本申请中的链路封装类型主要是指二层的封装类型)对该报文进行重新封装,即为该报文添加相应封装类型的二层封装,同时要求PE能够在接收到本端的CE发送给对端CE的报文后,将报文中的二层封装删除;这样,PE向核心网发送报文时或者将从核心网接收到的报文转发到CE时,都需要支持interworking功能。也就是说,为了实现L2VPN功能,报文接收端的PE和报文发送端的PE都需要支持interworking功能。而现有技术中,大量部署的在网PE设备并不支持interworking功能,这样为了实现异构网络的L2VPN,就需要重新部署能够支持interworking功能的PE,这样势必会造成资源的浪费。
针对现有技术中存在的问题,本发明实施例提供了一种实现异构网络互联的方法和设备,通过对其中一端的PE(比如本端PE)设备的interworking功能进行扩展,使其在将报文通过核心网发送给对端PE时,将报文中携带的二层封装删除的同时,还根据对端PE与目的CE之间的链路封装类型重新在报文中添加二层封装并添加到报文中,这样当对端PE接收到该报文后,能够在删除相应的隧道标签和虚链接标识后,直接发送给相应的CE,不需要对端再为该报文添加二层封装;同时,使本端PE在接收到对端发送的报文并删除了相应的隧道标签和虚链接标识后,删除该报文的外层封装中的二层封装,并根据自身与该报文的目的CE之间的链路封装类型重新为报文添加二层封装,这样,对端PE在发送该数据报文时,并不需要删除相应的二层封装;则对于对端PE来说也就不需要为了支持二层封装的增删而必须支持interworking功能,从而能够在兼容不支持interworking功能的PE的情况下,实现异构网络的L2VPN的互联。
需要指出的是,本发明实施例中所涉及的二层封装和现有技术中异构网络的L2VPN中PE与CE之间进行数据传输时所采用的二层封装一致,均为相应报文的外层封装的二层封装。
本发明实施例一提供了一种实现异构网络互联的方法,应用于MPLSL2VPN中,该MPLSL2VPN包含第一运营商边缘PE设备、第一用户边缘CE设备、第二PE、第二CE,第一CE与第一PE相连,第二CE与第二PE相连,第一CE与第一PE之间的链路封装类型为第一二层封装类型,第二CE与第二PE之间的链路封装类型为第二二层封装类型,该方法包括:
当第一PE接收到第一CE发送给第二CE的第一报文时,删除第一报文中携带的第一二层封装类型的二层封装,根据获取的第二CE与第二PE之间的链路封装信息在第一报文中添加第二二层封装类型的二层封装并发送给第二PE;
当第一PE接收到第二CE发送给第一CE的第二报文时,删除第二报文中携带的第二二层封装类型的二层封装,根据自身与第一CE之间的链路封装信息在第二报文中添加第一二层封装类型的二层封装并发送给第一CE。
进一步的,第一PE获取第二CE与第二PE之间的链路封装信息,具体包括:
第一PE需要获取第二CE与第二PE之间的链路封装类型(第二二层封装类型)标识以及添加第二二层封装类型的二层封装所需要的MAC地址、MAC地址和VLANTAG、PVC或DLCI信息,具体的:如果获取到的第二二层封装类型为Ethernet封装,则第一PE需要获取第一报文的目的MAC地址(即第二CE的MAC地址)。当获取到的第二二层封装类型为EthernetVLAN封装时,第一PE除了需要获取第一报文的目的MAC地址(即第二CE的MAC地址)外,还需要获取该目的CE所在的虚拟局域网标识VLANID。当获取到的第二二层封装类型为ATMAAL5时,第一PE需要获取第二CE对应的永久虚电路PVC信息。当获取到的第二二层封装类型为FR封装时,第一PE需要获取第二CE对应的数据链路连接标识符DLCI信息。
第一PE根据第二CE的MAC地址、MAC地址及VLANID、PVC、DLCI信息为第一报文添加对应的二层封装的过程与现有技术中网络设备添加二层封装的过程一致,在此不再赘述。
实际应用中,第一PE可以通过如下方式获取第二二层封装类型信息以及MAC地址、MAC地址及VLANID、PVC或DLCI信息:根据对端的链路封装类型有选择的在第一PE上进行预先配置,或者使第一PE向第二PE发送询问信息,并在接收到第二PE返回的相应信息后存储相应的信息。
相应的,为第二报文添加第一二层封装类型的二层封装时,也需要相应的获取第一CE的MAC地址、MAC地址及VLANID、PVC或DLCI信息,该过程与上述获取第二CE的相应信息的过程一致,在此不再赘述。
进一步的,第一PE在第一报文中添加第二二层类型的二层封装后,在将该第一报文发送到核心网之前,还需要在该报文中添加相应的Tunnellabel和PWLabel,核心网中的转发设备根据Tunnellabel将第一报文转发到第二PE上,第二PE根据PWLabel将该第一报文发送到第二CE上。
相应的,第一PE删除第二报文中携带的第二二层封装类型的二层封装之前,还需要删除第二报文中携带的Tunnellabel和PWLabel。
进一步的,本发明实施例中还也可以兼容支持interworking的PE实现异构网络的L2VPN的互联,具体的:在第一PE为第一报文添加第二二层封装类型的二层封装之前,确定对端的第二PE是否支持interworking,并确定对端支持的interworking与自身支持的interworking是否为同一种类型,如果是,则按照现有技术中的处理,在删除第一报文中携带的第一二层封装类型的二层封装并添加相应的Tunnellabel和PWLabel后直接发送给第二PE,如果对端的第二PE不支持interworking,或者支持的interworking类型与自身支持的interworking类型不一致(比如自身支持Ethernetinterworking,对端的第二PE支持的时IPinterworking),则按照本发明实施例提供的流程,为第一报文添加第二二层封装类型的二层封装;相应的,第一PE在从核心网接收到第二CE发送给第一CE的第二报文后,首先判断第二报文中是否携带了二层封装,如果是,则删除二层封装,并为第二报文添加第一二层封装类型的二层封装;如果否,则说明第二PE已经删除了该报文的二层封装,则直接添加第一二层封装类型的二层封装并发送给第一CE。
下面结合通过两个实施例分别对本发明实施例一中第一PE在接收到第一CE发送给第二CE的报文后的处理流程和第一PE在从核心网接收到第二CE发送给第一CE的报文后的处理流程进行详细说明。为了方便说明,假设本发明实施例二和三中的异构的L2VPN中,PE1与CE1之间的链路封装类型为ATMAAL5,PE2与CE2之间的链路封装类型为Ethernet,PE1上预先配置并存储了CE2的MAC地址以及CE2与PE2之间的链路封装类型Ethernet,并假设PE2不支持interworking功能,此时需要配置PE1使能相应的interworking扩展功能。在此基础上,PE1与PE2之间进行PW协商时,PE1会在向PE发送的协商报文中将自身与CE1之间的链路封装类型设为Ethernet(为了能够建立能够实现异构网络的互联,需要使其中的一端PE比如PE1将自身与CE1之间的链路封装类型伪装成PE2与CE2的链路类型),由此建立的PW的类型为Ethernet。
如图2所示,PE1在接收到CE1发送给CE2的报文后,本发明实施例二提供实现异构互联的方法流程可包括如下步骤:
步骤201,PE1删除报文中携带的ATMAAL5类型的报文头,之后转向步骤202。
本步骤与现有技术中没有进行interworking功能扩展的PE删除报文头的过程一致,在此不再赘述。
步骤202,PE1确定该报文的目的地址为CE2,之后转向步骤203。
由于在实际应用中CE1与CE2之间都是点对点通信,在进行相应的点对点配置时,会在PE1和PE2上配置CE1与CE2之间的转发路径,因此,PE1在接收到CE1发送的报文后,能够根据接收报文的端口直接确定报文是来自CE1,且是需要经由PE2发往CE2的。
步骤203,PE1在报文中添加Ethernet报文头,该Ethernet报文头中携带的源地址为PE1的MAC地址、目的地址为CE2的MAC地址,之后转向步骤204。
本步骤中,由于已建立的PW类型为Ethernet,对于PE1来说,会在接收到CE1发送的报文后,根据已建立的PW的类型为报文添加Ethernet报文头。
需要指出的是,如果在PE1上没有预先配置CE2的MAC地址以及CE2与PE2之间的链路封装类型,则可以使PE1在接收到CE1发送的报文后,向PE2发送询问信息,请求PE2返回CE2与PE2之间的链路封装类型(Ethernet)的标识以及添加Ethernet报文头所需要的相关信息(CE2的MAC地址)。
该过程中添加报文头的处理与现有技术添加Ethernet报文头的方式一致,在此不再赘述。
步骤204,PE1在报文中为该报文添加Tunnellabel和PWLabel,并发送给核心网中的转发设备P,之后转向步骤205。
步骤205,核心网内的转发设备P根据Tunnellabel将该报文发送到PE2上,之后转向步骤206。
步骤204和205中的转发设备P可以是一台转发设备,也可以是多台转发设备。
步骤206,PE2根据PWLabel确定该报文的目的地址为CE2,并删除该报文的Tunnellabel和PWLabel标签,之后转向步骤207。
步骤207,PE2将该报文发送给CE2,之后转向步骤208。
步骤208,CE2根据报文的二层封装中携带的MAC地址确定该报文的目的地址为自身设备,删除报文的二层封装,并进行相应的处理。
通过上述步骤可以看出,本发明实施例中对于PE2来说,在接收到报文后能够删除其中携带的Tunnellabel和PWLabel之后直接转发给CE2,并不需要为报文添加相应的二层封装,从而在上述报文转发过程中,也不需要PE2支持interworking功能。
相应的,当PE2接收到CE2发送给CE1的报文后,本发明实施例三提供实现异构互联的方法流程可如图3所示:
步骤301,PE2确定报文的目的地址为CE1后,为该报文添加相应的Tunnellabel和PWLabel,并发送给核心网的转发设备P,之后转向步骤302。
步骤302,核心网内的转发设备P根据Tunnellabel将该报文发送到PE1上,之后转向步骤303。
步骤301-302中,PE2接收的CE2发送的报文中,携带有Ethernet报文头,且由于PE2没有删除该报文头,则PE1接收到的报文仍会携带该Ethernet报文头。
步骤303,PE1根据PWlabel判断该报文的目的设备为CE1后,删除该报文中携带的Tunnellabel和PWLabel,并删除其中携带的Ethernet报文头,之后转向步骤304。
步骤304,PE1确定自身与CE1之间的链路封装类型为ATMAAL5,并确定CE1对应的PVC信息,之后转向步骤305。
步骤305,PE1在该报文中添加ATMAAL5报文头,该ATMAAL5报文头中携带的PVC信息为PE1与CE1之间的PVC信息,之后转向步骤306。
步骤306,PE1将该报文发送给CE1,之后转向步骤307。
步骤307,CE1根据ATMAAL5报文头携带的PVC信息确定该报文的目的设备为自身,则删除该ATMAAL5报文头并进行相应的处理。
通过上述步骤可以看出,对于PE2设备,在接收到CE2发送的报文后,并不需要删除报文中的Ethernet报文头,而是直接在报文中添加相应的Tunnellabel和PWlabel后发送给PE1。本实施例中,PE2也不需要删除报文中的Ethernet报文头,也不需要支持相应的interworking功能。
综合上述实施例二和三可以看出,本发明实施例中,在使其中的一个PE(PE1)使能了扩展的interworking功能后,就能使其与不支持interworking功能的PE(PE2)之间实现异构L2VPN的互联。
基于与上述方法同样的发明构思,本发明实施例还提供了一种实现异构网络互联的设备,作为第一运营商边缘PE设备应用于基于多协议标签交换的二层虚拟专用网络MPLSL2VPN中,MPLSL2VPN包含第一运营商边缘PE设备、第一用户边缘CE设备、第二PE、第二CE,第一CE与第一PE相连,第二CE与第二PE相连,第一CE与第一PE之间的链路封装类型为第一二层封装类型,第二CE与第二PE之间的链路封装类型为第二二层封装类型,如图4所示,第一PE包括:
第一处理模块401,用于在第一PE接收到第一CE发送给第二CE的第一报文时,删除第一报文中携带的第一二层封装类型的二层封装,根据获取的第二CE与第二PE之间的链路封装信息在第一报文中添加第二二层封装类型的二层封装并发送给第二PE;
第二处理模块402,用于在第一PE接收到第二CE发送给第一CE的第二报文时,删除第二报文中携带的第二二层封装类型的二层封装,根据自身与第一CE之间的链路封装信息在第二报文中添加第一二层封装类型的二层封装并发送给第一CE。
优选的,当第一二层封装类型为以太网Ethernet封装时,第一PE与第一CE之间的链路封装信息具体包括:Ethernet类型标识和第一CE的MAC地址;当第一二层封装类型为EthernetVLAN封装时,第一PE与第一CE之间的链路封装信息具体包括:EthernetVALN类型标识、第一CE的MAC地址以及第一CE对应的虚拟局域网标签VLANTAG信息;当第一二层封装类型为异步传输模式ATMAAL5封装时,第一PE与第一CE之间的链路封装信息具体包括:ATMAAL5类型标识以及第一PE与第一CE之间的永久虚电路PVC信息;当第一二层封装类型为帧中继FR封装时,第一PE与第一CE之间的链路封装信息具体包括:FR类型标识以及第一PE与第一CE之间的数据链路连接标识符DLCI信息;
当第二二层封装类型为以太网Ethernet封装时,第二PE与第二CE之间的链路封装信息具体包括:Ethernet类型标识和第二CE的MAC地址;当第二二层封装类型为EthernetVLAN封装时,第二PE与第二CE之间的链路封装信息具体包括:EthernetVALN类型标识、第二CE的MAC地址以及第二CE对应的虚拟局域网标签VLANTAG信息;当第二二层封装类型为异步传输模式ATMAAL5封装时,第二PE与第二CE之间的链路封装信息具体包括:ATMAAL5类型标识以及第二PE与第二CE之间之间的永久虚电路PVC信息;当第二二层封装类型为帧中继FR封装时,第二PE与第二CE之间的链路封装信息具体包括:FR类型标识以及第二PE与第二CE之间之间的数据链路连接标识符DLCI信息。
优选的,该第一PE还包括:
标签处理模块403,用于在将第一报文发送给第二PE之前,在第一报文中添加隧道标签Tunnellabel和虚链接标签PWLabel;还用于在删除第二报文中携带的第二二层封装类型的二层封装之前,删除第二报文中携带的Tunnellabel和PWLabel。
优选的,该第一PE还包括:
确定模块404,用于在根据获取的第二CE与第二PE之间的链路封装信息在第一报文中添加第二二层封装类型的二层封装并发送给第二PE之前确定第二PE是否支持interworking,还用于在第一PE删除第二报文中携带的第二二层封装类型的二层封装之前,确定第二报文中是否携带了第二二层封装类型的二层封装;
第一处理模块具体用于401,在第二PE不支持interworking时,执行添加第二二层封装类型的二层封装的步骤,在第二PE支持interworking时,删除第一报文中携带的第一二层封装类型的二层封装后直接发送给第二PE;
第二处理模块具体用于402,在第二报文中携带了第二二层封装类型的二层封装时,执行删除第二报文中携带的第二二层封装类型的二层封装的步骤;在第二报文中没有携带第二二层封装类型的二层封装时,直接执行添加第一二层封装类型的二层封装的步骤。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。