一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种OAM检测的方法、设备以及系统与流程

2022-02-24 17:51:28 来源:中国专利 TAG:

一种oam检测的方法、设备以及系统
1.本技术要求于2020年8月14日提交中国专利局、申请号为202010820465.7、发明名称为“一种oam检测的方法、设备及系统”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及网络通信领域,并且更具体地,涉及一种oam检测的方法、第一网络设备、第二网络设备以及系统。


背景技术:

3.在互联网协议(internet protocol,ip)承载网络中,对ip业务进行操作、管理和维护(operation,administration and maintenance,oam)检测是一种常见的技术。
4.以对两个设备之间的隧道进行oam检测为例,隧道的出口设备接收到oam检测报文后,需要根据oam检测的类型进行相应的处理。因此,隧道的入口设备向隧道的出口设备发送的oam检测报文需要指示隧道的出口设备进行oam检测,以及具体的oam检测的类型,以便于隧道的出口设备根据该指示进行oam检测的相关转发动作。
5.相关的技术方案中,oam检测报文的隧道头中包含oam检测指示信息,该oam检测指示信息用于指示设备进行oam检测,以及具体的oam检测的类型。在一些场景中,通过上述技术方案会出现oam检测报文与数据报文在处理上不一致的问题。


技术实现要素:

6.本技术提供一种oam检测的方法、设备以及系统,可以使得报文传输路径上除隧道出口设备之外的各个设备对oam检测报文的处理和数据报文的处理过程一致。
7.第一方面,提供了一种oam检测的方法,包括:第一网络设备经由隧道接收第二网络设备发送的第一报文,所述第一报文包括隧道头,第一互联网协议第六版ipv6头以及操作管理和维护oam报文,所述第二网络设备为所述隧道的入口设备,所述第一网络设备为所述隧道的出口设备;所述第一网络设备根据所述第一ipv6头的目的地址da确定oam检测的类型;所述第一网络设备根据所述oam检测的类型进行检测。
8.上述技术方案中,通过第一ipv6头的目的地址指示隧道的出口设备(例如,第一网络设备)进行oam检测。通过“封装”的方式将第一报文的隧道头部分、第一ipv6头和oam报文部分分离。这样,报文传输路径上除隧道出口设备外的各个设备只需要处理第一报文(也可以称为oam检测报文)的隧道头部分,而不需要处理隧道头之后的第一ipv6头和oam报文,从而使得报文传输路径上除隧道出口设备之外的各个设备对第一报文(也可以称为oam检测报文)的处理和数据报文的处理过程一致。
9.在一种可能的实现方式中,所述第一ipv6头位于所述隧道头和所述oam报文之间。
10.应理解,隧道头本身可以包含ipv6头,即以ipv6为基础的隧道头,但本文所述的第一ipv6头不是隧道头中的ipv6头,而是位于隧道头和oam报文之间的ipv6头。
11.在另一种可能的实现方式中,所述第一报文还包括用户数据报协议udp头,所述udp头的目的端口号用于指示所述第一报文中包括所述oam报文,所述方法还包括:所述第一网络设备根据所述udp头的所述目的端口号确定所述第一报文中包括所述oam报文。
12.应理解,如果第一报文中还包括udp头,udp头和oam报文也可以合起来称为被udp封装的oam报文。
13.在另一种可能的实现方式中,所述第一ipv6头的next header字段用于指示所述第一报文中包括所述oam报文,所述方法还包括:所述第一网络设备根据所述next header字段的值确定所述第一报文中包括所述oam报文。
14.在另一种可能的实现方式中,所述第一报文还包括第三ipv6头,所述第三ipv6头的next header字段用于指示所述第一报文中包括所述oam报文。
15.应理解,如果第一报文中还包括第三ipv6头、udp头,第三ipv6头、udp头和oam报文也可以合起来称为被ip封装的oam报文。
16.在另一种可能的实现方式中,所述第一网络设备确定所述第一ipv6头的da为所述第一网络设备的单播ipv6地址;所述第一网络设备根据所述第一ipv6头的da和转发信息库fib确定所述oam检测的类型,其中,所述fib包括所述第一ipv6头的da和所述oam检测的类型之间的对应关系。
17.在另一种可能的实现方式中,所述第一网络设备确定所述第一ipv6头的da为一个环回单播ipv6地址;所述第一网络设备根据所述第一ipv6头的da和转发信息库fib确定所述oam检测的类型,其中,所述fib包括所述第一ipv6头的da和所述oam检测的类型之间的对应关系。
18.在另一种可能的实现方式中,所述第一网络设备确定所述第一ipv6头的da为组播ipv6地址;所述第一网络设备根据所述第一ipv6头的da和组播转发信息库mfib确定所述oam检测的类型,其中,所述mfib包括所述第一ipv6头的da和所述oam检测的类型之间的对应关系。
19.在另一种可能的实现方式中,所述第一网络设备对所述第一报文进行解封装,得到所述oam报文;所述第一网络设备根据所述oam报文确定第二报文;所述第一网络设备向所述第二网络设备发送所述第二报文。
20.在另一种可能的实现方式中,所述第二报文包括第二ipv6头,所述第二ipv6头的目的地址da为所述第二网络设备的ipv6地址,所述第二ipv6头的da指示所述第二报文为oam检测响应报文。
21.在另一种可能的实现方式中,所述第二ipv6头的da为所述第一ipv6头的源地址sa。
22.在另一种可能的实现方式中,所述oam检测的类型包括以下中的任意一种:简单双向主动测量协议stamp检测、双向主动测量协议twamp检测、双向转发检测bfd、无缝的双向转发检测s-bfd、因特网包探测器ping检测。
23.在另一种可能的实现方式中,所述隧道包括以下中的任意一种:多协议标签交换mpls隧道、互联网协议ip隧道、使用互联网协议第6版的段路由srv6隧道、基于位索引的显式复制bier隧道、互联网协议第6版的基于位索引的显式复制bierv6隧道。
24.第二方面,提供了一种oam检测的方法,包括:第二网络设备获取第一报文,所述第
一报文包括隧道头,第一互联网协议第六版ipv6头以及操作管理和维护oam报文,所述第一ipv6头的目的地址da用于指示oam检测的类型;
25.所述的第二网络设备经由隧道向第一网络设备发送所述第一报文,所述第二网络设备为所述隧道的入口设备,所述第一网络设备为所述隧道的出口设备。
26.在一种可能的实现方式中,所述第一ipv6头位于所述隧道头和所述oam报文之间。
27.在另一种可能的实现方式中,所述第一报文还包括用户数据报协议udp头,所述udp头的目的端口号用于指示所述第一报文中包括所述oam报文。
28.在另一种可能的实现方式中,所述第一ipv6头的next header字段用于指示所述第一报文中包括所述oam报文。
29.在另一种可能的实现方式中,所述方法还包括:所述第二网络设备接收第二报文,所述第二报文包括第二ipv6头,所述第二ipv6头的目的地址da为所述第二网络设备的ipv6地址,所述第二ipv6头的da指示所述第二报文为oam检测响应报文;所述第二网络设备根据所述第二ipv6头的da对所述第二报文进行处理。
30.在另一种可能的实现方式中,所述第二ipv6头的da为所述第一ipv6头的源地址sa。
31.在另一种可能的实现方式中,所述oam检测的类型包括以下中的任意一种:简单双向主动测量协议stamp检测、双向主动测量协议twamp检测、双向转发检测bfd、无缝的双向转发检测s-bfd、因特网包探测器ping检测。
32.在另一种可能的实现方式中,所述隧道包括以下中的任意一种:多协议标签交换mpls隧道、互联网协议ip隧道、使用互联网协议第6版的段路由srv6隧道、基于位索引的显式复制bier隧道、互联网协议第6版的基于位索引的显式复制bierv6隧道。
33.第二方面和第二方面的任意一个可能的实现方式的有益效果和第一方面以及第一方面的任意一个可能的实现方式的有益效果是对应的,对此,不再赘述。
34.第三方面,提供了一种第一网络设备,所述第一网络设备为隧道的出口设备,所述第一网络设备包括:
35.接收模块,用于经由所述隧道接收第二网络设备发送的第一报文,所述第一报文包括隧道头,第一互联网协议第六版ipv6头以及操作管理和维护oam报文,所述第二网络设备为所述隧道的入口设备;
36.处理模块,用于根据所述第一ipv6头的目的地址da确定oam检测的类型;
37.所述处理模块,还用于根据所述oam检测的类型进行检测。
38.在一种可能的实现方式中,所述第一ipv6头位于所述隧道头和所述oam报文之间。
39.在另一种可能的实现方式中,所述第一报文还包括用户数据报协议udp头,所述udp头的目的端口号用于指示所述第一报文中包括所述oam报文,
40.所述处理模块,还用于:根据所述udp头的所述目的端口号确定所述第一报文中包括所述oam报文。
41.在另一种可能的实现方式中,所述第一ipv6头的next header字段用于指示所述第一报文中包括所述oam报文,
42.所述处理模块,还用于:根据所述next header字段的值确定所述第一报文中包括所述oam报文。
43.在另一种可能的实现方式中,所述处理模块具体用于:确定所述第一ipv6头的da为所述第一网络设备的单播ipv6地址;根据所述第一ipv6头的da和转发信息库fib确定所述oam检测的类型,其中,所述fib包括所述第一ipv6头的da和所述oam检测的类型之间的对应关系。
44.在另一种可能的实现方式中,所述处理模块具体用于:确定所述第一ipv6头的da为组播ipv6地址;根据所述第一ipv6头的da和组播转发信息库mfib确定所述oam检测的类型,其中,所述mfib包括所述第一ipv6头的da和所述oam检测的类型之间的对应关系。
45.在另一种可能的实现方式中,所述处理模块具体用于:对所述第一报文进行解封装,得到所述oam报文;根据所述oam报文确定第二报文;向所述第二网络设备发送所述第二报文。
46.在另一种可能的实现方式中,所述第二报文包括第二ipv6头,所述第二ipv6头的目的地址da为所述第二网络设备的ipv6地址,所述第二ipv6头的da指示所述第二报文为oam检测响应报文。
47.在另一种可能的实现方式中,所述第二ipv6头的da为所述第一ipv6头的源地址sa。
48.在另一种可能的实现方式中,所述oam检测的类型包括以下中的任意一种:简单双向主动测量协议stamp检测、双向主动测量协议twamp检测、双向转发检测bfd、无缝的双向转发检测s-bfd、因特网包探测器ping检测。
49.在另一种可能的实现方式中,所述隧道包括以下中的任意一种:多协议标签交换mpls隧道、互联网协议ip隧道、使用互联网协议第6版的段路由srv6隧道、基于位索引的显式复制bier隧道、互联网协议第6版的基于位索引的显式复制bierv6隧道。
50.第四方面,提供了一种第一网络设备,所述第一网络设备具有实现上述方法中第一网络设备行为的功能。所述功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
51.在一个可能的设计中,第一网络设备的结构中包括处理器和接口,所述处理器被配置为支持第一网络设备执行上述方法中相应的功能。所述接口用于支持第一网络设备接收第一报文。
52.所述第一网络设备还可以包括存储器,所述存储器用于与处理器耦合,其保存第一网络设备必要的程序指令和数据。
53.在另一个可能的设计中,所述第一网络设备包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行第一网络设备时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备进入正常运行状态。在第一网络设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
54.第五方面,提供一种第一网络设备,所述第一网络设备包括:主控板和接口板,进一步,还可以包括交换网板。所述第一网络设备用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,所述第一网络设备包括用于执行第三方面或第三方面的任
意可能的实现方式中的方法的模块。
55.第六方面,提供一种第一网络设备,所述第一网络设备包括控制模块和第一转发子设备。所述第一转发子设备包括:接口板,进一步,还可以包括交换网板。所述第一转发子设备用于执行第五方面中的接口板的功能,进一步,还可以执行第五方面中交换网板的功能。所述控制模块中包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制模块时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制模块进入正常运行状态。在控制模块进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第五方面中主控板的功能。
56.可以理解的是,在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。
57.第七方面,提供了一种第二网络设备,所述第二网络设备为隧道的入口设备,所述第二网络设备包括:
58.处理模块,用于获取第一报文,所述第一报文包括隧道头,第一互联网协议第六版ipv6头以及操作管理和维护oam报文,所述第一ipv6头的目的地址da用于指示oam检测的类型;
59.发送模块,用于经由所述隧道向第一网络设备发送所述第一报文,所述第一网络设备为所述隧道的出口设备。
60.在一种可能的实现方式中,所述第一ipv6头位于所述隧道头和所述oam报文之间。
61.在另一种可能的实现方式中,所述第一报文还包括用户数据报协议udp头,所述udp头的目的端口号用于指示所述第一报文中包括所述oam报文。
62.在另一种可能的实现方式中,所述第一ipv6头的next header字段用于指示所述第一报文中包括所述oam报文。
63.在另一种可能的实现方式中,所述第二网络设备还包括:
64.接收模块,用于接收第二报文,所述第二报文包括第二ipv6头,所述第二ipv6头的目的地址da为所述第二网络设备的ipv6地址,所述第二ipv6头的da指示所述第二报文为oam检测响应报文;
65.所述处理模块,还用于根据所述第二ipv6头的da对所述第二报文进行处理。
66.在另一种可能的实现方式中,所述第二ipv6头的da为所述第一ipv6头的源地址sa。
67.在另一种可能的实现方式中,所述oam检测的类型包括以下中的任意一种:简单双向主动测量协议stamp检测、双向主动测量协议twamp检测、双向转发检测bfd、无缝的双向转发检测s-bfd、因特网包探测器ping检测。
68.在另一种可能的实现方式中,所述隧道包括以下中的任意一种:多协议标签交换mpls隧道、互联网协议ip隧道、使用互联网协议第6版的段路由srv6隧道、基于位索引的显式复制bier隧道、互联网协议第6版的基于位索引的显式复制bierv6隧道。
69.第八方面,提供了一种第二网络设备,所述第二网络设备具有实现上述方法中第二网络设备行为的功能。所述功能可以基于硬件实现,也可以基于硬件执行相应的软件实
drive)。
79.第十四方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,rom)、可编程rom(programmable rom,prom)、可擦除的prom(erasable prom,eprom)、flash存储器、电eprom(electrically eprom,eeprom)以及硬盘驱动器(hard drive)。
80.第十五方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第一方面或第一方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(central processing unit,cpu)、微控制器(micro controller unit,mcu)、微处理器(micro processing unit,mpu)、数字信号处理器(digital signal processing,dsp)、片上系统(system on chip,soc)、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或可编辑逻辑器件(programmable logic device,pld)的形式实现。
81.第十六方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第二方面或第二方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(central processing unit,cpu)、微控制器(micro controller unit,mcu)、微处理器(micro processing unit,mpu)、数字信号处理器(digital signal processing,dsp)、片上系统(system on chip,soc)、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或可编辑逻辑器件(programmable logic device,pld)的形式实现。
82.第十七方面,提供了一种oam检测的系统,该系统包括上述第一网络设备和第二网络设备。
附图说明
83.图1是适用于本技术实施例的一种应用场景示意图。
84.图2是本技术实施例提供的一种可能的场景示意图。
85.图3是本技术实施例提供的另一种可能的场景示意图。
86.图4是本技术实施例提供的一种oam检测的方法的示意性流程图。
87.图5是本技术实施例提供的另一种oam检测的方法的示意性流程图。
88.图6是本技术实施例提供的一种stamp检测的场景示意图。
89.图7是本技术实施例提供的另一种可能的场景示意图。
90.图8是本技术实施例提供的另一种可能的场景示意图。
91.图9是本技术实施例提供的另一种可能的场景示意图。
92.图10是本技术实施例提供的另一种stamp检测的场景示意图。
93.图11是本技术实施例提供的一种s-bfd检测的场景示意图。
94.图12是本技术实施例提供的一种ping检测的场景示意图。
95.图13是本技术实施例提供的一种bfd检测的场景示意图。
96.图14是本技术实施例提供的一种第一网络设备1400的示意性结构图。
97.图15是本技术实施例的第一网络设备2000的硬件结构示意图。
98.图16为本技术实施例的另一种第一网络设备2100的硬件结构示意图。
99.图17是本技术实施例提供的一种第二网络设备1700的示意性结构图。
100.图18是本技术实施例的第二网络设备2200的硬件结构示意图。
101.图19为本技术实施例的另一种第二网络设备2400的硬件结构示意图。
具体实施方式
102.下面将结合附图,对本技术中的技术方案进行描述。
103.本技术将围绕包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
104.另外,在本技术实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
105.本技术实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
106.本技术实施例描述的网络架构以及业务场景是为了更加清楚地说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
107.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
108.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:包括单独存在a,同时存在a和b,以及单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
109.在互联网协议(internet protocol,ip)承载网络中,对ip业务进行操作、管理和维护(operation,administration and maintenance,oam)检测是一种常见的技术。应理解,oam检测是指根据运营商网络运营的实际需要,通常将网络的管理工作划分为3大类:操作(operation)、管理(administration)、维护(maintenance)。操作主要完成日常网络和业
务进行的分析、预测、规划和配置工作;维护主要是对网络及其业务的测试和故障管理等进行的日常操作活动。
110.oam检测的类型有多种,本技术实施例对不做具体限定。一个示例,该oam检测可以是网际包探测器(packet internet groper,ping)。上述oam检测可以是单向主动测量,或者也可以是双向主动测量,例如,单向主动测量协议(one-way active measurement protocol,owamp)、双向主动测量协议(two-way active measurement protocol,twamp)、简单双向主动测量协议(simple two-way active measurement protocol,stamp)。上述oam检测也可以是双向转发检测(bidirectional forwarding detection,bfd),或者无缝的双向转发检测(seamless bidirectional forwarding detection,s-bfd)。
111.应理解,stamp也可以被称为twamp light。s-bfd也可以称为简单bfd。
112.下面结合图1,对适用于本技术实施例的一种应用场景进行描述。
113.图1是适用于本技术实施例的一种应用场景示意图。如图1所示,该场景中包括:设备a、设备b、设备r1、设备r2、设备r3。
114.其中,设备a作为隧道的入口设备,设备b作为隧道的出口设备。设备r1、设备r2、设备r3为该隧道中对报文进行转发的设备。
115.应理解,本技术实施例对隧道中对报文进行转发的设备的数量不做具体限定,为了便于描述,图1中以设备r1、设备r2、设备r3为例进行说明。
116.设备a可以沿着隧道(设备a和设备b之间的隧道)向设备b发送oam检测报文,该oam检测报文用于检测设备a和设备b之间的隧道的连通性和性能。
117.设备a和设备b之间的隧道类型可以有多种,本技术对此不做具体限定,下面介绍几种可能的隧道类型。
118.一个示例,该隧道为多协议标签交换(multi-protocol label switching,mpls)隧道,例如,mpls的点到点(mpls point-to-point,mpls p2p)隧道、或mpls的点到多点(mpls point-to-multipoint,mpls p2mp)隧道、或mpls的分段路由(segment routing,sr-mpls)隧道。
119.另一个示例,该隧道为ip隧道,例如,互联网协议第六版(internet protocol version 6,ipv6)隧道、或使用ipv6数据面的段路由(segment routing using ipv6 data plane,srv6)隧道、或使用ipv6数据面的段路由业务工程(segment routing using ipv6 data plane traffic engineering,srv6-te)隧道。
120.应理解,ip隧道、ipv6隧道、srv6隧道、srv6-te隧道通常可以是点到点(point to point,p2p)的隧道。例如,ip/ipv6/srv6/srv6-te的p2p隧道。
121.另一个示例,该隧道还可以是点到多点(point to point,p2mp)的隧道,例如,该p2mp的隧道可以是位索引的显式复制(bit indexed explicit replication,bier)的p2mp隧道、或bierv6的p2mp隧道。
122.设备a向设备b发送的oam检测报文可以包括:oam报文部分和oam报文之前的部分。oam报文之前的部分本技术实施例可以称为隧道头,或外层头,或外层隧道头,将oam报文部分称内层oam报文。
123.oam报文可以是原始的oam报文,或者也可以是被用户数据报协议(user datagram protocol,udp)封装的oam报文,或者还可以是被ip封装的oam报文,本技术对此不做具体限
定。其中,被udp封装的oam报文可以包括:udp头和原始的oam报文,被ip封装的oam报文可以包括:ip头、udp头和原始的oam报文。
124.可选地,以被ipv6封装的oam报文为例,oam报文还可以包括:ipv6扩展头。
125.本技术实施例对ipv6扩展头做具体限定。例如,该ipv6扩展头可以是目的选项头(destination option header,doh),又如,该ipv6扩展头还可以是路由头(routing header,rh)。
126.隧道头的格式是根据不同的隧道类型确定的。例如,对于mpls隧道而言,该隧道头为mpls标签栈。又如,对于ip隧道而言,该隧道头为ip/ipv6头、或ip/ipv6头 udp头、或ip/ipv6头 gre头。又如,对于srv6-te的隧道而言,该隧道头为ip/ipv6头 段路由头(segment routing header,srh)。又如,对于bier的隧道而言,该隧道头为bier头。又如,对于bierv6的隧道而言,该隧道头为bierv6头。
127.作为示例,设备a向设备b发送的oam检测报文可以表示为以下的任意一种格式:
128.1、设备a和设备b之间的隧道类型为mpls p2p隧道或mpls p2mp隧道,oam检测报文包括:{标签栈,oam报文};
129.2、设备a和设备b之间的隧道类型为ip/ipv6的隧道,oam检测报文包括:{外层ip/ipv6头,oam报文};
130.3、设备a和设备b之间的隧道类型为ip/ipv6的udp隧道,oam检测报文包括:{外层ip/ipv6头,外层udp头,oam报文};
131.4、设备a和设备b之间的隧道类型为ip/ipv6的gre隧道,oam检测报文包括{外层ip/ipv6头,外层gre头,oam报文};
132.5、设备a和设备b之间的隧道类型为srv6的隧道,oam检测报文包括{外层ip/ipv6头,可选rh头,oam报文};
133.6、设备a和设备b之间的隧道类型为bier的隧道,oam检测报文包括{bier头,oam报文};
134.7、设备a和设备b之间的隧道类型为bierv6的隧道,oam检测报文包括{bierv6头,oam报文}。
135.设备b接收到oam检测报文后,需要根据oam检测的类型进行相应的处理。因此,设备a向设备b发送的oam检测报文需要指示设备b进行oam检测,以及具体的oam检测的类型,以便于设备b根据该指示进行oam检测的相关转发动作。
136.相关的技术方案中,oam检测报文的隧道头中包含oam检测指示信息,该oam检测指示信息用于指示设备b进行oam检测,以及具体的oam检测的类型。在一些场景中,通过上述技术方案会出现oam检测报文与数据报文在处理上不一致的问题。
137.作为一个示例,在ipv6的网络中,对srv6隧道进行oam检测时,需要在oam检测报文的隧道头中增加一个额外的网络功能指示。例如,在oam检测报文的隧道头的srh头中增加一个端点时间戳和转发(endpoint timestamp and forward,end.tsf)的srv6 sid作为网络功能指示,以指示相应设备(例如,设备b)进行oam检测的相关转发动作。
138.例如,在图2所示的场景中,对于数据报文而言,设备a向设备b发送的数据报文的隧道头中可以不包括srh头,只需要将设备b的目的地址填写在外层ipv6头的目的地址字段中。这样,对于数据报文来说,作为隧道出口的设备b不需要处理数据报文隧道头中的srh
头。
139.而对于oam检测报文,设备a向设备b发送的oam检测报文的隧道头中需要包括一个srh头,且该srh头中既包含设备b的地址,还包含设备b的一个end.tsf的地址(end.tsf的地址作为网络功能指示,以指示设备b进行oam检测的相关转发动作)。对于oam检测报文来说,作为隧道出口的设备b需要处理oam检测报文隧道头中的srh头。如果设备b不能处理srh头,那么设备b无法确定接收到的报文是oam检测报文,也就将无法进行oam检测。
140.又如,在图3所示的场景中,对于数据报文而言,设备a向设备b发送的数据报文的隧道头中可以包括srh头,该srh头中包含2个srv6 sid,一个是设备b的目的地址,另外一个是设备r2的目的地址。当数据报文从设备a转发至设备r2时,设备r2会进行倒数第二段弹出(penultimate segment pop,psp)处理,将数据报文中的srh头弹出,并根据外层ipv6头的目的地址为设备b,将不包含srh头的数据报文从设备r2转发至设备b。数据报文到达设备b时隧道头中已经不包含srh头。这样,对于数据报文来说,作为隧道出口的设备b不需要处理数据报文隧道头中的srh头。
141.而对于oam检测报文,设备a向设备b发送的oam检测报文的隧道头中需要包括一个srh头,且该srh头中需要包含3个srv6 sid,分别为设备r2的目的地址、设备b的目的地址、设备b的一个end.tsf的地址。在oam检测报文到达设备b之前无法进行psp处理,因此,设备b收到的oam检测报文的隧道头中还会存在srh头且该srh头中包含3个srv6 sid。对于oam检测报文来说,作为隧道出口的设备b需要处理oam检测报文隧道头中的srh头。如果设备b不能处理srh头,那么设备b无法确定接收到的报文是oam检测报文,也就将无法进行oam检测。
142.因此,在上述相关的技术方案中,oam检测报文的隧道头中包含oam检测的指示信息,使得在一些场景中,报文传输路径上除隧道出口设备之外的各个设备上会出现oam检测报文与数据报文在处理上不一致的问题。
143.有鉴于此,本技术实施例提供了一种oam检测的方法,利用oam检测报文的隧道头之后的ipv6头中的目的地址指示隧道的出口设备(例如,设备b)进行oam检测。这样,报文传输路径上除隧道出口设备之外的各个设备只需要处理oam检测报文的隧道头部分,从而使得报文传输路径上除隧道出口设备之外的各个设备对oam检测报文的处理和数据报文的处理过程一致。
144.下面结合图4,对本技术实施例提供的一种oam检测的方法进行详细描述。
145.图4是本技术实施例提供的一种oam检测的方法的示意性流程图。如图4所示,该方法可以包括步骤410-430,下面分别对步骤410-430进行详细描述。
146.步骤410:第一网络设备经由隧道接收第二网络设备发送的第一报文,第一报文包括隧道头、第一ipv6头以及oam报文。
147.第二网络设备为隧道的入口设备,对应于上文中的设备a。第一网络设备为隧道的出口设备,对应于上文中的设备b。
148.第二网络设备和第一网络设备之间的隧道的类型可以有多种,本技术实施例对此不做限定。具体的请参考上文中对设备a和设备b之间的隧道类型的描述,此处不再赘述。
149.第二网络设备经由隧道向第一网络设备发送的第一报文可以是上文中的oam检测报文。第一报文中可以包括:隧道头、第一ipv6头以及oam报文。
150.其中,隧道头的格式是根据不同的隧道类型确定的例如,对于mpls隧道而言,该隧
道头为mpls标签栈。又如,对于ip隧道而言,该隧道头为ip/ipv6头、或ip/ipv6头 udp头、或ip/ipv6头 gre头。又如,对于srv6-te的隧道而言,该隧道头为ip/ipv6头 段路由头(segment routing header,srh)。又如,对于bier的隧道而言,该隧道头为bier头。又如,对于bierv6的隧道而言,该隧道头为bierv6头。具体的请参考上文中对隧道头的描述,此处不再赘述。
151.本技术实施例中第一ipv6头不是隧道头中的ipv6头,而是隧道头之后的ipv6头。一个示例,第一ipv6头位于隧道头和oam报文之间。
152.oam报文可以是原始的oam报文,或者也可以是被udp封装的oam报文,或者还可以是被ip封装的oam报文。以oam报文为被udp封装的oam报文为例,第一报文中还包括udp头。以oam报文为被ip封装的oam报文为例,第一报文中还包括ip头。具体的请参考上文中对oam报文的描述,此处不再赘述。
153.步骤420:第一网络设备根据第一ipv6头的目的地址da确定oam检测的类型。
154.本技术实施例中第一ipv6头中不同的目的地址da用于指示不同的oam检测的类型。第一网络设备可以根据第一ipv6头的目的地址da确定oam检测的类型。
155.一个示例,如果第一网络设备确定第一ipv6头的da为第一网络设备的单播ipv6地址,该第一网络设备可以根据第一ipv6头的da和转发信息库(forwarding information base,fib)确定oam检测的类型。其中,fib包括第一ipv6头的da和oam检测的类型之间的对应关系。
156.另一个示例,所述第一网络设备确定所述第一ipv6头的da为一个环回单播ipv6地址;所述第一网络设备根据所述第一ipv6头的da和转发信息库fib确定所述oam检测的类型,其中,所述fib包括所述第一ipv6头的da和所述oam检测的类型之间的对应关系。
157.应理解,例如0:0:0:0:0:ffff:7f00:0/104中的任意一个地址都属于“环回单播ipv6地址”。
158.另一个示例,如果第一网络设备确定第一ipv6头的da为组播ipv6地址,该第一网络设备可以根据第一ipv6头的da和组播转发信息库(multicast forwarding information base,mfib)确定oam检测的类型。其中,mfib包括第一ipv6头的da和oam检测的类型之间的对应关系。
159.可选地,在一些实施例中,第一网络设备还可以确定第一报文中包括oam报文。一个示例,第一网络设备可以先确定第一报文中包括oam报文,再根据第一ipv6头的目的地址da确定oam检测的类型。另一个示例,第一网络设备还可以先根据第一ipv6头的目的地址da确定oam检测的类型,再进行校验,确定第一报文中是否包括oam报文,如果包括oam报文,则可以根据oam检测的类型进行检测。
160.第一网络设备确定第一报文中包括oam报文的具体实现方式有多种,本技术对此不做具体限定。
161.例如,第一报文中包括udp头,udp头的目的端口号用于指示所述第一报文中是否包括所述oam报文,第一网络设备可以根据udp头的目的端口号确定第一报文中是否包括所述oam报文。多种不同类型的oam检测报文,可以使用相同的udp端口号,即udp端口号指示存在这些类型的oam检测报文中的一种。具体是哪一种则由第一ipv6头中目的地址da指示,不同的目的地址da用于指示不同的oam检测的类型。这样也可以在存在多种oam检测类型的情
况下、减少udp端口的个数从而减小系统的攻击面、降低被攻击的风险。
162.又如,第一报文的第一ipv6头中包括下一个头(next header)字段。next header字段也可以称为协议(protocol,proto)字段,用于指示ipv6头后面的负载类型。例如,next header字段用于指示所述第一报文中是否包括所述oam报文,第一网络设备可以根据第一ipv6头的next header字段的值确定第一报文中是否包括所述oam报文。
163.应理解,多种不同类型的oam检测报文,可以使用相同的next header值,即next header端口号指示存在这些类型的oam检测报文中的一种。具体是哪一种则由第一ipv6头中目的地地址da指示,不同的目的地址da用于指示不同的oam检测的类型。
164.步骤430:第一网络设备根据oam检测的类型进行检测。
165.第一网络设备收到第一报文后,其作为隧道的出口设备,会对第一报文进行解封装,获得第一报文中的oam报文,并根据步骤420的第一ipv6头中的目的地址da指示的oam检测的类型,进行oam检测的相应处理。
166.下面列举第一ipv6的目的地址指示的几种可能的oam检测的类型。
167.(1)、第一ipv6头的目的地址指示“twamp”处理,第一网络设备根据该指示信息进行twamp的处理,根据oam报文确定第二报文,并发送第二报文给第二网络设备;
168.(2)、第一ipv6头的目的地址指示“stamp”处理,第一网络设备根据该指示信息进行stamp的处理,根据oam报文确定第二报文,并发送第二报文给第二网络设备;
169.(3)、第一ipv6头的目的地址指示“s-bfd”处理,第一网络设备根据该指示信息进行s-bfd的处理,根据oam报文确定第二报文,并发送第二报文给第二网络设备;
170.(4)、第一ipv6头的目的地址指示“ping”处理,第一网络设备根据该指示信息进行ping的处理,根据oam报文确定第二报文,并发送第二报文给第二网络设备。
171.其中,第二报文中可以包括第二ipv6头,所述第二ipv6头的目的地址da为第二网络设备的ipv6地址。
172.应理解,第二报文可以是对oam报文进行加工后得到的报文,例如,对oam报文加上时间戳得到所述第二报文。或者,第二报文还可以是对oam报文进行重构后得到的报文。本技术对此不做具体限定。
173.可选地,在一些实施例中,第二ipv6头的da还可以指示所述第二报文为oam检测响应报文。以便于第二网络设备接收到第二报文后,可以根据第二ipv6头的da确定第二报文为oam检测响应报文,并进行相应的处理。
174.可选地,在一些实施例中,第二ipv6头的da为第一ipv6头的源地址sa。
175.可选地,在一些实施例中,第二ipv6头的da为第一ipv6头的目的地址da。
176.上述技术方案中,通过oam检测报文(第一报文)的隧道头之后的第一ipv6头中的目的地址指示隧道的出口设备进行oam检测。由于oam检测报文的隧道头中不包含oam检测的指示信息,因此,oam检测报文的隧道头和数据报文的隧道头一样。报文传输路径上除隧道出口设备之外的各个设备只需要处理oam检测报文的隧道头部分,使得oam检测报文的转发和数据报文的转发在报文传输路径各个设备上的处理是一样的。
177.下面以oam检测为stamp作为示例,结合图5对隧道的入口设备(例如,设备a)通过第一ipv6头的目的地址指示隧道的出口设备(例如,设备b)进行oam检测的具体实现方式进行详细描述。
178.应理解,图5的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图5的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。
179.图5是本技术实施例提供的另一种oam检测的方法的示意性流程图。如图5所示,该方法可以包括步骤510-520,下面分别对步骤510-520进行详细描述。
180.步骤510:隧道的入口设备(例如,设备a)向隧道的出口设备(例如,设备b)发送oam检测报文。
181.本技术实施例中的stamp检测可以理解为通过弹出环回模式对设备a和设备b之间的隧道的连通性和性能进行检测。
182.设备a获取的oam检测报文如图6所示。参见图6,该oam检测报文中包括:隧道头 第一ipv6头 被ip封装的oam报文(ipv6头 udp头 oam报文)。
183.其中,隧道头可以有多种,是根据设备a和设备b之间的隧道类型确定的。本技术实施例对设备a和设备b之间的隧道的类型不做具体限定,具体的请参见前文中对隧道和隧道头的描述,此处不再赘述。
184.图6所示的oam检测报文中,第一ipv6头的源地址(source address,sa)a2为设备a的地址,第一ipv6头的目的地址(destination address,da)a1指示“stamp检测”。也可以理解为地址a1对应“oam报文处理-弹出环回报文(oam pop and loopback)”的语义。作为示例,具有该语义的地址a1可以用end.opl标识。
[0185]“oam报文处理-弹出环回报文”指的是,设备b作为隧道出口设备,在收到oam检测报文后,弹出隧道头并获取第一ipv6头,对第一ipv6头的目的地址进行查表并转发。相当于把第一ipv6头弹出,并取第一ipv6头之后的报文进行处理(处理的结果是把报文发送给设备a,相当于对报文做了一次环回)。
[0186]
如图6所示,本技术实施例中,设备a在构造被ip封装的oam报文时,为了实现设备b直接对第一ipv6头之后的报文直接进行查表转发,设备a对向设备b发送的第一ipv6头之后的报文进行了“伪造”。“伪造”的报文指ipv6头的源地址a4为设备b的地址,目的地址a3为设备a的地址。这样,设备b对报文进行环回的时候不必要重新构造oam报文的源地址和目的地址,也就是不需要修改被ip封装的oam报文的ipv6头中的源地址和目的地址,而是直接用这个“伪造”的报文的源地址和目的地址,将“伪造”的报文直接进行查表转发。
[0187]
可选地,在一些实施例中,设备b可能还需要更改oam报文的内容,并对更改后的报文进行查表转发。一个示例,设备b可以在oam报文的内容中打上时间戳。
[0188]
步骤520:隧道的出口设备(例如,设备b)接收oam检测报文,并向隧道的入口设备(例如,设备a)发送oam应答报文。
[0189]
隧道的出口设备(例如,设备b)接收到oam检测报文后,对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分(包括第一ipv6头和被ip封装的oam报文部分)。设备b根据第一ipv6头中的目的地址a1是本机地址,查表获得该地址a1对应的语义为“oam报文处理-弹出环回报文”。设备b根据“oam报文处理—弹出环回报文”的指示,取第一ipv6头之后的被ip封装的oam报文,并直接将该oam报文发送给设备a。
[0190]
具体的,设备b根据被ip封装的oam报文的ipv6头中da=a3(目的地址a3为设备a的
一个地址),查表获取目的地址a3的下一跳和出接口。并根据该下一跳和出接口将报文沿着相应的出接口发送,最终到达设备a。
[0191]
本技术实施例中,上述第一ipv6头的目的地址a1和该地址所指示的“oam报文处理-弹出环回报文(oam pop and loopback)”的语义之间的对应关系,可以通过在设备b上配置实现,并在设备a上配置使用该地址。具体的实现方式有多种,下面分别对几种可能的实现方式进行详细说明。
[0192]
一个示例,可以在设备b上配置一个单播ipv6地址和oam检测之间的对应关系。例如,可以在设备b上配置:ipv6 address 2001:db1::1234function oam-pop-loopback。设备a上配置在需要设备b进行stamp检测时使用设备b上的地址“ipv6 address2001:db1::1234”并使用相应的封装。
[0193]
其中,“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址a1。“function oam-pop-loopback”表示“oam报文处理-弹出环回报文”功能。
[0194]
另一个示例,还可以在设备b上配置使用一个环回ipv6地址,例如这个环回ipv6地址可以是位于0:0:0:0:0:ffff:7f00:0/104地址段的一个地址。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址,因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在设备b上配置类似。例如,设备b上的配置如下:ipv6address 0:0:0:0:0:ffff:7f00:1234function oam-pop-loopback。同时,还可以在设备a上配置stamp检测使用该地址。
[0195]
应理解,上述两种地址均为单播ipv6地址,可以将地址和其指示信息的语义保存在转发信息库(forwarding information base,fib)中,即单播地址和其对应的指示信息。设备b收到oam检测报文后,对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分。如果第一ipv6头的目的地址a1为单播地址,设备b相应的查找fib,获得该目的地址a1指示“oam报文处理-弹出环回报文”,并根据该指示进行oam检测的相应处理。
[0196]
另一个示例,本技术实施例中还可以在设备b上配置一个组播地址,即ffxx::/8地址段的地址标识上述功能。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址。因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在设备b上配置类似。设备b上的配置如下:ipv6 address ff03::1234function oam-pop-loopback。同时,还可以在a上配置stamp检测使用该地址。
[0197]
应理解,上述地址为组播ipv6地址,可以将地址和其指示信息的语义保存在组播转发信息库(multicast forwarding information base,mfib)中,即组播地址和其对应的指示信息。设备b收到oam检测报文后,对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分。如果第一ipv6头的目的地址a1为组播地址,设备b相应的查找mfib,获得该目的地址a1指示“oam报文处理-弹出环回报文”,并根据该指示进行oam检测的相应处理。
[0198]
可选地,为了防止网络报文攻击,隧道的出口设备(例如,设备b)在接收到oam检测报文后,可以对oam检测报文进行校验。作为一个示例,隧道的出口设备(例如,设备b)可以对oam报文的ipv6头中的源地址sa进行校验,确定ipv6头中的sa是否为自己的ip地址。如果设备b确定ipv6头中的sa为自己的ip地址(例如,图6所示的oam报文的ipv6头中的源地址sa=a4,a4为设备b的一个地址),设备b才会进行oam检测的相应处理,例如,直接将该oam报文发送给设备a。
[0199]
可选地,在一些实施例中,设备b还可以指示设备a接收到的报文为oam响应报文,以便于设备a对oam响应报文进行相应的处理。例如,可以利用应答报文的ipv6头中的目的地址da指示设备a对oam响应报文进行处理。
[0200]
作为示例,设备a向设备b发送oam检测报文时,可以在回程地址字段携带回程地址。应理解,这种在oam检测报文中携带的,用于回程的oam响应报文的目的地址的地址本文称为“回程地址”,oam检测报文中携带“回程地址”的字段则称为回程地址字段。
[0201]
如果设备a向设备b发送的报文是如上所示的“伪造”的报文,则该地址携带在所伪造的报文的ipv6头的目的地址字段中。如果设备a向设备b发送的报文是普通的报文,则该回程地址可以是携带在ipv6头的源地址字段中。
[0202]
例如,设备a上配置如下地址并在oam检测报文中携带作为回程地址:ipv6 address2001:db2::1234function oam-reply-process。其中,2001:db2::1234”为回程地址,“oam-reply-process”标识回程地址对应的语义为对oam响应报文进行处理。
[0203]
下面以图5所示的方法为例,结合图7-图9中不同的场景,对本技术实施例构造的oam检测报文的格式进行详细描述。
[0204]
一个示例,参见图7,对于数据报文而言,设备a向设备b发送的数据报文的隧道头中可以不包括srh头,只需要将设备b的目的地址填写在外层ipv6头的目的地址字段中。这样,对于数据报文来说,作为隧道出口的设备b不需要处理数据报文隧道头中的srh头。
[0205]
而对于oam检测报文而言,设备a向设备b发送的oam检测报文的隧道头中也可以不包括srh头,设备b的一个end.opl的地址(end.opl的地址作为网络功能指示,以指示设备b进行oam检测的相关转发动作)是封装在第一ipv6头中。对于oam检测报文来说,其和数据报文的隧道头相同,因此,报文传输路径上的各个设备对oam检测报文的处理和数据报文的处理过程一致。
[0206]
另一个示例,参见图8,对于数据报文而言,设备a向设备b发送的数据报文的隧道头中可以包括srh头。当数据报文从设备a转发至设备r2时,设备r2会进行psp处理,将数据报文中的srh头弹出,并根据外层ipv6头的目的地址为设备b,将不包含srh头的数据报文从设备r2转发至设备b。数据报文到达设备b时隧道头中已经不包含srh头。这样,对于数据报文来说,作为隧道出口的设备b不需要处理数据报文隧道头中的srh头。
[0207]
而对于oam检测报文而言,设备a向设备b发送的oam检测报文也包含srh头,该srh头中包含2个srv6 sid,一个是设备b的目的地址,另外一个是设备r2的目的地址。设备b的一个end.opl的地址(end.opl的地址作为网络功能指示,以指示设备b进行oam检测的相关转发动作)是封装在第一ipv6头中,因此,当oam检测报文从设备a转发至设备r2时,设备r2会进行psp处理,将oam检测报文中的srh头弹出,并根据外层ipv6头的目的地址为设备b,将不包含srh头的数据报文从设备r2转发至设备b。oam检测报文到达设备b时隧道头中已经不包含srh头。对于oam检测报文来说,其和数据报文的隧道头相同,因此,报文传输路径上的各个设备对oam检测报文的处理和数据报文的处理过程一致。
[0208]
另一个示例,参见图9,在p2mp的检测中,对于数据报文而言,设备a向设备b发送的数据报文的隧道头中可以不包括srh头,只需要将设备b的目的地址填写在外层ipv6头的目的地址字段中。这样,对于数据报文来说,作为隧道出口的设备b不需要处理数据报文隧道头中的srh头。
[0209]
而对于oam检测报文而言,设备a向设备b发送的oam检测报文的隧道头中也可以不包括srh头,设备b的一个end.opl的地址(end.opl的地址作为网络功能指示,以指示设备b进行oam检测的相关转发动作)是封装在第一ipv6头中。设备a发送的oam检测报文的隧道头中的目的地址是设备r1(作为整个p2mp路径中的一段),设备r1对oam检测报文进行复制发送给设备r2和设备b。复制发送出的报文的隧道头中的目的地址分别是r2和b,这些过程都不会涉及到end.opl的地址及其所在的第一ipv6头的处理。对于oam检测报文来说,其和数据报文的隧道头相同,因此,报文传输路径上的各个设备对oam检测报文的处理和数据报文的处理过程一致。
[0210]
下面以oam检测为stamp,被ip封装的oam报文中的ipv6头为第一ipv6头作为示例,结合图10对隧道的入口设备(例如,设备a)通过第一ipv6头的目的地址指示隧道的出口设备(例如,设备b)进行oam检测的具体实现方式进行详细描述。
[0211]
应理解,图10的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图10的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。
[0212]
如图10所示,设备a向设备b发送的oam检测报文包括隧道头和被ip封装的oam报文(ipv6头 udp头 oam报文)。其中,被ip封装的oam报文的ipv6头(也可以称为第一ipv6头)的源地址a6为设备a的地址,目的地址a5为设备b上的一个地址且该地址a5指示“stamp检测”。也可以理解为地址a5对应“stamp检测”的语义。
[0213]“stamp检测”指的是,设备b作为隧道出口设备,在收到oam检测报文后,弹出隧道头获取被ip封装的oam报文,根据被ip封装的oam报文获取stamp反弹报文,并发送给设备a。作为示例,可以对被ip封装的oam报文的ipv6头中的源地址和目的地址进行修改后得到stamp反弹报文。
[0214]
应理解,上述stamp反弹报文相当于是对解封装后得到的被ip封装的oam报文的ipv6头进行了修改得到的,并最终把报文发送给设备a,相当于对报文做了修改和环回。
[0215]
下面对设备b进行stamp检测的过程进行详细描述。
[0216]
1、设备b为隧道的出口设备,解封装接收到的图10所示的oam检测报文。
[0217]
2、设备b获得ipv6头中的目的地址a5对应的语义。
[0218]
设备b对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分(被ip封装的oam报文),根据被ip封装的oam报文的ipv6头的目的地址a5是本机地址,查表获得该地址a5对应的语义为“stamp检测”。也就是说,设备b根据地址a5即可确定oam报文是stamp检测报文。
[0219]
图10所示的oam检测报文中,ipv6头后面还有udp头,udp头后面才是stamp的检测报文。此时,udp头的端口号标识一个“oam报文”或者“opaque报文”,而由ipv6头的目的地址标识“udp-stamp”检测报文。
[0220]
可选地,在一些实施例中,ipv6头后面可以直接接stamp检测报文。此时,ipv6头的next header值可以用59来标识一个“opaque报文”,而由ipv6头的目的地址标识“nh59-stamp”检测报文。
[0221]
本技术实施例中,地址a5和“stamp”指示信息的对应关系,可以通过在设备b上配
置实现。下面分别对不同的实现方式进行详细描述。
[0222]
一个示例,可以在设备b上配置:ipv6 address 2001:db1::1234function oam-stamp。其中“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-stamp”表示“stamp”指示功能,该地址后面可以是udp stamp,或者是nh59 stamp。
[0223]
另一个示例,还可以在设备b上配置:“ipv6 address 2001:db1::1234function oam-udp-stamp”。其中,“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-udp-stamp”表示“udp-stamp”指示功能,该地址后面是udp stamp。
[0224]
另一个示例,还可以在设备b上配置:“ipv6 address 2001:db1::1234function oam-nh59-stamp”。其中,“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-nh59-stamp”表示“nh59-stamp”指示功能,该地址后面是nh59 stamp。
[0225]
另一个示例,也可以在设备b上配置使用一个环回ipv6地址,例如这个环回ipv6地址可以是位于0:0:0:0:0:ffff:7f00:0/104地址段的一个地址。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址。因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在b上配置类似。设备b上的配置如下:ipv6 address0:0:0:0:0:ffff:7f00:1234function oam-stamp。
[0226]
应理解,上述两种地址均为单播ipv6地址,可以将地址和其指示信息的语义保存在fib中,即单播地址和其对应的指示信息。对于收到的隧道报文,设备b在解封装隧道头并获取到ipv6头之后,根据ipv6头的目的地址为单播地址而相应的查fib表获得该地址对应的指示信息为“stamp检测报文”。
[0227]
另一个示例,本技术实施例中还可以在设备b上配置一个组播地址即ffxx::/8地址段的地址标识上述功能。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址。因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在设备b上配置类似。设备b上的配置如下:ipv6 address ff03::1234function oam-stamp。
[0228]
应理解,上述地址均为组播ipv6地址,可以将地址和其指示信息的语义保存在mfib中,即组播地址和其对应的指示信息。设备b收到oam检测报文后,对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分。设备b根据ipv6头的目的地址为组播地址而相应的查mfib表获得该地址对应的指示信息为“stamp检测报文”。
[0229]
3、设备b进行stamp检测的相应处理。
[0230]
设备b根据被ip封装的ipv6头的目的地址a5的指示确定被ip封装的oam报文是一个stamp检测报文,因此,设备b需要对被ip封装的oam报文进行stamp检测的相应处理。具体的,设备b需要对被ip封装的oam报文进行修改环回处理,并构造一个stamp反弹报文。
[0231]
例如,设备b将被ip封装的oam报文的ipv6头的目的地址修改为a的地址(例如,地址a7),将源地址修改为设备b的地址(例如,地址a8),从而构造一个stamp反弹报文。
[0232]
设备b还可以将stamp反弹报文发送给设备a。具体的,设备b根据stamp反弹报文的ipv6头中da=a7(目的地址a7为设备a的一个地址),查表获取目的地址a7的下一跳和出接口。并根据该下一跳和出接口将报文沿着相应的出接口发送,最终到达设备a。
[0233]
可选地,在一些实施例中,源地址a6也可以是一个有语义的ipv6地址,其用于指示设备a对oam响应报文进行处理。设备b发送给设备a的报文目的地址a7地址可以和地址a6相同。
oam-sbfd”表示“s-bfd”指示功能,该地址后面可以是udp sbfd,或者是nh59 sbfd。
[0248]
另一个示例,还可以在设备b上配置:“ipv6 address 2001:db1::1234function oam-udp-sbfd”。其中,“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-udp-sbfd”表示“udp-sbfd”指示功能,该地址后面是udp sbfd。
[0249]
另一个示例,还可以在设备b上配置:“ipv6 address 2001:db1::1234function oam-nh59-sbfd”。其中,“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-nh59-sbfd”表示“nh59-sbfd”指示功能,该地址后面是nh59 sbfd。
[0250]
另一个示例,也可以在设备b上配置使用一个环回ipv6地址,例如这个环回ipv6地址可以是位于0:0:0:0:0:ffff:7f00:0/104地址段的一个地址。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址。因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在b上配置类似。设备b上的配置如下:ipv6 address0:0:0:0:0:ffff:7f00:1234function oam-sbfd。
[0251]
应理解,上述两种地址均为单播ipv6地址,可以将地址和其指示信息的语义保存在fib中,即单播地址和其对应的指示信息。对于收到的隧道报文,设备b在解封装隧道头并获取到ipv6头之后,根据ipv6头的目的地址为单播地址而相应的查fib表获得该地址对应的指示信息为“s-bfd检测报文”。
[0252]
另一个示例,本技术实施例中还可以在设备b上配置一个组播地址即ffxx::/8地址段的地址标识上述功能。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址。因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在设备b上配置类似。设备b上的配置如下:ipv6 address ff03::1234function oam-sbfd。
[0253]
应理解,上述地址均为组播ipv6地址,可以将地址和其指示信息的语义保存在mfib中,即组播地址和其对应的指示信息。设备b收到oam检测报文后,对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分。设备b根据ipv6头的目的地址为组播地址而相应的查mfib表获得该地址对应的指示信息为“s-bfd检测报文”。
[0254]
3、设备b进行s-bfd检测的相应处理。
[0255]
设备b根据被ip封装的oam报文的ipv6头的目的地址a25的指示确定该被ip封装的oam报文是一个s-bfd检测报文,因此,设备b需要对被ip封装的oam报文进行s-bfd检测的相应处理。具体的,设备b需要对被ip封装的oam报文进行修改环回处理,并构造一个s-bfd响应报文。
[0256]
例如,设备b将被ip封装的oam报文的ipv6头的目的地址修改为a的地址(例如,地址a27),将源地址修改为设备b的地址(例如,地址a28),从而构造一个s-bfd响应报文。
[0257]
设备b还可以将s-bfd响应报文发送给设备a。具体的,设备b根据s-bfd响应报文的ipv6头中da=a27(目的地址a27为设备a的一个地址),查表获取目的地址a27的下一跳和出接口。并根据该下一跳和出接口将报文沿着相应的出接口发送,最终到达设备a。
[0258]
可选地,在一些实施例中,源地址a26也可以是一个有语义的ipv6地址,其用于指示设备a对oam响应报文进行处理。设备b发送给设备a的报文目的地址a27地址可以和地址a26相同。
[0259]
例如,设备a上配置如下地址并在检测报文中携带作为回程地址:ipv6 address2001:db3::1234function oam-reply-process。其中,地址2001:db3::1234对应于
a27和a26地址,oam-reply-process标识该地址是一个指示对oam响应报文进行处理。当设备a收到ipv6报文,且报文目的地址是一个有oam-reply-process指示(或end.orp)信息的地址时确定报文是oam响应报文,并进行相应的处理。
[0260]
下面以oam检测为ping,被ip封装的oam报文中的ipv6头为第一ipv6头作为示例,结合图12对隧道的入口设备(例如,设备a)通过第一ipv6头的目的地址指示隧道的出口设备(例如,设备b)进行oam检测的具体实现方式进行详细描述。
[0261]
应理解,图12的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图12的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。
[0262]
如图12所示,设备a向设备b发送的oam检测报文包括隧道头和被ip封装的oam报文(ipv6头 udp头 oam报文)。其中,被ip封装的oam报文的内层ipv6头(也可以称为第一ipv6头)的源地址a12为设备a的地址,目的地址a11为设备b上的一个地址且该地址会对应一个“ping检测”的语义。
[0263]
这里的“ping检测”指的是,设备b根据这个地址即可以确定被ip封装的oam报文为ping检测报文。
[0264]
下面对设备b上处理oam检测报文的过程进行详细描述。
[0265]
1、设备b为隧道的出口设备,解封装接收到的图12所示的oam检测报文。
[0266]
2、设备b获得ipv6头中的目的地址a11对应的语义。
[0267]
设备b对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分(被ip封装的oam报文),根据被ip封装的oam报文的ipv6头的目的地址a11是本机地址,查表获得该地址a11对应的语义为“ping检测”。也就是说,设备b根据地址a11即可确定报文是ping检测报文。
[0268]
图12所示的oam检测报文中,ipv6头后面还有udp头,udp头后面才是ping的检测报文。此时,udp头的端口号标识一个“oam报文”或者“opaque报文”,而由ipv6头的目的地址标识“udp-ping”检测报文。
[0269]
可选地,在一些实施例中,ipv6头后面可以直接接ping检测报文。此时,ipv6头的next header值可以用59来标识一个“opaque报文”,而由ipv6头的目的地址标识“nh59-ping”检测报文。
[0270]
本技术实施例中,地址a11和“ping检测”指示信息的对应关系,可以通过在设备b上配置实现。下面分别对不同的实现方式进行详细描述。
[0271]
一个示例,可以在设备b上配置:ipv6 address 2001:db1::1234function oam-ping。其中“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-ping”表示“ping检测”指示功能,该地址后面可以是udp ping,或者是nh59 ping。
[0272]
另一个示例,还可以在设备b上配置:“ipv6 address 2001:db1::1234function oam-udp-ping”。其中,“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-udp-ping”表示“udp-ping”指示功能,该地址后面是udp ping。
[0273]
另一个示例,还可以在设备b上配置:“ipv6 address 2001:db1::1234function oam-nh59-ping”。其中,“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-nh59-ping”表示“nh59-ping”指示功能,该地址后面是nh59 ping。
[0274]
另一个示例,也可以在设备b上配置使用一个环回ipv6地址,例如这个环回ipv6地址可以是位于0:0:0:0:0:ffff:7f00:0/104地址段的一个地址。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址。因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在b上配置类似。设备b上的配置如下:ipv6 address0:0:0:0:0:ffff:7f00:1234function oam-ping。
[0275]
应理解,上述两种地址均为单播ipv6地址,可以将地址和其指示信息的语义保存在fib中,即单播地址和其对应的指示信息。对于收到的隧道报文,设备b在解封装隧道头并获取到ipv6头之后,根据ipv6头的目的地址为单播地址而相应的查fib表获得该地址对应的指示信息为“ping检测报文”。
[0276]
另一个示例,本技术实施例中还可以在设备b上配置一个组播地址即ffxx::/8地址段的地址标识上述功能。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址。因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在设备b上配置类似。设备b上的配置如下:ipv6 address ff03::1234function oam-ping。
[0277]
应理解,上述地址均为组播ipv6地址,可以将地址和其指示信息的语义保存在mfib中,即组播地址和其对应的指示信息。设备b收到oam检测报文后,对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分。设备b根据ipv6头的目的地址为组播地址而相应的查mfib表获得该地址对应的指示信息为“ping检测报文”。
[0278]
3、设备b构造echo reply应答报文,并发送给设备a。
[0279]
设备b根据“ping检测”的指示,确定被ip封装的oam报文是一个echo request报文,并构造echo reply应答报文。例如,设备b将被ip封装的oam报文的ipv6头的目的地址修改为a的地址(例如,地址a13),将源地址修改为设备b的地址(例如,地址a14),从而构造一个echo reply应答报文。
[0280]
应理解,上述echo reply应答报文相当于是对解封装后得到的被ip封装的oam报文的ipv6头进行了修改得到的,并最终把报文发送给设备a,相当于对报文做了修改和环回。
[0281]
具体的,设备b根据echo reply应答报文的ipv6头中da=a13(目的地址a13为设备a的一个地址),查表获取目的地址a13的下一跳和出接口。并根据该下一跳和出接口将报文沿着相应的出接口发送,最终到达设备a。
[0282]
可选地,在一些实施例中,源地址a12也可以是一个有语义的ipv6地址,其用于指示设备a对oam响应报文进行处理。设备b发送给设备a的报文目的地址a13地址可以和地址a12相同。
[0283]
例如,设备a上配置如下地址并在检测报文中携带作为回程地址:ipv6 address2001:db3::1234function oam-reply-process。其中,地址2001:db3::1234对应于a12和a13地址,oam-reply-process标识该地址是一个指示对oam响应报文进行处理。当设备a收到ipv6报文,且报文目的地址是一个有oam-reply-process指示(或end.orp)信息的地址时确定报文是oam响应报文,并进行相应的处理。
[0284]
下面以oam检测为bfd,被ip封装的oam报文中的ipv6头为第一ipv6头作为示例,结合图13对隧道的入口设备(例如,设备a)通过第一ipv6头的目的地址指示隧道的出口设备
(例如,设备b)进行oam检测的具体实现方式进行详细描述。
[0285]
应理解,图13的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图13的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。
[0286]
如图13所示,设备a向设备b发送的oam检测报文包括隧道头和被ip封装的oam报文(ipv6头 udp头 oam报文)。其中,被ip封装的oam报文的ipv6头的源地址a16为设备a的地址,目的地址a15为设备b上的一个地址且该地址a15指示“bfd检测”,也可以理解为地址a15对应“bfd检测”的语义。
[0287]
这里的“bfd检测”指的是,设备b根据这个地址即可以确定被ip封装的oam报文为bfd检测报文。
[0288]
下面对设备b上处理oam检测报文的过程进行详细描述。
[0289]
1、设备b为隧道的出口设备,解封装接收到的图13所示的oam检测报文。
[0290]
2、设备b获得ipv6头中的目的地址a15对应的语义。
[0291]
设备b对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分(被ip封装的oam报文),根据被ip封装的oam报文的ipv6头的目的地址a15是本机地址,查表获得该地址a15对应的语义为“bfd检测报文”。也就是说,设备b根据地址a15即可确定报文是bfd检测报文。
[0292]
图13所示的oam检测报文中,ipv6头后面还有udp头,udp头后面才是bfd的检测报文。此时,udp头的端口号标识一个“oam报文”或者“opaque报文”,而由ipv6头的目的地址标识“udp-bfd”检测报文。
[0293]
可选地,在一些实施例中,ipv6头后面可以直接接bfd检测报文。此时,ipv6头的next header值可以用59来标识一个“opaque报文”,而由ipv6头的目的地址标识“nh59-bfd”检测报文。
[0294]
本技术实施例中,地址a15和“bfd”指示信息的对应关系,可以通过在设备b上配置实现。下面分别对不同的实现方式进行详细描述。
[0295]
一个示例,可以在设备b上配置:ipv6 address 2001:db1::1234function oam-bfd。其中“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-bfd”表示“bfd”指示功能,该地址后面可以是udp bfd,或者是nh59 bfd。
[0296]
另一个示例,还可以在设备b上配置:“ipv6 address 2001:db1::1234function oam-udp-bfd”。其中,“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-udp-bfd”表示“udp-bfd”指示功能,该地址后面是udp bfd。
[0297]
另一个示例,还可以在设备b上配置:“ipv6 address 2001:db1::1234function oam-nh59-bfd”。其中,“ipv6 address 2001:db1::1234”是设备b上的一个单播ipv6地址,“function oam-nh59-bfd”表示“nh59-bfd”指示功能,该地址后面是nh59 bfd。
[0298]
另一个示例,也可以在设备b上配置使用一个环回ipv6地址,例如这个环回ipv6地址可以是位于0:0:0:0:0:ffff:7f00:0/104地址段的一个地址。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址。因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在b上配置类似。设备b上的配置如下:ipv6 address0:0:0:0:
0:ffff:7f00:1234function oam-bfd。
[0299]
应理解,上述两种地址均为单播ipv6地址,可以将地址和其指示信息的语义保存在fib中,即单播地址和其对应的指示信息。对于收到的隧道报文,设备b在解封装隧道头并获取到ipv6头之后,根据ipv6头的目的地址为单播地址而相应的查fib表获得该地址对应的指示信息为“bfd检测报文”。
[0300]
另一个示例,本技术实施例中还可以在设备b上配置一个组播地址即ffxx::/8地址段的地址标识上述功能。该地址段的地址并不是设备b所独有的,而是各设备都可以使用的地址。因此该地址通常不需要在设备b上配置,而是由协议进行规定,但其含义和在设备b上配置类似。设备b上的配置如下:ipv6 address ff03::1234function oam-bfd。
[0301]
应理解,上述地址均为组播ipv6地址,可以将地址和其指示信息的语义保存在mfib中,即组播地址和其对应的指示信息。设备b收到oam检测报文后,对oam检测报文进行解封装,获得oam检测报文的隧道头之后的部分。设备b根据ipv6头的目的地址为组播地址而相应的查mfib表获得该地址对应的指示信息为“bfd检测报文”。
[0302]
3、设备b进行bfd检测的相应处理。
[0303]
设备b根据内层ipv6头的目的地址a15指示“bfd检测”,对oam报文进行处理。具体的,设备b可以确定报文是一个建立bfd会话,并检测bfd会话的状态(例如,down/up)。
[0304]
上文结合图1至图13,详细描述了本技术实施例提供的一种oam检测的方法,下面将结合图14至图19,详细描述本技术的装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
[0305]
图14是本技术实施例提供的一种第一网络设备1400的示意性结构图。图14所示的该第一网络设备1400可以执行上述实施例的方法中第一网络设备执行的相应步骤。如图14所示,所述第一网络设备1400包括:接收模块1410、处理模块1420,
[0306]
接收模块1410,用于经由所述隧道接收第二网络设备发送的第一报文,所述第一报文包括隧道头,第一互联网协议第六版ipv6头以及操作管理和维护oam报文,所述第二网络设备为所述隧道的入口设备;
[0307]
处理模块1420,用于根据所述第一ipv6头的目的地址da确定oam检测的类型;
[0308]
所述处理模块1420,还用于根据所述oam检测的类型进行检测。
[0309]
可选地,所述第一ipv6头位于所述隧道头和所述oam报文之间。
[0310]
可选地,所述第一报文还包括用户数据报协议udp头,所述udp头的目的端口号用于指示所述第一报文中包括所述oam报文,
[0311]
所述处理模块1420,还用于:根据所述udp头的所述目的端口号确定所述第一报文中包括所述oam报文。
[0312]
可选地,所述第一ipv6头的next header字段用于指示所述第一报文中包括所述oam报文。
[0313]
所述处理模块1420,还用于:根据所述next header字段的值确定所述第一报文中包括所述oam报文。
[0314]
可选地,所述处理模块1420具体用于:确定所述第一ipv6头的da为所述第一网络设备的单播ipv6地址;根据所述第一ipv6头的da和转发信息库fib确定所述oam检测的类型,其中,所述fib包括所述第一ipv6头的da和所述oam检测的类型之间的对应关系。
[0315]
可选地,所述处理模块1420具体用于:确定所述第一ipv6头的da为组播ipv6地址;根据所述第一ipv6头的da和组播转发信息库mfib确定所述oam检测的类型,其中,所述mfib包括所述第一ipv6头的da和所述oam检测的类型之间的对应关系。
[0316]
可选地,所述处理模块1420具体用于:对所述第一报文进行解封装,得到所述oam报文;根据所述oam报文确定第二报文;向所述第二网络设备发送所述第二报文。
[0317]
可选地,所述第二报文包括第二ipv6头,所述第二ipv6头的目的地址da为所述第二网络设备的ipv6地址,所述第二ipv6头的da指示所述第二报文为oam检测响应报文。
[0318]
可选地,所述第二ipv6头的da为所述第一ipv6头的源地址sa。
[0319]
可选地,所述oam检测的类型包括以下中的任意一种:简单双向主动测量协议stamp检测、双向主动测量协议twamp检测、双向转发检测bfd、无缝的双向转发检测s-bfd、因特网包探测器ping检测。
[0320]
可选地,所述隧道包括以下中的任意一种:多协议标签交换mpls隧道、互联网协议ip隧道、使用互联网协议第6版的段路由srv6隧道、基于位索引的显式复制bier隧道、互联网协议第6版的基于位索引的显式复制bierv6隧道。
[0321]
图15是本技术实施例的第一网络设备2000的硬件结构示意图。图15所示第一网络设备2000可以执行上述实施例的方法中第一网络设备执行的相应步骤。
[0322]
如图15所示,所述第一网络设备2000包括处理器2001、存储器2002、接口2003和总线2004。其中接口2003可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2001、存储器2002和接口2003通过总线2004连接。
[0323]
所述接口2003具体可以包括发送器和接收器,用于第一网络设备实现上述收发。例如,所述接口2003用于经由所述隧道接收第二网络设备发送的第一报文。
[0324]
所述处理器2001用于执行上述实施例中由第一网络设备进行的处理。例如,用于根据所述第一ipv6头的目的地址da确定oam检测的类型;根据所述oam检测的类型进行检测;和/或用于本文所描述的技术的其他过程。存储器2002包括操作系统20021和应用程序20022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第一网络设备的处理过程。可选的,所述存储器2002可以包括只读存储器(read-only memory,rom)和随机存取存储器(random access memory,ram)。其中,所述rom包括基本输入/输出系统(basic input/output system,bios)或嵌入式系统;所述ram包括应用程序和操作系统。当需要运行第一网络设备2000时,通过固化在rom中的bios或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备2000进入正常运行状态。在第一网络设备2000进入正常运行状态后,运行在ram中的应用程序和操作系统,从而,完成方法实施例中涉及第一网络设备2000的处理过程。
[0325]
可以理解的是,图15仅仅示出了第一网络设备2000的简化设计。在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。
[0326]
图16为本技术实施例的另一种第一网络设备2100的硬件结构示意图。图16所示的第一网络设备2100可以执行上述实施例的方法中第一网络设备执行的相应步骤。
[0327]
如图16所述,第一网络设备2100包括:主控板2110、接口板2130、交换网板2120和接口板2140。主控板2110、接口板2130和2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。其中,主控板2110用于完成系统管理、设备维护、协议处理等功能。交换
网板2120用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2130和2140用于提供各种业务接口(例如,pos接口、ge接口、atm接口等),并实现数据包的转发。
[0328]
接口板2130可以包括中央处理器2131、转发表项存储器2134、物理接口卡2133和网络处理器2132。其中,中央处理器2131用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2134用于保存表项。物理接口卡2133用于完成流量的接收和发送。
[0329]
应理解,本技术实施例中接口板2140上的操作与所述接口板2130的操作一致,为了简洁,不再赘述。
[0330]
应理解,本实施例的第一网络设备2100可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
[0331]
此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
[0332]
图17是本技术实施例提供的一种第二网络设备1700的示意性结构图。图17所示的该第二网络设备1700可以执行上述实施例的方法中第二网络设备执行的相应步骤。如图17所示,所述第二网络设备1700包括:处理模块1710,发送模块1720,
[0333]
处理模块1710,用于获取第一报文,所述第一报文包括隧道头,第一互联网协议第六版ipv6头以及操作管理和维护oam报文,所述第一ipv6头的目的地址da用于指示oam检测的类型;
[0334]
发送模块1720,用于经由所述隧道向第一网络设备发送所述第一报文,所述第一网络设备为所述隧道的出口设备。
[0335]
可选地,所述第一ipv6头位于所述隧道头和所述oam报文之间。
[0336]
可选地,所述第一报文还包括用户数据报协议udp头,所述udp头的目的端口号用于指示所述第一报文中包括所述oam报文。
[0337]
可选地,所述第一ipv6头的next header字段用于指示所述第一报文中包括所述oam报文。
[0338]
可选地,所述第二网络设备1700还包括:
[0339]
接收模块1730,用于接收第二报文,所述第二报文包括第二ipv6头,所述第二ipv6头的目的地址da为所述第二网络设备的ipv6地址,所述第二ipv6头的da指示所述第二报文为oam检测响应报文;
[0340]
所述处理模块1710,还用于根据所述第二ipv6头的da对所述第二报文进行处理。
[0341]
可选地,所述第二ipv6头的da为所述第一ipv6头的源地址sa。
[0342]
可选地,所述oam检测的类型包括以下中的任意一种:简单双向主动测量协议
stamp检测、双向主动测量协议twamp检测、双向转发检测bfd、无缝的双向转发检测s-bfd、因特网包探测器ping检测。
[0343]
可选地,所述隧道包括以下中的任意一种:多协议标签交换mpls隧道、互联网协议ip隧道、使用互联网协议第6版的段路由srv6隧道、基于位索引的显式复制bier隧道、互联网协议第6版的基于位索引的显式复制bierv6隧道。
[0344]
图18是本技术实施例的第二网络设备2200的硬件结构示意图。图18所示第二网络设备2200可以执行上述实施例的方法中第二网络设备执行的相应步骤。
[0345]
如图18所示,所述第二网络设备2200包括处理器2201、存储器2202、接口2203和总线2204。其中接口2203可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2201、存储器2202和接口2203通过总线2204连接。
[0346]
所述接口2203具体可以包括发送器和接收器,用于第二网络设备实现上述收发。例如,该接口用于支持经由所述隧道向第一网络设备发送所述第一报文。
[0347]
所述处理器2201用于执行上述实施例中由第二网络设备进行的处理。例如,用于获取第一报文;和/或用于本文所描述的技术的其他过程。存储器2202包括操作系统22021和应用程序22022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第二网络设备的处理过程。可选的,所述存储器2202可以包括只读存储器(read-only memory,rom)和随机存取存储器(random access memory,ram)。其中,所述rom包括基本输入/输出系统(basic input/output system,bios)或嵌入式系统;所述ram包括应用程序和操作系统。当需要运行第二网络设备2200时,通过固化在rom中的bios或者嵌入式系统中的bootloader引导系统进行启动,引导第二网络设备2200进入正常运行状态。在第二网络设备2200进入正常运行状态后,运行在ram中的应用程序和操作系统,从而,完成方法实施例中涉及第二网络设备2200的处理过程。
[0348]
可以理解的是,图18仅仅示出了第二网络设备2200的简化设计。在实际应用中,第二网络设备可以包含任意数量的接口,处理器或者存储器。
[0349]
图19为本技术实施例的另一种第二网络设备2400的硬件结构示意图。图19所示的第二网络设备2400可以执行上述实施例的方法中第二网络设备执行的相应步骤。
[0350]
如图19所述,第二网络设备2400包括:主控板2410、接口板2430、交换网板2420和接口板2440。主控板2410、接口板2430和2440,以及交换网板2420之间通过系统总线与系统背板相连实现互通。其中,主控板2410用于完成系统管理、设备维护、协议处理等功能。交换网板2420用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2430和2440用于提供各种业务接口(例如,pos接口、ge接口、atm接口等),并实现数据包的转发。
[0351]
接口板2430可以包括中央处理器2431、转发表项存储器2434、物理接口卡2433和网络处理器2432。其中,中央处理器2431用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2434用于保存表项。物理接口卡2433用于完成流量的接收和发送。
[0352]
应理解,本技术实施例中接口板2440上的操作与所述接口板2430的操作一致,为了简洁,不再赘述。应理解,本实施例的第二网络设备2400可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
[0353]
此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控
板和备用主控板。接口板可能有一块或多块,第二网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第二网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第二网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第二网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
[0354]
本技术实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一网络设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,rom)、可编程rom(programmable rom,prom)、可擦除的prom(erasable prom,eprom)、flash存储器、电eprom(electrically eprom,eeprom)以及硬盘驱动器(hard drive)。
[0355]
本技术实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二网络设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,rom)、可编程rom(programmable rom,prom)、可擦除的prom(erasable prom,eprom)、flash存储器、电eprom(electrically eprom,eeprom)以及硬盘驱动器(hard drive)。
[0356]
本技术实施例还提供了一种芯片系统,应用于第一网络设备中,该芯片系统包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片系统与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第一网络设备的操作。
[0357]
在具体实现过程中,该芯片可以以中央处理器(central processing unit,cpu)、微控制器(micro controller unit,mcu)、微处理器(micro processing unit,mpu)、数字信号处理器(digital signal processing,dsp)、片上系统(system on chip,soc)、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或可编辑逻辑器件(programmable logic device,pld)的形式实现。
[0358]
本技术实施例还提供了另一种芯片系统,应用于第二网络设备中,该芯片系统包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片系统与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第二网络设备的操作。
[0359]
在具体实现过程中,该芯片可以以中央处理器(central processing unit,cpu)、微控制器(micro controller unit,mcu)、微处理器(micro processing unit,mpu)、数字信号处理器(digital signal processing,dsp)、片上系统(system on chip,soc)、专用集
成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或可编辑逻辑器件(programmable logic device,pld)的形式实现。
[0360]
本技术实施例还提供了一种计算机程序产品,应用于第一网络设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第一网络设备的操作。
[0361]
本技术实施例还提供了一种计算机程序产品,应用于第二网络设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第二网络设备的操作。
[0362]
应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0363]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0364]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0365]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0366]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0367]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0368]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0369]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献