一种表项下发方法及一种报文转发方法与流程

文档序号:29322105发布日期:2022-03-19 22:49阅读:197来源:国知局
一种表项下发方法及一种报文转发方法与流程

1.本说明书涉及通信技术领域,尤其涉及一种表项下发方法及一种报文转发方法。


背景技术:

2.为了维护网络安全,需要对网络中的传输报文进行过滤。报文过滤可以通过报文过滤系统来实现,具体而言,可以在两个交换机或路由器之间的链路上放置报文过滤系统,以对该链路上的报文进行过滤处理。报文过滤系统一般包括一个报文转发设备和至少一个报文过滤设备(不同的报文过滤设备可以处理不同的报文过滤业务)。报文过滤系统的结构图如图1a所示(图1a中路由器之间的虚线指的是链路原本的连通路径)。其中,报文转发设备负责对链路上的报文进行初步过滤,将初步过滤后端报文转发至报文过滤设备;以及接收报文过滤设备放行或修改后的报文,将这些报文转发至其原本的转发路径上。报文过滤设备负责对接收的报文进行过滤,也就是将部分报文丢包,对部分不符合规范的报文进行修改,将其他的符合规范的报文放行,修改后的报文以及放行的报文需要转发给报文转发设备,以使得这些报文回到原本的转发路径上。
3.报文过滤系统一般可以同时对多个链路进行报文过滤,在报文过滤系统对多个链路进行报文过滤的情况下,其整体结构如图1b所示(图1b以两条链路为例,但是这并不代表对本说明的限定)。在图1b的场景中,报文转发设备(下文中如果未加说明,报文转发设备就是指的报文过滤系统的报文转发设备)接收到的处理完成的报文可能是属于不同链路的,为了更快速的转发处理完成的报文,在接收到报文的时候,会为报文封装特定头部(比如可以是虚拟局域网虚拟可扩展的局域网vxlan头部,也可以是mac-in-mac头部),并在特定转发协议头部增加该报文来源的链路,以及其原本的转发路径的链路方向,而这个头部在报文过滤设备处理过程中并不会被删除,这样报文转发设备在接收到处理完成后的报文后,可以根据报文头部的链路号直接确定报文该转出至哪里。
4.此外报文转发设备一般包括至少一个主控板卡和至少一个业务板卡,主控板卡负责对整机进行管理,业务板卡负责处理报文转发及初步过滤的相关业务。业务板卡一般包括至少一个交换芯片和至少一个现场可编程逻辑门阵列(field programmable gate array,fpga),fpga和链路两侧的交换机或路由器相连,并负责进行初步过滤业务;交换芯片和报文过滤设备相连。
5.那么在交换芯片接收到报文过滤设备处理完成的报文时,由于交换芯片并不与交换机或路由器相连,交换芯片需要将报文转发给fpga进而使得处理完成的报文回到原来的转发路径。那么交换芯片需要确定该报文出端口所在的fpga,并将该报文发送给确定的fpga的内部口(只与报文转发设备内部相连的端口),以通过该fpga转发出去。这个过程一般是通过硬件访问控制表项(access control lists,acl)完成的,acl一般包括匹配条件和执行动作,在报文与匹配条件相符的时候,交换芯片会对该报文执行acl的动作。
6.在这种情况下,为了确定报文的出端口所在fpga,acl的匹配条件需要包括报文的链路标识和链路方向标识(即该报文从链路的哪一侧发往哪一侧),以及可以筛选出处理完
的报文的条件(一般为特定头部的标识,以及交换芯片和报文过滤设备相连的端口的标识),执行的动作为转发至与确定的fpga的内部口。那么每个交换芯片上的acl数量均为链路数量*链路方向数量,在链路数量较多的情况下,为了确定报文转发出端口的acl会占用较多的acl资源。


技术实现要素:

7.为克服相关技术中存在的占用较多的acl资源问题,本说明书提供了一种表项下发方法及一种报文转发方法。
8.根据本说明书实施例的第一方面,提供一种表项下发方法,应用于报文过滤系统的报文转发设备,所述报文转发设备的主控板卡执行以下步骤:
9.向每个位于业务板卡的交换芯片下发一条访问控制表项acl;acl的匹配条件包括,特定头部的标识,以及报文来源为该交换芯片与报文转发设备相连的端口,acl的执行动作包括:将报文转发至可编程逻辑器件;
10.向每个位于业务板卡的可编程逻辑器件下发重定向表项;每个重定向表项包括重定向匹配条件以及重定向端口,重定向表项用于将包括重定向匹配条件的从内部口接收的报文,重定向至重定向端口;
11.任一重定向表项的匹配条件包括,链路标识和链路方向标识,重定向端口为,匹配条件对应的可编程逻辑器件的内部口;匹配条件对应的可编程逻辑器件为,连接该链路方向标识所对应的目的路由器或目的交换机的可编程逻辑器件;不同重定向表项的匹配条件不同。
12.根据本说明书实施例的第二方面,提供一种报文转发方法,应用于报文过滤系统的报文转发设备,所述报文转发设备的业务板卡执行以下步骤完成报文的转发:
13.交换芯片判断接收的报文是否与下发的acl的匹配条件相匹配,所述acl是通过前述的表项下发方法所下发的;在匹配的情况下,将接收的报文转发至可编程逻辑器件;
14.可编程逻辑器件判断从内部口接收的报文是否与下发的任一重定向表项的重定向匹配条件相匹配;重定向表项是通过前述的表项下发方法所下发的;在匹配的情况下,将报文通过重定向端口所在的可编程逻辑器件转发至路由器或交换机。
15.根据本说明书实施例的第三方面,提供一种表项下发装置,应用于报文过滤系统的报文转发设备主控板卡,所述装置包括:
16.acl下发模块,用于向每个位于业务板卡的交换芯片下发一条acl;acl的匹配条件包括,特定头部的标识,以及报文来源为该交换芯片与报文转发设备相连的端口,acl的执行动作包括:将报文转发至可编程逻辑器件;
17.重定向表项下发模块,用于向每个位于业务板卡的可编程逻辑器件下发重定向表项;每个重定向表项包括重定向匹配条件以及重定向端口,重定向表项用于将包括重定向匹配条件的从内部口接收的报文,重定向至重定向端口;任一重定向表项的匹配条件包括,链路标识和链路方向标识,重定向端口为,匹配条件对应的可编程逻辑器件的内部口;匹配条件对应的可编程逻辑器件为,连接该链路方向标识所对应的目的路由器或目的交换机的可编程逻辑器件;不同重定向表项的匹配条件不同。
18.根据本说明书实施例的第四方面,提供一种报文转发装置,应用于报文过滤系统
的报文转发设备的业务板卡,所述装置包括:
19.acl匹配模块,用于交换芯片判断接收的报文是否与下发的acl的匹配条件相匹配,所述acl是通过前述的表项下发方法所下发的;在匹配的情况下,将接收的报文转发至可编程逻辑器件;
20.重定向表项匹配模块,用于可编程逻辑器件判断从内部口接收的报文是否与下发的任一重定向表项的重定向匹配条件相匹配;重定向表项是通过前述的表项下发方法所下发的;在匹配的情况下,将报文通过重定向端口所在的可编程逻辑器件转发至路由器或交换机。
21.根据本说明书实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的表项下发方法。
22.根据本说明书实施例的第四方面,提供一种计算机设备,所述计算机设备包括:
23.一个或多个处理器;
24.存储器,用于存储一个或多个程序;
25.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现前述的表项下发方法。
26.本说明书提供一种表项下发方法及一种报文转发方法,报文过滤系统中报文转发设备的主控板卡执行以下步骤:向每个位于业务板卡的交换芯片下发一条访问控制表项acl;acl的匹配条件包括,特定头部的标识,以及报文来源为该交换芯片与报文转发设备相连的端口,acl的执行动作包括:将报文转发至可编程逻辑器件;向每个位于业务板卡的可编程逻辑器件下发重定向表项;每个重定向表项包括重定向匹配条件以及重定向端口,重定向表项用于将包括重定向匹配条件的从内部口接收的报文,重定向至重定向端口。任一重定向表项的匹配条件包括,链路标识和链路方向标识,重定向端口为,匹配条件对应的可编程逻辑器件的内部口;匹配条件对应的可编程逻辑器件为,连接该链路方向标识所对应的目的路由器或目的交换机的可编程逻辑器件;不同重定向表项的匹配条件不同。通过可编程逻辑器件的重定向表项来实现:相关技术中由交换芯片acl所实现的确定报文出口的功能,这样,只需要给每个交换芯片下发一条acl,减少了占用的acl资源。
27.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
28.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
29.图1a是本说明书根据一示例性实施例示出的一种应用场景图。
30.图1b是本说明书根据一示例性实施例示出的另一种应用场景图。
31.图2是本说明书根据一示例性实施例示出的一种表项下发方法的流程图。
32.图3是本说明书根据一示例性实施例示出的一种报文转发方法的流程图。
33.图4是本说明书根据一具体实施例示出的一种报文转发设备的硬件拓扑图。
34.图5是本说明书根据一示例性实施例示出的一种表项下发装置的框图。
35.图6是本说明书根据一示例性实施例示出的一种报文转发装置的框图。
36.图7是本说明书根据一示例性实施例示出的一种表项下发装置所在计算机设备的一种硬件结构图。
具体实施方式
37.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
38.在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
39.应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
40.对于报文过滤系统中的报文转发设备而言,为了实现报文初筛和报文转发的功能,报文转发设备的业务板卡上具有可编程逻辑器件(实现报文初筛和报文转发)和交换芯片(实现报文转发)。与其他报文转发设备不同的是,报文过滤系统中的报文转发设备并不是只通过交换芯片转发报文,还通过可编程逻辑器件转发报文。如背景技术中所述,可编程逻辑器件连接了链路两端的路由器或交换机,而交换芯片连接了报文过滤设备,换言之,可编程逻辑器件负责和路由器或交换机之间进行报文交互,交换芯片负责和报文过滤设备之间进行报文交互。
41.由于报文转发设备的连接结构的特殊性,使得将回流报文(也就是报文过滤设备处理完成的报文)的转发至原本的转发路径的过程较为复杂。具体而言,由于交换芯片与报文过滤设备连接,那么回流报文将由交换芯片接收;而与链路两端的路由器或交换机连接的是可编程逻辑器件,那么为了将回流报文转发出去,交换芯片需要将回流报文发送到对应的可编程逻辑器件。其中,上文提及的对应的可编程逻辑器件所连接的路由器或交换机至少包括:该回流报文原本所在的链路的出口的路由器或交换机。
42.举例而言,链路1两端的路由器分别为路由器1和路由器2,报文转发设备具有6个fpga和3个交换芯片,路由器1连接了fgpa1的一个端口,路由器2连接了fpga2的一个端口。报文转发设备接收到链路1中从路由1器发往路由2的报文,fpga1接收到该报文后,对该报文进行初筛,在该报文初筛通过后,fpga1将该报文通过交换芯片1转发至后端的报文过滤设备。报文过滤设备处理完该报文后,将该报文发送回交换芯片1,交换芯片1接收到该回流报文后,需要将该回流报文转发至该报文原本的转发路径上。
43.如背景技术中所述,交换芯片内配置有acl(通过acl来确定对应的fpga),交换芯片1会根据回流报文头部的链路标识和链路方向标识与acl进行匹配,匹配到acl的情况下,将回流报文转发至连接路由器2的fpga2的内部口,以使fpga2件该回流报文转发至其原本
的转发路径上。
44.为了能让所有报文都回流至原本的转发路径上,要给每个交换芯片都下发数量为链路数量*链路方向数量的acl(因为需要和所有的链路,以及每个链路的两个方向相匹配)。
45.在链路数量较多的情况下,相关技术的方法会占用较多的acl资源。
46.为了解决上述问题,考虑到对于报文转发设备来说,可编程逻辑器件由于需要进行报文初筛等工作,规格会更高一点,而交换芯片只是需要和后端的报文过滤设备通信,交换芯片规格会更低一点。考虑可以通过可编程逻辑器件来负担原本交换芯片负担的工作,也就是说由可编程逻辑器件来确定回流报文的出端口所在的fpga。
47.基于上述分析,本说明书提供一种表项下发方法及一种报文转发方法,应用于报文过滤系统中的报文转发设备,报文转发设备的主控板卡执行:向每个交换芯片下发一条acl,acl的匹配条件包括,特定头部的标识,以及报文来源为该交换芯片与报文转发设备相连的端口,所述acl的执行动作包括:将报文转发至可编程逻辑器件。向每个可编程逻辑器件下发重定向表项;每个重定向表项包括重定向匹配条件以及重定向端口,重定向表项用于将符合重定向匹配条件的报文,重定向至重定向端口;任一重定向表项的匹配条件包括,链路标识和链路方向标识,重定向端口为,匹配条件对应的可编程逻辑器件的内部口;匹配条件对应的可编程逻辑器件为,连接该链路方向标识所对应的目的路由器或目的交换机的可编程逻辑器件。这样,在接收到回流报文时,只要交换芯片可以通过acl将回流报文转发至任一可编程逻辑器件,那么可编程逻辑器件就可以通过重定向表项来确定回流报文的出端口,这样,只需给每个交换芯片下发一条可以筛选出会流报文的acl,节省了交换芯片的acl资源。
48.接下来对本说明书实施例进行详细说明。
49.本说明书提供一种表项下发方法,应用于报文过滤系统的报文转发设备。
50.首先对本说明书中涉及的报文过滤系统进行说明,如图1a及图1b所示,报文过滤系统负责对流经多条链路的报文进行过滤,其包括报文转发设备和至少一个报文过滤设备,报文转发设备的可编程逻辑器件负责对链路上流经的报文进行初筛(初步过滤),并将符合要求的白名单报文转发至报文过滤设备,由报文过滤设备对报文进行处理,具体处理详见上文的说明,在处理完成后,报文过滤设备将报文发给报文转发设备,以使得报文转发设备将处理完成的回流报文转发至该报文原本的转发路径上去。
51.报文转发设备一般包括至少一个主控板卡和若干业务板卡,主控板卡负责对整机进行管理;业务板卡负责对报文进行初筛,将初筛后的白名单报文转发给报文过滤设备,以及将回流报文转发至原本的转发路径上。该表项下发方法为主控板卡所执行的。
52.业务板卡中的可编程逻辑器件连接了链路两端的交换机或路由器,交换芯片通过交换机连接了报文过滤系统中的报文过滤设备。还需要说明的是,由于可编程逻辑器件和链路两端的交换机或路由器是物理相连的,那么可编程逻辑器件的每个端口只能连接一个链路中的一个设备,也就是说,连接不同链路的可编程逻辑器件的端口是不同的。
53.此外,还需要说明的是,由于可编程逻辑器件的各个端口和链路两端的路由器或交换机是物理相连的,那么某一链路上转发过来的报文,在处理完成后,只能通过和该链路两端相连的端口转发出去(具体和哪一个需要根据链路方向位来判断),不能通过其他端口
转发出去。此外,链路两端的路由器或交换机一般连接了同一个业务板卡的不同端口,这样可以尽可能减少跨板转发,因为大部分情况下,业务板卡1上接收的链路上的报文,一般会通过业务板卡1的交换芯片转发至后端,只有少部分的报文需要通过其他业务板卡的交换芯片转发至后端(当前交换芯片连接的报文过滤设备无法处理该报文)。
54.其中,可编程逻辑芯片可以是fpga,也可以是复杂可编程逻辑器件(complex programmable logic device,cpld)也可以是任何其他的可被编程实现报文转发、报文过滤以及acl功能的器件。
55.如图2所示,图2是本说明书根据一示例性实施例示出的一种表项下发方法的流程图,包括以下步骤:
56.步骤201,向每个位于业务板卡的交换芯片下发一条acl;acl的匹配条件包括,特定头部的标识,以及报文来源为该交换芯片与报文转发设备相连的端口,acl的执行动作包括:将报文转发至可编程逻辑器件。
57.为交换芯片下发一条acl,目的旨在交换芯片可以通过下发的acl,将报文过滤设备发送的处理完的报文发送至任一可编程逻辑芯,以使得可编程逻辑芯通过下发的表项将报文转发出去。
58.首先对步骤201中涉及的各个名词进行说明。业务板卡可以包括一个交换芯片,也可以包括多个交换芯片,这里所说的向业务板卡的每个交换芯片下发acl指的是,向报文转发设备上所有位于业务板卡的交换芯片均下发acl。以及本文中所提及acl均指的是交换芯片的硬件acl。硬件acl相比于软件acl速度更快,为了实现更快地转发,没有通过交换芯片的软件acl实现确定出端口所在fpga的功能。
59.特定头部也就是背景技术中提及的需要封装的特定头部,比如可以是vxlan(virtual extensible local area network)头部,也可以是mac-in-mac头部,也可以是其他可以增加链路标识和链路方向标识的转发协议头部。对于vxlan而言,可编程逻辑芯片在封装vxlan头部时,可以在vxlan头部保留未用部分封装上该报文来源链路,以及从链路的哪一端发往哪一端(也就是链路方向标识)。
60.那么特定头部的标识也就是可以识别封装了该头部的标识,对于转发协议而言,由于封装了不同的转发协议会更改端口号,那么特定头部的标识可以是转发协议特定的目的端口号,比如在特定头部为vxlan的头部的情况下,特定头部标识为vxlan端口号(即目的端口号为4789)。在特定头部为mac-in-mac头部的情况下,特定头部的标识为mac-in-mac端口号。
61.选择这两个匹配条件的原因为:首先对于“报文来源为该交换芯片与报文转发设备相连的端口”而言,交换芯片不仅会接收到报文过滤设备发送的报文,还会通过交换芯片和报文转发设备上的其他器件连接的内部口,接收到其他器件发送的报文,比如fpga所发送的初筛过后的白名单报文,通过该条件,就可以筛选出报文过滤设备发送的报文。
62.其次对于特定头部的标识而言,由于报文过滤设备和报文转发设备之间不仅会传输需要过滤的报文和处理完成的报文,还会传输一些必要的报文来实现报文的正常转发,比如地址解析协议(address resolution protocol,arp)报文,为了区分这些报文和回流报文,考虑到所有的报文都会封装特定头部,可以通过匹配条件中增加特定头部的标识,来从报文过滤设备发送的所有报文中筛选出回流报文(回流报文即上文提及的报文过滤设备
处理完的报文)。
63.通过这两个匹配条件,就可以筛选出回流报文。
64.对下发的acl的匹配条件进行说明后,还需要对下发的acl的执行动作进行说明。
65.执行动作是转发至可编程逻辑器件,这样,可编程逻辑器件可以通过下发的重定向表项,将报文转发至匹配条件对应的可编程逻辑器件(含义将在下文进行说明),从而将报文转发出去。
66.其中,所有交换芯片下发的acl可以是相同的,也就是说转发至相同的可编程逻辑器件,考虑到如果都转发至相同的可编程逻辑器件将给该可编程逻辑器件带来较大的负担,且这样在交换芯片和转发至的可编程逻辑器件不在同一个业务板卡的情况下,可能会需要将报文从一个业务板卡转发至另一个业务板卡,也就是会存在跨板转发的现象。
67.考虑到跨板转发比较浪费资源,且可能存在不必要的跨板转发,比如交换芯片在业务板卡1,acl中重定向动作所重定向的可编程逻辑器件在业务板卡2,而最终回流报文需要从业务板卡1(业务板卡1和该报文来源链路的两端相连)转发出去,在这种情况下,存在不必要的跨板转发。为了减少跨板转发,acl的执行动作“将报文转发至可编程逻辑器件”具体为:将报文转发至该交换芯片所在业务板卡的可编程逻辑器件。这样,只有在报文需要从其他业务板卡发出时,才会进行跨板转发,减少了跨板转发流量。
68.进一步地,考虑到在业务板卡上的可编程逻辑器件的数量不唯一的情况下,可以从多个可编程逻辑器件中任选其一进行转发,也就是acl中的执行动作的可编程逻辑器件可以是多个可编程逻辑器件中的任意一个;也可以是每隔一定时间主控板卡重新下发acl的执行动作,使得一个大周期内,所有的可编程逻辑器件都可以接受回流报文;在考虑到可编程逻辑器件的处理压力的情况下,可以实时或每隔一定时间变更所下发的acl的执行动作,将执行动作中所包括的可编程逻辑器件修改为处理压力更小的,以使得回流报文可以转发至处理压力更小的可编程逻辑器件,以使得各个可编程逻辑器件的处理压力较为平均。
69.换言之,所述向每个位于业务板卡的交换芯片下发一条访问控制表项acl,包括:到达指定周期,收集每个业务板卡上的可编程逻辑器件的运行状态,并向每个位于业务板卡的交换芯片下发一条访问控制表项acl。所述将报文转发至该交换芯片所在业务板卡的可编程逻辑器件,包括:将报文转发至该交换芯片所在业务板卡的目标可编程逻辑器件,所述目标可编程逻辑器件为根据收集的运行状态所确定的,所述目标可编程逻辑器件为处理压力最小的可编程逻辑器件。
70.接下来将通过举例来对比本说明书和相关技术中所下发的acl。相关技术中,交换芯片下发的acl一般需要包括链路标识和链路方向标识。为了方便举例,假设报文过滤系统负责对两条链路进行报文过滤,且封装的特定头部为vxlan头部,那么每个交换芯片上需要下发以下acl:
71.链路0+链路方向0+vxlan端口号(4789)+物理端口位图+重定向口a0;链路0+链路方向1+vxlan端口号(4789)+物理端口位图+重定向口b0;链路1+链路方向0+vxlan端口号(4789)+物理端口位图+重定向口a1;链路1+链路方向1+vxlan端口号(4789)+物理端口位图+重定向口b1;链路0和链路1指的是链路标识,链路方向0和链路方向1指的是链路方向位,这里以每条链路都有两个方向位来距离。物理端口位图指的是交换芯片和外界联通的端口
(对应了上文中的报文来源为该交换芯片与报文转发设备相连的端口)。可见,相关技术中每个交换芯片需要下发的acl数量为链路数量*链路方向数量。
72.而本说明书示出的表项下发方法,由于是可编程逻辑器件来确定报文从哪个可编程逻辑器件的端口发出,因此,每个交换芯片只需要下发一条acl,该acl的具体形式参见步骤201的描述。
73.步骤203,向每个位于业务板卡的可编程逻辑器件下发重定向表项;每个重定向表项包括重定向匹配条件以及重定向端口,重定向表项用于将包括重定向匹配条件的从内部口接收的报文,重定向至重定向端口。
74.其中,任一重定向表项的匹配条件包括,链路标识和链路方向标识,重定向端口为,匹配条件对应的可编程逻辑器件的内部口;匹配条件对应的可编程逻辑器件为,连接该链路方向标识所对应的目的路由器或目的交换机的可编程逻辑器件;不同重定向表项的匹配条件不同。
75.该步骤是为了通过可编程逻辑器件来确定回流报文的出端口。
76.其中,重定向表项实际上是通过编程实现的和acl具有相同功能的表项。由于可编程逻辑器件是可以自定义功能的,因此可以通过可编程逻辑器件来实现acl的功能。
77.此外,上文中所说的内部口,是指和报文转发设备内部器件连接的端口,有时内部口也称为面板口。对于fpga来说,其内部口通过与其连接的交换芯片的内部口来表示。
78.上述重定向表项实际就是相关技术中对应的acl表项,和相关技术中的acl表项起到了同样的作用。不需要添加相关技术的其他匹配条件,是因为上述重定向表项是针对内部口接收的报文而言的,可编程逻辑器件内部口接收的报文只有回流报文。如果存在其他报文的情况下,重定向匹配条件还应包括:特定头部的标识。
79.此外,还需要对“连接该链路方向标识所对应的目的路由器或目的交换机的可编程逻辑器件”进行说明。该链路方向标识所对应的目的路由器或目的交换机指的是,链路方向标识所指的链路方向中,报文出口的交换机或路由器,连接目的路由器或目的交换机的可编程逻辑器件,即为匹配条件对应的可编程逻辑器件。
80.在下发了链路后,还需要对报文进行转发。接下来将对本说明书示出的一种报文转发方法进行说明,该方法应用于报文过滤系统的报文转发设备,下述方法是报文转发设备的业务板卡执行的。报文过滤系统与前述的报文过滤系统相同,在此不再赘述。
81.如图3所示,图3是本说明书根据一示例性实施例示出的一种报文转发方法的流程图,包括以下步骤:
82.步骤301,交换芯片判断接收的报文是否与下发的acl的匹配条件相匹配,所述acl是前述的表项下发方法所下发的;在匹配的情况下,将报文转发至可编程逻辑器件。
83.步骤303,可编程逻辑器件判断从内部口接收的报文是否与下发的任一重定向表项的重定向匹配条件相匹配;重定向表项是通过前述表项下发方法所下发的;在匹配的情况下,将报文通过重定向端口所在的可编程逻辑器件转发至路由器或交换机。
84.也就是说,交换芯片接收到报文后,需要按照acl来转发报文,同样,可编程逻辑器件针对从内部口接收的报文,也需要根据重定向表项来接收报文。
85.其中,所述在匹配的情况下,将报文通过重定向端口所在的可编程逻辑器件转发至路由器或交换机,包括:在匹配的条件下,判断匹配到的重定向表项的重定向端口是否属
于当前可编程逻辑器件;在属于当前可编程逻辑器件的情况下,将报文直接转发至路由器或交换机;在不属于当前可编程逻辑器件的情况下,将报文转发至重定向端口,以通过重定向端口所在fpga将报文转发至路由器或交换机。
86.其中,当前可编程逻辑器件即为执行上述步骤的可编程逻辑器件。
87.此外还需要说明是,将报文转发出去的时候,需要接触封装的特定头部。
88.通过上述方法,虽然可能使得会流报文在报文转发设备内部的转发路径变得复杂(有些情况下,需要先转发至一个可编程逻辑器件,再转发至另一个可编程逻辑器件),但是由于报文转发设备的可编程逻辑器件的规格更好,这种转发并不会消耗很多性能,也并不会减慢报文转发的速度,因此在充分利用可编程逻辑器件的情况下,减少了交换芯片acl的占用。
89.接下来将通过一具体实施例来对本说明书示出的报文转发方法和表项下发方法进行说明。
90.如图4所示,图4是本说明书示出的一种报文转发设备的硬件拓扑图。报文转发设备正常运行,同时存在2个主控板卡(主控a、主控b)、2个业务板卡(业务板卡c、业务板卡d)、若干交换网板,分别在业务板卡c配置2条链路,其链路标识分别0、1,业务板卡d配置2条链路,其链路标识分别为2、3。配置每个fpga上的白名单业务1(白名单业务筛选过的报文即为报文初筛后的报文),配置其业务内去往后端报文过滤设备的面板口分别为c板的c2、d板的d2。根据业务板卡硬件构造,获知业务板卡c、d的fpga内部口c1、d1。获取各个链路口所对应的module、port。其中,链路口也就是同链路两端交换机或服务器相连的端口,端口module、port指的是芯片内用来表示所有口的唯一值。module表示当前口在哪个芯片上,port表示当前口在所在芯片上的偏移值。芯片通过module、port识别端口,由于跨板通信需要通过higig协议实现,上述module、port常存在higig头中,用于指定报文的源、目路径信息。
91.在完成上述配置后,需要向交换芯片和fpga下发重定向表项。根据获知的信息配合链路标识、链路方向标识等信息,组成重定向表项如下:
92.a)链路0+链路方向0+a0的module+a0的port;
93.b)链路0+链路方向1+a1的module+a1的port;
94.c)链路1+链路方向0+a2的module+a2的port;
95.d)链路1+链路方向1+a3的module+a3的port;
96.e)链路2+链路方向0+b0的module+b0的port;
97.f)链路2+链路方向1+b1的module+b1的port;
98.g)链路3+链路方向0+b2的module+b2的port;
99.h)链路3+链路方向1+b3的module+b3的port;
100.并将重定向表项下发给每个位于业务板卡上的可编程逻辑器件。
101.此外,还需要向位于业务板卡上的交换芯片下发acl。具体而言按照业务板卡组装acl表项,匹配条件为:vxlan端口号+当前业务板卡面板口位图(含义见前文解释),执行动作为:重定向动作+每业务板卡指定fpga内部口,即向各个业务板卡上的交换芯片下发下述表项:
102.a)业务板卡c:匹配条件:vxlan端口号+c板面板口位图,执行动作:重定向动作+c1;
103.b)业务板卡d:执行动作:vxlan端口号+d板面板口位图,执行动作:重定向动作+d1;
104.其中,每个业务板卡分别下发一条acl。
105.在完成了上述配置后,报文转发的具体流程参见下文的描述。
106.路由器a从链路1输入业务报文,报文命中业务1,经fpga处理(添加vxlan隧道报文头,链路号置为1,链路方向位置为0),分别通过c2、d2转发至后端报文过滤设备(具体从哪个转发需要根据各个报文的特征以及各个报文过滤设备的功能)。
107.后端服务器处理完报文后,经过c2回流的报文,命中c板回流acl,报文经c1转至fpga,fpga采集内部口接收的报文链路号、方向位等信息,后命中表项c。并根据命中的结果,判断命中结果指定是否为本地fpga,如果是,则直接处理报文,送出至路由器b。否则,封装higig头,将报文转至对应的fpga处理,进而送出至路由器b;
108.经过d2回流的报文,命中d板回流acl,报文经d1转至本板fpga,fpga根据采集的内部口接收的报文信息,命中表项c。根据命中的结果,判断命中结果指定是否为本地fpga,如果是,则直接处理报文,送出至路由器b。否则,封装higig头,将报文转至c板。此处报文从d板转至c板,再由c板根据higig头,转至对应的fpga处理,而后将报文送出至路由器b。
109.与前述方法的实施例相对应,本说明书还提供了装置及其所应用的终端的实施例。
110.如图5所示,图5是本说明书根据一示例性实施例示出的一种表项下发装置的框图,该装置应用于报文过滤系统的报文转发设备主控板卡,所述装置包括以下模块:
111.acl下发模块510,用于向每个位于业务板卡的交换芯片下发一条acl;acl的匹配条件包括,特定头部的标识,以及报文来源为该交换芯片与报文转发设备相连的端口,acl的执行动作包括:将报文转发至可编程逻辑器件。
112.重定向表项下发模块520,用于向每个位于业务板卡的可编程逻辑器件下发重定向表项;每个重定向表项包括重定向匹配条件以及重定向端口,重定向表项用于将包括重定向匹配条件的从内部口接收的报文,重定向至重定向端口;任一重定向表项的匹配条件包括,链路标识和链路方向标识,重定向端口为,匹配条件对应的可编程逻辑器件的内部口;匹配条件对应的可编程逻辑器件为,连接该链路方向标识所对应的目的路由器或目的交换机的可编程逻辑器件;不同重定向表项的匹配条件不同。
113.如图6所示,图6是本说明书根据一示例性实施例示出的一种报文转发装置的框图,应用于报文过滤系统的报文转发设备的业务板卡,所述装置包括:
114.acl匹配模块610,用于交换芯片判断接收的报文是否与下发的acl的匹配条件相匹配,所述acl是通过前述的表项下发方法所下发的;在匹配的情况下,将接收的报文转发至可编程逻辑器件.
115.重定向表项匹配模块620,用于可编程逻辑器件判断从内部口接收的报文是否与下发的任一重定向表项的重定向匹配条件相匹配;重定向表项是通过前述的表项下发方法所下发的;在匹配的情况下,将报文通过重定向端口所在的可编程逻辑器件转发至路由器或交换机。
116.上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
117.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
118.如图7所示,图7示出了实施例表项下发装置所在计算机设备的一种硬件结构图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
119.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
120.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
121.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
122.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
123.总线1050包括一链路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
124.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
125.本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的表项下发方法。
126.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
127.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
128.本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
129.应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
130.以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1