报文处理方法及其装置
技术领域
本发明涉及通信技术领域,尤其涉及一种报文处理方法及其装置。
背景技术
当前主流的交换机一般均支持负载均衡组的功能,均衡组分为基本均衡组和高级均衡组。基本均衡组是以端口为成员的均衡组,高级均衡组是以基本均衡组为成员的均衡组,且高级均衡组中不可以有端口成员。基本负载均衡组类似于交换机的端口聚合,不同之处在于:一个端口可以同时加入到多个均衡组,而一个端口只能加入到一个聚合组。高级均衡组包含多个基本均衡组,报文从高级均衡组进来后,会在每个基本均衡组中转发一份数据。
负载均衡组作为安全分流设备(通常为路由交换设备,如交换机或路由器)的特性,如图1所示,通常的使用方式是:安全分流设备通过分光器接入到用户的骨干网中,当安全分流设备接收到从前级设备分光或镜像过来的流量时,将根据ACL(Access Control List,访问控制列表)的配置进行流量的匹配并根据匹配值进行相应处理。其中,对不匹配任何ACL的报文直接丢弃,对于匹配ACL的报文则重定向或镜像到端口(对于基本均衡组)或者重定向或镜像到均衡组(对于高级均衡组)。当报文被定向或镜像到基本均衡组后,在均衡组各端口间以负载分担方式输出。这样就完成了一个流量引入、分流、负载分担的过程,供后级设备对流量进行检测分析和监视等处理。
其中,报文在均衡组内,根据报文的头信息,如源MAC(Medium AccessControl,媒体接入控制层)地址、目的MAC地址、源IP地址、目的IP地址、TCP(Transmission Control Protocol,传输控制协议)/UDP(User DatagramProtocol,用户数据报文协议)端口号等,进行HASH计算(HASH为一种散列算法),然后根据HASH计算值选择出端口将报文转发出去。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
在均衡组内对报文头信息进行HASH计算后,实际已经对流量进行了一定的分类,但是这些分类值并没有被有效的带到下行流量中,即没有被后续设备有效利用。
发明内容
本发明提供了一种报文处理方法及其装置,用以解决均衡组对报文信息进行HASH计算的值无法被后续设备有效利用的问题。
本发明提供的报文处理方法,应用于支持负载均衡组的路由交换设备,该方法包括:
支持负载均衡组的路由交换接收到报文后,计算得到该报文的HASH值,并根据预置的报文HASH值与VLAN ID的映射关系,获取与该报文的HASH值对应的VLAN ID;
所述路由交换设备将获取到的VLAN ID添加到所述报文中,并将所述报文转发给二层交换设备,以使该二层交换设备根据其上配置的VLAN转发表项和该报文中的VLAN ID转发该报文。
本发明提供的支持负载均衡组的路由交换设备,包括:
配置模块,用于配置并存储报文HASH值与VLAN ID的映射关系信息;
均衡组模块,用于在接收到报文后,计算得到该报文的HASH值,并根据其上配置的报文HASH值与VLAN ID的映射关系,获取与该报文的HASH值对应的VLAN ID;
报文处理模块,用于将获取到的VLAN ID添加到所述报文中,并通过指定端口将所述报文转发给与本设备连接的二层交换设备,以使该二层交换设备根据其上配置的VLAN转发表项和该报文中的VLAN ID转发该报文。
本发明上述技术方案的有益技术效果包括:
支持均衡组的路由交换设备将HASH值对应的VLAN ID携带于转发报文中,以使下游路由交换设备根据VLAN ID将数据从相应VLAN的出端口转发给对应的服务器,从而实现数据分流。与现有技术相比,对于支持均衡组的路由交换设备而言,降低了该设备对端口数量的要求。
本发明提供的另一种报文处理方法,应用于支持负载均衡组的路由交换设备,所述支持均衡组的路由设备上配置有HASH值与数据库标识的映射关系,该方法包括:
支持负载均衡组的路由交换接收到报文后,计算得到该报文的HASH值,并根据其上配置的报文HASH值与数据库标识的映射关系,获取与该报文的HASH值对应的数据库标识;
所述路由交换设备将获取到的数据库标识添加到所述报文中,并根据所述报文的HASH值通过均衡组中对应的端口转发所述报文,以使下游设备根据该报文中的数据库标识利用对应的数据库处理该报文。
本发明提供的支持负载均衡组的路由交换设备,包括:
配置模块,用于配置和存储报文HASH值与数据库标识的映射关系信息;
均衡组模块,用于在接收到报文后,计算得到该报文的HASH值,并根据其上配置的报文HASH值与数据库标识的映射关系,获取与该报文的HASH值对应的数据库标识;
报文处理模块,用于将获取到的数据库标识添加到所述报文中,并根据所述报文的HASH值从均衡组中对应的端口转发所述报文,以使下游设备根据该报文中的数据库标识利用对应的数据库处理该报文。
本发明上述技术方案的有益技术效果包括:
支持均衡组的路由交换设备将HASH计算值对应的数据库标识携带于转发报文中,以使下游的服务器根据该数据库标识索引到对应的数据库进行处理。与现有技术相比,对于服务器而言,节省了该设备的报文处理开销。
附图说明
图1为现有技术中均衡组应用示意图;
图2为现有技术中均衡组应用限制示意图之一;
图3为现有技术中均衡组应用限制示意图之二;
图4为本发明实施例一的流程示意图;
图5为本发明实施例一的网络架构示意图;
图6为本发明实施例二的流程示意图;
图7为本发明实施例二的网络架构示意图;
图8为本发明实施例提供的路由交换设备的结构示意图;
图9为本发明实施例提供的另一路由交换设备的结构示意图。
具体实施方式
由于现有负载均衡组技术中,支持均衡组的路由交换设备无法将用于负载均衡计算的HASH值应用于后续设备,因而会导致一定应用场景下效率有所欠缺。
如图2所示,一方面,当均衡组出端口较多时,会在支持均衡组的路由交换设备(图中的支持均衡组安全分流设备R1)上消耗大量的接入端口,对设备R1所支持的端口密度要求较高。另一方面,如图3所示,流量被分流到各系统后,每个系统承担着几类数据的分析和处理。例如,在现有的实现中,服务器要根据数据报文的源MAC地址、目的MAC地址、源IP地址、目的IP地址、源端口号、目的端口号等信息,分别查询不同的数据库,这样,对服务器造成很大压力,对于IPV6来说尤其如此,相当于重复进行了设备R1的所完成的HASH计算处理。
针对上述问题,本发明实施例提出了基于均衡组的报文处理机制,用以解决均衡组对报文信息进行HASH计算的值无法被后续设备有效利用的问题。下面结合附图对本发明实施例进行详细描述。
参见图4和图5,为本发明实施例一提供的基于均衡组的报文处理流程示意图。通过本实施例,可减少支持均衡组的路由交换设备的端口占用。
本实施例的网络架构可如图5所示,其中,支持均衡组的路由交换设备(图中表示为支持均衡组的安全分流设备R1,以下简称为设备R1)连接有二层交换设备(图中表示为二层交换机S1,以下简称设备S1),设备S1下连接有各服务器。设备R1上配置有报文HASH计算值与VLAN(Virtual Local AreaNetwork,虚拟局域网)的映射关系表,该表具体表现为HASH key与VLAN-TAG(即VLAN ID)的映射关系,设备S1上配置有VLAN转发表项。
基于该映射关系表,本实施例的流程主要包括步骤401~403:
步骤401,设备R1的入端口接收到上游设备发送的报文且经ACL匹配通过后,对该报文的特定信息进行HASH计算。
具体实施中,设备R1可根据报文头的特定信息,如源MAC地址、目的MAC地址、源IP地址、目的IP地址或TCP/UDP端口号等,进行HASH计算,得到报文的HASH值HASH key。
步骤402,设备R1根据其上配置的HASH计算值与VLAN-TAG的映射关系表,查找与该报文的HASH key对应的VLAN-TAG,将该VLAN-TAG添加于该报文,并通过设定的出端口向设备S1转发该报文。
具体实施中,可将不同的HASH key与一个或多个指定出端口对应,即将不同的流量HASH到该指定端口。该设定的出端口可以是该均衡组内的一个端口,也可以是多个均衡组所共享的一个端口。
步骤403,设备S1的入端口接收到该报文后,根据该报文中的VLAN-TAG确定对应的VLAN,根据相应的VLAN转发表项确定出对应的出端口,并将该报文从该出端口转发给对应的服务器。
为了进一步说明上述流程,下面以根据报文的源IP地址分流报文为例进行具体描述。在未使用本实施例的情况下,源IP地址为IP1的HASH key为key1,key1对应的出端口为连接于服务器1的PORT1,以此类推,这样,来自于IP1的报文被分流到服务器1,来自于IP2的报文分流到服务器2,来自于IP3的报文分流到服务器3。为了实现相同的分流效果,本实施例中,在设备R1上配置如表1所示的报文HASH计算值与VLAN的映射关系表,在设备S1上配置如表2所示的VLAN转发表项:
表1、HASH计算值与VLAN-TAG的映射关系
HASH key |
Key1 |
Key2 |
Key3 |
VLAN-TAG |
TAG1 |
TAG2 |
TAG3 |
出端口 |
PORT 5 |
PORT 5 |
PORT 5 |
表2、VLAN与出端口的对应关系
VLAN-TAG |
VLAN1 |
VLAN 2 |
VLAN 3 |
PORT |
PORT 1 |
PORT 2 |
PORT 3 |
其中,Key1是IP1的HASH计算值,TAG1对应的VLAN1在设备S1上的出端口为PORT1,PORT1为设备S1与服务器1之间的端口,其它IP地址与VLAN出端口的对应关系以此类推。
这样,设备R1在收到源IP地址为IP1的报文后,根据IP1计算得到Key1,根据表1查找到对应的TAG1,将TAG1添加到该报文,作为该报文的外层TAG,以使设备S1能够根据该TAG匹配对应的VLAN,然后设备R1将该报文从该设备的端口PORT5转发给设备S1。设备S1在接收到该报文后,根据该报文中的TAG,通过查询其上的VLAN转发表项得到对应的VLAN的出端口PORT1,然后弹掉报文中的该TAG,并将报文从PORT1转发给服务器1进行处理。同理,对于源IP地址为IP2的报文,则可通过PORT2转发给服务器2进行处理,对于源IP地址为IP3的报文,则可通过PORT3转发给服务器3进行处理。
以上仅以报文的源IP地址作为分流依据为例描述,对于以报文的源IP地址和TCP端口号,或目标IP地址,或源MAC地址,或目标MAC地址等为分流依据的情况,其相关配置和处理流程类似。
根据以上本实施例的描述可以看出,支持均衡组的路由交换设备将HASH值对应的VLAN ID(即上述的VLAN-TAG)写入到转发报文的头字段中,并将数据HASH到同一个端口转发给下游的二层路由交换设备,以使该二层路由交换设备根据VLAN ID将数据从相应VLAN的出端口转发给对应的服务器,从而实现数据分流。与现有技术相比,对于支持均衡组的路由交换设备而言,降低了该设备对端口数量的要求。
参见图6和图7,为本发明实施例二提供的基于均衡组的报文处理流程示意图。通过本实施例,可减少下游设备的报文处理开销。
本实施例的网络架构可如图7所示,其中,支持均衡组的路由交换设备(图中表示为支持均衡组的安全分流设备R1,以下简称为设备R1)连接有各服务器。数据库采用分布式部署,如,存储同一类型数据的数据库可分布在各服务器上,存储同一种类型数据的数据库分配有相同的类型标识。设备R1上配置有报文HASH计算值与MAC地址的映射关系表,服务器3上配置有MAC地址与业务数据库的映射关系表。
基于上述映射关系表,本实施例的流程主要包括步骤601~603:
步骤601,设备R1的入端口接收到上游设备发送的报文且经ACL匹配通过后,对该报文的特定信息进行HASH计算。
具体实施时,设备R1可根据报文头的特定信息,如源MAC地址、目的MAC地址、源IP地址、目的IP地址或TCP/UDP端口号等,进行HASH计算,得到报文的HASH值HASH key。
步骤602,设备R1根据其上配置的HASH计算值与MAC地址的映射关系表,查找与该报文的HASH值对应的MAC地址,将该MAC地址作为目的MAC地址添加于该报文,并根据HASH值将该报文从均衡组内对应的出端口转发出去。
步骤603,服务器的入端口接收到该报文后,根据该报文中的目的MAC地址,利用对应的业务数据库对该报文进行处理。
通常,不同流可HASH为不同的HASH key,这样,将不同的HASH key映射为不同的MAC地址,不同MAC地址对应于不同的业务数据库,就可以实现将不同流映射到不同的业务数据库进行处理。本实施例通过在支持均衡组的路由交换设备上建立HASH值与MAC地址的映射关系,并根据该映射关系将与报文的HASH值对应的MAC地址作为目的MAC地址携带于报文转发给服务器,服务器就可以根据报文中的目的MAC地址快速映射到对应的业务数据库上进行处理。而通过现有均衡组技术转发过来的报文由于没有携带本实施例中的目的MAC地址,因此需要服务器重新解析报文头信息,如源MAC地址、目的MAC地址、源IP地址、目的IP地址、源端口、目的端口等信息并进行计算,从而匹配到对应的数据库。
为了进一步说明上述流程,下面以服务器3上配置有3个业务数据库为例描述本流程的实现过程。在未使用本实施例的情况下,服务器3上对应IP1、IP2和IP3配置有3个业务数据库,服务器3的某个端口可接收到源IP地址为IP1、IP2和IP3的报文(即根据源IP地址对报文进行HASH运算后并分流到与服务器3连接的端口转发),服务器3接收到报文后解析报文头,根据解析出的源IP地址将报文映射到对应的数据库进行处理。为了实现相同的分流效果,本实施例中,建立MAC地址与业务数据库的对应关系,相当于用MAC地址标识业务数据库,在设备R1上配置如表3所示的报文HASH计算值与MAC地址的映射关系表:
表3、HASH计算值与目的MAC地址的映射关系表
HASH key |
Key1 |
Key2 |
Key3 |
MAC |
MAC1 |
MAC 2 |
MAC 3 |
出端口 |
PORT3 |
PORT3 |
PORT3 |
其中,Key1是IP1的HASH计算值,MAC1与数据库1对应,其它HASHKey与MAC地址的对应关系以此类推。
这样,设备R1在收到源IP地址为IP1的报文后,根据IP1计算得到Key1,根据表3查找到对应的MAC1,将该MAC地址作为目的MAC地址添加到该报文,以使服务器能够根据该目的MAC匹配对应的业务数据库1,设备R1根据HASH值与出端口的映射关系将报文从连接服务器3的端口PORT3转发给服务器3(HASH key1、key2和key3均对应出端口PORT3)。服务器3在接收到该报文后,根据该报文中的目的MAC地址MAC1索引到对应的业务数据库1进行处理。同理,对于源IP地址为IP2的报文在分流到服务器3后,服务器3索引到数据库2进行处理,对于源IP地址为IP3的报文在分流到服务器3后,服务器3索引到数据库3进行处理。
以上仅以报文的源IP地址作为分流依据为例描述,对于以报文的源IP地址和TCP端口号,或目标IP地址,或源MAC地址,或目标MAC地址等为分流依据的情况,其相关配置和处理流程类似。
另外,本实施例是将报文HASH值映射为目的MAC地址为例描述的,事实上,也可以直接将报文的HASH值,或者将HASH值映射为其他信息并将其作为能够标识数据库的标识信息携带于报文中发送给下游设备(下游设备应该能够解析该报文中携带的数据库标识信息并能够进行相应处理),也可以实现本实施例的技术效果。
根据以上本实施例的描述可以看出,支持均衡组的路由交换设备将HASH计算值对应的MAC地址写入到转发报文的头字段中,以使下游的服务器根据该MAC地址索引到对应的数据库进行处理。与现有技术相比,对于服务器而言,节省了该设备的报文处理开销。
需要说明的是,上述实施例一和实施例二可以结合使用。
基于相同的技术构思,本发明实施例还提供了一种路由交换设备。
参见图8,为本发明实施例提供的路由交换设备的结构示意图,该设备支持负载均衡组,可应用于图4所示的流程。该设备可包括:
配置模块801,用于配置并存储HASH值与VLAN ID的映射关系信息;
均衡组模块802,用于在接收到报文后,计算得到该报文的HASH值,并根据其上配置的报文HASH值与VLAN ID的映射关系,获取与该报文的HASH值对应的VLAN ID;
报文处理模块803,用于将获取到的VLAN ID添加到所述报文中,并通过指定端口将所述报文转发给与本设备连接的二层交换设备,以使该二层交换设备根据其上配置的VLAN转发表项和该报文中的VLAN ID转发该报文。其中,所述预先指定的端口可以是负载均衡组内的端口或为多个均衡组所共享的端口。
参见图9,为本发明实施例提供的路由交换设备的结构示意图,该设备支持负载均衡组,可应用于图6所示的流程。该设备可包括
配置模块901,用于配置和存储HASH值与数据库标识的映射关系信息;
均衡组模块902,用于在接收到报文后,计算得到该报文的HASH值,并根据其上配置的报文HASH值与数据库标识的映射关系,获取与该报文的HASH值对应的数据库标识;
报文处理模块903,用于将获取到的数据库标识添加到所述报文中,并根据所述报文的HASH值从均衡组中对应的端口转发所述报文,以使下游设备根据该报文中的数据库标识利用对应的数据库处理该报文。
其中,数据库标识可以是MAC地址,用于标识数据库,报文处理模块903可将数据库标识携带于报文的目的MAC地址字段。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。