CN107623584A - 多协议交换标签的检测、处理方法、装置及系统 - Google Patents

多协议交换标签的检测、处理方法、装置及系统 Download PDF

Info

Publication number
CN107623584A
CN107623584A CN201610567070.4A CN201610567070A CN107623584A CN 107623584 A CN107623584 A CN 107623584A CN 201610567070 A CN201610567070 A CN 201610567070A CN 107623584 A CN107623584 A CN 107623584A
Authority
CN
China
Prior art keywords
response
request message
message
downstream
label
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.)
Withdrawn
Application number
CN201610567070.4A
Other languages
English (en)
Inventor
彭少富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201610567070.4A priority Critical patent/CN107623584A/zh
Priority to PCT/CN2017/091477 priority patent/WO2018010560A1/zh
Publication of CN107623584A publication Critical patent/CN107623584A/zh
Withdrawn legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种多协议交换标签的检测、处理方法、装置及系统,其中,多协议交换标签的检测方法包括:检测发起方发送回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;接收传输节点或出口节点根据所述MPLS OAM报文反馈的回应应答报文,并检测所述回应应答报文与预存信息是否匹配,通过本发明,解决了相关技术中LSP检测失真以及P2MP LSP检测低效与不充分的问题。

Description

多协议交换标签的检测、处理方法、装置及系统
技术领域
本发明涉及通信领域,具体而言,涉及一种多协议交换标签的检测、处理方法、装置及系统。
背景技术
相关技术中,P2P(peer to peer)LSP ping/trace与P2MP(peer to multiplepeer)LSP ping/trace通过将多协议交换标签(Multi-protocol Label Switching,简称为MPLS)运行、管理和维护(Operation Administration and Maintenance,简称为OAM)报文按与MPLS数据报文转发一致的路径传输,数据平面不识别是MPLS OAM报文,当报文因标签生存时间(Time To Live,简称为TTL)超时或到达egress节点等原因从数据平面上送至控制平面时,才由控制平面识别是MPLS OAM报文并作后续处理。rfc4379(标记交换路径(Label Switching Path,简称为LSP)ping/trace)与rfc5884(MPLS BFD)都通过基于IP头的TTL=1与目的IP为127.0.0.0/8(IPv4)或0:0:0:0:0:FFFF:127.0.0.0/104(IPv6)这些标志来初步识别是MPLS OAM报文,以及rfc5586(MPLS g-ACH)通过GAL(特殊标签13)标志来识别是MPLS OAM报文,但是这些都不适合于不想对报文做深度解析来识别具体报文的数据平面,当这些标志在数据平面没有暴露,没有导致MPLS OAM报文从数据平面上送至控制平面时,则数据平面不知道它是一个MPLS OAM报文。
数据链路层虽然定义了类型字段识别是MPLS单播报文还是组播报文(rfc3032,rfc5332),但是并没有相应的标准定义识别是MPLS OAM报文还是MPLS数据报文,除了以太链路定义了ethernet type用于特定的以太OAM机制(如802.1ag,802.3ah,Y.1731)以外,但是这些定义不能适用于MPLS OAM。
一些场景下,数据平面也需要通过某种快捷的方式提前感知是MPLS OAM报文,在遵循与MPLS数据报文转发一致的前提下,做一些与转发路径无关的辅助处理。
相关技术中的P2P LSP ping/trace标准存在如下问题:
1)按照rfc4379,检测的target FEC存在ECMP时,通过在控制平面模拟负荷分担划分multipath information为多个分片,然后基于划分结果发送多个echo request(分别包含不同的multipath information分片)以期望遍历出完整的路径。存在的关键问题是:a)控制平面的模拟负荷分担结果不一定与数据平面的实际负荷分担结果相同;b)原始的multipath information可能无法满足负荷分担的分片需求,即存在不够分的问题。这些都导致检测失真。实际上,LSP ping的本质需求是检测数据平面连通性以及保证数据平面与控制平面的转发表项一致,只要我们将MPLS OAM报文严格的按照数据平面的真实负荷分担转发即可。
2)按照rfc6424,在检测过程中若发生FEC change,需要感知FEC change的节点向Initiator节点返回FEC change信息,以便Initiator在后续echo request中携带变化后的target FEC stack。但是该标准存在一个明显的缺陷是只适用于trace route模式,而ping模式时感知FEC change的节点是不会向Initiator节点返回FEC change信息,这意味着要只要发生了FEC change,执行LSP ping将会得到路径不通的结果。
相关技术中的P2MP LSP ping/trace标准存在如下检测低效与不充分的问题:
1)按照rfc6425,Initiator并没有精确控制echo reply报文是否收齐后发起下一次echo request,也就是说,发送下一次request的时机是不定的。如果Initiator每收到一个echo reply就发送下一个echo request,那么它需要缓存大量的历史echo request以便等待那些晚到的echo reply。
2)由于echo request的发送没有严格控制,那么收到的echo reply可能会爆发而导致拥塞。虽然提出了解决方法,但是并不完美。比如,返回echo reply时随机延时的方法会拖慢检测过程;只让特定节点返回echo reply的方法则仅支持指定单个节点或指定至单个egress的沿路节点。
3)由于echo request中包含的Downstream Detailed Mapping TLV中“AddressType”字段设置为IPv4 Unnumbered或IPv6 Unnumbered,“Downstream IP Address”字段设置为ALLROUTERS组播地址,则导致responder节点上无法做入接口一致性检查,无法严格检验控制平面与转发平面的转发信息是否一致。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种多协议交换标签的检测、处理方法、装置及系统,以解决相关技术中LSP检测失真以及P2MP LSP检测低效与不充分的问题。
根据本发明的一个实施例,提供了一种多协议交换标签的检测方法,包括:检测发起方发送回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;接收传输节点或出口节点根据所述MPLS OAM报文反馈的回应应答报文,并检测所述回应应答报文与预存信息是否匹配。
可选地,所述回应请求报文中还包括:下游映射信息,其中,所述下游映射信息对应于所述回应请求报文的一个或多个下一跳路由。
可选地,检测发起方发送回应请求报文还包括:检测发起方判断所述回应请求报文是否为初始节点首次发送的回应请求报文;在判断结果为是的情况下,检测发起方在发送回应请求报文时,在所述初始节点本地保存所述回应请求报文中的下游映射信息。
可选地,在判断结果为否的情况下,在发送回应请求报文时,检测发起方在所述初始节点本地保存上一轮回应应答报文中携带的下游映射信息。
可选地,所述类型字段封装在所述回应请求报文的数据链路层头中。
可选地,检测所述回应应答报文与预存信息是否匹配包括:检测所述回应应答报文中的发送方句柄Sender's Handle和所述回应请求报文中的第一相应字段是否匹配,以及检测所述回应应答报文中的序列号和所述回应请求报文中的第二相应字段是否匹配;在所述Sender's Handle与所述第一相应字段匹配,且所述序列号与所述第二相应字段匹配时,判断所述回应应答报文中的上游接口信息与所述初始节点本地保存的下游映射信息是否匹配,在所述回应应答报文中的上游接口信息与所述初始节点本地保存的下游映射信息匹配时,确定所述回应应答报文与预存信息匹配。
可选地,在本地保存多个下游映射信息时,判断所述回应应答报文中的上游接口信息与所述下游映射信息是否匹配包括:判断本地保存的所述多个下游映射信息是否都有对应的所述回应应答报文匹配;判断本地保存的所述多个下游映射信息与多个所述回应应答报文的匹配成功率是否大于预设阈值。
可选地,在检测所述回应应答报文与预存信息是否匹配之后,所述方法还包括:根据所述回应应答报文与预存信息是否匹配的检测结果确定是否发送下一个回应请求报文。
可选地,根据所述回应应答报文与预存信息是否匹配的检测结果确定是否发送下一个回应请求报文包括:检测所述回应请求报文的传输模式;在所述传输模式为因特网包探索器ping(Packet Internet Groper)模式时,放弃发送下一个回应请求报文;和/或,根据本地保存的下游映射信息是否满足匹配策略来确定是否发送下一个回应请求报文。
根据本发明的另一个实施例,提供了一种多协议交换标签的处理方法,包括:接收回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;通过所述类型字段识别所述MPLS OAM报文;根据预设转发表项转发所述回应请求报文。
可选地,由转发平面根据预设转发表项转发所述回应请求报文,包括以下之一:转发平面根据第一预设转发表项将所述回应请求报文转发至控制平面,并反馈所述回应请求报文的回应应答报文;转发平面修改所述MPLS OAM报文的内容,并根据第二预设转发表项将所述回应请求报文转发至数据平面的下一跳节点。
可选地,转发平面修改所述MPLS OAM报文的内容包括:修改所述回应请求报文中的下游映射信息。
根据本发明的另一个实施例,提供了一种多协议交换标签的检测装置,包括:发送模块,用于发送回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;检测模块,用于接收传输节点或出口节点根据所述MPLS OAM报文反馈的回应应答报文,并检测所述回应应答报文与预存信息是否匹配。
可选地,所述回应请求报文中还包括:下游映射信息,其中,所述下游映射信息对应于所述回应请求报文的一个或多个下一跳路由。
根据本发明的另一个实施例,提供了一种多协议交换标签的处理装置,包括:接收模块,用于接收回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;识别模块,用于通过所述类型字段识别所述MPLSOAM报文;转发模块,用于根据预设转发表项转发所述回应请求报文。
根据本发明的又一个实施例,提供了一种多协议交换标签的检测系统,包括初始节点、传输节点或出口节点,所述初始节点还包括:
发送模块,用于发送回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;检测模块,用于接收传输节点或出口节点根据所述MPLS OAM报文反馈的回应应答报文,并检测所述回应应答报文与预存信息是否匹配;传输节点或出口节点还包括:接收模块,用于接收回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;识别模块,用于通过所述类型字段识别所述MPLS OAM报文;转发模块,用于根据预设转发表项将所述回应请求报文转发至控制平面,反馈所述回应请求报文的回应应答报文。
根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:
发送回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
接收传输节点或出口节点根据所述MPLS OAM报文反馈的回应应答报文,并检测所述回应应答报文与预存信息是否匹配。
通过本发明,发送回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;接收传输节点或出口节点根据所述MPLSOAM报文反馈的回应应答报文,并检测所述回应应答报文与预存信息是否匹配。由于在回应请求报文中携带了用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段以便传输节点的转发平面根据实际转发信息自行修改报文,以及相应的一整套检测处理流程,因此,可以解决相关技术中LSP检测失真以及P2MP LSP检测低效与不充分的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的多协议交换标签的检测方法的流程图;
图2是根据本发明实施例的多协议交换标签的处理方法的流程图;
图3是根据本发明实施例的多协议交换标签的检测装置的结构框图;
图4是根据本发明实施例的多协议交换标签的处理装置的结构框图;
图5是根据本发明实施例的多协议交换标签的检测系统的结构框图;
图6是根据本发明具体实施方式的LSP ping echo request/reply消息格式图;
图7是根据本发明具体实施方式的Downstream Mapping TLV的格式图;
图8是根据本发明具体实施方式的Upstream Interface TLV的格式图;
图9是根据本发明具体实施方式的Responder Egress TLV的格式图;
图10是根据本发明具体实施方式的Responder Transit TLV的格式图;
图11是根据本发明具体实施方式的Initiator节点发送echo request报文的流程图;
图12是根据本发明具体实施方式的Transit或Egress节点接收echo request报文的流程图;
图13是根据本发明具体实施方式的Responder节点发送echo reply报文的流程图;
图14是根据本发明具体实施方式的Initiator节点接收echo reply报文的流程图;
图15是根据本发明示例1的网络拓扑图;
图16是根据本发明示例2的网络拓扑图;
图17是根据本发明示例3的网络拓扑图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
在本实施例中提供了一种多协议交换标签的检测方法,图1是根据本发明实施例的多协议交换标签的检测方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,检测发起方发送回应请求报文,其中,回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
步骤S104,接收传输节点或出口节点根据MPLS OAM报文反馈的回应应答报文,并检测回应应答报文与预存信息是否匹配。可选的,执行主体可以是检测发起方,或检测方(与检测发起方相同或不同)。
通过上述步骤,发送回应请求报文,其中,回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;接收传输节点或出口节点根据MPLS OAM报文反馈的回应应答报文,并检测回应应答报文与预存信息是否匹配。由于在回应请求报文中携带了用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段,以便传输节点的转发平面根据实际转发信息自行修改报文,以及相应的一整套检测处理流程,因此,可以解决相关技术中LSP检测失真以及P2MP LSP检测低效与不充分的问题。
可选的,回应请求报文中还包括:下游映射信息,其中,下游映射信息对应于回应请求报文的一个或多个下一跳路由。
具体的,检测发起方发送回应请求报文还包括:
S11,检测发起方判断回应请求报文是否为初始节点首次发送的回应请求报文;
S12,在判断结果为是的情况下,在发送回应请求报文时,检测发起方在初始节点本地保存回应请求报文中的下游映射信息。在判断结果为否的情况下,检测发起方在发送回应请求报文时,在初始节点本地保存上一轮回应应答报文中携带的下游映射信息。
可选的,类型字段封装在回应请求报文的数据链路层头中。
可选的,检测回应应答报文与预存信息是否匹配具体包括:
S21,检测回应应答报文中的发送方句柄Sender's Handle和回应请求报文中的第一相应字段是否匹配,以及检测回应应答报文中的序列号和回应请求报文中的第二相应字段是否匹配;
S22,在Sender's Handle与第一相应字段匹配,且序列号与第二相应字段匹配时,判断回应应答报文中的上游接口信息与初始节点本地保存的下游映射信息是否匹配,在回应应答报文中的上游接口信息与初始节点本地保存的下游映射信息匹配时,确定回应应答报文与预存信息匹配。
可选的,在本地保存多个下游映射信息时,判断回应应答报文中的上游接口信息与下游映射信息是否匹配包括以下两种方式:
判断本地保存的多个下游映射信息是否都有对应的回应应答报文匹配;
判断本地保存的多个下游映射信息与多个回应应答报文的匹配成功率是否大于预设阈值。
可选的,在检测回应应答报文与预存信息是否匹配之后,方法还包括:根据回应应答报文与预存信息是否匹配的检测结果确定是否发送下一个回应请求报文。进一步的,根据回应应答报文与预存信息是否匹配的检测结果确定是否发送下一个回应请求报文包括:检测回应请求报文的传输模式;在传输模式为因特网包探索器ping模式时,放弃发送下一个回应请求报文;和/或,根据本地保存的下游映射信息是否满足匹配策略来确定是否发送下一个回应请求报文。
在本实施例中提供了一种多协议交换标签的处理方法,与上述多协议交换标签的检测方法对应,可以应用在传输节点或出口节点中,图2是根据本发明实施例的多协议交换标签的处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,接收回应请求报文,其中,回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
步骤S204,通过类型字段识别MPLS OAM报文;
步骤S206,根据预设转发表项转发回应请求报文。
可选的,由转发平面根据预设转发表项转发回应请求报文,包括以下之一:
转发平面根据第一预设转发表项将回应请求报文转发至控制平面,并反馈回应请求报文的回应应答报文;
转发平面修改MPLS OAM报文的内容,并根据第二预设转发表项将回应请求报文转发至数据平面的下一跳节点。
可选的,转发平面修改MPLS OAM报文的内容包括:转发平面修改回应请求报文中的下游映射信息。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
在本实施例中还提供了一种多协议交换标签的检测装置,多协议交换标签的处理装置,多协议交换标签的检测系统,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的多协议交换标签的检测装置的结构框图,如图3所示,该装置包括:
发送模块30,用于发送回应请求报文,其中,回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
检测模块32,用于接收传输节点或出口节点根据MPLS OAM报文反馈的回应应答报文,并检测回应应答报文与预存信息是否匹配。
可选的,回应请求报文中还包括:下游映射信息,其中,下游映射信息对应于回应请求报文的一个或多个下一跳路由。
图4是根据本发明实施例的多协议交换标签的处理装置的结构框图,如图4所示,该装置包括:
接收模块40,用于接收回应请求报文,其中,回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
识别模块42,用于通过类型字段识别MPLS OAM报文;
转发模块44,用于根据预设转发表项转发回应请求报文。
图5是根据本发明实施例的多协议交换标签的检测系统的结构框图,如图5所示,该系统包括:包括Initiator初始节点50、Transit传输节点52或Egress出口节点52,
初始节点50还包括:
发送模块502,用于发送回应请求报文,其中,回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
检测模块504,用于接收传输节点或出口节点根据MPLS OAM报文反馈的回应应答报文,并检测回应应答报文与预存信息是否匹配;
传输节点52或出口节点52还包括:
接收模块522,用于接收回应请求报文,其中,回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
识别模块524,用于通过类型字段识别MPLS OAM报文;
转发模块526,用于根据预设转发表项将回应请求报文转发至控制平面,反馈回应请求报文的回应应答报文。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本实施时根据本发明的可选实施例,用于结合具体的场景对本申请进行具体详细的说明:
本实施例的MPLS LSP检测的方法包括以下步骤:
第一步:
Initiator节点在发送echo request(回应请求)报文时,在封装的数据链路层头中设置类型字段以表明为MPLS OAM报文。echo request中包含的Downstream Mapping TLV(Type Length Value,类型长度字符)始终只对应要发往的那个下一跳。
Initiator发送首个echo request时,需要保存相应的下一跳的DownstreamMapping信息,以便用于与后续的echo reply精确匹配。非首个echo request时,Initiator保存的是上一轮echo reply中拷贝的Downstream Mapping信息。
Initiator发送的echo request中包含的Downstream Mapping始终只是对应要发往的下一跳,与后续收到的echo reply无关。
第二步:
Transit节点或Egress节点的数据平面提前通过数据链路层头快速识别是MPLSOAM报文(即echo request报文),然后根据与数据报文转发一致的转发表项指导转发,转发结果有两种:1)如果发送控制平面,由控制平面处理后作为Responder节点向Initiator节点回复echo reply;2)如果数据平面继续向下一跳转发,则根据该报文是MPLS OAM报文而直接在数据平面修改MPLS OAM报文内容后发送,如修改echo request中的DownstreamMapping TLV内容,echo request中包含的Downstream Mapping TLV只对应要发往的那个下一跳的;继续在数据链路层头中设置类型字段以表明为MPLS OAM报文。注意如果是普通数据报文则没有这一步,避免影响普通数据报文的转发效率。
第三步:
Initiator节点收到Responde节点echo reply后,首先根据echo reply中的Sender's Handle与Sequence Number和echo request中的相应字段匹配,然后根据echoreply中的Upstream Interface TLV与本地保存的Downstream Mapping信息匹配,以确定是否所有本地保存的Downstream Mapping信息都有相应的echo reply匹配,决定是否可以发送下一个echo request,默认策略是所有本地保存的Downstream Mapping信息都有相应的echo reply匹配后才发送下一个echo request,也可采取策略为只要本地保存的Downstream Mapping信息匹配成功占比若大于一定的阀值即可发送下一个echo request,或者其它策略。Initiator在发送下一轮的echo request前,重新从这些匹配了的echoreply中获取Downstream Mapping信息并保存,用于和下一轮的echo reply匹配。
克服现有技术中存在的P2P LSP检测失真以及P2MP LSP检测低效与不充分的问题和缺陷,提供一种统一的MPLS LSP检测方法,采用本发明方法,与现有技术相比,统一了P2PLSP与P2MP LSP检测的流程,提升了检测效率,克服了检测失真以及检测不充分的问题。
下面结合附图对技术方案的实施作进一步的详细描述:
图6是根据本发明具体实施方式的LSP ping echo request/reply消息格式图,其定义与rfc4379基本相同,除了Global Flags新增一个标志:
C(Constant)标志:用于echo request报文中,设置为1表明在检测过程中targetFEC stack始终保持不变,不支持FEC change。比如报文要进入更外层的隧道,都强制将更外层隧道按照PIPE类型处理,否则还要区分该外层隧道是UNIFORM或者PIPE做差异化处理。比如报文要进入另一段粘连的LSP或者当前隧道终结,也强制target FEC stack不变化。C标志默认为0。LSP ping的命令设计中需要引入相应的参数用于设置该C标志。
图7是根据本发明具体实施方式的Downstream Mapping TLV的格式图,其中删减了rfc4379中Downstream Mapping TLV关于multipath information相关的字段,保留下来的字段的定义与rfc4379基本相同,除了:
1)DS Flags中新增三个标志:
E标志:设置为1表明该Downstream Mapping TLV对应的下一跳是ECMP成员。用于echo reply中。
M标志:设置为1表明该Downstream Mapping TLV对应的下一跳是组播成员。用于echo reply中。
R标志:设置为1表明该Downstream Mapping TLV对应的下一跳是非直连的。用于echo request/reply中。
2)Downstream Labels仅指target FEC stack中各FEC对应的标签,不包含其它更外层标签。
图8是根据本发明具体实施方式的Upstream Interface TLV的格式图,其中删除了rfc4379中Interface and Label Stack TLV中标签信息相关的字段,保留下来的字段的定义与rfc4379基本相同。
图9是根据本发明具体实施方式的Responder Egress TLV的格式图,图10是根据本发明具体实施方式的Responder Transit TLV的格式图,Egress与Transit节点向Initiator节点回复echo reply时可以包含自身的地址信息,以便Initiator节点评估是否从期望的节点都收到了echo reply。
本实施例还用到了rfc4379中定义的Target FEC Stack TLV,未作修改。
接下来我们介绍下echo request与echo reply报文的具体收发流程。
图11是根据本发明具体实施方式的Initiator节点发送echo request报文的流程图,包括
步骤S601,Initiator节点发起针对某个target FEC的LSP ping或LSPtraceroute流程,则构造echo request报文。
步骤S602,Initiator节点按照如下构造echo request PDU(Protocol DataUnit,协议数据单元):
1)选择一个Sender's Handle和一个Sequence Number,当连续发送echo request时,对Sequence Number按1递增。注意P2P LSP时若存在ECMP(Equal-Cost MultipathRouting,等价路由),则echo request只会向其中一个ECMP成员发送;而P2MP LSP时则会向每个组播成员发送,此种情况下任何一轮同时向各组播成员发送的echo request中的Sequence Number都是相同的。
2)TimeStamp Sent字段设置为一天中的相对时间,秒和微秒。
3)TimeStamp Received字段设置为0。
4)Reply Mode设置为期望的模式,表明希望echo reply沿IP或其它某种方式返回至Initiator节点。Return Code与Subcode设置为0。
5)包含target FEC stack TLV,表示被检测的target FEC。
6)根据LSP ping命令传入的参数设置Global Flags中的C标志。
7)traceroute模式时,包含Downstream Mapping TLV,对应发往的下一跳。DSFlags打上I标志,表明希望responder节点在回复echo reply时包含Upstream InterfaceTLV。这里的下一跳是指Initiator节点上至target FEC stack中顶层target FEC的下一跳。特别是当C标志无效时,当Initiator节点发现至顶层target FEC的转发表项要进入更外层的PIPE类型隧道时,则是指迭代隧道迭代前的远端下一跳,此时DS Flags中的R标志设置为有效;若要进入更外层的UNIFORM类型隧道时,则是指迭代隧道迭代后的下一跳,此时DS Flags中的R标志设置为无效,此时Initiator可在target FEC stack顶层继续插入该UNIFORM隧道的FEC。当C标志有效时,当Initiator节点发现至顶层target FEC的转发表项要进入更外层的隧道时,不区分PIPE或UNIFORM,均是指迭代隧道迭代前的远端下一跳,此时DS Flags中的R标志设置为有效。
步骤S603,Initiator节点按照如下构造IP/UDP头:
1)源IP为发送端一个可路由的IP地址
2)目的IP从127/8中随机选择,或从0:0:0:0:0:FFFF:127/104中随机选择
3)IP TTL=1
4)源PORT由发送端选择
5)目的PORT为3503
6)Router Alert option必须设置
步骤S604,Initiator节点为echo request报文封装标签栈,包含target FECstack对应的标签以及任何可能的更外层隧道标签。
步骤S605,Initiator节点为echo request报文封装数据链路层,设置类型字段(如以太链路时设置ethernet type为特定的值)表明为MPLS OAM报文。
步骤S606,Initiator节点维护target responder identifiers,表示期望收到哪些节点回复的echo replys,作为后续判断检测是否完毕的依据之一。
步骤S607,Initiator节点判断是否是首轮echo request。
步骤S608,如果是首轮echo request,则保存首轮echo request要发往的下一跳对应的Downstream Mapping信息,用于精确匹配下一轮echo reply。
P2P LSP时,是指Initiator节点上至target FEC stack中顶层target FEC的下一跳,如果有多个下一跳形成ECMP,echo request也只会发往其中一个下一跳,所以Initiator只需保存这一个下一跳对应的Downstream Mapping信息,其中DS Flags打上E标志。如步骤602,这里的下一跳要根据C标志与是否进入更外层隧道的PIPE/UNIFORM类型一起确定。
P2MP LSP时,是指Initiator节点上至target FEC的组播转发表项中每个组播成员对应的Downstream Mapping信息,Initiator需要保存多个Downstream Mapping信息,其中DS Flags都打上了M标志。
步骤S609,如果不是首轮echo request,则保存从上一轮匹配的echo replys中获取的Downstream Mapping信息,用于精确匹配下一轮echo reply。上一轮匹配的echoreplys是指那些在上一轮echo request/reply流程中匹配echo request的echo replys,特别是这些echo replys包含的Upstream Interface TLV表明了它们与当时Initiator节点保存的Downstream Mapping信息是匹配的,具体见下面的Initiator节点接收echoreply报文的流程。
P2P LSP时,是指Responder节点上对于target FEC stack从顶层至底层首先作为transit节点的target FEC(记为First Transit FEC)对应的下一跳,如果下一跳有多个形成ECMP,则echo reply中会包含多个Downstream Mapping TLVs,其中DS Flags都打上了E标志,Initiator需要保存多个Downstream Mapping信息。特别是当Responder节点发现至First Transit FEC的转发表项要进入更外层的隧道时,它也需要根据C标志与进入更外层隧道的PIPE/UNIFORM类型一起确定下一跳,与前面步骤602的Initiator节点的处理是类似的,即当C标志无效时,当Responder节点发现至First Transit FEC的转发表项要进入更外层的PIPE类型隧道时,则是指迭代隧道迭代前的远端下一跳,此时DS Flags中的R标志设置为有效;若要进入更外层的UNIFORM类型隧道时,则是指迭代隧道迭代后的下一跳,此时DSFlags中的R标志设置为无效。当C标志有效时,当Initiator节点发现至顶层target FEC的转发表项要进入更外层的隧道时,不区分PIPE或UNIFORM,均是指迭代隧道迭代前的远端下一跳,此时DS Flags中的R标志设置为有效。如果First Transit FEC不存在,则echo reply中无需包含Downstream Mapping TLV。
P2MP LSP时,是指Responder节点上至target FEC的组播转发表项中每个组播成员对应的Downstream Mapping信息,echo reply中会包含多个Downstream Mapping TLVs,其中DS Flags都打上了M标志,Initiator需要保存多个Downstream Mapping信息。
步骤S610,Initiator启动定时器,等待echo reply。
图12是根据本发明具体实施方式的Transit或Egress节点接收echo request报文的流程图,包括:
步骤S701,Transit或Egress节点接收到echo request。
步骤S702,数据平面首先根据数据链路层头的类型字段快速获取是否为MPLS OAM报文,用于后续处理。
数据平面处理时若发现以下任一条件暴露,都将mpls echo request报文上送控制面:
a)Router Alert option
b)IP TTL expiration
c)MPLS TTL expiration
d)MPLS Router Alert label
e)127/8范围的目的IP
步骤S703,数据平面判断是否需要上送控制平面。
步骤S704,如果数据平面需要将echo request报文上送控制平面。
控制平面处理:
1)检查标签值是否有效,是否存在相应的ILM。Trace route时记下相应的标签操作,用于填写在后续的echo reply中。
2)检查Downstream Mapping TLV中的下一跳信息是否与报文到达的入接口匹配。
3)检查报文的标签栈与target FEC stack是否一致。由于Downstream MappingTLV中只包含了target FEC stack中FEC对应的标签,所以需要根据Downstream MappingTLV中包含的target FEC stack中FEC对应的标签层数按照从底层至顶层的顺序从报文的标签栈中获取相应层数的标签,用于和target FEC stack做一致性检查。检查时,先检查顶层FEC,若顶层FEC表明到达了Egress节点,则继续检查下一层FEC(转发等价类),否则不再检查下一层FEC。
步骤S705,判断上述检查是否都成功。
步骤S706,检查结果为成功。
1)向Initiator节点回复echo reply,Return Code与Return Subcode设置相应的成功返回码。包含Upstream Interface TLV,Responder Egress TLV或Responder TransitTLV。
2)Responder节点为Transit时,还可以根据echo request中包含了DownstreamMapping TLV而在ehco reply中包含Downstream Mapping TLVs,根据需要打上E/M/R标志。P2P LSP时,是指Responder节点上至target FEC stack中First Transit FEC的下一跳,如步骤609,这里的下一跳要根据C标志与是否进入更外层隧道的PIPE/UNIFORM类型一起确定,即当C标志无效时,当Responder节点发现至First Transit FEC的转发表项要进入更外层的PIPE类型隧道时,则是指迭代隧道迭代前的远端下一跳,此时DS Flags中的R标志设置为有效;若要进入更外层的UNIFORM类型隧道时,则是指迭代隧道迭代后的下一跳,此时DSFlags中的R标志设置为无效。当C标志有效时,当Initiator节点发现至顶层target FEC的转发表项要进入更外层的隧道时,不区分PIPE或UNIFORM,均是指迭代隧道迭代前的远端下一跳,此时DS Flags中的R标志设置为有效。如果下一跳有多个形成ECMP,则echo reply中会包含多个Downstream Mapping TLVs,其中DS Flags都打上了E标志。P2MP LSP时,是指Responder节点上至target FEC的组播转发表项中每个组播成员对应的DownstreamMapping信息,echo reply中会包含多个Downstream Mapping TLVs,其中DS Flags都打上了M标志。
步骤S707,检查结果为失败。
向Initiator节点回复echo reply,Return Code与Return Subcode设置相应的失败返回码。包含Upstream Interface TLV。
步骤S708,如果数据平面不需要将echo request报文上送控制平面,则检查之前快速获取是否为MPLS OAM报文的标志。
步骤S709,如果不是MPLS OAM报文,则数据平面立即将报文按正常数据报文转发。
步骤S710,如果是MPLS OAM报文,则数据平面在发送报文前将报文内容做修改后再发送。
取决于硬件实现代价,选择支持修改的程度。一般最简单的是等字段修改,即不改变报文的大小,仅改变其中某些字段的取值,而更复杂的修改则是改变报文大小。本实施例中,简单的修改可以是将echo request中的Downstream Mapping TLV根据报文要发往的下一跳做修改,复杂的修改可以是修改target FEC stack。
本实施例中,可根据echo request报文中携带的C标志来修改报文。
如果C标志有效,则不修改target FEC stack TLV,仅修改Downstream MappingTLV。具体的,P2P LSP时,改成First Transit FEC对应的转发表项的下一跳对应的Downstream Mapping信息,如果转发表项有多个下一跳形成ECMP,实际转发时仅会挑选其中一个进行转发,Downstream Mapping TLV就根据该挑选中的下一跳进行修改。由于C标志有效,当该挑选中的下一跳需要继续迭代更外层的隧道时,都统一将外层隧道按照PIPE类型处理,即修改后的Downstream Mapping TLV中的下一跳信息为发生隧道迭代前的远端下一跳,实际上也就是First Transit FEC对应转发表项的原始下一跳,DS Flags中的R标志置1。如果不需要迭代外层隧道,则DS Flags中的R标志置0。P2MP LSP时,改成target FEC对应的组播转发表项中每个组播成员对应的Downstream Mapping信息,即向每个组播成员下一跳分别发送echo request时,各echo request中修改后的Downstream Mapping TLV中的下一跳信息分别为相应组播成员下一跳。
如果C标志无效,则既修改target FEC stack TLV,也修改Downstream MappingTLV。具体的,P2P LSP时,如果节点上发生了target FEC stack change,包括FEC POP、PUSH,都直接修改target FEC stack TLV。另外Downstream Mapping TLV改成FirstTransit FEC对应的转发表项的下一跳对应的Downstream Mapping信息,如果转发表项有多个下一跳形成ECMP,实际转发时仅会挑选其中一个进行转发,Downstream Mapping TLV就根据该挑选中的下一跳进行修改。由于C标志无效,当该挑选中的下一跳需要继续迭代更外层的PIPE类型的隧道时,修改后的Downstream Mapping TLV中的下一跳信息为发生隧道迭代前的远端下一跳,实际上也就是First Transit FEC对应转发表项的原始下一跳,DSFlags中的R标志置1。当该挑选中的下一跳需要继续迭代更外层的UNIFORM类型的隧道时,修改后的Downstream Mapping TLV中的下一跳信息为发生隧道迭代后的下一跳,DS Flags中的R标志置0。如果不需要迭代外层隧道,则DS Flags中的R标志置0。P2MP LSP时,改成target FEC对应的组播转发表项中每个组播成员对应的Downstream Mapping信息,即向每个组播成员下一跳分别发送echo request时,各echo request中修改后的DownstreamMapping TLV中的下一跳信息分别为相应组播成员下一跳。
另外,节点若发现修改前的Downstream Mapping TLV中的R标志是有效的,则它需要比较该DownstreamMapping TLV中指定的远端下一跳是否为自己,只有为自己才需要按照如上的流程修改Downstream Mapping TLV,否则不修改。
图13是根据本发明具体实施方式的Responder节点发送echo reply报文的流程图,包括:
步骤S801,Transit或Egress节点根据收到的echo request上送控制平面后的处理结果,作为responder节点回复echo reply。
步骤S802,按照如下构造Echo reply PDU:
1)Sender's Handle,Sequence Number,TimeStamp Sent从request报文中拷贝。
2)TimeStamp Received字段设置为一天中的相对时间,秒和微秒。
3)target FEC Stack TLV可从request报文中拷贝。
4)Return Code与Subcode必须根据接收request的处理结果设置。
5)包含Upstream Interface TLV,Responder Egress TLV或Responder TransitTLV。
6)Responder节点为Transit时,还可以包含Downstream Mapping TLVs,根据需要打上E/M/R标志。如步骤706,这里Downstream Mapping TLVs的下一跳是根据C标志与是否进入更外层隧道的PIPE/UNIFORM类型一起确定的,此处不再赘述。
步骤S803,按照如下构造IP/UDP:
1)源IP为Responder端一个可路由的IP地址
2)目的IP从request报文中拷贝源IP或者从Reply-to TLV中拷贝。
3)IP TTL=255
4)源PORT为3503
5)目的PORT从request报文中拷贝源PORT
6)Router Alert option:如果request中指明reply mode为"Reply via an IPv4UDP packet with Router Alert",则必须包含Router Alert option,此时如果返程走LSP,则顶层label为Router Alert label(1)
步骤S804,正常封装相应的数据链路层后转发。
图14是根据本发明具体实施方式的Initiator节点接收echo reply报文的流程图,包括:
步骤S901,Initiator节点接收到echo reply报文。
步骤S902,Initiator获取echo reply报文中的Sender's Handle与SequenceNumber,与本地保存的echo request对应的Sender's Handle与Sequence Number做匹配。
步骤S903,检查echo reply是否与echo request匹配。
步骤S904,如果不匹配,则丢弃echo reply。
步骤S905,如果匹配,则在traceroute模式时继续获取echo reply报文中的Upstream Interface TLV,与本地保存的Downstream Mapping信息做匹配。检查是否本地保存的所有Downstream Mapping信息都有相应的echo reply匹配。含有E标志的多个Downstream Mapping只需要匹配其中一个即可;含有M标志的都需要匹配。ping模式时,不做匹配,即总是认为匹配成功。
步骤S906,等待用于等待接收echo reply的定时器超时。
步骤S907,定时器超时后,检查是否为ping模式。
步骤S908,如果是ping模式,则整个检测过程结束,报告检测结果,比如哪些节点回复了echo reply,期望的回复节点是否都回复了等等。Initiator根据需要可开启下一轮重复检测。
步骤S909,如果是traceroute模式,则继续检查本地保存的Downstream Mapping信息是否全部匹配了,或者只有部分匹配但是否满足匹配通过策略,比如匹配的Downstream Mapping占比超过了一定的阀值。P2P LSP时,本地可能保存了多个打上了E标志的Downstream Mapping条目,这些条目中只要有一个能与echo reply匹配,则认为它们都通过匹配了。P2MP LSP时,本地可能保存了多个打上了M标志的Downstream Mapping条目,这些条目需要分别单独和不同的echo reply匹配。
如果本地保存的Downstream Mapping匹配没有通过,则整个检测过程结束,报告检测结果。
步骤S910,如果本地保存的Downstream Mapping匹配通过了,则继续检查期望回复echo reply的节点是否都回复了echo reply。
如果期望的节点都回复了echo reply,那么整个检测过程结束,报告检测结果。
步骤S911,如果还有些期望的节点没有回复echo reply,则继续检查所有echoreply中有没有包含任何Downstream Mapping TLV。
如果所有echo reply中都没有包含任何Downstream Mapping TLV,那么整个检测过程结束,报告检测结果。
步骤S912,将本地保存的所有Downstream Mapping信息删除,从所有echo reply中获取新的Downstream Mapping信息,本地保存用于和下一轮的echo reply匹配。发送下一轮echo request,label TTL增1。Sender's Handle不变,Sequence Number增1。其它参考Initiator节点发送echo request报文的流程。
下面结合以下示例介绍本实施例的MPLS LSP检测方法,包括:
示例1
本实施例将描述P2P LSP的检测流程,图15是根据本发明示例1的网络拓扑图,如图15所示,A作为ingress节点建立至egress节点为H的LDP LSP,在transit节点B上,LDPLSP存在ECMP,其中一个下一跳为远端下一跳D并且形成LDP over TE,TE-tunnel从隧道头节点至隧道目的节点的路径为B-C-D,B节点上LDP LSP的另一个下一跳为E。
此时在A节点发起LSP traceroute LDP FEC H,并且设置参数Constant为有效,该检测流程包含如下步骤,为简洁起见,仅描述与本专利相关的主要流程:
步骤S1001
A节点上构造首轮echo request报文,设置Echo request PDU:
Global Flags:C=1
target FEC stack TLV:{LDP FEC H}
Downstream Mapping TLV:{DS Flags:I=1,E/M/R=0;Downstream Address=B&B.port1}。B表示Router-id,port1表示接口IP,下同。
封装IP/UDP头以及标签栈,栈顶标签LDP Label TTL=1。
设置数据链路层类型字段(如ethernet type=0x88DF)表明为MPLS OAM报文。
A节点上本地保存Downstream Mapping条目:{DS Flags:E/M=0;DownstreamAddress=B&B.port1}
步骤S1002
B节点收到echo request报文,因标签栈顶层标签TTL=1导致上送控制平面。在控制平面,检查发现标签值是有效的,存在相应的ILM并且标签操作为SWAP;检查发现Donstream Mapping TLV中的下一跳信息与报文到达的入接口是匹配的;检查发现报文的标签栈与target FEC stack是一致的。
B节点回复echo reply报文,包括:
Upstream Interface TLV:{B&B.port1}
Responder Transit TLV:{B}
Downstream Mapping TLV1:{DS Flags:I=1,E=1,R=1;Downstream Address=D&D}。这里因为C标志有效,则按照隧道迭代之前的下一跳填写Downstream Mapping TLV。
Downstream Mapping TLV2:{DS Flags:I=1,E=1,R=0;Downstream Address=E&E.port1}。
步骤S1003
A节点收到B节点的ehco reply,检查发现与当前echo request是匹配的,并且echo reply中的Upstream Interface TLV:{B&B.port1}与本地保存的DownstreamMapping条目:{DS Flags:E/M=0;Downstream Address=B&B.port1}是匹配的。
A节点从echo reply中获取新的Downstream Address信息并本地保存为:
Downstream Mapping条目1:{DS Flags:E=1,R=1;Downstream Address=D&D}
Downstream Mapping条目2:{DS Flags:E=1,R=0;Downstream Address=E&E.port1}
A发起下一轮echo request,类似步骤S1001,只不过栈顶标签LDP Label TTL=2。特别是包含的Downstream Mapping TLV与步骤S1001中是相同的。
步骤S1004
B节点收到echo request报文,因标签栈顶层标签TTL=2,且作为LDP LSP的transit节点,没有导致上送控制平面。
B节点根据数据链路层的类型字段快速判断是MPLS OAM报文,则根据echorequest中的C标志为1,以及echo request中修改前的Downstream Mapping TLV中的下一跳为B,则根据报文实际要通过LDP over TE发往远端下一跳D,而将报文的DownstreamMapping TLV修改为:{DS Flags:I=1,E=1,R=1;Downstream Address=D&D}。然后LDPLabel TTL减1,TE Label TTL设置为255,继续设置数据链路层类型字段表明为MPLS OAM报文。转发报文。
步骤S1005
C节点收到echo request报文,因标签栈顶层标签TTL=255,且作为TE LSP的transit节点,没有导致上送控制平面。
C节点根据数据链路层的类型字段快速判断是MPLS OAM报文,但是发现echorequest中修改前的Downstream Mapping TLV的下一跳不为C,并且R标志有效,则C知道它处于某个外层隧道中,所以对Downstream Mapping TLV不作修改。仅将TE Label TTL减1,继续设置数据链路层类型字段表明为MPLS OAM报文。转发报文。
步骤S1006
D节点收到echo request报文,TE Label或提前弹出或终结,使得标签栈顶层标签LDP Label TTL=1导致上送控制平面。在控制平面,检查发现标签值是有效的,存在相应的ILM并且标签操作为SWAP;检查发现Donstream Mapping TLV中的下一跳信息与报文到达的入接口是匹配的;检查发现报文的标签栈与target FEC stack是一致的。
D节点回复echo reply报文,包括:
Upstream Interface TLV:{D&D.port1}
Responder Transit TLV:{D}
Downstream Mapping TLV1:{DS Flags:I=1,E=0,R=0;Downstream Address=H&H.port1}
步骤S1007
A节点收到D节点的ehco reply,检查发现与当前echo request是匹配的,并且echo reply中的Upstream Interface TLV:{D&D.port1}与本地保存的DownstreamMapping条目1:{DS Flags:E=1,R=1;Downstream Address=D&D}是匹配的。这里因为R标志有效,只匹配Router-id即可。因为Downstream Mapping条目2的E标志有效,则认为它也通过了匹配。
A节点从echo reply中获取新的Downstream Address信息并本地保存为:
Downstream Mapping条目:{DS Flags:E=0,R=0;DownstreamAddress=H&H.port1}
A发起下一轮echo request,类似步骤S1001,只不过栈顶标签LDP Label TTL=3。特别是包含的Downstream Mapping TLV与步骤S1001中是相同的。
步骤S1008
B节点收到echo request报文,因标签栈顶层标签TTL=3,且作为LDP LSP的transit节点,没有导致上送控制平面。
其它类似步骤S1004,修改报文的Downstream Mapping TLV后转发。
步骤S1009
C节点收到echo request报文,因标签栈顶层标签TTL=255,且作为TE LSP的transit节点,没有导致上送控制平面。
其它类似步骤S1005,不修改报文的Downstream Mapping TLV,转发。
步骤S1010
D节点收到echo request报文,因标签栈顶层标签TTL=2,且作为LDP LSP的transit节点,没有导致上送控制平面。
D节点根据数据链路层的类型字段快速判断是MPLS OAM报文,则根据echorequest中的C标志为1,以及echo request中修改前的Downstream Mapping TLV中的下一跳为D,以及R标志有效,则根据报文实际要发往下一跳H,而将报文的Downstream MappingTLV修改为:{DS Flags:I=1,E/M/R=0;Downstream Address=H&H.port1}。然后LDPLabel TTL减1,继续设置数据链路层类型字段表明为MPLS OAM报文。转发报文。
步骤S1011
H节点收到echo request报文,标签栈顶层标签LDP Label TTL=1导致上送控制平面。在控制平面,检查发现标签值是有效的,存在相应的ILM并且标签操作为POP;检查发现Donstream Mapping TLV中的下一跳信息与报文到达的入接口是匹配的;检查发现报文的标签栈与target FEC stack是一致的。
H节点回复echo reply报文,包括:
Upstream Interface TLV:{H&H.port1}
Responder Egress TLV:{H}
步骤S1012
A节点收到H节点的ehco reply,检查发现与当前echo request是匹配的,并且echo reply中的Upstream Interface TLV:{H&H.port1}与本地保存的DownstreamMapping条目:{DS Flags:E/M=0;Downstream Address=H&H.port1}是匹配的。
A节点从echo reply中获取不到新的Downstream Address信息。检测完毕,输出检测结果,收到了Egress节点H的echo reply。
示例2
图16是根据本发明示例2的网络拓扑图,本实施例与示例1基本相同,区别是在A节点发起LSP traceroute LDP FEC H时设置参数Constant为无效。该检测流程包含如下步骤:
步骤S1101
A节点上构造首轮echo request报文,设置Echo request PDU:
Global Flags:C=1
target FEC stack TLV:{LDP FEC H}
Downstream Mapping TLV:{DS Flags:I=1,E/M/R=0;Downstream Address=B&B.port1}。B表示Router-id,port1表示接口IP,下同。
封装IP/UDP头以及标签栈,栈顶标签LDP Label TTL=1。
设置数据链路层类型字段(如ethernet type=0x88DF)表明为MPLS OAM报文。
A节点上本地保存Downstream Mapping条目:{DS Flags:E/M=0;DownstreamAddress=B&B.port1}
步骤S1102
B节点收到echo request报文,因标签栈顶层标签LDP Label TTL=1导致上送控制平面。在控制平面,检查发现标签值是有效的,存在相应的ILM并且标签操作为SWAP;检查发现Donstream Mapping TLV中的下一跳信息与报文到达的入接口是匹配的;检查发现报文的标签栈与target FEC stack是一致的。
B节点回复echo reply报文,包括:
Upstream Interface TLV:{B&B.port1}
Responder Transit TLV:{B}
Downstream Mapping TLV1:{DS Flags:I=1,E=1,R=0;Downstream Address=C&C.port1}。这里因为C标志无效,则按照隧道迭代之后的下一跳填写Downstream MappingTLV。
Downstream Mapping TLV2:{DS Flags:I=1,E=1,R=0;Downstream Address=E&E.port1}
步骤S1103
A节点收到B节点的ehco reply,检查发现与当前echo request是匹配的,并且echo reply中的Upstream Interface TLV:{B&B.port1}与本地保存的DownstreamMapping条目:{DS Flags:E/M=0;Downstream Address=B&B.port1}是匹配的。
A节点从echo reply中获取新的Downstream Address信息并本地保存为:
Downstream Mapping条目1:{DS Flags:E=1,R=0;Downstream Address=C&C.port1}
Downstream Mapping条目2:{DS Flags:E=1,R=0;Downstream Address=E&E.port1}
A发起下一轮echo request,类似步骤S1101,只不过栈顶标签LDP Label TTL=2。特别是包含的Downstream Mapping TLV与步骤S1101中是相同的。
步骤S1104
B节点收到echo request报文,因标签栈顶层标签LDP Label TTL=2,且作为LDPLSP的transit节点,没有导致上送控制平面。
B节点根据数据链路层的类型字段快速判断是MPLS OAM报文,则根据echorequest中的C标志为0,以及echo request中修改前的Downstream Mapping TLV中的下一跳为B,则根据报文实际要通过LDP over TE发往远端下一跳D,按隧道迭代后的下一跳将报文的Downstream Mapping TLV修改为:{DS Flags:I=1,E=1,R=0;Downstream Address=C&C.port1}。以及将target FEC stack TLV修改为:{LDP FEC H,TE FEC D}。然后LDPLabel TTL减1,TE Label TTL从LDP Label TTL拷贝,继续设置数据链路层类型字段表明为MPLS OAM报文。转发报文。
步骤S1105
C节点收到echo request报文,因标签栈顶层标签TE Label TTL=1导致上送控制平面。在控制平面,检查发现标签值是有效的,存在相应的ILM并且标签操作为SWAP;检查发现Donstream Mapping TLV中的下一跳信息与报文到达的入接口是匹配的;检查发现报文的标签栈与target FEC stack是一致的。
C节点回复echo reply报文,包括:
Upstream Interface TLV:{C&C.port1}
Responder Transit TLV:{C}
Downstream Mapping TLV1:{DS Flags:I=1,E=0,R=0;Downstream Address=D&D.port1}。
步骤S1106
A节点收到C节点的ehco reply,检查发现与当前echo request是匹配的,并且echo reply中的Upstream Interface TLV:{C&C.port1}与本地保存的DownstreamMapping条目1:{DS Flags:E=1,R=0;Downstream Address=C&C.port1}是匹配的,由于Downstream Mapping条目2:{DS Flags:E=1,R=0;Downstream Address=E&E.port1}中的E标志有效,则它也认为是匹配的。
A节点从echo reply中获取新的Downstream Address信息并本地保存为:
Downstream Mapping条目1:{DS Flags:E=0,R=0;Downstream Address=D&D.port1}
A发起下一轮echo request,类似步骤S1101,只不过栈顶标签LDP Label TTL=3。特别是包含的Downstream Mapping TLV与步骤S1101中是相同的。
步骤S1107
B节点收到echo request报文,因标签栈顶层标签LDP Label TTL=3,且作为LDPLSP的transit节点,没有导致上送控制平面。
其它类似步骤S1104,修改报文的target FEC stack TLV与Downstream MappingTLV后转发。
步骤S1108
C节点收到echo request报文,因标签栈顶层标签TE Label TTL=2,且作为TELSP的transit节点,没有导致上送控制平面。
C节点根据数据链路层的类型字段快速判断是MPLS OAM报文,则根据echorequest中的C标志为0,以及echo request中修改前的Downstream Mapping TLV中的下一跳为C,则将报文的Downstream Mapping TLV修改为:{DS Flags:I=1,E=0,R=0;Downstream Address=D&D.port1}。然后TE Label TTL减1,继续设置数据链路层类型字段表明为MPLS OAM报文。转发报文。
步骤S1109
D节点收到echo request报文,TE Label或提前弹出或终结,TE Label TTL会继承给LDP Label TTL,由于LDP Label TTL=1导致上送控制平面。在控制平面,检查发现标签值是有效的,存在相应的ILM并且标签操作为SWAP;检查发现Donstream Mapping TLV中的下一跳信息与报文到达的入接口是匹配的;检查发现报文的标签栈与target FEC stack是一致的。
D节点回复echo reply报文,包括:
Upstream Interface TLV:{D&D.port1}
Responder Transit TLV:{D}
Downstream Mapping TLV1:{DS Flags:I=1,E=0,R=0;Downstream Address=H&H.port1}
步骤S1110
A节点收到D节点的ehco reply,检查发现与当前echo request是匹配的,并且echo reply中的Upstream Interface TLV:{D&D.port1}与本地保存的DownstreamMapping条目:{DS Flags:E/M=0;Downstream Address=D&D.port1}是匹配的。
A节点从echo reply中获取新的Downstream Address信息并本地保存为:
Downstream Mapping条目1:{DS Flags:E=0,R=0;Downstream Address=H&H.port1}
A发起下一轮echo request,类似步骤S1101,只不过栈顶标签LDP Label TTL=4。特别是包含的Downstream Mapping TLV与步骤S1101中是相同的。
步骤S1111
B节点收到echo request报文,因标签栈顶层标签LDP Label TTL=4,且作为LDPLSP的transit节点,没有导致上送控制平面。
其它类似步骤S1104,修改报文的target FEC stack TLV与Downstream MappingTLV后转发。
步骤S1112
C节点收到echo request报文,因标签栈顶层标签TE Label TTL=3,且作为TELSP的transit节点,没有导致上送控制平面。
其它类似步骤S1108,修改报文的Downstream Mapping TLV。如果此时发生了倒数第二跳弹出,则还需修改报文的target FEC stack TLV为:{LDP FEC H},否则不修改。
步骤S1113
D节点收到echo request报文,TE Label或提前弹出或终结,TE Label TTL会继承给LDP Label TTL,由于LDP Label TTL=2没有导致上送控制平面。
D节点根据数据链路层的类型字段快速判断是MPLS OAM报文,则根据echorequest中的C标志为0,以及echo request中修改前的Downstream Mapping TLV中的下一跳为D,则将报文的Downstream Mapping TLV修改为:{DS Flags:I=1,E=0,R=0;Downstream Address=H&H.port1}。如果之前C节点上没有发生倒数第二跳弹出,则此时D节点上需要根据TE Label POP也将target TE FEC POP,即修改target FEC stack TLV为:{LDP FEC H}。然后LDP Label TTL减1,继续设置数据链路层类型字段表明为MPLS OAM报文。转发报文。
步骤S1114
H节点收到echo request报文,标签栈顶层标签LDP Label TTL=1导致上送控制平面。在控制平面,检查发现标签值是有效的,存在相应的ILM并且标签操作为POP;检查发现Donstream Mapping TLV中的下一跳信息与报文到达的入接口是匹配的;检查发现报文的标签栈与target FEC stack是一致的。
H节点回复echo reply报文,包括:
Upstream Interface TLV:{H&H.port1}
Responder Egress TLV:{H}
步骤S1115
A节点收到H节点的ehco reply,检查发现与当前echo request是匹配的,并且echo reply中的Upstream Interface TLV:{H&H.port1}与本地保存的DownstreamMapping条目:{DS Flags:E/M=0;Downstream Address=H&H.port1}是匹配的。
A节点从echo reply中获取不到新的Downstream Address信息。检测完毕,输出检测结果,收到了Egress节点H的echo reply。
示例3
本实施例将描述P2MP LSP的检测流程,图17是根据本发明示例3的网络拓扑图,如图17所示,是以R节点作为根节点的组播分发树,建立FEC为opaqueX的mLDP LSP。
此时在R节点发起LSP traceroute mLDP FEC opaqueX,该检测流程包含如下步骤,为简洁起见,仅描述与本专利相关的主要流程:
步骤S1201
R节点上构造首轮echo request报文,分别向组播成员下一跳A和组播成员下一跳B发送echo request。
设置向组播成员下一跳A发送的Echo request PDU:
target FEC stack TLV:{mLDP FEC opaqueX}
Downstream Mapping TLV:{DS Flags:I=1,E/R=0,M=1;Downstream Address=A&A.port1}。A表示Router-id,port1表示接口IP,下同。
封装IP/UDP头以及标签栈,栈顶标签LDP Label TTL=1。
设置数据链路层类型字段(如ethernet type=0x88DF)表明为MPLS OAM报文。
类似的设置向组播成员下一跳B发送的Echo request PDU:
target FEC stack TLV:{mLDP FEC opaqueX}
Downstream Mapping TLV:{DS Flags:I=1,E/R=0,M=1;Downstream Address=B&B.port1}。
封装IP/UDP头以及标签栈,栈顶标签LDP Label TTL=1。
设置数据链路层类型字段(如ethernet type=0x88DF)表明为MPLS OAM报文。
R节点上本地保存Downstream Mapping条目1:{DS Flags:E/R=0,M=1;Downstream Address=A&A.port1},Downstream Mapping条目2:{DS Flags:E/R=0,M=1;Downstream Address=B&B.port1}
步骤S1202
A节点收到echo request报文,因标签栈顶层标签TTL=1导致上送控制平面。在控制平面,检查发现标签值是有效的,存在相应的ILM并且标签操作为SWAP;检查发现Donstream Mapping TLV中的下一跳信息与报文到达的入接口是匹配的;检查发现报文的标签栈与target FEC stack是一致的。
A节点回复echo reply报文,包括:
Upstream Interface TLV:{A&A.port1}
Responder Transit TLV:{A}
Downstream Mapping TLV1:{DS Flags:I=1,E/R=0,M=1;Downstream Address=C&C.port1}。
Downstream Mapping TLV2:{DS Flags:I=1,E/R=0,M=1;Downstream Address=D&D.port1}。
类似的,B节点收到echo request报文,回复echo reply报文,包括:
Upstream Interface TLV:{B&B.port1}
Responder Transit TLV:{B}
Downstream Mapping TLV1:{DS Flags:I=1,E/R=0,,M=1;DownstreamAddress=E&E.port1}。
Downstream Mapping TLV2:{DS Flags:I=1,E/R=0,,M=1;DownstreamAddress=F&F.port1}。
步骤S1203
R节点收到A节点的ehco reply,检查发现与当前echo request是匹配的,并且echo reply中的Upstream Interface TLV:{A&A.port1}与本地保存的DownstreamMapping条目1:{DS Flags:E/R=0,M=1;Downstream Address=A&A.port1}是匹配的。
类似的,R节点收到B节点的echo reply,并且echo reply中的UpstreamInterface TLV:{B&B.port1}与本地保存的Downstream Mapping条目2:{DS Flags:E/R=0,M=1;Downstream Address=B&B.port1}是匹配的。
R节点从A的echo reply中获取新的Downstream Address信息并本地保存为:
Downstream Mapping条目1:{DS Flags:E/R=0,M=1;Downstream Address=C&C.port1}
Downstream Mapping条目2:{DS Flags:E/R=0,M=1;Downstream Address=D&D.port1}
R节点从B的echo reply中获取新的Downstream Address信息并本地保存为:
Downstream Mapping条目3:{DS Flags:E/R=0,M=1;Downstream Address=E&E.port1}
Downstream Mapping条目4:{DS Flags:E/R=0,M=1;Downstream Address=F&F.port1}
R发起下一轮echo request,类似步骤S1201,只不过栈顶标签LDP Label TTL=2。特别是包含的Downstream Mapping TLV与步骤S1201中是相同的。
步骤S1204
A节点收到echo request报文,因标签栈顶层标签LDP Label TTL=2,且作为mLDPLSP的transit节点,没有导致上送控制平面。
A节点根据数据链路层的类型字段快速判断是MPLS OAM报文,则根据echorequest中修改前的Downstream Mapping TLV中的下一跳为A,则将发给组播成员下一跳C的echo request报文的Downstream Mapping TLV修改为:{DS Flags:I=1,E/R=0,M=1;Downstream Address=C&C.port1}。将发给组播成员下一跳D的echo request报文的Downstream Mapping TLV修改为:{DS Flags:I=1,E/R=0,M=1;Downstream Address=D&D.port1}。然后LDP Label TTL减1,继续设置数据链路层类型字段表明为MPLS OAM报文。转发报文。
类似的,B节点将发给组播成员下一跳E的echo request报文的DownstreamMapping TLV修改为:{DS Flags:I=1,E/R=0,M=1;Downstream Address=E&E.port1}。将发给组播成员下一跳F的echo request报文的Downstream Mapping TLV修改为:{DSFlags:I=1,E/R=0,M=1;Downstream Address=F&F.port1}。然后LDP Label TTL减1,继续设置数据链路层类型字段表明为MPLS OAM报文。转发报文。
步骤S1205
C节点收到echo request报文,因标签栈顶层标签TTL=1导致上送控制平面。在控制平面,检查发现标签值是有效的,存在相应的ILM并且标签操作为SWAP;检查发现Donstream Mapping TLV中的下一跳信息与报文到达的入接口是匹配的;检查发现报文的标签栈与target FEC stack是一致的。
C节点回复echo reply报文,包括:
Upstream Interface TLV:{C&C.port1}
Responder Transit TLV:{C}
Downstream Mapping TLV1:{DS Flags:I=1,E/R=0,M=1;Downstream Address=G&G.port1}。
Downstream Mapping TLV2:{DS Flags:I=1,E/R=0,M=1;Downstream Address=H&H.port1}。
类似的,D节点收到echo request报文,回复echo reply报文,包括:
Upstream Interface TLV:{D&D.port1}
Responder Egress TLV:{D}
类似的,E节点收到echo request报文,回复echo reply报文,包括:
Upstream Interface TLV:{E&E.port1}
Responder Egress TLV:{E}
类似的,F节点收到echo request报文,回复echo reply报文,包括:
Upstream Interface TLV:{F&F.port1}
Responder Transit TLV:{F}
Downstream Mapping TLV1:{DS Flags:I=1,E/R=0,M=1;Downstream Address=I&I.port1}。
Downstream Mapping TLV2:{DS Flags:I=1,E/R=0,M=1;Downstream Address=J&J.port1}。
步骤S1206
R节点收到C节点的ehco reply,检查发现与当前echo request是匹配的,并且echo reply中的Upstream Interface TLV:{C&C.port1}与本地保存的DownstreamMapping条目1:{DS Flags:E/R=0,M=1;Downstream Address=C&C.port1}是匹配的。
类似的,R节点收到D节点的echo reply,并且echo reply中的UpstreamInterface TLV:{D&D.port1}与本地保存的Downstream Mapping条目2:{DS Flags:E/R=0,M=1;Downstream Address=D&D.port1}是匹配的。
类似的,R节点收到E节点的echo reply,并且echo reply中的UpstreamInterface TLV:{E&E.port1}与本地保存的Downstream Mapping条目3:{DS Flags:E/R=0,M=1;Downstream Address=E&E.port1}是匹配的。
类似的,R节点收到F节点的echo reply,并且echo reply中的UpstreamInterface TLV:{F&F.port1}与本地保存的Downstream Mapping条目4:{DS Flags:E/R=0,M=1;Downstream Address=F&F.port1}是匹配的。
R节点从C的echo reply中获取新的Downstream Address信息并本地保存为:
Downstream Mapping条目1:{DS Flags:E/R=0,M=1;Downstream Address=G&G.port1}
Downstream Mapping条目2:{DS Flags:E/R=0,M=1;Downstream Address=H&H.port1}
R节点从F的echo reply中获取新的Downstream Address信息并本地保存为:
Downstream Mapping条目3:{DS Flags:E/R=0,M=1;Downstream Address=I&I.port1}
Downstream Mapping条目4:{DS Flags:E/R=0,M=1;Downstream Address=J&J.port1}
R发起下一轮echo request,类似步骤S1201,只不过栈顶标签LDP Label TTL=3。特别是包含的Downstream Mapping TLV与步骤S1201中是相同的。
步骤S1207
与步骤S1204是类似的,A,B节点分别修改发往特定组播成员下一跳的echorequest报文中的Downstream Mapping TLV后转发报文。
步骤S1208
与步骤S1204是类似的,C,F节点分别修改发往特定组播成员下一跳的echorequest报文中的Downstream Mapping TLV后转发报文。
D,E节点会再次向R节点回复echo reply,但是R节点上不会匹配到其本地保存的Downstream Mapping条目,这些echo reply会被丢弃。
步骤S1209
与步骤S1205是类似的,G节点回复echo reply报文,包括:
Upstream Interface TLV:{G&G.port1}
Responder Egress TLV:{G}
类似的,H节点收到echo request报文,回复echo reply报文,包括:
Upstream Interface TLV:{H&H.port1}
Responder Egress TLV:{H}
类似的,I节点收到echo request报文,回复echo reply报文,包括:
Upstream Interface TLV:{I&I.port1}
Responder Egress TLV:{I}
类似的,J节点收到echo request报文,回复echo reply报文,包括:
Upstream Interface TLV:{J&J.port1}
Responder Egress TLV:{J}
步骤S1210
与步骤S1203是类似的,R节点分别从G,H,I,J收到echo reply与本地保存的Downstream Mapping条目1~4进行匹配。
R节点从echo reply中获取不到新的Downstream Address信息。检测完毕,输出检测结果,收到了Egress节点D,E,G,H,I,J的echo reply。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,检测发起方发送回应请求报文,其中,回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
S2,接收传输节点或出口节点根据MPLS OAM报文反馈的回应应答报文,并检测回应应答报文与预存信息是否匹配。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行检测发起方发送回应请求报文,其中,回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行接收传输节点或出口节点根据MPLS OAM报文反馈的回应应答报文,并检测回应应答报文与预存信息是否匹配。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种多协议交换标签的检测方法,其特征在于,包括:
检测发起方发送回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
接收传输节点或出口节点根据所述MPLS OAM报文反馈的回应应答报文,并检测所述回应应答报文与预存信息是否匹配。
2.根据权利要求1所述的方法,其特征在于,所述回应请求报文中还包括:下游映射信息,其中,所述下游映射信息对应于所述回应请求报文的一个或多个下一跳路由。
3.根据权利要求2所述的方法,其特征在于,检测发起方发送回应请求报文还包括:
检测发起方判断所述回应请求报文是否为初始节点首次发送的回应请求报文;
在判断结果为是的情况下,检测发起方在发送回应请求报文时,在所述初始节点本地保存所述回应请求报文中的下游映射信息。
4.根据权利要求3所述的方法,其特征在于,在判断结果为否的情况下,检测发起方在发送回应请求报文时,在所述初始节点本地保存上一轮回应应答报文中携带的下游映射信息。
5.根据权利要求1所述的方法,其特征在于,所述类型字段封装在所述回应请求报文的数据链路层头中。
6.根据权利要求4所述的方法,其特征在于,检测所述回应应答报文与预存信息是否匹配包括:
检测所述回应应答报文中的发送方句柄Sender's Handle和所述回应请求报文中的第一相应字段是否匹配,以及检测所述回应应答报文中的序列号和所述回应请求报文中的第二相应字段是否匹配;
在所述Sender's Handle与所述第一相应字段匹配,且所述序列号与所述第二相应字段匹配时,判断所述回应应答报文中的上游接口信息与所述初始节点本地保存的下游映射信息是否匹配,在所述回应应答报文中的上游接口信息与所述初始节点本地保存的下游映射信息匹配时,确定所述回应应答报文与预存信息匹配。
7.根据权利要求6所述的方法,其特征在于,在本地保存多个下游映射信息时,判断所述回应应答报文中的上游接口信息与所述下游映射信息是否匹配包括:
判断本地保存的所述多个下游映射信息是否都有对应的所述回应应答报文匹配;
判断本地保存的所述多个下游映射信息与多个所述回应应答报文的匹配成功率是否大于预设阈值。
8.根据权利要求1所述的方法,其特征在于,在检测所述回应应答报文与预存信息是否匹配之后,所述方法还包括:
根据所述回应应答报文与预存信息是否匹配的检测结果确定是否发送下一个回应请求报文。
9.根据权利要求8所述的方法,其特征在于,根据所述回应应答报文与预存信息是否匹配的检测结果确定是否发送下一个回应请求报文包括:
检测所述回应请求报文的传输模式;
在所述传输模式为因特网包探索器ping模式时,放弃发送下一个回应请求报文;和/或,在所述传输模式为追溯通道trace route模式时,根据本地保存的下游映射信息是否满足匹配策略来确定是否发送下一个回应请求报文。
10.一种回应请求报文的处理方法,其特征在于,包括:
接收回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
通过所述类型字段识别所述MPLS OAM报文;
根据预设转发表项转发所述回应请求报文。
11.根据权利要求10所述的方法,其特征在于,由转发平面根据预设转发表项转发所述回应请求报文,包括以下之一:
转发平面根据第一预设转发表项将所述回应请求报文转发至控制平面,并反馈所述回应请求报文的回应应答报文;
转发平面修改所述MPLS OAM报文的内容,并根据第二预设转发表项将所述回应请求报文转发至数据平面的下一跳节点。
12.根据权利要求11所述的方法,其特征在于,转发平面修改所述MPLS OAM报文的内容包括:修改所述回应请求报文中的下游映射信息。
13.一种多协议交换标签的检测装置,其特征在于,包括:
发送模块,用于发送回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
检测模块,用于接收传输节点或出口节点根据所述MPLS OAM报文反馈的回应应答报文,并检测所述回应应答报文与预存信息是否匹配。
14.根据权利要求13所述的装置,其特征在于,所述回应请求报文中还包括:下游映射信息,其中,所述下游映射信息对应于所述回应请求报文的一个或多个下一跳路由。
15.一种回应请求报文的处理装置,其特征在于,包括:
接收模块,用于接收回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
识别模块,用于通过所述类型字段识别所述MPLS OAM报文;
转发模块,用于根据预设转发表项转发所述回应请求报文。
16.一种多协议交换标签的检测系统,包括初始节点、传输节点或出口节点,其特征在于,
所述初始节点还包括:
发送模块,用于发送回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
检测模块,用于接收传输节点或出口节点根据所述MPLS OAM报文反馈的回应应答报文,并检测所述回应应答报文与预存信息是否匹配;
传输节点或出口节点还包括:
接收模块,用于接收回应请求报文,其中,所述回应请求报文中包括用于标识多协议交换标签MPLS操作维护管理OAM报文的类型字段;
识别模块,用于通过所述类型字段识别所述MPLS OAM报文;
转发模块,用于根据预设转发表项将所述回应请求报文转发至控制平面,反馈所述回应请求报文的回应应答报文。
CN201610567070.4A 2016-07-15 2016-07-15 多协议交换标签的检测、处理方法、装置及系统 Withdrawn CN107623584A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610567070.4A CN107623584A (zh) 2016-07-15 2016-07-15 多协议交换标签的检测、处理方法、装置及系统
PCT/CN2017/091477 WO2018010560A1 (zh) 2016-07-15 2017-07-03 多协议交换标签的检测、处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610567070.4A CN107623584A (zh) 2016-07-15 2016-07-15 多协议交换标签的检测、处理方法、装置及系统

Publications (1)

Publication Number Publication Date
CN107623584A true CN107623584A (zh) 2018-01-23

Family

ID=60952246

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610567070.4A Withdrawn CN107623584A (zh) 2016-07-15 2016-07-15 多协议交换标签的检测、处理方法、装置及系统

Country Status (2)

Country Link
CN (1) CN107623584A (zh)
WO (1) WO2018010560A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535771A (zh) * 2018-05-24 2019-12-03 中兴通讯股份有限公司 一种数据转发方法、网络设备和计算机可读存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111327528A (zh) * 2018-12-17 2020-06-23 中兴通讯股份有限公司 标签属性识别方法、装置、设备及存储介质
CN113872854B (zh) 2020-06-30 2022-12-30 华为技术有限公司 一种丢包处理方法及网络设备
CN114500163A (zh) * 2020-10-23 2022-05-13 中国移动通信有限公司研究院 一种通信调度方法、装置和存储介质
CN116232996B (zh) * 2022-12-21 2024-05-28 中国人民解放军国防科技大学 基于标签交换的边缘网络数据包头压缩传输方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101325584A (zh) * 2007-06-15 2008-12-17 华为技术有限公司 路由跟踪方法、mpls网络系统及其入口节点
CN101729391A (zh) * 2008-10-23 2010-06-09 华为技术有限公司 获取链路汇聚组信息的方法、节点和系统
US20120176911A1 (en) * 2010-06-10 2012-07-12 Ping Pan Supporting oam on protecting connections in shared mesh protection environment
US8472346B1 (en) * 2007-06-08 2013-06-25 Juniper Networks, Inc. Failure detection for tunneled label-switched paths

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8472346B1 (en) * 2007-06-08 2013-06-25 Juniper Networks, Inc. Failure detection for tunneled label-switched paths
CN101325584A (zh) * 2007-06-15 2008-12-17 华为技术有限公司 路由跟踪方法、mpls网络系统及其入口节点
CN101729391A (zh) * 2008-10-23 2010-06-09 华为技术有限公司 获取链路汇聚组信息的方法、节点和系统
US20120176911A1 (en) * 2010-06-10 2012-07-12 Ping Pan Supporting oam on protecting connections in shared mesh protection environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535771A (zh) * 2018-05-24 2019-12-03 中兴通讯股份有限公司 一种数据转发方法、网络设备和计算机可读存储介质

Also Published As

Publication number Publication date
WO2018010560A1 (zh) 2018-01-18

Similar Documents

Publication Publication Date Title
CN107623584A (zh) 多协议交换标签的检测、处理方法、装置及系统
CN109246017B (zh) 一种查询组播转发路径的方法及装置
CN107171977B (zh) 报文转发方法及装置
CN109921987B (zh) 一种bier-te网络检测方法、装置及系统
CN102404197B (zh) 分组的伪线层中包括的数据路径处理信息
CN103748835B (zh) 标签交换路径的动态更新
EP2995042B1 (en) Data plane learning of bi-directional service chains
CN106656794B (zh) 一种报文传输方法及装置
CN107147508A (zh) 故障检测方法及装置
US20230269173A1 (en) Path establishment method and controller
CN105765926A (zh) 可配置的服务代理映射
EP3488566A1 (en) Target fec stack based fec query
CN106603413B (zh) 通过指定路径传输流量的方法和装置
CN105812197A (zh) 位转发入口路由器、位转发路由器及操作管理维护检测方法
CN107395481A (zh) Evpn拓扑中的广播、未知单播或组播业务的出口节点保护
CN111614556B (zh) 一种基于bier的双向转发检测会话创建方法及相关设备
CN103269315B (zh) 标签分配方法、装置、系统和网络设备
CN106559280A (zh) 双向转发检测方法和装置
CN106375105A (zh) 一种确定路径故障的方法、控制器、交换机和系统
CN101420331A (zh) 一种t-mpls网络中的超长连接快速故障定位方法
CN106572016B (zh) 路径计算方法及装置
CN107645401A (zh) 多协议标签交换的检测、处理方法、装置及系统
CN108924011A (zh) 用于ospf+路由协议的监测系统、相关设备、方法及介质
CN105634968A (zh) 用于控制数据流量的传输的装置及方法
CN106506366B (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20180123

WW01 Invention patent application withdrawn after publication