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

一种报文处理方法、装置、设备及介质与流程

2021-10-27 21:22:00 来源:中国专利 TAG:报文 网络安全 介质 装置 特别


1.本技术涉及通信技术领域,特别涉及网络安全领域,提供一种报文处理方法、装置、设备及介质。


背景技术:

2.为了保证网络的安全性,网络设备可以在各个端口配置访问控制列表(access control lists,acl),对通过各个端口的报文进行控制,控制例如过滤报文、将报文通过指定端口转发等。
3.目前,为了实现网络设备通过指定端口转发报文,一般是通过访问列表acl的重定向策略,然而由于网络设备中的芯片自身的限制,因而不能执行重定向策略,例如博通broadcom公司制造的博通(broadcom,bcm)芯片包括多个系列,其中盛科网络(centecnetworks,ctc)系列的芯片不能执行acl的重定向策略,因此,导致报文的转发不够灵活。


技术实现要素:

4.本技术实施例提供一种报文处理方法、装置、设备及介质,用于解决部分设备无法灵活转发报文的问题。
5.第一方面,提供一种报文处理方法,应用于第一设备中,所述方法包括:
6.从所述第一设备的第一端口接收第一报文;
7.对所述第一报文进行镜像处理,获得与所述第一报文相同的第二报文;
8.确定所述第一设备用于发送所述第二报文的第二端口的信息;
9.基于所述第二端口的信息,从所述第二端口发送所述第二报文。
10.本技术实施例中,第一设备对接收的第一报文进行镜像处理,获得与第一报文相同的第二报文,可以确定进行报文转发的任一的指定端口的信息,通过第一设备的任一指定端口转发第二报文,从而实现报文的灵活转发。且,本技术实施例是将镜像处理后得到的第二报文通过任一指定端口转发,不会影响第一报文的正常转发。
11.在一种可能的实施例中,对所述第一报文进行镜像处理,获得与所述第一报文相同的第二报文,包括:
12.若确定所述第一报文命中接入控制列表acl中的目标匹配条件,则采用所述acl中的目标转发动作,对所述第一报文进行镜像处理,获得与所述第一报文相同的第二报文,其中,所述目标匹配条件是根据指定类型的至少一个报文的信息得到的,所述目标转发动作为镜像处理。
13.本技术实施例中,第一设备通过acl中的目标匹配条件,自动筛选出具体的报文,无需对通过第一端口的所有报文进行人工筛选,减少人工筛选报文的人力成本,另外,可以有针对性对命中目标匹配条件的第一报文进行镜像处理,相对减少第一设备的处理量。
14.在一种可能的实施例中,在对所述第一报文进行镜像处理,获得与所述第一报文
相同的第二报文之前,所述方法还包括:
15.接收属于指定类型的第三报文,并提取所述第三报文的信息;
16.基于所述第三报文的信息,获得所述目标匹配条件;
17.将所述目标转发动作设置为镜像处理,并关联所述目标匹配条件与所述目标转发动作,以获得所述acl。
18.在本技术实施例中,可以选定相应类型的报文,通过提取指定类型的报文的信息,从而建立目标匹配条件,并关联目标匹配条件与镜像处理,创建acl,以便第一设备后续可以直接根据acl对属于指定类型的报文进行镜像处理,以实现指定类型的报文的灵活转发。
19.在一种可能的实施例中,确定所述第一设备用于发送所述第二报文的第二端口的信息,包括:
20.确定所述第一端口对应的目标索引标识;
21.从镜像资源表项中,将与所述目标索引标识对应的目的端口的信息确定为所述第二端口的信息,其中,所述镜像资源表项包括至少一个索引标识以及每个索引标识关联的目的端口的信息,一个索引标识对应所述第一设备的一个端口。
22.本技术实施例中,由于镜像资源表项包括多个索引标识以及每个索引标识关联的目的端口的信息,第一设备可以直接根据镜像资源表项,将与目标索引标识对应的目的端口的信息确定为第二端口的信息,可以简单且准确地确定出第二端口的信息,从而实现第二报文的正确转发。
23.在一种可能的实施例中,在从镜像资源表项中,将与所述目标索引标识对应的目的端口的信息确定为所述第二端口的信息之前,所述方法还包括:
24.在关联所述目标匹配条件与所述目标转发动作时,基于所述第一端口的信息,生成与所述目标转发动作关联的目标索引标识;
25.将所述目标索引标识和所述目标索引标识关联的目的端口的信息关联写入镜像资源表项。
26.本技术实施例中,预先将目标索引标识和目标索引标识关联的目的端口的信息关联写入镜像资源表项,以便后续第一设备直接根据预存的镜像资源表项,可以快速地确定目的端口的信息,实现报文的快速转发。
27.在一种可能的实施例中,所述目标索引标识关联的目的端口的信息包括目的端口的标识、以及所述目的端口的标识关联的芯片号;
28.基于所述第二端口的信息,从所述第二端口发送所述第二报文,包括:
29.基于所述目的端口的标识和所述芯片号,从所述目的端口发送所述第二报文。
30.本技术实施例中,第一设备基于目的端口的标识关联的芯片号确定芯片号对应的芯片,进而基于目的端口的标识,确定该芯片的目的端口,从该目的端口发送第二报文。即使第一设备中存在多个芯片,多个芯片的端口号相同,第一设备也能准确地确定出目的端口,进一步保证报文的正确转发。
31.在一种可能的实施例中,所述目标索引标识关联的目的端口的信息包括的目的端口为聚合口,所述聚合口关联有多个子端口,所述目标索引标识关联的目的端口的信息还包括所述聚合口的标识、所述聚合口对应的标签,所述标签用于指示所述聚合口对应的均衡算法;
32.基于所述第二端口的信息,从所述第二端口发送所述第二报文,包括:
33.根据所述聚合口的标识,以及所述标签,确定用于转发所述第二报文的目标子端口的信息,其中,所述目标子端口为所述聚合口关联的多个子端口中的一个子端口;
34.通过所述目标子端口发送所述第二报文。
35.本技术实施例中,第一设备根据聚合口的标识,以及标签,可以准确地从聚合口关联的多个子端口中确定出目标子端口,通过目标子端口发送第二报文,进一步保证第二报文的正确转发。
36.在一种可能的实施例中,所述第二端口和所述第一端口为相同的端口。
37.本技术实施例中,第一设备从第一端口接收了第一报文之后,将与第一报文相同的第二报文从第一端口转发出去,实现了报文的源进源出,即报文从同一个端口进来并从同一个端口出去,便于后续通过源进源出的报文进行链路故障检测。
38.在一种可能的实施例中,所述第一设备通过所述第二端口与第二设备的第三端口传输指定类型的报文;
39.基于所述第二端口的信息,从所述第二端口发送所述第二报文,包括:
40.若所述第二报文为所述指定类型的报文,基于所述第二端口的信息,从所述第二端口将所述第二报文发送给所述第二设备的第三端口,以使所述第二设备根据接收到的第四报文,以及第五报文,确定所述第一设备的第二端口与所述第二设备的第三端口之间的通信链路是否出现故障,其中,所述第五报文是所述第二设备向所述第一设备发送的报文,对应的所述第一设备接收到所述第一报文。
41.本技术实施例中,第一设备通过第二端口与第二设备的第三端口传输指定类型的报文,第二设备根据接收到的第三报文,以及发送的第四报文,确定第一设备的第二端口与第二设备的第三端口之间的通信链路是否出现故障,可以检测线路的连通性问题,实现网络监控和故障排除。
42.第二方面,一种报文处理装置,所述装置设置于第一设备中,所述装置包括:
43.接收模块,用于从所述第一设备的第一端口接收第一报文;
44.获得模块,用于对所述第一报文进行镜像处理,获得与所述第一报文相同的第二报文;
45.确定模块,用于确定所述第一设备用于发送所述第二报文的第二端口的信息;
46.发送模块,用于基于所述第二端口的信息,从所述第二端口发送所述第二报文。
47.在一种实施例中,所述获得模块具体用于:
48.若确定所述第一报文命中接入控制列表acl中的目标匹配条件,则采用所述acl中的目标转发动作,对所述第一报文进行镜像处理,获得与所述第一报文相同的第二报文,其中,所述目标匹配条件是根据指定类型的至少一个报文的信息得到的,所述目标转发动作为镜像处理。
49.在一种实施例中,所述获得模块还用于:
50.在对所述第一报文进行镜像处理,获得与所述第一报文相同的第二报文之前,接收属于指定类型的第三报文,并提取所述第三报文的信息;
51.基于所述第三报文的信息,获得所述目标匹配条件;
52.将所述目标转发动作设置为镜像处理,并关联所述目标匹配条件与所述目标转发
动作,以获得所述acl。
53.在一种实施例中,所述确定模块具体用于:
54.确定所述第一端口对应的目标索引标识;
55.从镜像资源表项中,将与所述目标索引标识对应的目的端口的信息确定为所述第二端口的信息,其中,所述镜像资源表项包括至少一个索引标识以及每个索引标识关联的目的端口的信息,一个索引标识对应所述第一设备的一个端口。
56.在一种实施例中,所述装置还包括生成模块和写入模块,所述生成模块,用于在从镜像资源表项中,将与所述目标索引标识对应的目的端口的信息确定为所述第二端口的信息之前,在关联所述目标匹配条件与所述目标转发动作时,基于所述第一端口的信息,生成与所述目标转发动作关联的目标索引标识;
57.所述写入模块,用于将所述目标索引标识和所述目标索引标识关联的目的端口的信息关联写入镜像资源表项。
58.在一种实施例中,所述目标索引标识关联的目的端口的信息包括目的端口的标识、以及所述目的端口的标识关联的芯片号;所述发送模块,具体用于:
59.基于所述目的端口的标识和所述芯片号,从所述目的端口发送所述第二报文。
60.在一种实施例中,所述目标索引标识关联的目的端口的信息包括的目的端口为聚合口,所述聚合口关联有多个子端口,所述目标索引标识关联的目的端口的信息还包括所述聚合口的标识、所述聚合口对应的标签,所述标签用于指示所述聚合口对应的均衡算法;所述发送模块具体用于:
61.根据所述聚合口的标识,以及所述标签,确定用于转发所述第二报文的目标子端口的信息,其中,所述目标子端口为所述聚合口关联的多个子端口中的一个子端口;
62.通过所述目标子端口发送所述第二报文。
63.在一种实施例中,所述第二端口和所述第一端口为相同的端口。
64.在一种实施例中,所述第一设备通过所述第二端口与第二设备的第三端口传输指定类型的报文;所述发送模块具体用于:
65.若所述第二报文为所述指定类型的报文,基于所述第二端口的信息,从所述第二端口将所述第二报文发送给所述第二设备的第三端口,以使所述第二设备根据接收到的第四报文,以及第五报文,确定所述第一设备的第二端口与所述第二设备的第三端口之间的通信链路是否出现故障,其中,所述第五报文是所述第二设备向所述第一设备发送的报文,对应的所述第一设备接收到所述第一报文。
66.第三方面,提供一种报文处理设备,包括:
67.至少一个处理器,以及
68.与所述至少一个处理器通信连接的存储器;
69.其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如第一方面中任一项所述的方法。
70.第四方面,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面中任一项所述的方法。
附图说明
71.图1为本技术实施例提供的一种报文处理方法的应用场景图;
72.图2为本技术实施例提供的一种报文处理方法的流程图;
73.图3为本技术实施例提供的一种报文处理装置的结构图;
74.图4为本技术实施例提供的一种报文处理设备的结构图。
具体实施方式
75.为了更好的理解本技术实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
76.为了便于理解本技术实施例提供的技术方案,下面对本技术实施例使用的一些关键名词进行解释。
77.1、网络设备,是计算机网络上各设备之间通信和交互时所需的一种电子设备。网络设备及部件是连接到网络中的物理实体。网络设备例如:计算机(无论其为个人电脑或服务器)、集线器、交换机、网桥、路由器、网关、网络接口卡(nic)等。
78.2、端口,是网络设备用于连接其他网络设备的接口,端口可分为虚拟端口和物理端口,其中虚拟端口为网络设备虚拟配置的端口,对外不可见,物理端口为可见、可拔插的接口。
79.聚合口是指将多个物理端口配置而成的一个虚拟端口,聚合口在逻辑上表现为1个端口,实际上却包括多个物理端口,多个物理端口又称为聚合口的子端口,例如将网络设备的随机分布的5个物理端口配置成1个聚合口。
80.3、acl,可以理解为筛选报文和处理报文的一些规则,可以是应用在网络设备的端口的指令列表,通过定义的一些规则对端口的报文进行控制,对满足该规则的报文执行相应的转发动作,从而保证网络设备的安全。acl具体可以包括匹配条件和转发动作,匹配条件为设置的用于筛选报文的条件,转发动作表示处理报文的策略,转发动作包括允许通过、丢弃、重定向、镜像等。
81.为了解决部分设备无法灵活转发报文的问题,本技术实施例提供一种报文处理方法。该方法可以由第一设备执行,第一设备具体可以是网络设备,网络设备例如交换机或路由器等。
82.下面对该报文处理方法的应用场景示意图进行说明。请参照图1,为本技术实施例提供的报文处理方法的应用场景示意图。
83.该应用场景包括第一设备110和第二设备120。其中,第一设备110包括第一端口130等多个端口,第二设备120包括第三端口140等多个端口。图1中的虚线箭头表示报文的传输方向,图1中的实线表示第一端口130与第三端口140之间的物理连接线。第一设备110和第二设备120可以是相同的网络设备,也可以是不同的网络设备,实际不限制第一设备110和第二设备120的类型,例如第一设备110和第二设备120可以均为交换机,或者均为路由器,或者一个为交换机,另一个为路由器。
84.第二设备120可以为监测设备,用于监测其他设备的故障情况,例如监测第一设备110的故障情况。
85.第二设备120的第三端口140与第一设备110的第一端口130之间为一通信链路。第
二设备120根据第三端口140收发的报文,确定第三端口140和第一端口130之间的通信链路的故障情况。其中,第二设备120和第一设备110之间报文的传输过程将在下文中进行介绍。
86.需要说明的是,本技术实施例中的“第一报文”、“第二报文”等只是区分,并不限制报文的收发先后顺序等。
87.基于图1论述的应用场景,下面对本技术实施例提供的报文处理方法进行介绍。请参照图2,为图1所示的第一设备与第二设备的交互示意图。
88.s210,第二设备向第一设备发送第五报文。
89.第二设备可以通过任一端口向第一设备发送第五报文。第二设备发送第五报文时可以指定第一设备的任一端口,或者可以不指定第一设备的端口,本技术对此不作限定。
90.第二设备为了检测第二设备的指定端口和第一设备的指定端口之间的通信链路情况,第二设备也可以通过第一指定端口向第一设备的第二指定端口发送第五报文。第一指定端口表示在第二设备中预先设置的端口,第一指定端口例如第三端口。第二指定端口表示在第一设备中预先设置的端口,第二指定端口例如第一端口。
91.其中,第五报文可以是任意类型的报文,也可以是预设类型的报文,本技术实施例中的预设类型的报文表示满足预设条件的报文,例如源网际互连协议(internet protocol,ip)地址或目的ip地址满足预设地址的报文。
92.例如,为了避免第二设备发送的预设类型的第五报文与网络中的其他报文产生冲突,第二设备可以构造一个与网络中其他报文不同的第五报文,该第五报文可以理解为一种私有报文,将该第五报文通过第三端口发送给第一设备的第一端口。这种情况下,第五报文的源地址和其他报文的源地址不同,或者第五报文的目的地址和其他报文的目的地址不同等,例如第五报文的源ip地址为0000.0000.1111,该第五报文与网络中其他报文的源ip地址均不同。
93.s220,第一设备接收第一报文。
94.第二设备向第一设备发送第五报文之后,对应地,第一设备可以接收相应的报文,例如第一设备可以通过第一端口接收相应的报文,但由于在传输第五报文的过程中可能存在丢包或其他异常情况,因此,本技术实施例中第一设备接收到的报文称为第一报文。
95.另外,在第一设备与第二设备之间的通信链路正常的情况下,第一报文可以与第五报文相同。
96.s230,第一设备对第一报文进行镜像处理,获得与第一报文相同的第二报文。
97.第一设备从第一端口接收到第一报文之后,可以对第一报文进行镜像处理,即复制第一报文,获得与第一报文相同的第二报文。
98.考虑到第一设备从第一端口接收到的报文类型可能较多,但可能并不是所有的报文均需要镜像处理,因此在本技术实施例中,第一设备还可以在acl中配置目标匹配条件,进而第一设备根据目标匹配条件,确定是否对第一报文进行镜像处理。
99.第一设备可以是从其他设备获取acl,或者可以是第一设备基于历史报文确定出的acl,下面对第一设备基于历史报文确定acl的方式进行示例介绍。
100.在第一设备接收第一报文之前,第一设备可以通过第一端口接收属于指定类型的第三报文,该第三报文可以视为历史报文的一种示例。指定类型的第三报文可以是需要源进源出的报文,也可以是需要非源进源出的报文,源进源出的报文表示从第一设备的源端
口进来、以及从第一设备的源端口出去的报文,非源进源出的报文表示从第一设备的源端口进来、以及从第一设备的除源端口之外的其他端口转发出去的报文。
101.第一设备在接收第三报文之后,可以提取第三报文的信息,基于该第三报文的信息,确定acl中的目标匹配条件。
102.其中,第三报文的信息包括以下的一种或多种:
103.(1)源地址。
104.源地址指的是第三报文的源地址,源地址可以用ip地址表示,源ip地址例如192.168.1.1。源地址还可以用mac地址表示,源mac地址例如06:00:10:0a:6c。
105.(2)目的地址。
106.目的地址指的是第三报文的目的地址,目的地址可以用ip地址表示,目的ip地址例如192.168.1.2。目的地址还可以用mac地址表示,目的mac地址例如06:00:10:0a:6c。
107.(3)以太网类型。
108.在以太网传输中,以太网类型(ether type)可以携带在以太网帧中的一个字段中,以太网类型用于指示以太网帧中的帧数据采用的协议,例如,以太网类型为0x0800,表示网际互连协议(internet protocol,ip)。
109.(4)四层端口号。
110.四层端口号用于指示第三报文所使用的应用层协议的端口号。四层端口号包括源四层端口号和目的四层端口号。
111.为了更清楚地说明四层端口号,下面进行示例介绍,例如第三报文的部分信息如下。
112.802.1q virtual lan,pri:7,dei:1,id:100//802.1q virtual lan表示ieee 802.1q虚拟局域网,pri表示帧的优先级,dei为丢弃适当性指示符(drop eligible indicator,dei),指示在带宽争用的情况下决定是否需要丢弃帧,id表示虚拟局域网(virtual local area network,vlan)的标识。
113.internet protocol version 4,src:3.15.7.1,dst:127.255.255.3//internet protocol version 4表示ipv4协议,src表示源ip地址,dst表示目的ip地址。
114.user datagram protocol,src port:49153,dst port:3784//user datagram protocol表示用户数据报协议,src port表示源四层端口号,dst port表示目的四层端口号。
115.source port:49153
ꢀꢀꢀꢀ
//source port表示源端口号。
116.destination port:3784
ꢀꢀ
//destination port表示目的端口。
117.length:32
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//length表示报文的长度。
118.(5)多协议标签交换(multi

protocol label switching,mpls)。
119.mpls用于为具有相同转发处理方式的一类报文分配相应的标签。相同转发处理方式可以是相同的源地址、相同的目的地址、相同的四层端口号、相同的以太网类型等中一种或几种。mpls包括多种信息,下面进行介绍。
120.(一)标签值(label):用于唯一标识mpls。
121.(二)保留字段(esperimental bits,exp):在设计mpls时还没有确定该字段的作用,通常为0。
122.(三)栈底位(bootom of stack,s):用于表示mpls支持多重标签,值为0时表示该mpls标签后面还有下一层mpls标签,值为1时表示该mpls标签为最底层标签。
123.(四)生存时间值(time to live,ttl):用于表示报文被丢弃之前允许通过的最大网段数量。
124.下面对mpls进行示例介绍。
125.multiprotocol label switching header,label:15001,exp:0,s:0,ttl:225//multiprotocol label switching header表示标签头,label:15001表示标签值为15001,exp:0表示该字段为空,s:0表示该mpls标签后面还有下一层mpls标签,ttl:225表示报文被丢弃之前允许通过的最大网段数量为225。
126.0000 0011 1010 1001 1001
………
=mpls label:15001//mpls label即label。
127.……………
000
……
=mpls esperimental bits:0//mpls esperimental bits即exp。
128.…………………0……
=mpls bottom of label stack:0//mpls bottom of label stack即s。
129.…………………
0 1111 1111=mpls ttl:225//mpls ttl即ttl。
130.multiprotocol label switching header,label:205000,exp:0,s:1,ttl:225//multiprotocol label switching header表示标签头,label:15001表示标签值为15001,exp:0表示该字段为空,s:1表示该mpls标签为最底层标签,ttl:225表示报文被丢弃之前允许通过的最大网段数量为225。
131.0000 0011 1010 1001 1001
………
=mpls label:205000//mpls label即label。
132.……………
000
……
=mpls esperimental bits:0//mpls bottom of label stack即s。
133.………………0……
=mpls bottom of label stack:1//mpls bottom of label stack即s。
134.………………
0 1111 1111=mpls ttl:225//mpls ttl即ttl。
135.internet protocol version 4,src:10.99.1.5,dst:127.0.0.1//internet protocol version 4表示ipv4协议,src表示源ip地址,dst表示目的ip地址。
136.user datagram protocol,src port:49229,dst port:7784//user datagram protocol表示用户数据报协议,src ptor表示源四层端口号,dst port表示目的源四层端口号。
137.data(24bytes)//data表示标签头的大小。
138.第一设备在提取第三报文的信息之后,可以将第三报文的信息作为目标匹配条件,目标匹配条件可以是预设的源ip地址、预设的目的ip地址、预设的源mac地址、预设的目的mac地址、预设的以太网类型、预设的四层端口号、以及预设的mpls等中的一种或几种。
139.与此同时,第一设备还将目标转发动作设置为镜像处理,并将目标匹配条件与目标转发动作关联,从而获得acl。
140.作为一种实施例,第一设备可以将该acl配置在第一设备的第一端口的上,以处理从第一端口接收的报文。
141.在介绍了如何获得acl之后,下面基于acl对第一设备处理第一报文的过程进行介
绍。
142.第一设备在接收第一报文之后,可以确定第一报文是否命中acl中的目标匹配条件,若第一设备确定第一报文命中acl中的目标匹配条件,则采用acl中的目标转发动作,对第一报文进行镜像处理,获得与第一报文相同的第二报文。
143.作为一种实施例,第一设备可以在acl中设置其他匹配条件,并将其他匹配条件与其他转发动作关联,其他匹配条件为与目标匹配条件不同的匹配条件,其他转发动作为除镜像处理之外的转发动作,其他转发动作例如允许报文通过、重定向等。
144.第一设备在接收第一报文之后,还可以确定第一报文是否命中acl中的其他匹配条件,若第一报文命中acl中的其他匹配条件,则采用其他匹配条件关联的其他转发动作,对第一报文进行处理。
145.作为一种实施例,考虑到第一设备从第一端口接收到的报文可能是非法的报文,为了保证第一设备的安全,第一设备可以将未命中acl中的目标匹配条件和其他匹配条件的报文丢弃。
146.例如,acl的目标匹配条件为:以太网类型为0x8000,对应的目标转发动作为镜像处理。acl的其他匹配条件为:以太网类型为0x6000,对应的其他转发动作为重定向。若第一报文的以太网类型为0x8000,则确定第一报文命中acl中的目标匹配条件,对第一报文进行镜像处理。若第一报文的以太网类型为0x6000,则确定第一报文命中acl中的其他匹配条件,对第一报文进行重定向处理,为第一报文重新指定新的目的端口。若第一报文的以太网类型为0x0806,则确定第一报文未命中acl中的目标匹配条件和其他匹配条件,将第一报文丢弃。
147.s240,第一设备确定用于发送第二报文的第二端口的信息。
148.第一设备在获得第二报文之后,可以从多个端口中随机指定一个端口作为第二报文的目的端口,本技术实施例是以第二端口为目的端口为例。
149.作为一种实施例,第一设备也可以基于镜像资源表项,确定用于发送第二报文的第二端口的信息。其中,镜像资源表项包括至少一个索引标识以及每个索引标识关联的目的端口的信息,一个索引标识对应第一设备的一个端口。第一设备可以基于索引标识,从镜像资源表项中获得目的端口的信息。
150.该镜像资源表项可以是配置在第一设备中的,例如存储在第一设备的芯片寄存器中,或者可以是第一设备生成的,下面对镜像资源表项的生成过程进行示例介绍。
151.作为一种实施例,第一设备在获得acl的同时,还可以生成镜像资源表项。
152.具体的,第一设备在关联目标匹配条件与目标转发动作时,可以基于第一端口的信息,生成与目标转发动作关联的目标索引标识,例如采用预设的哈希算法对第一端口的信息进行运算,获得目标索引标识。进一步将目标索引标识和目标索引标识关联的目的端口的信息关联写入镜像资源表项。
153.考虑到第一设备可能有多个端口,因此,本技术实施例中,镜像资源表项可以包括多个镜像资源,每个镜像资源包括一个索引标识以及该索引标识对应的一个端口。
154.由于目标索引标识关联的目的端口可能为聚合口,也可能为非聚合口,因此,目标索引标识关联的目的端口的信息包括的内容可能不同,下面分别进行示例介绍。
155.第一种,目的端口为非聚合口。
156.考虑到第一设备可能包括多个芯片,每个芯片的端口号可能相同,因此,本技术实施例中目标索引标识关联的目的端口的信息包括目的端口的标识、以及目的端口的标识关联的芯片号。芯片号用于唯一标识第一设备中的不同芯片,芯片号例如module_id_1=0。目的端口的标识用于标识芯片的端口,目的端口的标识例如port_num_1=0。
157.第二种,目的端口为聚合口。
158.考虑到聚合口关联有多个子端口,本技术实施例中,目标索引标识关联的目的端口的信息包括聚合口的标识、聚合口对应的标签、多个子端口的标识、以及每个子端口的标识关联的芯片号。其中,聚合口的标识用于指示该目的端口为聚合口,聚合口的标识例如,t=0表示该目的端口为聚合口。聚合口对应的标签用于指示聚合口对应的均衡算法,均衡算法可以确定用于转发报文的目标子端口的信息,目标子端口为聚合口关联的多个子端口中的一个子端口,均衡算法例如源ip均衡算法、目的ip均衡算法等,聚合口对应的标签例如,rtag=0表示聚合口对应的均衡算法为源ip均衡算法,rtag=1表示聚合口对应的均衡算法为目的ip均衡算法等。
159.其中,目标索引标识关联的目的端口的信息包括的内容不同,则第一设备确定第二端口的信息的方式不同,下面分别进行介绍。
160.第一种情况,若目标索引标识关联的目的端口的信息包括目的端口的标识、以及目的端口的标识关联的芯片号,则第一设备从目标索引标识对应的镜像资源中,将目的端口的标识和目的端口的标识关联的芯片号确定为第二端口的信息。
161.第二种情况,若目标索引标识关联的目的端口的信息包括聚合口的标识、聚合口对应的标签、多个子端口的标识、以及每个子端口的标识关联的芯片号,则第一设备从目标索引标识对应的镜像资源中,根据聚合口的标识,以及聚合口对应的标签,确定用于转发第二报文的目标子端口的信息,将目标子端口的信息确定为第二端口的信息。
162.例如acl的部分内容为:
163.ethertype//表示以太网类型
164.data=0x6000//表示目标匹配条件为以太网类型满足0x6000
165.mask=0x0000ffff//表示该报文的掩码为0x0000ffff
166.action={act=mirroringress,param0=0(0),param1=1006632960(0x3c000000),param2=0(0),param3=0(0)};//act=mirroringress表示目标转发动作为镜像处理,param1=1006632960(0x3c000000)中的最后一位数字表示目标索引标识为“0”,param0、param2、param3表示自定义参数。
167.具体的,若第一报文的ether type为0x6000,则对第一报文进行镜像处理,获得第二报文,以及根据目标索引标识“0”,去索引镜像资源表项中对应的镜像资源。
168.例如,目标索引标识“0”对应的镜像资源为:
169.im_mtp_index.ipipe0[0]://表示目标索引标识“0”对应的镜像资源。
[0170]
<t=0,rtag=0,port_num_7=0,port_num_6=0,port_num_5=0,port_num_4=0,port_num_3=0,port_num_2=0,port_num_1=0,port_num_0=1,port_num=2,module_id_7=0,module_id_6=0,module_id_5=0,module_id_4=0,module_id_3=0,module_id_2=0,module_id_1=0,module_id_0=0x15,module_id=0x15,count=0>//t表示聚合口的标识,rtag表示聚合口对应的标签,port_num_x表示各子端口的标识,module_id_x表
示各子端口的标识关联的芯片号。
[0171]
具体的,第一设备根据t=0确定该目的端口为聚合口,根据rtag=0确定聚合口对应的均衡算法为源ip均衡算法,将第二报文的源ip地址进行哈希运算,得到目标子端口的标识,将目标子端口的标识、以及目标子端口的标识关联的芯片号确定为第二端口的信息。
[0172]
需要说明的是,第二端口和第一端口可以为相同的端口,也可以为不同的端口,本技术实施例对此不作限定。
[0173]
例如:
[0174]
inports//inports表示第一设备接收第一报文的第一端口。
[0175]
data=0x0000000000000000000000000000000000000000000000000000000000000004//data为端口位图,每一个位(bit)表示一个端口,其中最后一位比特为“4”表示该bit对应的端口就是第一设备接收第一报文的第一端口。
[0176]
mask=0x000000000000000000000000000000000000000000000000001fffffffffffff//mask表示掩码。
[0177]
可以通过pbmp命令查看该data对应的端口名称,具体示例如下:
[0178]
sdk.0>pbmp 0x4
[0179]
0x0000000000000000000000000000000000000000000000000000000000000004==>ge1//ge1表示第一端口的端口名称。
[0180]
在对第一报文进行镜像处理,获得第二报文,以及确定发送第二报文的第二端口的标识之后,也可以通过pbmp命令查看该第二端口的标识对应的端口名称。具体示例如下:
[0181]
sdk.0>pbmp 2//2表示第二端口的端口标识。
[0182]
0x0000000000000000000000000000000000000000000000000000000000000004==>ge1//最后一位比特为“4”表示该bit对应的端口就是第一设备发送第二报文的第二端口,ge1为第二端口的端口名称。
[0183]
其中,第二端口与第一端口的名称相同,说明第一端口与第二端口为同一个端口。
[0184]
s250,第一设备从第二端口发送第二报文。
[0185]
由于第一报文可能包括目的端口的信息,对第一报文经过镜像处理后,得到的第二报文也包括目的端口的信息,因此,本技术实施例中,第一设备在确定第二端口的信息之后,可以将第二报文的目的端口填充为第二端口的信息,例如,将第二报文的目的端口填充为第二端口的标识和该标识关联的芯片号,以便从第二端口发送第二报文。第一设备可以通过第二端口将第二报文发送给第二设备,第一设备也可以通过第二端口将第二报文发送给其他设备,其他设备为除第一设备和第二设备之外的设备。
[0186]
作为一个实施例,为了不影响正常报文的转发,针对接收的第一报文,第一设备可以按照第一报文中的目的端口的信息,从该目的端口转发第一报文。
[0187]
s260,第二设备接收第四报文。
[0188]
第一设备通过第二端口向第二设备发送第二报文,对应地,第二设备可以接收相应的报文,例如第二设备可以通过第三端口接收相应的报文,由于在传输第二报文的过程中可能存在丢包或其他异常情况,因此,本技术实施例中第二设备接收到的报文称为第四报文。另外,在第一设备与第二设备之间的通信链路正常的情况下,第四报文可以与第二报文相同。
[0189]
为了检测第一设备的第二端口与第二设备的第三端口之间的通信链路是否出现故障,因此,本技术实施例中,第二端口和第一端口是相同的端口,第二设备根据第三端口接收到的第四报文,以及第五报文,确定第一设备的第二端口与第二设备的第三端口之间的通信链路是否出现故障,其中,第五报文是第二设备通过第三端口向第一设备发送的报文,对应的第一设备接收到第一报文,第五报文的具体含义请参照s210中论述的内容,此处不再赘述。
[0190]
具体的,若第四报文和第五报文的数据量不相同,则可以确定第一设备的第二端口与第二设备的第三端口之间的通信链路出现故障,存在丢包的情况,还可以确定第四报文和第五报文的数据量之差,根据该数据量之差与第五报文的数据量的比值,确定该通信链路的丢包率。若第四报文和第五报文的数据量相同,则确定第一设备的第二端口与第二设备的第三端口之间的通信链路无故障。
[0191]
作为一种实施例,s260是可选的,当第一设备将第二报文发送给其他设备时,则不执行步骤s260。
[0192]
作为一个示例,图2的实施例中第一设备例如为图1中的第一设备110,第二设备例如为图1中的第二设备120,第一端口例如为图1中的第一端口130,第三端口例如为图1中的第三端口140。
[0193]
基于同一发明构思,本技术实施例提供一种报文处理装置,该装置可以实现前文论述的第一设备的功能,请参照图3,该报文处理装置包括:
[0194]
接收模块301,用于从第一设备的第一端口接收第一报文;
[0195]
获得模块302,用于对第一报文进行镜像处理,获得与第一报文相同的第二报文;
[0196]
确定模块303,用于确定第一设备用于发送第二报文的第二端口的信息;
[0197]
发送模块304,用于基于第二端口的信息,从第二端口发送第二报文。
[0198]
在一种实施例中,获得模块302具体用于:
[0199]
若确定第一报文命中接入控制列表acl中的目标匹配条件,则采用acl中的目标转发动作,对第一报文进行镜像处理,获得与第一报文相同的第二报文,其中,目标匹配条件是根据指定类型的至少一个报文的信息得到的,目标转发动作为镜像处理。
[0200]
在一种实施例中,获得模块302还用于:
[0201]
在对第一报文进行镜像处理,获得与第一报文相同的第二报文之前,接收属于指定类型的第三报文,并提取第三报文的信息;
[0202]
基于第三报文的信息,获得目标匹配条件;
[0203]
将目标转发动作设置为镜像处理,并关联目标匹配条件与目标转发动作,以获得acl。
[0204]
在一种实施例中,确定模块303具体用于:
[0205]
确定第一端口对应的目标索引标识;
[0206]
从镜像资源表项中,将与目标索引标识对应的目的端口的信息确定为第二端口的信息,其中,镜像资源表项包括至少一个索引标识以及每个索引标识关联的目的端口的信息,一个索引标识对应第一设备的一个端口。
[0207]
在一种实施例中,装置还包括生成模块305和写入模块306,
[0208]
生成模块305,用于在从镜像资源表项中,将与目标索引标识对应的目的端口的信
息确定为第二端口的信息之前,在关联目标匹配条件与目标转发动作时,基于第一端口的信息,生成与目标转发动作关联的目标索引标识;
[0209]
写入模块306,用于将目标索引标识和目标索引标识关联的目的端口的信息关联写入镜像资源表项。
[0210]
在一种实施例中,目标索引标识关联的目的端口的信息包括目的端口的标识、以及目的端口的标识关联的芯片号;发送模块304具体用于:
[0211]
基于目的端口的标识和芯片号,从目的端口发送第二报文。
[0212]
在一种实施例中,目标索引标识关联的目的端口的信息包括的目的端口为聚合口,聚合口关联有多个子端口,目标索引标识关联的目的端口的信息还包括聚合口的标识、聚合口对应的标签,标签用于指示聚合口对应的均衡算法;发送模块304具体用于:
[0213]
根据聚合口的标识,以及标签,确定用于转发第二报文的目标子端口的信息,其中,目标子端口为聚合口关联的多个子端口中的一个子端口;
[0214]
通过目标子端口发送第二报文。
[0215]
在一种实施例中,第二端口和第一端口为相同的端口。
[0216]
在一种实施例中,第一设备通过第二端口与第二设备的第三端口传输指定类型的报文;发送模块304具体用于:
[0217]
若第二报文为指定类型的报文,基于所述第二端口的信息,从所述第二端口将第二报文发送给第二设备的第三端口,以使第二设备根据接收到的第四报文,以及第五报文,确定第一设备的第二端口与第二设备的第三端口之间的通信链路是否出现故障,其中,第五报文是第二设备向第一设备发送的报文,对应的第一设备接收到第一报文。
[0218]
基于同一发明构思,本技术实施例提供一种报文处理设备,该报文处理设备可以实现前文论述的第一设备的功能,请参照图4,该设备包括:
[0219]
至少一个处理器401,以及
[0220]
与所述至少一个处理器401通信连接的存储器402;
[0221]
其中,所述存储器402存储有可被所述至少一个处理器401执行的指令,所述至少一个处理器401通过执行所述存储器402存储的指令实现如前文论述的报文处理方法。
[0222]
处理器401可以是一个中央处理单元(central processing unit,cpu),或者为数字处理单元、或为图像处理器等中的一种或多种组合。存储器402可以是易失性存储器(volatile memory),例如随机存取存储器(random

access memory,ram);存储器402也可以是非易失性存储器(non

volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid

state drive,ssd)、或者存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器402可以是上述存储器的组合。
[0223]
作为一种实施例,图4中的处理器401可以实现前文论述任一的报文处理方法,处理器401还可以实现前文图3论述的报文处理装置的功能。
[0224]
基于同一发明构思,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如前文论述任一的报文处理方法。
[0225]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序
产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0226]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0227]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0228]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0229]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜