本申请涉及计算机通信领域,尤其涉及业务分流方法及装置。
背景技术:
随着互联网的高速发展,网络流量带宽的迅速提升,为了实现实时地对网络上的巨大流量进行分析和审计,转发设备需要将流量进行分流或者复制多份发送至多台服务器,以使该多台服务器对流量进行协调处理。因此,如何有效地提高转发设备的流量转发的效率就成为亟待解决的问题。
技术实现要素:
有鉴于此,本申请提供一种业务分流方法及装置,用以提高转发设备的流量转发的效率。
具体地,本申请是通过如下技术方案实现的:
根据本申请的第一方面,提供一种业务分流方法,所述方法应用于转发设备,所述转发设备包括若干个业务板;所述业务板包括入端口、跨板级联端口和若干个出端口;其中,各业务板的入端口被配置为目标聚合组;所述方法包括:
通过各业务板的入端口接收上游设备发送的目标业务流量;其中,所述目标业务流量携带指定的多个业务出端口;
当通过任一目标业务板的入端口接收到上游设备发送的目标业务流量时,将所述目标业务流量与该业务板的入端口上预配置的ACL规则进行匹配;其中,所述ACL规则的匹配项包括所述入端口的端口号、该业务板的跨板级联端口的端口号以及所述入端口的目标聚合组的标识;所述ACL规则的动作包括转发至所述指定的业务出端口;
当所述目标业务流量匹配所述ACL规则,则基于该ACL规则预配置的动作将该目标业务流量转发至所述指定的业务出端口,以通过该指定的业务出端口将所述目标业务流量分流至不同的业务服务器。
可选的,所述上游设备为所述目标流量封装了外层MAC地址头,并将所述指定的业务出端口写入至该外层MAC地址头中的私有MAC地址。
可选的,所述各业务板的业务出端口被划分为多个业务组;各业务组分别预配置了MAC掩码;所述MAC掩码指示所述私有MAC地址中携带指定的业务出端口对应于各业务板的端口序号的比特位;
所述基于该ACL规则预配置的动作将该目标业务流量转发至所述指定的业务出端口,包括:
将所述目标业务流量外层MAC地址头中携带的私有MAC地址与所述各业务组对应的MAC掩码分别进行与运算;
基于所述与运算的计算结果确定所述指定的业务出端口对应于各业务板的端口序号,并基于所述端口序号确定所述指定的业务出端口的端口号;
基于该ACL规则预配置的动作将该目标业务流量转发至与该确定出的端口号对应的业务出端口。
可选的,如果所述指定的业务出端口包括分布在不同业务板上的多个业务出端口,则将该目标业务流量通过所述目标业务板的跨板级联端口转发至其它业务板的跨板级联端口;
将所述目标业务流量与所述其他业务板的跨板级联端口上预配置的ACL规则执行匹配;其中,所述跨板级联端口上预配置的ACL规则的匹配项与所述目标业务板的入端口上预配置的ACL规则的匹配项相同;所述跨板级联端口上预配置的ACL规则的动作包括转发至所述指定的业务出端口中分布于当前业务板上的业务端口;
当所述目标业务流量匹配所述跨板级联端口上预配置的ACL规则时,基于该ACL规则预配置的动作将该目标业务流量转发至所述指定的业务出端口中分布于所述当前业务板上的业务端口。
可选的,监控所述业务服务器的负载状况;
基于监控到的所述业务服务器的负载状况,对各业务组的出端口数量或者MAC掩码进行动态调整。
根据本申请的第二方面,提供一种业务分流装置,所述装置应用于转发设备,所述转发设备包括若干个业务板;所述业务板包括入端口、跨板级联端口和若干个出端口;其中,各业务板的入端口被配置为目标聚合组;所述装置包括:
接收单元,通过各业务板的入端口接收上游设备发送的目标业务流量;其中,所述目标业务流量携带指定的多个业务出端口;
匹配单元,当通过任一目标业务板的入端口接收到上游设备发送的目标业务流量时,将所述目标业务流量与该业务板的入端口上预配置的ACL规则进行匹配;其中,所述ACL规则的匹配项包括所述入端口的端口号、该业务板的跨板级联端口的端口号以及所述入端口的目标聚合组的标识;所述ACL规则的动作包括转发至所述指定的业务出端口;
发送单元,当所述目标业务流量匹配所述ACL规则,则基于该ACL规则预配置的动作将该目标业务流量转发至所述指定的业务出端口,以通过该指定的业务出端口将所述目标业务流量分流至不同的业务服务器。
可选的,所述上游设备为所述目标流量封装了外层MAC地址头,并将所述指定的业务出端口写入至该外层MAC地址头中的私有MAC地址。
可选的,所述各业务板的业务出端口被划分为多个业务组;各业务组分别预配置了MAC掩码;所述MAC掩码指示所述私有MAC地址中携带指定的业务出端口对应于各业务板的端口序号的比特位;
所述发送单元,具体用于将所述目标业务流量外层MAC地址头中携带的私有MAC地址与所述各业务组对应的MAC掩码分别进行与运算;基于所述与运算的计算结果确定所述指定的业务出端口对应于各业务板的端口序号,并基于所述端口序号确定所述指定的业务出端口的端口号;基于该ACL规则预配置的动作将该目标业务流量转发至与该确定出的端口号对应的业务出端口。
可选的,所述装置还包括:
转发单元,用于如果所述指定的业务出端口包括分布在不同业务板上的多个业务出端口,则将该目标业务流量通过所述目标业务板的跨板级联端口转发至其它业务板的跨板级联端口;将所述目标业务流量与所述其他业务板的跨板级联端口上预配置的ACL规则执行匹配;其中,所述跨板级联端口上预配置的ACL规则的匹配项与所述目标业务板的入端口上预配置的ACL规则的匹配项相同;所述跨板级联端口上预配置的ACL规则的动作包括转发至所述指定的业务出端口中分布于当前业务板上的业务端口;当所述目标业务流量匹配所述跨板级联端口上预配置的ACL规则时,基于该ACL规则预配置的动作将该目标业务流量转发至所述指定的业务出端口中分布于所述当前业务板上的业务端口。
可选的,所述装置还包括:
调整单元,用于监控所述业务服务器的负载状况,并基于监控到的所述业务服务器的负载状况,对各业务组的出端口数量或者MAC掩码进行动态调整。
本申请提供一种业务分流方法,一方面,转发设备可以基于ACL规则中配置的入端口的目标聚合组标识,将该目标业务流量与普通的业务流量进行区分,在不影响其他普通业务流量正常转发的同时,保证了对该目标业务流量的复制分流,将该目标业务流量转发至指定的业务出端口,并通过该指定业务出端口,将该目标业务流量分流至不同的业务服务器。
另一方面,由于上述目标业务流量的私有MAC地址携带有指定的多个业务出端口信息,当与入端口的ACL规则中MAC掩码进行运算之后,可以动态确定该目标业务流量的指定业务出端口的端口号,从而大大增加了目标业务流量的复制分流效率。
附图说明
图1是本申请一示例性实施例示出的一种业务分流方法的系统架构图;
图2是本申请一示例性实施例示出的一种业务分流方法的流程图;
图3是本申请一示例性实施例示出的一种业务分流方法的示意图;
图4是本申请一示例性实施例示出的一种业务分流装置所在设备的硬件结构图;
图5是本申请一示例性实施例示出的一种业务分流装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着互联网的高速发展,网络流量带宽的迅速提升,为了实现实时地对网络上的巨大流量进行分析和审计,转发设备需要将流量进行分流或者复制多份发送至多台服务器,以使该多台服务器对流量进行协调处理。因此,如何有效地提高转发设备的流量转发的效率就成为亟待解决的问题。
在相关的业务分流方法中,为了实现对目标业务流量的分流处理,开发人员可以在转发设备的入端口上配置具有指定VLAN的ACL(Access Control List,访问控制列表)规则,当入端口接收到该目标业务流量时,可以将该目标业务流量与入端口的ACL规则进行匹配,如果匹配,为该目标业务流量的报文添加与该指定VLAN对应的VLAN TAG,然后基于VLAN在该设备中进行泛洪。同时各业务出端口可以通过对流量的VLAN TAG的检查,将该目标业务流量转发至指定的VLAN中的业务服务端上。
然而,如果业务出端口是聚合端口,那么该目标业务流量则会自动基于聚合的负载分担算法,从该负载分担算法得到的业务出端口发送出去,而不能按照指定的业务出端口发送出去,从而大大影响了发送至指定VLAN中的服务上的目标业务流量的完成性。
此外,使用这种VLAN泛洪的分流方法,开发人员需要配置大量的ACL规则,并且需要手工对VLAN TAG进行修改,因此大大增加了人力成本。
在相关的另一种分流方法中,转发设备可以使用端口镜像的方法,将目标业务流量直接镜像到指定的业务出端口以通过该指定的业务出端口将所述目标业务流量发送至相应的业务服务器。
然而,转发设备上镜像资源一般是有限的(一般只有4个),所以只能满足少量的针对指定端口的流量镜像,从而很难实现对较大业务流量的复制分流处理。
为了解决上述问题,本申请提供一种业务分流方法,转发设备可以通过各业务板的入端口接收上游设备发送的目标业务流量;其中,所述目标业务流量的私有MAC地址中携带指定的多个业务出端口;当通过任一目标业务板的入端口接收到上游设备发送的目标业务流量时,转发设备可以将所述目标业务流量与该业务板的入端口上预配置的ACL规则进行匹配;其中,所述ACL表项的匹配项包括入端口的目标聚合组的标识;所述ACL表项的动作包括转发至所述指定的业务出端口;当所述目标业务流量匹配所述ACL表项,转发设备可以将该私有MAC地址与该ACL规则中的MAC掩码进行与运算,确定该目标业务流量的指定业务出端口的端口号,然后以通过该指定的业务出端口将所述目标业务流量分流至不同的业务服务器。
一方面,转发设备可以基于ACL规则中配置的入端口的目标聚合组标识,将该目标业务流量与普通的业务流量进行区分,在不影响其他普通业务流量正常转发的同时,保证了对该目标业务流量的复制分流,将该目标业务流量转发至指定的业务出端口,并通过该指定业务出端口,将该目标业务流量分流至不同的业务服务器。
另一方面,由于上述目标业务流量的私有MAC地址携带有指定的多个业务出端口信息,当与入端口的ACL规则中MAC掩码进行运算之后,可以动态确定该目标业务流量的指定业务出端口的端口号,从而大大增加了目标业务流量的复制分流效率。
参见图1,图1是本申请一示例性实施例示出的一种业务分流方法的系统架构图;本申请提出的业务分流方法的系统架构中可以包括上游设备,转发设备,与转发设备各指定的业务出端口对应的业务服务器。
其中,上述上游设备,主要用于将转发设备上的针对目标业务流量的指定的业务出端口写入该目标业务流量中。该上游设备可以是MAC地址封装专用设备,该上游设备可以为该目标业务流量封装外层的MAC地址头,并基于一定的规则将上述指定的业务出端口写入该MAC地址头中。例如,该指定的业务出端口可以以该MAC地址头中的源私有MAC地址和目标私有MAC地址进行表征。
当然,上述上游设备还可以是其他的设备,只要该设备可以实现将上述指定的业务出端口写入至该目标业务流量即可,在这里,只对该上游设备进行示例性说明,不对其进行具体地限定。
上述转发设备,主要用于将目标业务流量进行复制,然后将该目标业务流量转发至指定的业务出端口,通过指定的业务出端口将该目标业务流量转发至与该指定业务出端口对应的业务服务器上。通常情况下,该转发设备上不同的指定业务出端口的对应有不同的业务服务器。该转发设备可以是框式设备等。
业务服务器,主要用于对接收到的目标业务流量进行审计分析,不同的指定的业务出端口对应有不同业务的业务服务器。
在该业务分流系统中,转发设备上的不同的业务出端口对应不同的业务服务器,在目标业务流量发送时,上游设备在确定出将目标业务流量发送至若干个目标业务服务器后,可以分别将与该若干个目标业务服务器对应的若干个上述转发设备上的指定的业务出端口写入该目标业务流量中。以使得,当上述转发设备接收到该目标业务流量时,可以通过与ACL规则进行匹配等方法获取该若干个指定业务出端口的端口号,然后分别通过这指定的若干个业务出端口,将该目标业务流量发送至上述若干个目标业务服务器,由该若干个目标业务服务器基于自身的业务进行相应的业务处理等。
参见图2,图2是本申请一示例性实施例示出的一种业务分流方法的流程图;所述方法应用于转发设备,转发设备包括若干个业务板;所述业务板包括入端口、跨板级联端口和若干个业务出端口;其中,各业务板的入端口被配置为目标聚合组;所述方法具体包括以下所述步骤:
步骤201:通过各业务板的入端口接收上游设备发送的目标业务流量;其中,所述目标业务流量携带指定的多个业务出端口;
步骤202:当通过任一目标业务板的入端口接收到上游设备发送的目标业务流量时,将所述目标业务流量与该业务板的入端口上预配置的ACL规则进行匹配;其中,所述ACL规则的匹配项包括所述入端口的端口号、该业务板的跨板级联端口的端口号以及所述入端口的目标聚合组的标识;所述ACL规则的动作包括转发至所述指定的业务出端口;
步骤203:当所述目标业务流量匹配所述ACL规则,则基于该ACL规则预配置的动作将该目标业务流量转发至所述指定的业务出端口,以通过该指定的业务出端口将所述目标业务流量分流至不同的业务服务器。
其中,上述跨板级联端口,是指转发设备上的各业务板进行内部通信的端口。例如,转发设备包括业务板1和业务板2,如果业务板1需要将上述目标业务流量发送至业务板2时,业务板1可以将该目标业务流量通过业务板1的跨板级联端口发送至业务板2的跨板级联端口。
在本申请实施例中,转发设备可以基于ACL规则中配置的入端口的目标聚合组标识,将该目标业务流量与普通的业务流量进行区分,在不影响其他普通业务流量正常转发的同时,保证了对该目标业务流量的复制分流,将该目标业务流量转发至指定的业务出端口,并通过该指定业务出端口,将该目标业务流量分流至不同的业务服务器。
此外,由于上述目标业务流量的私有MAC地址携带有指定的多个业务出端口信息,当与入端口的ACL规则中MAC掩码进行运算之后,可以动态确定该目标业务流量的指定业务出端口的端口号,从而大大增加了目标业务流量的复制分流效率。
下面通过转发设备和ACL规则配置,目标业务流量的转发这两个方面,对上述本申请实施例提出的业务分流方法进行更为清晰地描述。
1)转发设备和ACL规则的配置。
为了增加业务服务器接收目标业务流量的带宽,开发人员可以按照上游设备配置的业务出端口和业务服务器的对应关系,将业务板上的若干个业务出端口划分为若干业务组,不同的业务组对应有不同的业务服务器,换句话来说,即一个业务组上的若干个业务出端口对应有与该业务组对应的业务服务器。
同时,开发人员还可以基于上游设备携带指定的业务出端口的携带规则,配置与该携带规则相应的指示规则,以将上游设备携带的指定的业务出端口显示出来。
在一种可选的实现方式中,上述携带规则可以是上游设备为上述目标业务流量封装外层的MAC地址头,并将指定的业务出端口写入至该外层MAC地址头中的私有MAC地址。
转发设备的指示规则可以为对各业务组配置与各业务组对应的MAC掩码,该MAC掩码指示该私有MAC地址中携带指定的业务出端口对应于各业务板的端口号的比特位。在指示上游设备携带的目标业务流量中的指定的业务出端口时,转发设备可以将目标业务流量的私有MAC地址与各业务组对应的MAC掩码进行匹配,获取指定的业务出端口的端口序号
例如,假设,上游转发设备确定该目标业务流量需要转发至的服务器为业务服务器A和业务服务器B,该目标业务流量的指定业务出端口的端口序号为业务组A的第二个成员业务出端口和业务组B的第六个成员业务出端口。此时,该上游转发设备可以将该指定的业务出端口信息写入至私有的MAC地址中,例如可以为00:00:00:00:06:02。
此时,转发设备可以配置针对业务组A和业务组B的MAC掩码,比如针对业务组A的MAC掩码为00:00:00:00:00:ff,针对业务组B的MAC掩码为00:00:00:00:ff:00。
在接收到流量后,转发设备可以获取上述私有MAC地址,然后与各业务组的MAC掩码进行与运算,获得对应业务组A的第二个成员业务出端口和业务组B的第六个成员业务出端口。
当然,在实际应用中,上述上游设备的携带规则与转发设备配置的指示规则还可以是其他的相互对应规则,比如携带规则可以是将指定的业务出端口进行编码的规则,指示规则可以是将编码后的指定的业务出端口进行解码的规则等,在这里,不再赘述。
此外,为了不影响普通流量的正常转发,需要转发设备具备区分出普通流量和目标业务流量的功能,为了满足这种需求,开发人员可以将做分流业务的业务板的入端口配置成一个聚合组,通过聚合组ID来区分普通流量和目标业务流量。
在配置ACL规则时,可以将开发人员配置好的各业务组的端口列表,以及各业务组和与该业务组对应的MAC掩码下发至该ACL规则。该ACL规则的匹配项可以配置为入端口的端口号、该业务板的跨板级联端口的端口号和该入端口的目标聚合组的标识。ACL的动作可以包括转发至上述指定的业务出端口。
当然,上述指定的业务出端口并不一定分布与一个业务板上,因此开发人员可以将该ACL规则分别配置于具有分流功能的业务板的入端口和跨板级联端口上。
在对转发设备进行配置时,为了保证在命中不了上述配置的ACL的时候进行泛洪,而不从聚合成员口发送出去,需要将业务流量的入端口的二层学习功能设置为不学习不转发的状态,同时为了在命中该配置的ACL执行重定向动作的时候能够将报文发送出去,需要将出口的VLAN检查关闭。
2)目标业务流量的转发
上游设备为上述目标业务流量封装了外层的MAC地址头,并将多个指定的业务出端口写入至该外层MAC地址头中的私有MAC地址,以该私有MAC地址表征该指定的多个业务出端口。该私有MAC地址可以包括私有源MAC地址和私有目的MAC地址。然后将该目标业务流量发送至转发设备。
转发设备可以通过各业务板的入端口接收该上游设备发送的目标业务流量。当通过任一目标业务板的入端口接收到上游设备发送的目标业务流量时,转发设备可以将接收到的目标业务流量与该入端口上配置的ACL规则进行匹配。
在匹配时,转发设备可以获取该目标业务流量的对应的入端口的端口号或者该业务板的跨板级联端口的端口号以及入端口的目标聚合组的标识,并将获取到的这些信息与该ACL规则的匹配项进行匹配。
如果命中了该ACL规则,转发设备可以获取该目标业务流量的外层MAC地址头中的私有MAC地址,然后将该私有MAC地址与ACL规则记录的各业务组对应的MAC掩码进行与运算,然后获取运算得到的多个指定的业务出端口的端口序号。
转发设备可以通过计算出的端口序号,确定上述指定的多个业务出端口的端口号;并基于该ACL表项预配置的动作将该目标业务流量转发至与该确定出的多个端口号对应的业务出端口,并通过该多个业务出端口发送至该业务出端口对应的业务服务器。
当然,在实际应用中,上述指定的多个业务出端口并不只分布于一个业务板上。如果该指定的业务出端口包括分布在不同业务板上的多个业务出端口时,转发设备可以将该目标业务流量通过该目标业务板的跨板级联端口转发至其它业务板的跨板级联端口。
然后,转发设备可以将该目标业务流量与当前业务板的跨板级联端口上预配置的ACL规则执行匹配;该跨板级联端口上预配置的ACL规则的匹配项与所述目标业务板的入端口上预配置的ACL规则的匹配项相同;该跨板级联端口上预配置的ACL规则的动作包括转发至所述指定的业务出端口中分布于当前业务板上的业务端口。
如果该目标业务流量命中该跨板级联端口上预配置的ACL规则时,可以基于该ACL规则预配置的动作,将该目标业务流量转发至所述指定的业务出端口中分布于所述当前业务板上的业务端口。
下面以目标业务流量从业务组A的第二个成员业务出端口发送至业务服务器A和业务组B的第六个成员业务出端口发送至业务服务器B为例,对本申请实施例提出的方法进行详细地说明。
参见图3,图3是本申请一示例性实施例示出的一种业务分流方法的示意图。
在实现时,上游转发设备在确定该目标业务流量需要转发至的服务器为业务服务器A和业务服务器B,该目标业务流量的指定业务出端口为业务组A的第二个成员业务出端口和业务组B的第六个成员业务出端口后。上游设备可以为该目标业务流量封装外层的MAC地址头,并可以将该指定的业务出端口写入该外层MAC地址头中的私有MAC地址。例如,私有目的MAC地址可以写为00:00:00:00:06:02。在完成该外层MAC地址头的封装之后,上游设备可以将该目标业务流量发送至转发设备。
假设为转发设备配置分流功能的业务板为业务板3和业务板4,其中,该业务板3和业务板4的入端口的端口号分别为3_0和4_0,并且这两个端口配置在聚合组ID=0的目标聚合组中。此时入端口的ACL规则的匹配项可以为入端口号(即入端口3_0和入端口4_0),入端口的目标聚合组标识(即为ID=0).
当转发设备的3_0入端口接收到该目标业务流量后,转发设备可以获取该入端口的端口号(即3_0)和该3_0所在目标聚合组的标识(即ID=0),并将获取到的信息与该入端口配置的ACL规则进行匹配。
转发设备可以通过上述获取的信息与ACL规则的匹配项进行匹配,如果命中该ACL规则则进行下步操作。在本例中,该目标业务流量命中了上述ACL规则,此时转发设备可以获取该目标业务流量的外层MAC地址头中携带的私有MAC地址(即为DMAC为00:00:00:00:06:02),并将该DMAC地址与各业务组对应的MAC掩码进行与运算。
假设,转发设备的上配置的业务组A的MAC掩码为00:00:00:00:00:ff,业务组B的MAC掩码为00:00:00:00:ff:00。
在转发设备将上述DMAC地址与该业务组A和业务组的MAC掩码分别进行与运算后,可以确定需要将该目标业务流量发送至出端口序号为业务组A的第二个成员业务出端口和业务组的B的第六个成员业务出端口。
转发设备可以基于上述业务组A的第二个成员业务出端口和业务组的B的第六个成员业务出端口的端口序号,分别确定与该业务组A的第二个成员业务出端口和业务组的B的第六个成员业务出端口对应的端口号,假设确定出的端口号分别为图3所示的业务出端口3_6和业务出端口4_7。
此时,转发设备可以将该目标业务流量发送至业务出端口3_6,通过业务出端口3_6将该目标业务流量发送至该业务出端口3_6对应的业务服务器A。
同时,转发设备在确定业务出端口4_7不属于业务板3上的业务出端口时,转发设备可以将该目标业务流量发送至该业务板的跨板级联端口(假设为图3所述的端口ieth3_48)。通过该跨板级联端口ieth3_48发送至业务板4上的跨板级联端口ieth4_48。
转发设备可以将该目标业务流量与至业务板4上的跨板级联端口ieth4_48配置的ACL规则进行匹配,匹配的方法与入端口匹配的方法一致。在本例中,该目标业务流量命中该跨板级联端口ieth4_48配置的ACL规则,并且动作是将该目标业务流量发送至业务出端口4_7。
此时,转发设备可以将该目标业务流量发送至业务出端口4_7,通过业务出端口4_7将该目标业务流量发送至该业务出端口4_7对应的业务服务器B。
此外,为了保证各业务服务器处于负载平衡的状态,避免业务服务器局部流量过大等问题的发生。转发设备可以监控所述业务服务器的负载状况,并且基于监控到的该业务服务器的负载状况,对各业务组的业务出端口数量或者MAC掩码进行动态调整。
例如,比如监测到业务服务器A的流量过多时,可以减少与业务服务器A对应的业务组的业务出端口数量等。
本申请提供一种业务分流方法,转发设备可以通过各业务板的入端口接收上游设备发送的目标业务流量;其中,所述目标业务流量的私有MAC地址中携带指定的多个业务出端口;当通过任一目标业务板的入端口接收到上游设备发送的目标业务流量时,转发设备可以将所述目标业务流量与该业务板的入端口上预配置的ACL规则进行匹配;其中,所述ACL表项的匹配项包括入端口的目标聚合组的标识;所述ACL表项的动作包括转发至所述指定的业务出端口;当所述目标业务流量匹配所述ACL表项,转发设备可以将该私有MAC地址与该ACL规则中的MAC掩码进行与运算,确定该目标业务流量的指定业务出端口的端口号,然后以通过该指定的业务出端口将所述目标业务流量分流至不同的业务服务器。
一方面,转发设备可以基于ACL规则中配置的入端口的目标聚合组标识,将该目标业务流量与普通的业务流量进行区分,在不影响其他普通业务流量正常转发的同时,保证了对该目标业务流量的复制分流,将该目标业务流量转发至指定的业务出端口,并通过该指定业务出端口,将该目标业务流量分流至不同的业务服务器。
另一方面,由于上述目标业务流量的私有MAC地址携带有指定的多个业务出端口信息,当与入端口的ACL规则中MAC掩码进行运算之后,可以动态确定该目标业务流量的指定业务出端口的端口号,从而大大增加了目标业务流量的复制分流效率。
与前述业务分流方法的实施例相对应,本申请还提供了业务分流装置的实施例。
本申请业务分流装置的实施例可以应用在转发设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在转发设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请业务分流装置所在转发设备的一种硬件结构图,除了图4所示的处理器、内存、网络出接口、以及非易失性存储器之外,实施例中装置所在的转发设备通常根据该转发的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图5,图5是本申请一示例性实施例示出的一种业务分流装置的框图,所述装置应用于转发设备,所述转发设备包括若干个业务板;所述业务板包括入端口、跨板级联端口和若干个出端口;其中,各业务板的入端口被配置为目标聚合组;所述装置包括:
接收单元510,通过各业务板的入端口接收上游设备发送的目标业务流量;其中,所述目标业务流量携带指定的多个业务出端口;
匹配单元520,当通过任一目标业务板的入端口接收到上游设备发送的目标业务流量时,将所述目标业务流量与该业务板的入端口上预配置的ACL规则进行匹配;其中,所述ACL规则的匹配项包括所述入端口的端口号、该业务板的跨板级联端口的端口号以及所述入端口的目标聚合组的标识;所述ACL规则的动作包括转发至所述指定的业务出端口;
发送单元530,当所述目标业务流量匹配所述ACL规则,则基于该ACL规则预配置的动作将该目标业务流量转发至所述指定的业务出端口,以通过该指定的业务出端口将所述目标业务流量分流至不同的业务服务器。
在另一种可选的实现方式中,所述上游设备为所述目标流量封装了外层MAC地址头,并将所述指定的业务出端口写入至该外层MAC地址头中的私有MAC地址。
在另一种可选的实现方式中,所述各业务板的业务出端口被划分为多个业务组;各业务组分别预配置了MAC掩码;所述MAC掩码指示所述私有MAC地址中携带指定的业务出端口对应于各业务板的端口序号的比特位;
所述发送单元530,具体用于将所述目标业务流量外层MAC地址头中携带的私有MAC地址与所述各业务组对应的MAC掩码分别进行与运算;基于所述与运算的计算结果确定所述指定的业务出端口对应于各业务板的端口序号,并基于所述端口序号确定所述指定的业务出端口的端口号;基于该ACL规则预配置的动作将该目标业务流量转发至与该确定出的端口号对应的业务出端口。
在另一种可选的实现方式中,所述装置还包括:
转发单元540,用于如果所述指定的业务出端口包括分布在不同业务板上的多个业务出端口,则将该目标业务流量通过所述目标业务板的跨板级联端口转发至其它业务板的跨板级联端口;将所述目标业务流量与所述其他业务板的跨板级联端口上预配置的ACL规则执行匹配;其中,所述跨板级联端口上预配置的ACL规则的匹配项与所述目标业务板的入端口上预配置的ACL规则的匹配项相同;所述跨板级联端口上预配置的ACL规则的动作包括转发至所述指定的业务出端口中分布于当前业务板上的业务端口;当所述目标业务流量匹配所述跨板级联端口上预配置的ACL规则时,基于该ACL规则预配置的动作将该目标业务流量转发至所述指定的业务出端口中分布于所述当前业务板上的业务端口。
在另一种可选的实现方式中,所述装置还包括:
调整单元550,用于监控所述业务服务器的负载状况,并基于监控到的所述业务服务器的负载状况,对各业务组的出端口数量或者MAC掩码进行动态调整。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。