一种报文转发方法及网络设备与流程

文档序号:16900804发布日期:2019-02-19 17:58阅读:243来源:国知局
一种报文转发方法及网络设备与流程

本发明涉及数据通信技术领域,具体而言,涉及一种报文转发方法及网络设备。



背景技术:

目前,ipv6协议尚未得到大规模的部署和商用,ip网络仍然以ipv4协议为主体,使用ipv4和ipv6的网络必然还会共存一段时期。在此过渡期间内会产生“ipv6孤岛”问题,即少量使用ipv6的网络被大量使用ipv4的网络所隔离,仿佛海面上的孤岛。目前解决“ipv6孤岛”问题的主要方式是使用隧道策略:所谓隧道,就是利用一种协议来传输另一种协议的数据技术,在隧道入口以一种协议形式来对另一种协议的报文进行封装和发送,在隧道出口对接收到的协议报文解封装并进行相应处理。

由于多协议标签交换(multi-protocollabelswitching,简称mpls)会在其他协议的报文前封装标签,因此其使用的标签交换路径(labelswitchedpath,简称lsp)天然具有隧道属性。目前已经实现了使用mplslsp连接ipv6孤岛的隧道过渡技术,但现有技术方案资源耗费较多。



技术实现要素:

有鉴于此,本发明实施例提供一种报文转发方法及网络设备,以实现在ipv6孤岛间通过隧道进行ipv6数据通信,并降低部署过程的难度以及资源消耗量。

为实现上述目的,本发明提供如下技术方案:

第一方面,本发明实施例提供一种报文转发方法,应用于源边缘标签交换路由器(labeledgerouter,简称ler),源ler与源ipv6孤岛通信连接,并通过支持mpls的ipv4骨干网与目的ler通信连接,目的ler与目的ipv6孤岛通信连接,方法包括:

接收源ipv6孤岛中的源设备向目的ipv6孤岛中的目的设备发送的ipv6报文;

从源ler的ipv6路由表中查询ipv6报文对应的路由出接口,其中,路由出接口被配置为骨干网中的多协议标签交换流量工程(mplstrafficengineering,简称mplste)隧道的隧道接口,mplste隧道的入口为源ler,出口为目的ler;

根据隧道接口确定将ipv6报文转发至mplste隧道中的下一跳标签交换路由器(labelswitchingrouter,简称lsr)时的实际出接口以及出标签;

在ipv6报文的头部之前依次压入ipv6显式空标签以及出标签;

将压入标签后的ipv6报文通过实际出接口转发至下一跳lsr。

在上述方法中,针对每个mplste隧道只需要分配一个标签,而在源ler和目的ler之间可以只建立一个mplste隧道,从而只需要消耗少量的标签资源就能够实现ipv6孤岛之间的ipv6数据通信,有利于减轻源ler的工作负担。同时,源ler上除基本的ipv4、ipv6、mpls协议外,无需部署额外的协议以支持ipv6孤岛之间的ipv6数据通信,部署难度和部署工作量均较小。此外,上述方法所有的改进点都集中于源ler上,mplste隧道的下游设备无需作任何改动,系统升级难度小,升级成本低,有利于该方法的推广普及,实现ipv4协议向ipv6协议的顺利过渡。

上述步骤可以在源ler的转发平面中实现。

在第一方面的一种可能的实现方式中,根据隧道接口确定将ipv6报文转发至mplste隧道中的下一跳lsr时的实际出接口以及出标签,包括:

从源ler的转发等价类(forwardingequivalenceclass,简称fec)到下一跳标签转发项(nexthoplabelforwardingentry,简称nhlfe)的映射表(fectonhlfe,简称ftn)中,查找到fec与隧道接口匹配的nhlfe;

从匹配的nhlfe中读取实际出接口以及出标签;

在ipv6报文的头部之前依次压入ipv6显式空标签以及出标签,包括:

从匹配的nhlfe中读取ipv6显式空标签,并在ipv6报文的头部之前依次压入ipv6显式空标签以及出标签。

在上述实现方式中,每个mplste隧道对应一个ftn表项,该表项的fec为隧道的隧道接口,从而从路由表中获取到隧道接口之后就可以查询到该隧道对应的nhlfe,也就是说经该隧道传输的所有ipv6报文都按照该nhlfe进行处理和转发,其处理方式是在报文头部之前依次压入ipv6显式空标签以及出标签,其中,前者用于标识该mpls报文中封装的是ipv6报文,便于在目的ler处进行识别,后者就是mpls网络中交换用的普通标签,在mplste隧道中传输时,仅对外层标签进行交换。

在第一方面的一种可能的实现方式中,在接收源ipv6孤岛中的源设备向目的ipv6孤岛中的目的设备发送的ipv6报文之前,方法还包括:

配置mplste隧道,mplste隧道的目的地址为目的ler的ipv4地址;

通过和mplste隧道中的下游lsr按照资源预留协议流量工程扩展(resourcereservationprotocol-trafficengineering,简称rsvp-te)进行协议信令交互以建立mplste隧道,其中,协议信令为利用ipv4承载的信令;

在源ler的ftn中添加表项,表项的fec为mplste隧道的隧道接口,表项的nhlfe中的出标签字段为mplste隧道建立时分配给源ler的出标签、出接口字段为mplste隧道建立时确定的源ler的实际出接口,其中,出标签的内层添加有ipv6显式空标签;

将ipv6路由表中的位于目的ipv6孤岛中的网络地址对应的路由出接口配置为隧道接口。

在上述实现方式中,根据配置信息建立了mplste隧道并添加了ftn表项,其关键在于,针对mplste隧道对应的ftn表项中的nhlfe,在设置其出标签字段时,在本来分配的出标签内层再嵌入一层ipv6显式空标签,以便在转发时ipv6显式空标签先于普通标签压入到ipv6报文的头部之前。

上述步骤可以在源ler的控制平面中实现。

在第一方面的一种可能的实现方式中,配置mplste隧道,还包括:

将mplste隧道的类型配置为预设类型,其中,预设类型用于指示mplste隧道是用于传输ipv6报文的隧道;

在源ler的ftn中添加表项,包括:

在判断mplste隧道的类型为预设类型时,在出标签字段中要保存的出标签的内层添加ipv6显式空标签。

在上述实现方式中,通过设置预设类型对mplste隧道的类型进行配置,以区别用于传输ipv6报文的隧道和用于传输其他数据(例如ipv4数据)的隧道,只有针对传输ipv6报文的隧道才会添加ipv6显式空标签,其他类型的隧道可以按照现有方法处理,无需改动。

在第一方面的一种可能的实现方式中,将ipv6路由表中的位于目的ipv6孤岛中的网络地址对应的路由出接口配置为隧道接口,包括:

通过配置静态路由或策略路由的方式,将ipv6路由表中的位于目的ipv6孤岛中的网络地址对应的路由出接口配置为隧道接口。

在上述实现方式中,由于此时的路由并不是根据协议自动生成的,而是专门配置的,因此可以采用静态路由或策略路由的方式。

第二方面,本发明实施例提供一种网络设备,被作为源ler使用,源ler与源ipv6孤岛通信连接,并通过支持mpls的ipv4骨干网与目的ler通信连接,目的ler与目的ipv6孤岛通信连接,设备包括:

报文接收模块,用于接收源ipv6孤岛中的源设备向目的ipv6孤岛中的目的设备发送的ipv6报文;

路由出接口确定模块,用于从源ler的ipv6路由表中查询ipv6报文对应的路由出接口,其中,路由出接口被配置为骨干网中的多协议标签交换流量工程mplste隧道的隧道接口,mplste隧道的入口为源ler,出口为目的ler;

实际出接口确定模块,用于根据隧道接口确定将ipv6报文转发至mplste隧道中的下一跳lsr时的实际出接口以及出标签;

标签添加模块,用于在ipv6报文的头部之前依次压入ipv6显式空标签以及出标签;

报文转发模块,用于将压入标签后的ipv6报文通过实际出接口转发至下一跳lsr。

在第二方面的一种可能的实现方式中,实际出接口确定模块,具体用于:

从源ler的fec到nhlfe的映射表ftn中,查找到fec与隧道接口匹配的nhlfe;

从匹配的nhlfe中读取实际出接口以及出标签;

标签添加模块,具体用于:

从匹配的nhlfe中读取ipv6显式空标签,并在ipv6报文的头部之前依次压入ipv6显式空标签以及出标签。

在第二方面的一种可能的实现方式中,设备还包括:

隧道配置模块,用于配置mplste隧道,mplste隧道的目的地址为目的ler的ipv4地址;

隧道建立模块,用于通过和mplste隧道中的下游lsr按照rsvp-te进行协议信令交互以建立mplste隧道,其中,协议信令为利用ipv4承载的信令;

表项添加模块,用于在源ler的ftn中添加表项,表项的fec为mplste隧道的隧道接口,表项的nhlfe中的出标签字段为mplste隧道建立时分配给源ler的出标签、出接口字段为mplste隧道建立时确定的源ler的实际出接口,其中,出标签的内层添加有ipv6显式空标签;

路由出接口配置模块,用于将ipv6路由表中的位于目的ipv6孤岛中的网络地址对应的路由出接口配置为隧道接口。

在第二方面的一种可能的实现方式中,隧道配置模块,具体用于:

将mplste隧道的类型配置为预设类型,其中,预设类型用于指示mplste隧道是用于传输ipv6报文的隧道;

表项添加模块,具体用于:

在判断mplste隧道的类型为预设类型时,在出标签字段中要保存的出标签的内层添加ipv6显式空标签。

在第二方面的一种可能的实现方式中,路由出接口配置模块,具体用于:

通过配置静态路由或策略路由的方式,将ipv6路由表中的位于目的ipv6孤岛中的网络地址对应的路由出接口配置为隧道接口。

第三方面,本发明实施例提供一种网络设备,包括存储器以及处理器,存储器中存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。

为使本发明的上述目的、技术方案和有益效果能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了一种可用于6pe技术方案中的网络的拓扑图;

图2示出了可用于本发明实施例中的网络的拓扑图;

图3示出了本发明实施例提供的报文转发方法的流程图;

图4示出了本发明实施例提供的报文转发装置的功能模块图。

具体实施方式

6pe是目前基于mplslsp隧道实现ipv4到ipv6过渡的主流技术。图1示出了一种可用于6pe技术方案中的网络的拓扑图,参照图1,ipv4骨干网同时支持mpls,骨干网中的核心设备(provider,如图中的p路由器)不感知ipv6网络的存在,网络侧边缘设备(provideredge,如图中的6pe路由器)位于ipv4网络和ipv6网络的边缘,同时支持ipv4/ipv6双协议栈,用户侧设备(customerprovider,如图中的ce路由器)位于ipv6孤岛中,支持ipv6协议,ce路由器和6pe路由器上支持ipv6的接口相连。

6pe利用了边界网关协议/多协议标签交换虚拟专网(bordergatewayprotocol/mplsvirtualprivatenetwork,简称bgp/mplsvpn)的技术原理,将ipv6孤岛看作是vpn的多个接入站点,6pe路由器之间通过bgp来分发各站点的ipv6路由及其使用的标签。

在6pe路由器的控制平面,从ipv4骨干网路由拓扑的建立到6pe路由器上ipv6路由的通告主要由以下几个步骤完成:

1)利用基于ipv4的内部网关协议(interiorgatewayprotocol,简称igp)建立骨干网中各路由器间的路由关系,将6pe路由器的本地回环(简称loopback)地址通告给全网的p路由器及其他6pe路由器。

2)通过基于ipv4的标签分发协议(labeldistributionprotocol,简称ldp)建立6pe路由器之间的lsp,即建立了6pe路由器之间的mpls隧道。

3)6pe路由器与本端ce路由器之间交换路由信息,其中,本端ce路由器是指6pe路由器连接的ipv6孤岛中的ce路由器。

4)6pe路由器之间利用bgp的扩展属性在相互之间传递ipv6地址前缀的可达性信息,并分配mpls标签。

5)6pe路由器根据从本端ce路由器及远端6pe路由器发布来的ipv6地址前缀可达性信息形成本地ipv6路由表(包含对应的标签信息)。

6)6pe路由器将远端6pe路由器发布来的ipv6路由可达信息通过ipv6路由协议通告给本端的ce路由器。

发明人在对6pe技术进行长期研究的基础上发现,其具有如下两个主要缺点:

第一,6pe技术中需要在6pe路由器上部署bgp,这具有较大的部署难度和工作量;

第二,6pe技术中需要各个6pe路由器分配和管理各个ipv6孤岛的ipv6路由及其使用的标签,通常每个ipv6路由都要分配一个标签(有vpn的情况下,也可能每个vpn分配一个标签),当ipv6路由数量较大时,会耗费较多的mpls标签资源,增大6pe路由器的处理负担。

现有技术中存在的上述缺陷,是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

图2示出了一种可用于本发明实施例中的网络的拓扑图,参照图2,ipv4骨干网同时支持mpls,骨干网中的lsr不感知ipv6网络的存在,仅支持ipv4协议,如图中的lsr2、lsr3。ler位于骨干网和ipv6孤岛的边缘,同时支持ipv4/ipv6双协议栈,ler实际上也是lsr的一种,如图中的lsr1、lsr4。

以与lsr1相连的ipv6孤岛中的一台设备通过骨干网向与lsr4相连的ipv6孤岛中的一台设备发送ipv6报文的情况为例进行阐述,为便于描述,不妨将与lsr1相连的ipv6孤岛称为源ipv6孤岛,源ipv6孤岛中发送ipv6报文的设备称为源设备,与源孤岛相连的ler称为源ler,将与lsr4相连的ipv6孤岛称为目的ipv6孤岛,目的ipv6孤岛中接收ipv6报文的设备称为目的设备,与目的孤岛相连的ler称为目的ler。可以理解的,“源”和“目的”仅表示在本次数据传输过程中的相对关系,例如,在下一次数据传输过程中,也可能是由目的设备向源设备发送ipv6报文,因此,“源”和“目的”不应当理解为对设备本身的功能限制。

图3示出了本发明实施例提供的报文转发方法的流程图。该方法应用于源ler。参照图3,该方法包括:

步骤s10:接收源ipv6孤岛中的源设备向目的ipv6孤岛中的目的设备发送的ipv6报文。

在源设备向目的设备发送ipv6报文时,首先将ipv6报文发送至源ler,源ler上设置有支持ipv6的入接口,通过这些入接口可以接收到ipv6报文。需要指出,源设备并不一定直接将ipv6报文发送至源ler,也可能通过源ipv6孤岛中的其他路由器转发后才到达源ler。

步骤s11:从源ler的ipv6路由表中查询ipv6报文对应的路由出接口。

源ler的ipv6路由表中记录有目的ipv6孤岛中的各网络的网络地址,因此查询ipv6路由表就可以获得与ipv6报文中携带的网络地址匹配的表项,进而获得该表项中的路由出接口。

在本发明实施例中,路由出接口已经被预先配置为骨干网中的mplste隧道的隧道接口。其中,mplste隧道是预先建立,隧道的入口为源ler,出口为目的ler,通过该隧道可以在源ler到目的ler之间透明地传输ipv6报文,以实现源ipv6孤岛到目的ipv6孤岛之间的ipv6数据通信。隧道建立后,隧道上的各lsr也就确定了,参照图2,图2中的mplste隧道的路径为lsr1->lsr2->lsr3->lsr4,在图2中,ipv4mplste隧道表示mplste隧道可以利用ipv4承载的信令来建立。关于隧道的建立过程,后文再具体阐述。

隧道接口为一个逻辑接口,可以用于唯一标识mplste隧道。每个目的ipv6孤岛中的网络,都可以对应源ler中的ipv6路由表中的一个表项,这些表项的路由出接口都被配置为连接源ler与目的ler的mplste隧道的隧道接口。

步骤s12:根据隧道接口确定将ipv6报文转发至mplste隧道中的下一lsr时的实际出接口以及出标签。

例如,对于图2中的lsr1,下一跳就是lsr2。实际出接口是指mpls网络中转发用的出接口,出标签是指mplste隧道建立时分配给源ler的出标签,隧道建立时,会从作为隧道出口的目的ler沿隧道反向路径至作为隧道入口的源ler逐跳分配标签,以支持mpls网络中数据传输时的标签交换,例如,在图2中,源ler的出标签为x。

隧道接口和发送至下一跳lsr的实际出接口以及出标签具有对应关系,从而根据隧道接口就可以查询到发送至下一跳lsr的实际出接口以及出标签。

例如,在一种实现方式中,源ler上保存有预先生成的ftn表,ftn表中的每个表项为一个fec到一个nhlfe的映射,在生成该表时,可以为每个mplste隧道生成一个ftn表项,该表项的fec设置为隧道接口,nhlfe中包含有针对该隧道的转发信息,从而,将隧道接口与ftn表中的fec对比,就可以查询到与该隧道匹配的转发信息,即凡是通过该隧道传输的ipv6报文都应当按照这个匹配的nhlfe中记录的信息来转发。nhlfe中包括多个字段,例如出接口字段,从中可以读取到实际出接口;出标签字段,从中可以读取到出标签;操作字段,从中可以读取到要对标签进行的操作,例如入栈(push)、出栈(pop)、交换(swap)等操作,对于源ler来说,nhlfe中的操作应当是入栈操作,表示将出标签压入到ipv6报文的头部之前,以便将ipv6报文封装为mpls报文。

步骤s13:在ipv6报文的头部之前依次压入ipv6显式空标签以及出标签。

步骤s13中的出标签即步骤s12中获得的出标签,ipv6显式空标签的值为2,是mpls协议中的标准定义,表示mpls报文中携带的是ipv6报文。“压入”即之前提到的入栈操作,由于先压入ipv6显式空标签,后压入源ler的出标签,根据标签栈的特性,源ler的出标签是外层标签,ipv6显式空标签是内层标签,mpls报文在mplste隧道中传输时,仅对外层标签进行交换。

在一种实现方式中,可以在转发ipv6报文时构建一个ipv6显式空标签并压入,在另一种实现方式中,也可以在nhlfe中设置好ipv6显式空标签,在读取nhlfe时将其和源ler的出标签同时读取出来,作为一种可选的方案,在设置nhlfe的出标签字段时,可以在出标签的内层嵌入ipv6显式空标签,从而在读取时可以将二者一起读取出来。

步骤s14:将压入标签后的ipv6报文通过实际出接口转发至下一跳lsr。

将ipv6报文封装为mpls报文后,可以从出接口转发该报文。下面简单阐述一下在mplste隧道中的后续的转发过程:

在转发过程中,不感知mpls报文内部的协议类型,只对外层标签进行交换,参照图2,在经过lsr2后,标签由x变为y。在隧道的倒数第二跳lsr上,根据外层标签的类型,可能会弹出外层标签,如图2所示,当然也有可能不弹出外层标签。

在目的ler上,接收到mpls报文后,首先判断是否存在外层标签,存在则先弹出外层标签。然后判断内层标签的类型,若为ipv6显式空标签,则在弹出ipv6显式空标签后,查找目的ler的ipv6路由表将其转发至目的ipv6孤岛中的目的主机。当然,目的ler也可能收到其他来源的数据,这些数据中,内层标签也可能是其他类型,例如ipv4显式空标签,此时目的ler查找ipv4路由表进行转发。

需要指出,源ler的下游lsr(隧道路径上除源ler以外的其他lsr,包括目的ler)的行为和现有技术中mplste隧道中的下游lsr的行为是相同的,即本发明的改进点集中在源ler上。

综上所述,在上述方法中,针对每个mplste隧道只需要分配一个出标签,该出标签与隧道标识对应,而在源ler和目的ler之间可以只建立一个mplste隧道,分配给其一个标签,相较于6pe技术中一个路由分配一个标签的方式,只需要消耗少量的标签资源就能够实现ipv6孤岛之间的ipv6数据通信,有利于减轻源ler的工作负担。同时,源ler和目的ler上无需部署bgp,部署难度和部署工作量显著减小。

此外,上述方法所有的改进点都集中于源ler上,mplste隧道的下游设备无需作任何改动,如果现有系统希望通过升级支持本发明实施例提供的报文转发方法,系统升级难度小,升级成本低,有利于该方法的推广普及,实现ipv4协议向ipv6协议的顺利过渡。

上述步骤s10至步骤s14可以在源ler的转发平面中实现。下面再介绍一下ler的控制平面中的功能,为简单起见,不妨认为下面的步骤在步骤s10之前执行。

1)配置mplste隧道。

可以根据用户的操作按照mplste的规范进行mplste隧道的配置,将mplste隧道的目的地址(即出口)设置为目的ler的ipv4地址。

2)通过和mplste隧道中的下游lsr按照rsvp-te进行协议信令交互以建立mplste隧道,其中,协议信令为利用ipv4承载的信令,即建立的隧道为ipv4mplste隧道,例如,图2中的路径为lsr1->lsr2->lsr3->lsr4的隧道。

隧道的一种可能的建立过程简单描述如下:

a.根据指定的目的ler的地址,在源ler上完成约束最短路径优先(constrainedshortestpathfirst,简称cspf)的路径计算。

b.路径计算好后,源ler向目的ler通过下一跳lsr发送rsvppath请求。

c.收到path请求的下游lsr会首先检查报文格式是否正确,然后检查path请求中的预留申请的带宽,该过程称为准入控制。

d.当准入控制成功以后,那么下游lsr会产生一个新的path请求,然后发送给通往目的ler的下一跳lsr。重复上述过程,直至请求到达目的ler。

e.目的ler响应path请求,向上游回复rsvpresv消息并预留带宽。其过程和path请求的发送方式类似,也是逐跳进行,直至反馈到源ler,mplste隧道建立完毕。在resv消息中,不仅仅包括对上游lsr的回应,还包括为上游lsr分配的标签。

从而,与6pe技术不同,并不需要源ler对所有的标签进行分批管理,其负担减小很多。

3)在源ler的ftn中添加表项,表项的fec为mplste隧道的隧道接口。

添加的ftn表项是针对新建立的mplste隧道设置的。隧道建立完成后,隧道接口也可以确定。表项的nhlfe中的出标签字段设置为mplste隧道建立时分配给源ler的出标签、出接口字段为mplste隧道建立时确定的源ler的实际出接口,其中,出标签的内层添加有ipv6显式空标签,以便支持步骤s13。当然,实际中的nhlfe中可能包含有其他字段,但与本发明内容关系不大,这里不再介绍其设置方式。

4)将ipv6路由表中的位于目的ipv6孤岛中的网络地址对应的路由出接口配置为隧道接口。

这里的ipv6路由表即步骤s11中要使用的路由表,为确保步骤s11中能够查询到隧道接口,应当提前对源ler的ipv6路由表中的路由出接口进行配置。本发明实施例提供的方法支持将目的ipv6孤岛中的各个网络的网络地址对应的接口都配置为同一个mplste隧道的隧道接口,以使发往这些网络的ipv6报文都通过该隧道进行转发,节约标签资源。

由于此时的路由并不是根据协议自动生成的,而是专门配置的,因此可以采用静态路由或策略路由的方式配置ipv6路由表,具体配置方法是现有技术,这里不详细阐述。

进一步的,在控制平面的一种实现方式中,上述步骤1)在配置配置mplste隧道时,还可以将mplste隧道的类型配置为一个预设类型,该预设类型用于指示mplste隧道是用于传输ipv6报文的隧道。在步骤3)中,首先判断mplste隧道的类型是否为该预设类型时,如果判断结果为是,才会在出标签字段中要保存的出标签的内层添加ipv6显式空标签,否则保存原始的出标签。

对于源ler来说,其可能维持多种不同类型的mplste隧道,例如,用于传输ipv4报文的隧道。通过设置隧道类型可以区别mplste隧道的类型,只有针对传输ipv6报文的隧道才会添加ipv6显式空标签,其他类型的隧道可以按照现有方法处理,无需改动,即仅使用单层的标签。

本发明实施例还提供一种如图4所示的网络设备200,网络设备200被作为源ler使用,源ler与源ipv6孤岛通信连接,并通过支持mpls的ipv4骨干网与目的ler通信连接,目的ler与目的ipv6孤岛通信连接。参照图4,该设备包括:

报文接收模块210,用于接收源ipv6孤岛中的源设备向目的ipv6孤岛中的目的设备发送的ipv6报文;

路由出接口确定模块220,用于从源ler的ipv6路由表中查询ipv6报文对应的路由出接口,其中,路由出接口被配置为骨干网中的mplste隧道的隧道接口,mplste隧道的入口为源ler,出口为目的ler;

实际出接口确定模块230,用于根据隧道接口确定将ipv6报文转发至mplste隧道中的下一跳lsr时的实际出接口以及出标签;

标签添加模块240,用于在ipv6报文的头部之前依次压入ipv6显式空标签以及出标签;

报文转发模块250,用于将压入标签后的ipv6报文通过实际出接口转发至下一跳lsr。

在上述实施例的一种实现方式中,实际出接口确定模块230,具体用于:

从源ler的fec到nhlfe的映射表ftn中,查找到fec与隧道接口匹配的nhlfe;

从匹配的nhlfe中读取实际出接口以及出标签;

标签添加模块240,具体用于:

从匹配的nhlfe中读取ipv6显式空标签,并在ipv6报文的头部之前依次压入ipv6显式空标签以及出标签。

在上述实施例的一种实现方式中,网络设备200还包括:

隧道配置模块,用于配置mplste隧道,mplste隧道的目的地址为目的ler的ipv4地址;

隧道建立模块,用于通过和mplste隧道中的下游lsr按照rsvp-te进行协议信令交互以建立mplste隧道,其中,协议信令为利用ipv4承载的信令;

表项添加模块,用于在源ler的ftn中添加表项,表项的fec为mplste隧道的隧道接口,表项的nhlfe中的出标签字段为mplste隧道建立时分配给源ler的出标签、出接口字段为mplste隧道建立时确定的源ler的实际出接口,其中,出标签的内层添加有ipv6显式空标签;

路由出接口配置模块,用于将ipv6路由表中的位于目的ipv6孤岛中的网络地址对应的路由出接口配置为隧道接口。

在上述实施例的一种实现方式中,隧道配置模块,具体用于:

将mplste隧道的类型配置为预设类型,其中,预设类型用于指示mplste隧道是用于传输ipv6报文的隧道;

表项添加模块,具体用于:

在判断mplste隧道的类型为预设类型时,在出标签字段中要保存的出标签的内层添加ipv6显式空标签。

在上述实施例的一种实现方式中,路由出接口配置模块,具体用于:

通过配置静态路由或策略路由的方式,将ipv6路由表中的位于目的ipv6孤岛中的网络地址对应的路由出接口配置为隧道接口。

本发明实施例提供的网络设备200,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法施例中相应内容。

本发明实施例还提供一种网络设备,包括存储器以及处理器,存储器中存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的报文转发方法的步骤。例如,该网络设备可以是方法实施例中的源ler。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的报文转发方法的步骤。例如,该计算机可读存储介质可以是方法实施例中的源ler的存储器。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得计算机设备执行本发明各个实施例所述方法的全部或部分步骤。前述的计算机设备包括:个人计算机、服务器、移动设备、智能穿戴设备、网络设备、虚拟设备等各种具有执行程序代码能力的设备,前述的存储介质包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟、磁带或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1