CN110166361A - 一种报文转发方法及装置 - Google Patents
一种报文转发方法及装置 Download PDFInfo
- Publication number
- CN110166361A CN110166361A CN201910463019.2A CN201910463019A CN110166361A CN 110166361 A CN110166361 A CN 110166361A CN 201910463019 A CN201910463019 A CN 201910463019A CN 110166361 A CN110166361 A CN 110166361A
- Authority
- CN
- China
- Prior art keywords
- message
- equipment
- type
- mpls
- data message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种报文转发方法及装置,可以使PE设备接收来自源CE设备的数据报文;若确定所述源CE设备与数据报文的目标CE设备位于不同站点,则识别所述数据报文的报文类型;将所述数据报文封装为MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,从而使目标CE设备对应的PE设备收到该MPLS报文时,获取所述MPLS报文携带的报文类型,并依据所述报文类型转发所述数据报文。因此本公开可以通过源端PE设备将数据报文的报文类型携带在MPLS封装中,以使对端PE设备可以获取该MPLS报文内层的数据报文的报文类型,避免对端PE设备误识别报文类型的情况,提高报文类型识别的准确率,从而提升了PE设备的报文转发效率。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种报文转发方法及装置。
背景技术
MPLS(Multi-Protocol Label Switching,多协议标签交换)技术是一种三层VPN(Virtual Private Network,虚拟专用网络)技术,它使用BGP(Border Gateway Protocol,边界网关协议)在服务提供商的骨干网络上发布用户站点(site)的私网路由,一个用户站点代表一个局域网。通过采用MPLS技术在骨干网络上转发用户站点之间的私网报文,可以实现通过骨干网络连接属于同一个VPN、位于不同地理位置的用户站点。
在MPLS的三层VPN组网中,若本端CE(Customer Edge,用户边缘)设备需要将用户主机的数据报文发送到由骨干网络连接的属于同一个VPN的对端CE设备,则本端CE设备可以将数据报文发送至自身连接的PE(Provider Edge,运营商边缘)设备,再由该PE设备通过MPLS技术将该数据报文封装成MPLS报文后从骨干网络转发到对端CE设备连接的对端PE设备,从而使对端PE设备将该MPLS报文解封装后进一步转发到对端CE设备。
发明内容
有鉴于此,本公开提供一种报文转发方法及装置,来实现快速检测MPLS报文中的内层IP报文的报文类型的问题。
具体地,本公开是通过如下技术方案实现的:
本公开提供一种报文转发方法,所述方法应用于PE设备,所述方法包括:
接收来自源CE设备的数据报文;
判断所述源CE设备与所述数据报文的目标CE设备是否位于不同站点,若是,则识别所述数据报文的报文类型;
将所述数据报文封装为MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,以使连接所述目标CE的PE设备根据收到的所述MPLS报文中封装的所述报文类型转发所述数据报文。
作为一个实施例,所述判断所述源CE设备与所述数据报文的目标CE设备是否位于不同站点,包括:
以所述数据报文携带的目的IP地址和所述数据报文所属的虚拟专用网络VPN标识为关键字在本地路由表中查找到包含所述关键字的路由表项;
若所述路由表项中存在标签信息,则确定所述源CE设备与数据报文的目标CE设备位于不同站点。
作为一个实施例,在识别所述数据报文的报文类型之前,进一步包括:
检查所述路由表项中是否存在指定标识,所述指定标识用于指示所述目标CE设备连接的PE设备支持报文类型识别功能;
若是,则继续执行识别所述数据报文的报文类型的操作。
作为一个实施例,将所述报文类型封装在所述MPLS报文中进行转发,包括:
构造用于携带所述报文类型的报文类型标签;
将所述报文类型标签携带在所述MPLS报文的指定位置并转发。
本公开还提供一种报文转发方法,所述方法应用于PE设备,所述方法包括:
接收MPLS报文;
在确定所述MPLS报文是发向本设备连接的CE设备时,若本设备支持报文类型识别功能,则从所述MPLS报文的指定位置获取报文类型,对所述MPLS报文进行解封装得到数据报文,并依据所述报文类型转发所述数据报文。
基于相同的构思,本公开提供一种报文转发装置,所述装置应用于PE设备,所述装置包括:
接收单元,用于接收来自源CE设备的数据报文;
识别单元,用于判断所述源CE设备与所述数据报文的目标CE设备是否位于不同站点,若是,则识别所述数据报文的报文类型;
封装单元,用于将所述数据报文封装为MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,以使连接所述目标CE的PE设备根据收到的所述MPLS报文中封装的所述报文类型转发所述数据报文。
作为一个实施例,所述识别单元,具体用于以所述数据报文携带的目的IP地址和所述数据报文所属的VPN标识为关键字在本地路由表中查找到包含所述关键字的路由表项;若所述路由表项中存在标签信息,则确定所述源CE设备与数据报文的目标CE设备位于不同站点。
作为一个实施例,所述识别单元,还用于在识别所述数据报文的报文类型之前,检查所述路由表项中是否存在指定标识,所述指定标识用于指示所述目标CE设备连接的PE设备支持报文类型识别功能;若是,则继续执行识别所述数据报文的报文类型的操作。
作为一个实施例,所述封装单元,具体用于构造用于携带所述报文类型的报文类型标签;将所述报文类型标签携带在所述MPLS报文的指定位置并转发。
本公开还提供一种报文转发装置,所述装置应用于PE设备,所述装置包括:
接收单元,用于接收MPLS报文;
解封装单元,用于在确定所述MPLS报文是发向本设备连接的CE设备时,若本设备支持报文类型识别功能,则从所述MPLS报文的指定位置获取报文类型,对所述MPLS报文进行解封装得到数据报文,并依据所述报文类型转发所述数据报文。
基于相同的构思,本公开还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述报文转发方法的任一步骤。
基于相同的构思,本公开还提供一种网络设备,所述网络设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现上述报文转发方法的任一步骤。
由此可见,本公开可以使PE设备在接收来自源CE设备的数据报文时,若确定所述源CE设备与数据报文的目标CE设备位于不同站点,则识别所述数据报文的报文类型;将所述数据报文封装为MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,从而使目标CE设备对应的PE设备收到该MPLS报文时,获取所述MPLS报文携带的报文类型,并依据所述报文类型转发所述数据报文。因此本公开可以通过源端PE设备将数据报文的报文类型携带在MPLS封装中,从而可以使对端PE设备在解封装时即可获取内层的数据报文对应的报文类型,进而可以在不解析内层数据报文的情况下确定数据报文的报文类型。相比于现有技术,本公开避免了对端PE设备误识别报文类型的情况,提高了报文类型识别的准确率,从而提升了PE设备的报文转发效率。
附图说明
图1是本公开一种示例性实施方式中的一种MPLS VPN组网结构示意图;
图2是本公开一种示例性实施方式中的一种报文转发方法的处理流程图;
图3-1是本公开一种示例性实施方式中的MPLS报文格式示意图;
图3-2是本公开一种示例性实施方式中的指定标签的格式示意图;
图4是本公开一种示例性实施方式中的另一种报文转发方法的处理流程图;
图5是本公开一种示例性实施方式中的报文转发方法的交互流程图;
图6是本公开一种示例性实施方式中的一种报文转发装置的逻辑结构图;
图7是本公开一种示例性实施方式中的另一种报文转发装置的逻辑结构图;
图8本公开一种示例性实施方式中的一种网络设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参见图1所示的MPLS VPN组网示意图,该MPLS VPN组网包括位于同一VPN且属于不同站点的CE设备,连接两端CE设备的PE设备,以及在骨干网络中两端PE设备之间用于转发的多个P设备。
在该MPLS VPN组网中,若本端CE设备(例如site1中的CE1)需要将用户主机的数据报文发送到由骨干网络连接的属于同一个VPN的对端CE设备(例如site4中的CE4),则CE1设备可以将数据报文发送至自身连接的PE1设备,再由该PE1设备将该数据报文封装成MPLS报文后从骨干网络转发到对端CE4设备连接的对端PE2设备,从而使对端PE2设备将该MPLS报文解封装后进一步转发到CE4设备。
在具体转发过程中,PE1设备收到的CE1设备转发送的数据报文通常是外层具有MAC封装(即源MAC和目的MAC)、内层为IP报文的二层数据报文,该MAC封装后面带有Type字段,用于表示内层IP报文的报文类型,例如IPv4、IPv6或IPX(Internetwork PacketExchange protocol,互联网数据包交换协议)类型的报文。在收到该数据报文时,PE1设备可以将该数据报文封装为MPLS报文,从而使封装后的MPLS报文通过骨干网络中的P设备转发到对端的PE2设备。PE2设备收到该MPLS报文后,需要识别收到的MPLS报文中的内层数据报文的报文类型,继而对该数据报文进一步按照报文类型对应的转发逻辑进行转发。
但是在封装后的MPLS报文中,原本数据报文中用于表示内层数据报文的报文类型的Type字段会被修改为用于表示MPLS类型报文的标识,从而PE2设备无法从MPLS报文中的Type字段获知内层数据报文的报文类型。
目前为了获取内层报文的报文类型,PE2设备只能通过解析栈底标签之后的用于表示报文版本号的4bit字节来识别内层报文的报文类型,但是由于IPX报文的前4字节cechecksum字段,该字段是随机字段,有可能包含与IPv4和IPv6的版本号相同的字段,从而造成IPv4和IPv6的版本号的误识别。通常PE为了避免误识别,只能通过识别报文的载荷字段才能确定准确的报文类型,但是识别报文载荷字段会对PE2设备的报文处理操作增加很大工作量,导致识别效率较低。因此如何使PE2设备快速且准确的获知数据报文的报文类型是本公开关注的重点。
为了解决现有技术存在的问题,本公开提供一种报文转发方法及装置,可可以使PE设备在接收来自源CE设备的数据报文时,若确定所述源CE设备与数据报文的目标CE设备位于不同站点,则识别所述数据报文的报文类型;将所述数据报文封装为MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,从而使目标CE设备对应的PE设备收到该MPLS报文时,获取所述MPLS报文携带的报文类型,并依据所述报文类型转发所述数据报文。因此本公开可以通过源端PE设备将数据报文的报文类型携带在MPLS封装中,从而可以使对端PE设备在解封装时即可获取内层的数据报文对应的报文类型,进而可以在不解析内层数据报文的情况下确定数据报文的报文类型。相比于现有技术,本公开避免了对端PE设备误识别报文类型的情况,提高了报文类型识别的准确率,从而提升了PE设备的报文转发效率。
请参考图2,是本公开一种示例性实施方式中的一种报文转发方法的处理流程图,所述方法应用于PE设备,所述方法包括:
步骤201、接收来自源CE设备的数据报文;
在本实施例中,当PE设备作为连接源端CE设备的PE设备时,可以接收来自所述源端CE设备发送的数据报文,该数据报文的外层是MAC头,内层是IP报文,IP报文中携带源IP地址和目的IP地址。
步骤202、判断所述源CE设备与所述数据报文的目标CE设备是否位于不同站点,若是,则识别所述数据报文的报文类型;
在本实施例中,PE设备可以先判断源CE设备与数据报文的目标CE设备是否位于不同站点。具体来讲,本PE设备可以获取该数据报文中的目的IP地址,并可以通过获取接收数据报文接口对应的VPN,确定该数据报文所属的VPN标识,以获取的所述数据报文的目的IP地址和所述数据报文所属的VPN标识为关键字,在本地路由表中查找到包含所述关键字的路由表项;若所述路由表项中存在标签信息,则确定所述源CE设备与数据报文的目标CE设备位于不同站点。
作为一个实施例,本端PE设备查找路由表项中的标签信息具体可以是目标CE路径的目标PE设备预先为本PE设备分配的到达所述目标IP地址对应的私网标签,该私网标签包含的VPN标识与接收该数据报文接口对应的VPN标识相同。若所述路由表项中包含所述私网标签,则确定所述目标CE设备与所述源CE设备不位于同一站点;若所述路由表项中不包含所述私网标签,则确定所述目标CE设备与所述源CE设备位于同一站点。针对目标CE设备与所述源CE设备位于同一站点的情况,用于该数据报文在PE设备本地转发,只需要进行查表转发即可,不需要进行MPLS封装,不涉及对端PE设备进行报文类型识别的问题,因此此处不做详细说明。
如图1所示,若PE1收到CE1发送的数据报文,假设CE1的数据报文的目的IP地址对应的目标CE设备为PE1连接的与CE1位于同一站点site1的CE5设备(图1中未表示),因为CE1和CE5在同一局域网中,则PE1中的路由表项中不会包括CE5连接的PE设备对应的私网标签;假设CE1的数据报文的目的IP地址对应的目标CE设备为CE4设备,该CE4设备与PE2连接,且与CE1位于同一VPN、但是位于site4,则PE2可以预先为PE1分配该目的IP地址对应的私网标签,并将该私网标签发送给PE1,以使PE1件该私网标签保存到该目的IP地址和PE2所属的VPN对应的路由表项中,当PE1根据该目标IP地址和VPN标识查找路由表项时,即可获取该路由表项中预存的私网标签。因此可以通过路由表项中是否包含私网标签,来确定所述目标CE设备与所述源CE设备是否位于同一站点。
确定目标CE设备与所述源CE设备不位于同一站点之后,可以进一步识别所述数据报文的报文类型。具体来讲,PE设备可以解析所述数据报文的指定字段(如type字段)获取所述数据报文的报文类型。
需要说明的是,现有的数据报文中type字段的报文类型具体是报文类型对应的标签信息,例如IPv4的类型对应的标签信息为0x0800,IPv6的类型对应的标签信息为0x08DD,由于每个报文类型会占用一个标签信息,当报文类型较多是,会导致标签资源的浪费。本公开可以在确定数据报文的报文类型后,可以为不同的报文类型设置的不同的码值,该码值采用的编码方式为独热编码,例如IPv4=0x01,IPv6=0x02,IPX=0x04,从而将报文类型对应的码值代替报文类型的标签信息携带在MPLS报文中。在两端的PE设备在协商支持该报文类型识别功能时,可以对所述报文类型对应的码值进行协商,从而使对端PE设备可以在获取MPLS报文中携带的码值后,直接利用该码值对数据报文进行转发。因此本公开通过将报文类型转换成独热编码的码值,从而可以减少对标签资源的占用。
作为一个实施例,在识别所述数据报文的报文类型之前,PE设备进一步可以检查所述路由表项中是否存在指定标识,所述指定标识用于指示所述目标CE设备连接的PE设备支持报文类型识别功能;若支持报文类型识别功能,则继续执行识别所述数据报文的报文类型的操作。具体来讲,可以通过静态配置两端PE设备支持这种报文类型识别能力,通过两端PE设备的BPG协商,使两端PE设备相互获知对方是否支持并且识别类型的功能。例如,本端PE设备如果支持报文类型识别功能,则可以根据BGP协议,在封装的open消息中添加可选能力参数,该能力参数为支持报文类型识别功能的功能标识,将该open消息发送给对端PE设备;当PE设备收到对端PE设备返回的open消息,可以从中获取该可选能力参数,从而确定对端PE设备支持报文类型识别功能。在确定对端PE设备支持该报文类型识别功能时,可以在该对端PE对应的路由表项中添加指定标识,该指定标识用于指示所述目标CE设备连接的PE设备支持报文类型识别功能。
若路由表项中没有指定标识,则可以确定所述目标CE设备连接的PE设备不支持报文类型识别功能,因此可以按照现有的转发方式根据路由信息直接转发封装后的数据报文,而不会在封装后的报文中携带该数据报文的报文类型。
步骤203、将所述数据报文封装为多协议标签交换MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,以使连接所述目标CE的PE设备根据收到的所述MPLS报文中封装的所述报文类型转发所述数据报文。
在获取数据报文的报文类型后,可以将所述数据报文封装为MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,以使连接所述目标CE的PE设备根据收到的所述MPLS报文中封装的所述报文类型转发所述数据报文。
作为一个实施例,本PE设备可以构造用于携带所述报文类型的报文类型标签,然后将所述报文类型标签携带在所述MPLS报文的指定位置并转发。具体来讲,所述报文类型标签的格式与所述MPLS私网标签的格式相同,该报文类型标签被添加在MPLS公网标签和私网标签与内层报文之间,所述报文类型标签中的TTL字段中携带所述报文类型。举例来讲,封装后的MPLS报文的格式如图3-1,其中包括MAC头、标签头label、IP头及内存的IP报文载荷,该标签头label中可以携带多种标签,例如公网标签、私网标签以及所述报文类型标签。该MPLS私网标签的格式包括:label标签值,TC实验字段(该字段通常为优先级EXP),S栈底标志位(占其中一个比特)表示当前标签是否位于栈底,以及TTL存活时间字段,如果TTL值为0,则认为该数据报文在网络中的生命期已经过期,从而不会继续转发该数据报文。该报文类型标签的格式如图3-2所示,其中标签label可以为0(例如标签值为0的显式空标签),实验字段代表的优先级EXP也可设置为0,栈底标记S,设置所述栈底标记为用于表示该标签位于栈底的第一值(例如S值为1表明此为最底层标签,S值为0表示不是最底层标签),利用TTL字段携带内层数据报文的报文类型。
本端PE设备可以将封装后的所述MPLS报文根据路由信息发送到下一跳设备,在目标CE连接的目标PE设备不与本端PE设备直接连接时,该下一跳设备是中间的P设备,在该目标PE设备不与本端PE设备直接连接时,该下一跳设备是目标PE设备,下一跳设备收到MPLS报文后可以判断自身是否为所述MPLS报文的目标CE设备连接的目标PE设备,具体可以获取所述MPLS报文中的私网标签,判断所述私网标签中的VPN标识是否与本端PE设备的VPN标识相匹配;若是,则确定所述本端PE设备为所述目标PE设备;若否,则确定所述本端PE设备不为所述目标PE设备。
若下一跳的PE设备在确定自身不为所述MPLS报文的目标CE设备连接的PE设备时,也就是中间P设备,那么可以使用公网标签将该MPLS报文继续转发,由于中间设备不需要感知栈底的标签,因此该指定标签的设置不影响中间设备的转发。
若下一跳的PE设备在确定自身为所述目标PE设备时,可以依据所述MPLS报文中携带的报文类型信息确定所述MPLS报文内层的数据报文的报文类型。具体来讲,若该目标PE设备在确认解析到的所述MPLS报文中的私网标签是与自身记录的私网标签相匹配,则可以将解析到的所述MPLS报文中栈底标记为第一值的标签确定为所述报文类型标签,从而获取所述报文类型标签中的报文类型,该报文类型即为所述MPLS报文内层的数据报文的报文类型。
相比于现有技术,本公开可以通过源端PE设备在MPLS封装中添加携带报文类型的报文类型标签,从而可以使对端PE设备在解封装时即可获取该报文类型,进而可以在不解析内层报文的情况下确定内层报文的报文类型,因此可以减少PE设备的报文处理时间,避免误识别的情况。
请参考图4,是本公开一种示例性实施方式中的另一种报文转发方法的处理流程图,所述方法应用于PE设备,所述方法包括:
步骤401、接收MPLS报文;
步骤402、在确定所述MPLS报文是发向本设备连接的CE时,若本设备支持报文类型识别功能,则从所述MPLS报文的指定位置获取报文类型,对所述MPLS报文进行解封装得到数据报文,并依据所述报文类型转发所述数据报文。
在本实施例中,本端PE设备可以接收来自连接源端CE设备的源端PE设备发送的MPLS报文,其中该MPLS报文的指定位置携带该MPLS报文内层的数据报文的报文类型。
本端PE设备可以先判断自身是否为所述MPLS报文的目标CE设备连接的目标PE设备。具体来讲,本端PE设备可以获取所述MPLS报文中的私网标签,判断所述私网标签对应的VPN标识是否与本端PE设备的VPN标识相匹配;若是,则确定所述本端PE设备为所述目标PE设备;若否,则确定所述本端PE设备不为所述目标PE设备。在确定本端PE设备是所述目标PE设备时,可以进一步获取所述MPLS报文的指定位置携带的报文类型。
作为一个实施例,该MPLS报文中携带的报文类型标签中的栈底标记会设置为用于表示该标签位于栈底的第一值;因此可以查找栈底标记为第一值的标签则为所述报文类型标签,从该报文类型标签中的TTL字段中获取报文类型。举例来讲,该报文类型标签的格式如图3-2所示,其中标签label可以为0(例如标签值为0的显式空标签),实验字段代表的优先级EXP也可设置为0,栈底标记S,设置所述栈底标记为用于表示该标签位于栈底的第一值(例如S值为1表明此为最底层标签,S值为0表示不是最底层标签),利用TTL字段携带内层IP报文的报文类型信息。
本端PE设备在解析MPLS报文时,若所述MPLS报文中的私网标签在本端PE设备记录中是否存在对应的功能标识且该功能标识为代表支持该负载识别功能的预设值,查找所述MPLS报文中栈底标记为第一值的标签确定为所述指定标签,依据所述指定标签中的报文类型信息确定所述MPLS报文内层的数据报文的报文类型。所述报文类型的码值的编码方式为独热编码。例如IPv4=0x01,IPv6=0x02,IPX=0x04,因此可以直接获取该报文类型的码值用于后续报文转发。
相比于现有技术,本公开可以通过源端PE设备在MPLS封装中添加携带报文类型的报文类型标签,从而使目标端PE设备在解封装时即可通过解析报文类型标签来获取内层数据报文的报文类型,进而可以在不解析内层数据报文的情况下确定内层数据报文的报文类型,因此可以减少PE设备的报文处理时间,避免误识别的情况。
为使本公开的目的、技术方案及优点更加清楚明白,下面结合图5对本公开的方案作进一步地详细说明。
基于图1所示的组网结构,以CE1设备向CE4设备发送数据报文为例,在PE1设备、P设备和PE4设备上的报文交互流程如图5所示,其中包括如下步骤:
步骤501、PE1设备接收CE1设备发送的数据报文;
步骤502、PE1设备根据所述数据报文的目的IP地址和所属的VPN标识在本地查找对应的路由表项;
PE1设备可以判断路由表项中是否存在私网标签;若是,则确定所述CE1设备和目的IP地址对应的目标CE设备位于不同站点;否则,确定所述CE1设备和目的IP地址对应的目标CE设备位于同一站点;如果位于同一站点,PE1设备可以判断所述私网标签对应的指定标识是否为代表支持该报文类型识别功能的预设值,若是,则确定该PE2支持报文类型识别功能,否则不支持报文类型识别功能。当PE2与PE1位于同一站点时,PE1可以将该数据报文在该站点内部进行本地转发,本实施例不再赘述;当PE2不支持报文类型识别功能时,PE1可以按照现有的MPLS封装方式进行转发,本实施例不再赘述;如果PE2与PE1位于不同站点,且PE2支持报文类型识别功能时,PE1可以根据路由表项中的标签信息进行转发,该标签信息可以包含公网标签和私网标签,该公网标签为PE1设备的下一跳设备(P设备)对应的公网标签,私网标签是目标CE设备连接的PE设备的私网标签;
步骤503、PE1设备识别所述数据报文的报文类型;
步骤504、PE1设备将所述数据报文封装成MPLS报文,该MPLS报文中携带该报文类型;
所述MPLS报文中携带所述公网标签、所述私网标签并在栈底封装报文类型标签,该报文类型标签的标签值label为0(例如标签值为0的显式空标签),优先级为0,栈底标识S为1,代表栈底标签,TTL字段携带所述报文类型。
步骤505、PE1设备将所述MPLS标签根据公网标签发送至下一跳设备;
步骤506、P设备收到所述MPLS报文后,判断所述MPLS报文中的私网标签对应的VPN标识是否与本地的VPN标识相匹配,若匹配,则确定自身为所述MPLS报文的目标PE设备;若不匹配,则确定自身是中间设备;
步骤507、P设备在确定自身为中间设备时,根据MPLS技术获取下一跳设备对应的公网标签,将所述公网标签添加到所述MPLS报文中,从而继续将该MPLS报文转发至下一跳设备;在本实施例中,由于P设备的转发处理流程均相似,因此以转发路径中的任一P设备为例进行说明,其他P设备的转发过程省略;
步骤508、PE4设备收到MPLS报文时,判断所述MPLS报文中的私网标签对应的VPN标识是否与本地的VPN标识相匹配,若匹配,则确定自身为所述MPLS报文的目标PE设备;若不匹配,则确定自身是中间设备;
步骤509、PE4设备在确定自身为目标PE设备时,且PE4支持报文类型识别功能时,对所述MPLS报文解封装,解析所述报文中的栈底标识S=1的标签确定为报文类型标签,并解析该报文类型标签中的TTL字段,获取其中携带的报文类型,从而将获取的报文类型确定为该数据报文的报文类型;
步骤510、根据该报文类型对该数据报文进行转发。
与前述报文转发方法的实施例相对应,本公开还提供了报文转发装置的实施例。
请参见图6,为本公开在一个示例性实施例中的一种报文转发装置的结构示意图,所述装置应用于PE设备,该装置600可以包括:
接收单元601,用于接收来自源CE设备的数据报文;
识别单元602,用于判断所述源CE设备与所述数据报文的目标CE设备是否位于不同站点,若是,则识别所述数据报文的报文类型;
封装单元603,用于将所述数据报文封装为MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,以使连接所述目标CE的PE设备根据收到的所述MPLS报文中封装的所述报文类型转发所述数据报文。
作为一个实施例,所述识别单元602,具体用于以所述数据报文携带的目的IP地址和所述数据报文所属的VPN标识为关键字在本地路由表中查找到包含所述关键字的路由表项;若所述路由表项中存在标签信息,则确定所述源CE设备与数据报文的目标CE设备位于不同站点。
作为一个实施例,所述识别单元602,还用于在识别所述数据报文的报文类型之前,检查所述路由表项中是否存在指定标识,所述指定标识用于指示所述目标CE设备连接的PE设备支持报文类型识别功能;若是,则继续执行识别所述数据报文的报文类型的操作。
作为一个实施例,所述封装单元603,具体用于构造用于携带所述报文类型的报文类型标签;将所述报文类型标签携带在所述MPLS报文的指定位置并转发。
基于相同的构思,本公开还提供另一种报文转发装置。
请参见图7,为本公开在一个示例性实施例中的另一种报文转发装置的结构示意图,所述装置应用于PE设备,该装置700可以包括:
接收单元701,用于接收MPLS报文;
解封装单元702,用于在确定所述MPLS报文是发向本设备连接的CE设备时,若本设备支持报文类型识别功能,则从所述MPLS报文的指定位置获取报文类型,对所述MPLS报文进行解封装得到数据报文,并依据所述报文类型转发所述数据报文。
与前述报文转发方法的实施例相对应,本公开还提供了实现报文转发方法的网络设备的实施例。
如图8所示,所述网络设备包括存储器81、处理器82、通信接口83以及通信总线84;其中,所述存储器81、处理器82、通信接口83通过所述通信总线84进行相互间的通信;
所述存储器81,用于存放计算机程序;
所述处理器82,用于执行所述存储器81上所存放的计算机程序,所述处理器82执行所述计算机程序时实现本公开实施例提供的报文转发方法的任一步骤。
本公开还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本公开实施例提供的报文转发方法的任一步骤。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于网络设备和计算机可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
综上所述,本公开可以使PE设备在接收来自源CE设备的数据报文时,若确定所述源CE设备与数据报文的目标CE设备位于不同站点,则识别所述数据报文的报文类型;将所述数据报文封装为MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,从而使目标CE设备对应的PE设备收到该MPLS报文时,获取所述MPLS报文携带的报文类型,并依据所述报文类型转发所述数据报文。因此本公开可以通过源端PE设备将数据报文的报文类型携带在MPLS封装中,从而可以使对端PE设备在解封装时即可获取内层的数据报文对应的报文类型,进而可以在不解析内层数据报文的情况下确定数据报文的报文类型。相比于现有技术,本公开避免了对端PE设备误识别报文类型的情况,提高了报文类型识别的准确率,从而提升了PE设备的报文转发效率。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。
Claims (12)
1.一种报文转发方法,其特征在于,所述方法应用于运营商边缘PE设备,所述方法包括:
接收来自源用户边缘CE设备的数据报文;
判断所述源CE设备与所述数据报文的目标CE设备是否位于不同站点,若是,则识别所述数据报文的报文类型;
将所述数据报文封装为多协议标签交换MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,以使连接所述目标CE的PE设备根据收到的所述MPLS报文中封装的所述报文类型转发所述数据报文。
2.根据权利要求1所述的方法,其特征在于,所述判断所述源CE设备与所述数据报文的目标CE设备是否位于不同站点,包括:
以所述数据报文携带的目的IP地址和所述数据报文所属的虚拟专用网络VPN标识为关键字在本地路由表中查找到包含所述关键字的路由表项;
若所述路由表项中存在标签信息,则确定所述源CE设备与数据报文的目标CE设备位于不同站点。
3.根据权利要求2所述的方法,其特征在于,在识别所述数据报文的报文类型之前,进一步包括:
检查所述路由表项中是否存在指定标识,所述指定标识用于指示所述目标CE设备连接的PE设备支持报文类型识别功能;
若是,则继续执行识别所述数据报文的报文类型的操作。
4.根据权利要求1所述的方法,其特征在于,将所述报文类型封装在所述MPLS报文中进行转发,包括:
构造用于携带所述报文类型的报文类型标签;
将所述报文类型标签携带在所述MPLS报文的指定位置并转发。
5.一种报文转发方法,其特征在于,所述方法应用于PE设备,所述方法包括:
接收MPLS报文;
在确定所述MPLS报文是发向本设备连接的CE设备时,若本设备支持报文类型识别功能,则从所述MPLS报文的指定位置获取报文类型,对所述MPLS报文进行解封装得到数据报文,并依据所述报文类型转发所述数据报文。
6.一种报文转发装置,其特征在于,所述装置应用于PE设备,所述装置包括:
接收单元,用于接收来自源CE设备的数据报文;
识别单元,用于判断所述源CE设备与所述数据报文的目标CE设备是否位于不同站点,若是,则识别所述数据报文的报文类型;
封装单元,用于将所述数据报文封装为MPLS报文,并将所述报文类型封装在所述MPLS报文中进行转发,以使连接所述目标CE的PE设备根据收到的所述MPLS报文中封装的所述报文类型转发所述数据报文。
7.根据权利要求6所述的装置,其特征在于,
所述识别单元,具体用于以所述数据报文携带的目的IP地址和所述数据报文所属的VPN标识为关键字在本地路由表中查找到包含所述关键字的路由表项;若所述路由表项中存在标签信息,则确定所述源CE设备与数据报文的目标CE设备位于不同站点。
8.根据权利要求7所述的装置,其特征在于,
所述识别单元,还用于在识别所述数据报文的报文类型之前,检查所述路由表项中是否存在指定标识,所述指定标识用于指示所述目标CE设备连接的PE设备支持报文类型识别功能;若是,则继续执行识别所述数据报文的报文类型的操作。
9.根据权利要求6所述的装置,其特征在于,
所述封装单元,具体用于构造用于携带所述报文类型的报文类型标签;将所述报文类型标签携带在所述MPLS报文的指定位置并转发。
10.一种报文转发装置,其特征在于,所述装置应用于PE设备,所述装置包括:
接收单元,用于接收MPLS报文;
解封装单元,用于在确定所述MPLS报文是发向本设备连接的CE设备时,若本设备支持报文类型识别功能,则从所述MPLS报文的指定位置获取报文类型,对所述MPLS报文进行解封装得到数据报文,并依据所述报文类型转发所述数据报文。
11.一种网络设备,其特征在于,所述网络设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现所述权利要求1-5方法的任一步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现所述权利要求1-5方法的任一步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910463019.2A CN110166361B (zh) | 2019-05-30 | 2019-05-30 | 一种报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910463019.2A CN110166361B (zh) | 2019-05-30 | 2019-05-30 | 一种报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110166361A true CN110166361A (zh) | 2019-08-23 |
CN110166361B CN110166361B (zh) | 2021-07-23 |
Family
ID=67630450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910463019.2A Active CN110166361B (zh) | 2019-05-30 | 2019-05-30 | 一种报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110166361B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021139289A1 (zh) * | 2020-01-08 | 2021-07-15 | 华为技术有限公司 | 报文发送方法、路由表项的生成方法、装置及存储介质 |
CN117093533A (zh) * | 2023-08-18 | 2023-11-21 | 江苏新质信息科技有限公司 | 基于ubus框架实现多CPU架构的通信方法及装置 |
WO2024027271A1 (zh) * | 2022-08-01 | 2024-02-08 | 中兴通讯股份有限公司 | 应用流量感知方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917466A (zh) * | 2006-08-30 | 2007-02-21 | 华为技术有限公司 | L2vpn异种介质互连中三层协议识别方法、设备及系统 |
CN1949743A (zh) * | 2005-10-12 | 2007-04-18 | 华为技术有限公司 | 一种在多协议标记交换网络中对净荷类型进行识别的方法 |
US20070183415A1 (en) * | 2006-02-03 | 2007-08-09 | Utstarcom Incorporated | Method and system for internal data loop back in a high data rate switch |
CN101471923A (zh) * | 2007-12-27 | 2009-07-01 | 华为技术有限公司 | 发送协议报文、识别协议报文类型的方法、设备和系统 |
CN101764750A (zh) * | 2009-12-07 | 2010-06-30 | 福建星网锐捷网络有限公司 | 报文封装方法和检测转发环路的方法、装置及网络设备 |
CN103354520A (zh) * | 2013-07-02 | 2013-10-16 | 华为技术有限公司 | 一种标签处理的方法及装置 |
CN108111416A (zh) * | 2017-12-15 | 2018-06-01 | 盛科网络(苏州)有限公司 | 直接识别mpls内部封装报文的方法 |
-
2019
- 2019-05-30 CN CN201910463019.2A patent/CN110166361B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949743A (zh) * | 2005-10-12 | 2007-04-18 | 华为技术有限公司 | 一种在多协议标记交换网络中对净荷类型进行识别的方法 |
US20070183415A1 (en) * | 2006-02-03 | 2007-08-09 | Utstarcom Incorporated | Method and system for internal data loop back in a high data rate switch |
CN1917466A (zh) * | 2006-08-30 | 2007-02-21 | 华为技术有限公司 | L2vpn异种介质互连中三层协议识别方法、设备及系统 |
CN101471923A (zh) * | 2007-12-27 | 2009-07-01 | 华为技术有限公司 | 发送协议报文、识别协议报文类型的方法、设备和系统 |
CN101764750A (zh) * | 2009-12-07 | 2010-06-30 | 福建星网锐捷网络有限公司 | 报文封装方法和检测转发环路的方法、装置及网络设备 |
CN103354520A (zh) * | 2013-07-02 | 2013-10-16 | 华为技术有限公司 | 一种标签处理的方法及装置 |
CN108111416A (zh) * | 2017-12-15 | 2018-06-01 | 盛科网络(苏州)有限公司 | 直接识别mpls内部封装报文的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021139289A1 (zh) * | 2020-01-08 | 2021-07-15 | 华为技术有限公司 | 报文发送方法、路由表项的生成方法、装置及存储介质 |
WO2024027271A1 (zh) * | 2022-08-01 | 2024-02-08 | 中兴通讯股份有限公司 | 应用流量感知方法及系统 |
CN117093533A (zh) * | 2023-08-18 | 2023-11-21 | 江苏新质信息科技有限公司 | 基于ubus框架实现多CPU架构的通信方法及装置 |
CN117093533B (zh) * | 2023-08-18 | 2024-05-07 | 江苏新质信息科技有限公司 | 基于ubus框架实现多CPU架构的通信方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110166361B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11979322B2 (en) | Method and apparatus for providing service for traffic flow | |
CN102404197B (zh) | 分组的伪线层中包括的数据路径处理信息 | |
US20230078123A1 (en) | Method for Forwarding Packet in SRV6 Service Function Chain and SF Device | |
RU2005136879A (ru) | Идентификатор источника для нахождения мас-адреса | |
CN102971991A (zh) | 通过分组交换网络在分组伪线上传送的分组的有效封装 | |
CN105024985A (zh) | 一种报文处理方法及装置 | |
CN101159656B (zh) | 一种报文采样的方法、系统及设备 | |
CN110166361A (zh) | 一种报文转发方法及装置 | |
CN103259724A (zh) | 一种mpls vpn的实现方法、系统及客户边缘设备 | |
WO2008080315A1 (fr) | Procédé, équipement et système de transmission de données | |
WO2017193732A1 (zh) | 一种伪线数据报文的封装、解封装方法和相关装置 | |
US20230370899A1 (en) | Packet forwarding method, packet processing method, and device | |
CN105812198B (zh) | 桥接网络端到端的监测方法和装置 | |
WO2020125651A1 (zh) | 标签属性识别方法、装置、设备及存储介质 | |
CN113950811B (zh) | 扩展bgp保护以用于sr路径入口保护 | |
US20230254246A1 (en) | Mechanisms for packet path tracing and per-hop delay measurement in segment routing with multiprotocol label switching (sr-mpls) networks | |
EP2832055B1 (en) | Pseudowire groups in a packet switched network | |
EP2832061B1 (en) | Pseudowire extended group messaging in a packet switched network | |
CN101888336B (zh) | 接入设备实现tdm业务中继的方法和接入设备 | |
CN116634045A (zh) | 一种以太网oam报文识别方法及系统 | |
CN114826826A (zh) | 网络拥塞信息传输方法、装置、公有云网络和电子设备 | |
WO2016197933A2 (zh) | 报文转发 | |
CN116057911A (zh) | 使用多协议标签交换的服务功能链中的负载均衡和oam | |
WO2022237563A1 (zh) | 数据转发方法、装置、存储介质和电子装置 | |
CN115460138A (zh) | 网络互通方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |