CN103986658A - 一种报文输出方法及装置 - Google Patents

一种报文输出方法及装置 Download PDF

Info

Publication number
CN103986658A
CN103986658A CN201410201458.3A CN201410201458A CN103986658A CN 103986658 A CN103986658 A CN 103986658A CN 201410201458 A CN201410201458 A CN 201410201458A CN 103986658 A CN103986658 A CN 103986658A
Authority
CN
China
Prior art keywords
message
output
output port
content recognition
recognition processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410201458.3A
Other languages
English (en)
Other versions
CN103986658B (zh
Inventor
王智慧
赵有金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruian Technology Co Ltd
Original Assignee
Beijing Ruian Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ruian Technology Co Ltd filed Critical Beijing Ruian Technology Co Ltd
Priority to CN201410201458.3A priority Critical patent/CN103986658B/zh
Publication of CN103986658A publication Critical patent/CN103986658A/zh
Application granted granted Critical
Publication of CN103986658B publication Critical patent/CN103986658B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种报文输出方法及装置,所述方法包括:获取预先为交换芯片中内容识别处理器配置的协议规则;通过所述内容识别处理器对接收报文进行筛选,将符合所述协议规则中报文处理条件的报文作为第一报文,将不符合所述协议规则中报文处理条件的报文作为第二报文;通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文;通过所述交换芯片中的内容识别处理器,均衡输出所述第二报文。本发明实施例提供的报文输出方法及装置,通过采用交换芯片中的内容识别处理器和组播组实现接收报文的转发,从而有效地降低了分流设备的硬件采购成本和软硬件的研发成本。

Description

一种报文输出方法及装置
技术领域
本发明涉及数据通信技术领域,尤其涉及一种报文输出方法及装置。
背景技术
近年来,我国宽带网络、增值业务、VOIP(Voice Over Internet Protocol,基于网络协议传输的语音)、视频等应用越来越广泛。为了保证各项应用安全、平稳地运行,电信运营商、增值业务服务商以及各类公共安全机构等,都需要掌控网络流量的流向、用户关键网络的应用等。在这种情况下,各种分流设备应用而生。
传统的分流设备一般采用FPGA(Field Programmable Gate Array,现场可编程门阵列)卡或者多核卡来实现组播输出及均衡输出。对于需要组播输出的报文,二者通常都采用复制的形式,从每个输出端口输出相同的报文。对于需要均衡输出的报文,传统的FPGA卡可通过哈希算法实现均衡输出,但哈希算法比较复杂,导致软件开发周期长且维护成本高。传统的多核卡通过软件集中处理多个中央处理器的数据,软件开发周期相对较短。但二者的硬件成本都很高,导致后期维护的成本也比较高。
发明内容
有鉴于此,本发明实施例提供了一种报文输出方法及装置,以降低分流设备的硬件成本。
一方面,本发明实施例提供了一种报文输出方法,所述方法包括:
获取预先为交换芯片中内容识别处理器配置的协议规则,所述协议规则包括报文处理条件以及对应的报文处理动作,所述报文处理动作包括指向预先建立在交换芯片中的组播组的指针,该组播组包含至少一个输出端口;
通过所述内容识别处理器对接收报文进行筛选,将符合所述协议规则中报文处理条件的报文作为第一报文,将不符合所述协议规则中报文处理条件的报文作为第二报文;
通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文;
通过所述交换芯片中的内容识别处理器,均衡输出所述第二报文。
进一步的,在获取预先为交换芯片中内容识别处理器配置的协议规则之前,所述方法还包括:通过配置在交换芯片中内容识别处理器的过滤规则,从接收到的所有报文中筛选出用户关心的报文,作为接收报文。
进一步的,通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文包括:
将所述第一报文进行复制,得到N份第一报文,其中N为协议规则中的报文处理动作所指向的组播组中的输出端口数,N为大于等于1的正整数;
从所述N个输出端口分别输出一份第一报文。
进一步的,通过所述交换芯片中的内容识别处理器,输出所述第二报文,包括:
将所述第二报文划分成M类报文,每一类报文作为一个微流;
建立M个微流与N个输出端口的对应关系,其中N小于等于M;
根据所述M个微流与所述N个输出端口的对应关系,为所述内容识别处理器配置转发规则;
根据所述转发规则,从每一个输出端口输出与该输出端口对应的微流,N个输出端口输出的所有微流组成第二报文。
进一步的,将所述第二报文划分成M类报文,具体包括:
当所述第二报文包括上行数据报文和下行数据报文时,M=2N1+N2/2,其中,N1为第二报文中每条报文源IP地址的低N1bit,N2为第二报文中每条报文目的IP地址的低N2bit;
当所述第二报文仅包括上行数据报文时,M=2M1,其中,M1为第二报文中每条报文源IP地址的低M1bit;
当所述第二报文仅包括下行数据报文时,M=2M2,其中,M2为第二报文中每条报文目的IP地址的低M2bit。
另一方面,本发明实施例还提供了一种报文输出装置,所述装置包括:
配置模块,用于获取预先为交换芯片中内容识别处理器配置的协议规则,所述协议规则包括报文处理条件以及对应的报文处理动作,所述报文处理动作包括指向预先建立在交换芯片中的组播组的指针,该组播组包含至少一个输出端口;
筛选模块,用于通过所述内容识别处理器对接收报文进行筛选,将符合所述协议规则中报文处理条件的报文作为第一报文,将不符合所述协议规则中报文处理条件的报文作为第二报文;
第一输出模块,用于通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文;
第二输出模块,用于通过所述交换芯片中的内容识别处理器,均衡输出所述第二报文。
进一步的,所述装置还包括:过滤模块,用于获取预先为交换芯片中内容识别处理器配置的协议规则之前,通过配置在交换芯片中内容识别处理器的过滤规则,从接收到的所有报文中筛选出用户关心的报文,作为接收报文。
进一步的,第一输出模块包括:
复制单元,用于将所述第一报文进行复制,得到N份第一报文,其中N为协议规则中的报文处理动作所指向的组播组中的输出端口数,N为大于等于1的正整数;
第一输出单元,用于从所述N个输出端口分别输出一份第一报文。
进一步的,第二输出模块包括:
分类单元,用于将所述第二报文划分成M类报文,每一类报文作为一个微流;
映射单元,用于建立M个微流与N个输出端口的对应关系,其中N小于等于M;
配置单元,用于根据所述M个微流与所述N个输出端口的对应关系,为所述内容识别处理器配置转发规则;
第一输出单元,用于根据所述转发规则,从每一个输出端口输出与该输出端口对应的微流,N个输出端口输出的所有微流组成第二报文。
进一步的,所述分类单元将所述第二报文划分成M类报文,具体用于:
当所述第二报文包括上行数据报文和下行数据报文时,M=2N1+N2/2,其中,N1为第二报文中每条报文源IP地址的低N1bit,N2为第二报文中每条报文目的IP地址的低N2bit;
当所述第二报文仅包括上行数据报文时,M=2M1,其中,M1为第二报文中每条报文源IP地址的低M1bit;
当所述第二报文仅包括下行数据报文时,M=2M2,其中,M2为第二报文中每条报文目的IP地址的低M2bit。
本发明实施例提供的报文输出方法及装置,通过采用交换芯片中的内容识别处理器和组播组实现接收报文的转发,从而有效地降低了分流设备的硬件采购成本和软硬件的研发成本。
附图说明
图1是本发明实施例提供的报文输出方法的流程图;
图2是本发明实施例提供的报文输出方法中输出第一报文的步骤图;
图3是本发明实施例提供的报文输出方法中输出第二报文的步骤图;
图4是本发明实施例提供的一种优选的报文输出方法示意图;
图5是本发明实施例提供的报文输出装置的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
图1示出了本发明实施例提供的报文输出方法的流程图,所述流程详述如下:
步骤101、获取预先为交换芯片中内容识别处理器配置的协议规则,所述协议规则包括报文处理条件以及对应的报文处理动作,所述报文处理动作包括指向预先建立在交换芯片中的组播组的指针,该组播组包含至少一个输出端口。
本实施例中,在报文输出之前,首先要在交换芯片上添加至少一个组播组,并向每个组播组添加输出端口,在添加组播组的同时软件会在交换芯片上自动下发一条组播MAC(Media Access Control,介质访问控制)表项,并根据该组播MAC表项自动创建一个L2MC表项。所述组播MAC表项用于记录组播MAC地址,通常组播MAC地址的第40bit为1,所述组播组中包括一个L2MC表项,所述L2MC表项用于记录组播组中的输出端口信息。
本步骤中,分流设备预先根据用户的输入指令在所述交换芯片中的内容识别处理器中添加一条或多条协议规则,例如,预先为交换芯片中内容识别处理器配置的协议规则的报文处理条件为:SIP(源IP地址)=10.1.2.0/24网段且目的端口号等于2000的UDP(User Datagram Protocol,用户数据报协议)报文;报文处理动作包括指向组播组的指针、对报文进行的操作等,例如,指针为指向组播组1的指针,则对报文的操作为:放行SIP=10.1.2.0/24网段且目的端口号等于2000的UDP报文,将SIP=10.1.2.0/24网段且目的端口号等于2000的UDP报文定位到组播组1。所述协议规则可用于对接收报文进行筛选,其中,所述接收报文为从交换芯片输入端口接入的报文。
步骤102、通过所述内容识别处理器对接收报文进行筛选,将符合所述协议规则中报文处理条件的报文作为第一报文,将不符合所述协议规则中报文处理条件的报文作为第二报文。
例如,接收报文中符合协议规则SIP=10.1.2.0/24网段且目的端口号等于2000的UDP报文称为第一报文,接收报文中不符合上述协议规则的报文称为第二报文。
步骤103、通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文。
本实施例中,对于符合所述协议规则的第一报文,从所述协议规则所指定的组播组中组播输出。传统使用中,组播组的组播功能只应用在组播报文上,即通过在组播MAC表项中存放组播MAC地址(MAC地址的第40bit为1),同时在组播MAC表项中会保存一个指向L2MC表项的指针,交换芯片接收到的报文只有是特定的组播报文时,才可通过MAC表项向L2MC表内保存的端口复制报文。本实施例中,协议规则中的指针直接指向L2MC表项,组播MAC不用于转发报文,只用于分配L2MC表,且接收到的报文可以任意报文,如未知单播报文、未知组播报文、广播报文等。
步骤104、通过所述交换芯片中的内容识别处理器,均衡输出所述第二报文。
本实施例中,对于不符合上述协议规则的第二报文采用均衡输出。所述报文均衡输出功能将报文从多个输出端口做均衡输出。本实施例中的交换芯片本身并没有提供本发明中所提到的均衡输出功能,交换芯片只在配置trunk的端口组之间,或者ECMP(EqualCostMultipathRouting,等价多路径)路由所指定的下一跳端口组间有流量均衡功能。本发明所应用的分流设备无法使用这两种机制所提供的均衡策略,因为分流设备所接入的流量具有不可预测性,无法使用二层MAC转发机制或者三层IP转发机制,因此分流设备接入的数据包全部都是未知单播报文或者未知组播报文或者是广播报文,对于这些报文,trunk组的流量均衡功能只选择主输出端口做输出,无法达到均衡输出的目的;同样,由于无法使用三层IP转发机制,ECMP路由的均衡策略也无法使用了。
本实施例中的报文均衡方法,是利用交换芯片中的内容识别处理器来实现的,即根据第二报文的SIP、DIP(目的IP地址)、SIP+DIP地址中任一种的低Nbit做排列组合,从而将接入的第二报文分为若干类报文,即若干个微流,并将这些微流轮撒到预定的输出端口上,如M个输出端口,以此达到报文均衡输出的目的。
本发明实施例提供的报文输出方法,通过采用交换芯片中的内容识别处理器和组播组实现接收报文的转发,从而有效地降低了分流设备的硬件采购成本和软硬件的研发成本。
上述实施例中,在获取预先为交换芯片中内容识别处理器配置的协议规则之前,所述方法还包括:通过配置在交换芯片中内容识别处理器的过滤规则,从接收到的所有报文中筛选出用户关心的报文,作为接收报文。分流设备在输出报文之前还可以对接收到的所有报文进行过滤,以降低后端分析设备的分析压力。
本实施例中筛选报文可以通过配置交换芯片中的内容识别处理器的过滤规则来实现,所述内容识别处理器可实现基于SIP、DIP、SMAC、DMAC(DirectMemory Access Controller,直接内存访问控制器)、TCP/UDP(Transmission ControlProtocol/Internet Protocol/UserDatagramProtocol,传输控制协议/用户数据报协议)源端口号、TCP/UDP目的端口号、IP协议号等内容作过滤。所述过滤规则可以为通过下发默认deny规则,默认丢弃所有报文,进一步地通过配置若干ACL(Access Control List,访问控制列表)放行关心的数据报文;也可以为通过下发默认permit规则,默认转发所有报文,进一步地通过配置若干ACL丢弃不关心的数据报文。所述配置ACL规则的优先级高于默认规则的优先级。本实施例中过滤规则也可以为其他方式,在此不作具体限定。
上述实施例中,将上述配置的过滤规则应用到输入端口,则从输入端口接入报文时,会根据所述过滤规则丢弃不关心的报文,放行关心的报文。
上述实施例中,通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文,可包括图2所示的步骤:
步骤201、将所述第一报文进行复制,得到N份第一报文,其中N为协议规则中的报文处理动作所指向的组播组中的输出端口数,N为大于等于1的正整数。
组播组可以根据添加的输出端口数对第一报文进行复制,例如,添加的输出端口数为N,则将第一报文复制N份。
步骤202、从所述N个输出端口分别输出一份第一报文。
本实施例中,当已经配置内容识别器协议规则后,允许某个输出端口信息加入到该协议规则所指向的组播组的L2MC表项中,无须先删除协议规则再向L2MC表项加入输出端口信息,新加入的输出端口在报文转发时可以即时生效。当已经配置协议表项后,允许某个输出端口从组播组中的L2MC表项中移除,无须先删除协议规则再移除L2MC表项中的输出端口信息,新移除的输出端口信息即时生效,不会收到该L2MC表项所在的组播组复制的协议报文。
第一报文通过组播输出,每个后端分析设备都会收到所述第一报文的一份拷贝,从而方便多个分析设备的联合分析。
上述实施例中,通过所述交换芯片中的内容识别处理器,输出所述第二报文,可包括如图3所示的步骤:
步骤301、将所述第二报文划分成M类报文,每一类报文作为一个微流。
本步骤中,可根据排列组合原理,将所述第二报文划分成M类报文,根据第二报文类型的不同,划分方式也不同。
当所述第二报文包括上行数据报文和下行数据报文时,采用SIP-DIP均衡策略,将所述第二报文划分为M=2N1+N2/2类报文,且M≤N,其中,N1为第二报文中每条报文源IP地址的低N1bit,N2为第二报文中每条报文目的IP地址的低N2bit,N为输出端口数,所述上行数据报文是由本端设备发往远端设备的报文,所述下行数据报文是由远端设备发往本端设备的报文。为了保证SIP和DIP对报文均衡输出的影响程度相同,约定N1=N2。在一些应用场景下,需要保证报文传输的同源同宿性,即同一组会话的上行数据报文和下行数据报文被均衡输出到同一个输出端口,以降低多个后端分析设备的数据分析耦合程度,因此划分所述第二报文时,将同一组报文的上行数据报文和下行数据报文归为一类,例如,当输出端口数N=8时,为了保证M≤N,可取N1=N2=2,则M=2N1+N2/2=8表示将第二报文划分成8类报文,如表1所示。
表1
从表1中可知,第一类将SIP低2=00且DIP低2=01的报文和DIP低2=00且SIP低2=01的报文归为一类以实现报文传输的同源同宿,依此类推。上述每一类报文也称为一个微流。
当所述第二报文仅包括上行数据报文时,采用SIP均衡策略,将所述第二报文划分为M=2M1类报文,且M≤N,其中,M1为第二报文中每条报文源IP地址的低M1bit,例如当M=N时,可将第二报文中源IP低M1bit相同的报文划分为一类报文。
当所述第二报文仅包括下行数据报文时,采用DIP均衡策略,将所述第二报文划分为M=2M2类报文,且M≤N,其中,M2为第二报文中每条报文目的IP地址的低M2bit,例如当M=N时,可将第二报文中目的IP低M2bit相同的报文划分为一类报文。
步骤302、建立M个微流与N个输出端口的对应关系,其中N小于等于M。
本步骤中,输出端口数要小于或等于划分的微流数,以保证每个输出端口都有报文输出。例如,当M=N时,一个微流对应一个输出端口,为了保证报文均衡输出,不同的微流对应的输出端口也不同。当M>N时,将M个微流均衡分配给N个输出端口。
步骤303、根据所述M个微流与所述N个输出端口的对应关系,为所述内容识别处理器配置转发规则,所述转发规则为步骤301中得到的每一个微流与输出端口的对应关系,例如,第一类报文即微流1对应输出端口11。
步骤304、根据所述转发规则,从每一个输出端口输出与该输出端口对应的微流,N个输出端口输出的所有微流组成第二报文,以实现后端分析设备的负载均衡。
图4示出了本发明实施例提供的报文输出方法的一个优选实施方式,如图4所示,本实施例以多路报文输入、多路报文输出的***为例。假设***的应用场景如下:有10路数据报文分别从输入端口1-10输入,8路数据报文分别从输出端口11-18输出;过滤规则为默认丢弃所有报文,放行SIP=10.1.2.0/24网段的UDP报文,放行DIP=20.1.1.0/24网段的TCP报文;预先设定的协议规则为对于UDP的目的端口等于2000的报文,从第11-18端口组组播输出,对于不需要组播输出,且未丢弃的报文,做均衡输出;从输入端口1-4接入的报文,上行数据报文和下行数据报文混合接入,且不可区分上行数据报文和下行数据报文;从输入端口5-6接入的报文,全部都是上行数据报文;从输入端口7-8接入的报文,全部是下行数据报文。从输入端口9-10接入的报文,上行数据报文和下行数据报文混合接入,但可通过配置本地IP池的方法可以区分上行数据报文和下行数据报文,本地IP池是:10.1.2.0/24网段和20.1.1.0/24网段。
分流设备接收到报文时,首先根据输入端口处的过滤规则进行对接收到的所有报文进行筛选,可获得SIP=10.1.2.0/24网段的UDP报文,以及DIP=20.1.1.0/24网段的TCP报文,并将这两组报文作为接收报文;再根据协议规则可筛选出目的端口号等于2000的UDP报文,作为第一报文,并将所述第一报文复制8份,每一份对应从一个输出端口输出。对于不符合所述协议规则的报文,作为第二报文,从输出端口11-18均衡输出,下面是均衡输出过程的详细描述。
本实施例中从输入端口1-4口接入的报文无法区分上行数据报文和下行数据报文,因此以SIP+DIP作为报文均衡方式,具体实施步骤如下:
本实施例中,共有8个输出端口,假设采用接入报文的SIP的低N1bit和DIP的低N2bit作为流量均衡的依据,为了保证SIP和DIP对报文均衡效果所起的作用是等同的,因此,在算法中设置N1=N2,所述输出端口的个数需要小于等于2N1+N2/2,即8≤2N1+N2/2,因此N1和N2的值至少等于2才能满足要求。若用户按照自动均衡方法进行报文分流,则会自动选择最小的均衡bit数做分流,本例中即会选择SIP采用2bit,DIP采用2bit的方法,所划分微流的算法如下:采用1个2维IP矩阵结构表示如表2所示,所述表2中,i表示DIP的低2bit的十进制值,j表示SIP的低2bit的十进制值,例如,0表示SIP或DIP低2bit为00,1表示SIP或DIP低2bit为01,2表示SIP或DIP低2bit为10,3表示SIP或DIP低2bit为11。表2中每个矩阵元素表示SIP低2bit为i,DIP低2bit为j的报文,以下用IP[i][j]来表示。
表2
i\j 0 1 2 3
0
1
2
3
然后,对称地为非对角线部分的报文赋值,同一个值表示同一类报文,即同一个值表示同一个微流。对称地赋值以保证报文传输的同源同宿性,赋值算法如下:
IP[0][1]=IP[1][0]=0;
IP[0][2]=IP[2][0]=1;
IP[0][3]=IP[3][0]=2;
IP[1][2]=IP[2][1]=3;
IP[1][3]=IP[3][1]=4;
IP[2][3]=IP[3][2]=5。
进一步对称地为对角线部分的报文赋值,算法如下:
IP[0][0]=IP[3][3]=6;
IP[1][1]=IP[2][2]=7。
上述给表1中矩阵元素的赋值方式也可以是其他方式,经过上述算法后,产生的二维对称矩阵如表3所示。
表3
i\j 0 1 2 3
0 6 0 1 2
1 0 7 3 4
2 1 3 7 5
3 2 4 5 6
表3所示的矩阵中,每个元素值相同的报文表示同一个微流,从表3可知,SIP和DIP的低2bit所产生的二维对称矩阵对应的16条报文可划分成8个微流,如表4所示。根据元素值不同可将这8个微流分别对应到8个输出端口上,表5示出了一个优选的对应方式。
表4
表5
元素值 0 1 2 3 4 5 6 7
输出端口 Port11 Port12 Port13 Port14 Port15 Port16 Port17 Port18
结合表3、表4、表5可知,8个微流对应16条重定向转发表项,所述重定向转发表项为IP矩阵中每条报文与输出端口的对应关系,例如,值为0的报文IP[0][1]对应的输出端口号为port11,值为0的报文IP[1][0]对应的输出端口号也为port11,值为1的报文IP[0][2]对应的输出端口号为port12,依此类推,可得到16条重定向转发表项。将这8个微流对应的16条重定向转发表项分别作为转发规则配置到内容识别处理器,所述内容识别处理器根据该转发规则便可以完成硬件线速转发级的报文均衡。
本实施例还提供了手工优化均衡效果的方法,当自动选择的报文均衡效果不理想时,可以通过手工调整均衡bit位数来改善均衡效果,本实施例中,在输出端口仍然是11-18这8个输出端口的情况下,手动将SIP和DIP的低4bit作为均衡依据,按照上述均衡分流的方法,会产生一个16*16的对称矩阵,并对称地为该16*16的对称矩阵的每个元素赋值后,可产生16*16/2=128个微流,表6示出了为该16*16的对称矩阵每个元素赋值后的矩阵,表6中,i表示DIP低4bit的十进制值,j表示SIP低4bit的十进制值。
表6
i\j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 120 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 0 121 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2 1 15 122 29 30 31 32 33 34 35 36 37 38 39 40 41
3 2 16 29 123 42 43 44 45 46 47 48 49 50 51 52 53
4 3 17 30 42 124 54 55 56 57 58 59 60 61 62 63 64
5 4 18 31 43 54 125 65 66 67 68 69 70 71 72 73 74
6 5 19 32 44 55 65 126 75 76 77 78 79 80 81 82 83
7 6 20 33 45 56 66 75 127 84 85 86 87 88 89 90 91
8 7 21 34 46 57 67 76 84 127 92 93 94 95 96 97 98
i\j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
9 8 22 35 47 58 68 77 85 92 126 99 100 101 102 103 104
10 9 23 36 48 59 69 78 86 93 99 125 105 106 107 108 109
11 10 24 37 49 60 70 79 87 94 100 105 124 110 111 112 113
12 11 25 38 50 61 71 80 88 95 101 106 110 123 114 115 116
13 12 26 39 51 62 72 81 89 96 102 107 111 114 122 117 118
14 13 27 40 52 63 73 82 90 97 103 108 112 115 117 121 119
15 14 28 41 53 64 74 83 91 98 104 109 113 116 118 119 120
在本实施例中,实际有8个输出端口,为了保证所有微流从8个输出端口均衡输出,则首先将矩阵中每个元素值对8进行取模操作,使得矩阵元素值落在0~7范围内,得到表7所示的结果,然后可将这128个微流均匀的分配给这8个端口,即各个元素值取模后的结果与输出端口的对应关系如表8所示。
表7
i\j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6
1 0 1 7 0 1 2 3 4 5 6 7 0 1 2 3 4
2 1 7 2 5 6 7 0 1 2 3 4 5 6 7 0 1
3 2 0 5 3 2 3 4 5 6 7 0 1 2 3 4 5
4 3 1 6 2 4 6 7 0 1 2 3 4 5 6 7 0
5 4 2 7 3 6 5 1 2 3 4 5 6 7 0 1 2
6 5 3 0 4 7 1 6 3 4 5 6 7 0 1 2 3
7 6 4 1 5 0 2 3 7 4 5 6 7 0 1 2 3
8 7 5 2 6 1 3 4 4 7 4 5 6 7 0 1 2
9 0 6 3 7 2 4 5 5 4 6 3 4 5 6 7 0
10 1 7 4 0 3 5 6 6 5 3 5 1 2 3 4 5
11 2 0 5 1 4 6 7 7 6 4 1 4 6 7 0 1
12 3 1 6 2 5 7 0 0 7 5 2 6 3 2 3 4
13 4 2 7 3 6 0 1 1 0 6 3 7 2 2 5 6
14 5 3 0 4 7 1 2 2 1 7 4 0 3 5 1 7
15 6 4 1 5 0 2 3 3 2 0 5 1 4 6 7 0
表8
元素值 输出端口号
0 Port11
1 Port12
2 Port13
3 Port14
元素值 输出端口号
4 Port15
5 Port16
6 Port17
7 Port18
进一步的,将这128个微流对应的256条重定向转发表项分别作为转发规则配置到内容识别处理器,所述内容识别处理器根据该转发规则便可以完成硬件线速转发级的报文均衡。
本实施用例中,输入端口5-6接入的是上行数据,可直接按照SIP做均衡,采用SIP的低M1bit作为均衡依据,此时,对微流的划分采用一维数组表示即可,本实施例中共8个输出端口,可采用自动均衡的方法,也可采用手动均衡的方法,下面以自动均衡的方法为例。由于输出端口为8个,所以采用SIP的低3bit划分微流得到一个一维数组,并为数组中的每个元素赋值后得到一个新的数组,如表9所示,新数组中不同的值表示不同的微流,表9中示出了8个微流,其中i表示SIP低3bit的十进制值。
表9
i 0 1 2 3 4 5 6 7
元素值 0 1 2 3 4 5 6 7
将这8个微流均匀分给11-18这8个输出端口,不同的微流与输出端口的对应关系如表10所示。
表10
元素值 0 1 2 3 4 5 6 7
输出端口 Port11 Port12 Port13 Port14 Port15 Port16 Port17 Port18
进一步的,将这8个微流所对应的8条重定向转发表项分别作为转发规则配置到内容识别处理器,所述内容识别处理器根据该转发规则便可以完成硬件线速转发级的报文均衡。
本实施例中,输入端口7-8接入的是下行数据,可直接按照DIP做均衡,采用DIP的低M2bit作为均衡依据,此时,均衡算法与上述按照SIP均衡的方法相同,可以采用自动均衡的方法,也可采用手动均衡的方法,本实施例中,以手动均衡的方法为例,采用DIP的低4bit划分微流得到一个一维数组,并为数组中的每个元素赋值后得到一个新的数组,如表11所示。
表11
i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
元素值 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
由于输出端口为8个,所以将上述数组中的每个元素值对8进行取模操作,使的元素值落在0~7范围内,得到结果如表12所示。
表12
元素值 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
取模值 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
不同的元素值表示不同的微流,根据取模值将这16个微流均匀分配给11-18这8个输出端口,元素值、取模值与输出端口的对应关系如表13所示。
表13
进一步的,将这16个微流所对应的重定向转发表项分别作为转发规则配置到内容识别处理器,所述内容识别处理器根据该转发规则便可以完成硬件线速转发级的报文均衡。
本实施例中,输入端口9-10接入的数据是上下行数据混合接入的,但用户已知本地IP池,则针对本地IP池的配置,SIP落在10.1.2.0/24网段和20.1.1.0/24网段的流量按照SIP做均衡,DIP落在10.1.2.0/24网段和20.1.1.0/24网段的流量按照DIP做均衡。
本实施例中,共有2个网段的本地IP池,采用自动均衡的方法,在有11-18共8个输出端口的情况下,若用户配置SIP和DIP的规则各需要采用低3bit的均衡,则SIP和DIP的均衡规则各需要8条微流重定向转发表项。因为每个微流还需要增加对IP池地址的识别,因此,SIP均衡表项识别10.1.2.0/24网段地址需要建立8条重定向转发表项,识别20.1.1.0/24网段地址需要建立8条重定向转发表项,SIP自动均衡共需要建立16条重定向转发表项。同理DIP的自动均衡也需要建立16条重定向转发表项。
本实施例中,每个微流重定向转发表项的前24bit是用于识别IP池的,因此只有后8bit才可以用于均衡,当使用手工调整方法优化均衡效果时,需要注意,不可采用大于8bit的均衡策略。
本发明实施例提供的报文输出方法,通过采用交换芯片进行报文输出,有效降低了分流设备的硬件采购成本及软硬件研发成本,另外,采用软件自动划分微流,并自动生成转发规则对内容识别器进行配置,简化了配置过程,降低了研发周期,节约了大量的***维护成本。同时,使用交换芯片实现该功能,还有利于增加端口密度,使其适应于高密度端口的输入输出应用场景;在转发性能方面,可以达到硬件线速转发性能。
图5示出了本发明实施例提供的报文输出装置的示意图,所述装置用于执行上述实施例提供的报文输出方法,如图5所示,所述装置可包括:配置模块51、筛选模块52、第一输出模块53和第二输出模块54。其中,所述配置模块51用于获取预先为交换芯片中内容识别处理器配置的协议规则,所述协议规则包括报文处理条件以及对应的报文处理动作,所述报文处理动作包括指向预先建立在交换芯片中的组播组的指针,该组播组包含至少一个输出端口;所述筛选模块52用于通过所述内容识别处理器对接收报文进行筛选,将符合所述协议规则中报文处理条件的报文作为第一报文,将不符合所述协议规则中报文处理条件的报文作为第二报文;所述第一输出模块53用于通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文;所述第二输出模块54用于通过所述交换芯片中的内容识别处理器,均衡输出所述第二报文。
本实施例中,在报文输出之前首先要在交换芯片上新建至少一个组播组,并向每个组播组添加输出端口。
本实施例中,所述装置还可包括:过滤模块55,所述过滤模块55用于获取预先为交换芯片中内容识别处理器配置的协议规则之前,通过配置在交换芯片中内容识别处理器的过滤规则,从接收到的所有报文中筛选出用户关心的报文,作为接收报文。
本实施例中,所述第一输出模块53可包括:复制单元531和第一输出单元532。其中,所述复制单元531用于将所述第一报文进行复制,得到N份第一报文,其中N为协议规则中的报文处理动作所指向的组播组中的输出端口数,N为大于等于1的正整数;所述第一输出单元532用于从所述N个输出端口分别输出一份第一报文。
本实施例中,第二输出模块54可包括:分类单元541、映射单元542、配置单元543和第二输出单元544。其中,所述分类单元541用于将所述第二报文划分成M类报文,每一类报文作为一个微流;所述映射单元542用于建立M个微流与N个输出端口的对应关系,其中N小于等于M;所述配置单元543用于根据所述M个微流与所述N个输出端口的对应关系,为所述内容识别处理器配置转发规则;所述第一输出单元544用于根据所述转发规则,从每一个输出端口输出与该输出端口对应的微流,N个输出端口输出的所有微流组成第二报文。
本实施例中,所述分类单元541可根据排列组合原理,将所述第二报文划分成M类报文,根据所述第二报文类型不同,分类方法也不同。
当所述第二报文包括上行数据报文和下行数据报文时,将所述第二报文划分为M=2N1+N2/2类报文,其中,N1为第二报文中每条报文源IP地址的低N1bit,N2为第二报文中每条报文目的IP地址的低N2bit;
当所述第二报文仅包括上行数据报文时,将所述第二报文划分为M=2M1类报文,其中,M1为第二报文中每条报文源IP地址的低M1bit;
当所述第二报文仅包括下行数据报文时,将所述第二报文划分为M=2M2类报文,其中,M2为第二报文中每条报文目的IP地址的低M2bit。
本发明实施例提供的报文输出装置用于执行本发明任意实施例提供的报文输出方法,具备相应的功能模块,可达到与所述方法相似的技术效果,此处不再赘述。
显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种报文输出方法,其特征在于,所述方法包括:
获取预先为交换芯片中内容识别处理器配置的协议规则,所述协议规则包括报文处理条件以及对应的报文处理动作,所述报文处理动作包括指向预先建立在交换芯片中的组播组的指针,该组播组包含至少一个输出端口;
通过所述内容识别处理器对接收报文进行筛选,将符合所述协议规则中报文处理条件的报文作为第一报文,将不符合所述协议规则中报文处理条件的报文作为第二报文;
通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文;
通过所述交换芯片中的内容识别处理器,均衡输出所述第二报文。
2.根据权利要求1所述的报文输出方法,其特征在于,在获取预先为交换芯片中内容识别处理器配置的协议规则之前,所述方法还包括:通过配置在交换芯片中内容识别处理器的过滤规则,从接收到的所有报文中筛选出用户关心的报文,作为接收报文。
3.根据权利要求1所述的报文输出方法,其特征在于,通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文包括:
将所述第一报文进行复制,得到N份第一报文,其中N为协议规则中的报文处理动作所指向的组播组中的输出端口数,N为大于等于1的正整数;
从所述N个输出端口分别输出一份第一报文。
4.根据权利要求3所述的报文输出方法,其特征在于,通过所述交换芯片中的内容识别处理器,输出所述第二报文,包括:
将所述第二报文划分成M类报文,每一类报文作为一个微流;
建立M个微流与N个输出端口的对应关系,其中N小于等于M;
根据所述M个微流与所述N个输出端口的对应关系,为所述内容识别处理器配置转发规则;
根据所述转发规则,从每一个输出端口输出与该输出端口对应的微流,N个输出端口输出的所有微流组成第二报文。
5.根据权利要求4所述的报文输出方法,其特征在于,将所述第二报文划分成M类报文,具体包括:
当所述第二报文包括上行数据报文和下行数据报文时,M=2N1+N2/2,其中,N1为第二报文中每条报文源IP地址的低N1bit,N2为第二报文中每条报文目的IP地址的低N2bit;
当所述第二报文仅包括上行数据报文时,M=2M1,其中,M1为第二报文中每条报文源IP地址的低M1bit;
当所述第二报文仅包括下行数据报文时,M=2M2,其中,M2为第二报文中每条报文目的IP地址的低M2bit。
6.一种报文输出装置,其特征在于,所述装置包括:
配置模块,用于获取预先为交换芯片中内容识别处理器配置的协议规则,所述协议规则包括报文处理条件以及对应的报文处理动作,所述报文处理动作包括指向预先建立在交换芯片中的组播组的指针,该组播组包含至少一个输出端口;
筛选模块,用于通过所述内容识别处理器对接收报文进行筛选,将符合所述协议规则中报文处理条件的报文作为第一报文,将不符合所述协议规则中报文处理条件的报文作为第二报文;
第一输出模块,用于通过协议规则中的报文处理动作所指向的组播组,组播输出所述第一报文;
第二输出模块,用于通过所述交换芯片中的内容识别处理器,均衡输出所述第二报文。
7.根据权利要求6所述的报文输出装置,其特征在于,所述装置还包括:过滤模块,用于获取预先为交换芯片中内容识别处理器配置的协议规则之前,通过配置在交换芯片中内容识别处理器的过滤规则,从接收到的所有报文中筛选出用户关心的报文,作为接收报文。
8.根据权利要求6所述的报文输出装置,其特征在于,第一输出模块包括:
复制单元,用于将所述第一报文进行复制,得到N份第一报文,其中N为协议规则中的报文处理动作所指向的组播组中的输出端口数,N为大于等于1的正整数;
第一输出单元,用于从所述N个输出端口分别输出一份第一报文。
9.根据权利要求8所述的报文输出装置,其特征在于,第二输出模块包括:
分类单元,用于将所述第二报文划分成M类报文,每一类报文作为一个微流;
映射单元,用于建立M个微流与N个输出端口的对应关系,其中N小于等于M;
配置单元,用于根据所述M个微流与所述N个输出端口的对应关系,为所述内容识别处理器配置转发规则;
第一输出单元,用于根据所述转发规则,从每一个输出端口输出与该输出端口对应的微流,N个输出端口输出的所有微流组成第二报文。
10.根据权利要求9所述的报文输出装置,其特征在于,所述分类单元将所述第二报文划分成M类报文,具体用于:
当所述第二报文包括上行数据报文和下行数据报文时,M=2N1+N2/2,其中,N1为第二报文中每条报文源IP地址的低N1bit,N2为第二报文中每条报文目的IP地址的低N2bit;
当所述第二报文仅包括上行数据报文时,M=2M1,其中,M1为第二报文中每条报文源IP地址的低M1bit;
当所述第二报文仅包括下行数据报文时,M=2M2,其中,M2为第二报文中每条报文目的IP地址的低M2bit。
CN201410201458.3A 2014-05-14 2014-05-14 一种报文输出方法及装置 Active CN103986658B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410201458.3A CN103986658B (zh) 2014-05-14 2014-05-14 一种报文输出方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410201458.3A CN103986658B (zh) 2014-05-14 2014-05-14 一种报文输出方法及装置

Publications (2)

Publication Number Publication Date
CN103986658A true CN103986658A (zh) 2014-08-13
CN103986658B CN103986658B (zh) 2017-06-06

Family

ID=51278485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410201458.3A Active CN103986658B (zh) 2014-05-14 2014-05-14 一种报文输出方法及装置

Country Status (1)

Country Link
CN (1) CN103986658B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105591965A (zh) * 2015-12-28 2016-05-18 北京锐安科技有限公司 流量均衡输出方法及装置
CN105704059A (zh) * 2016-03-31 2016-06-22 北京百卓网络技术有限公司 一种负载均衡方法和***
CN107171966A (zh) * 2017-07-27 2017-09-15 迈普通信技术股份有限公司 一种vxlan报文发送方法、vtep及vxlan***
CN108093051A (zh) * 2017-12-20 2018-05-29 迈普通信技术股份有限公司 报文复制方法及装置
CN108683615A (zh) * 2018-04-28 2018-10-19 新华三技术有限公司 报文分流方法、装置及分流交换机
CN108768866A (zh) * 2018-09-06 2018-11-06 迈普通信技术股份有限公司 组播报文跨卡转发方法、装置、网络设备及可读存储介质
CN111201728A (zh) * 2017-10-09 2020-05-26 华为技术有限公司 光网络中数据传输方法及光网络设备
CN111404776A (zh) * 2020-03-11 2020-07-10 深圳市东晟数据有限公司 一种开放式硬件实现深度数据过滤分流的***及方法
CN113132257A (zh) * 2021-04-29 2021-07-16 杭州迪普信息技术有限公司 报文处理方法及装置
WO2022105289A1 (zh) * 2020-11-23 2022-05-27 北京锐安科技有限公司 流量转发方法、业务卡和***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725761A (zh) * 2005-06-10 2006-01-25 杭州华为三康技术有限公司 网络设备实现链路聚合的方法
CN101159665A (zh) * 2007-08-28 2008-04-09 杭州华三通信技术有限公司 实现未知组播报文向路由器端口转发的方法和装置
CN101170432A (zh) * 2006-10-27 2008-04-30 中兴通讯股份有限公司 一种实现组播业务保护倒换和负载均衡的方法
US20080112326A1 (en) * 2006-11-09 2008-05-15 Avaya Technology Llc Load-Balancing Routes In Multi-Hop Ad-Hoc Wireless Networks
CN103354529A (zh) * 2013-07-10 2013-10-16 杭州华三通信技术有限公司 一种选择路径的方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725761A (zh) * 2005-06-10 2006-01-25 杭州华为三康技术有限公司 网络设备实现链路聚合的方法
CN101170432A (zh) * 2006-10-27 2008-04-30 中兴通讯股份有限公司 一种实现组播业务保护倒换和负载均衡的方法
US20080112326A1 (en) * 2006-11-09 2008-05-15 Avaya Technology Llc Load-Balancing Routes In Multi-Hop Ad-Hoc Wireless Networks
CN101159665A (zh) * 2007-08-28 2008-04-09 杭州华三通信技术有限公司 实现未知组播报文向路由器端口转发的方法和装置
CN103354529A (zh) * 2013-07-10 2013-10-16 杭州华三通信技术有限公司 一种选择路径的方法和设备

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105591965A (zh) * 2015-12-28 2016-05-18 北京锐安科技有限公司 流量均衡输出方法及装置
CN105591965B (zh) * 2015-12-28 2018-12-14 北京锐安科技有限公司 流量均衡输出方法及装置
CN105704059A (zh) * 2016-03-31 2016-06-22 北京百卓网络技术有限公司 一种负载均衡方法和***
CN107171966A (zh) * 2017-07-27 2017-09-15 迈普通信技术股份有限公司 一种vxlan报文发送方法、vtep及vxlan***
CN107171966B (zh) * 2017-07-27 2019-11-26 迈普通信技术股份有限公司 一种vxlan报文发送方法、vtep及vxlan***
CN111201728B (zh) * 2017-10-09 2022-11-04 华为技术有限公司 光网络中数据传输方法及光网络设备
CN111201728A (zh) * 2017-10-09 2020-05-26 华为技术有限公司 光网络中数据传输方法及光网络设备
US11082199B2 (en) 2017-10-09 2021-08-03 Huawei Technologies Co., Ltd. Data transmission method in optical network and optical network device
CN108093051B (zh) * 2017-12-20 2021-02-05 迈普通信技术股份有限公司 报文复制方法及装置
CN108093051A (zh) * 2017-12-20 2018-05-29 迈普通信技术股份有限公司 报文复制方法及装置
CN108683615A (zh) * 2018-04-28 2018-10-19 新华三技术有限公司 报文分流方法、装置及分流交换机
CN108683615B (zh) * 2018-04-28 2022-03-11 新华三技术有限公司 报文分流方法、装置及分流交换机
CN108768866B (zh) * 2018-09-06 2021-08-03 迈普通信技术股份有限公司 组播报文跨卡转发方法、装置、网络设备及可读存储介质
CN108768866A (zh) * 2018-09-06 2018-11-06 迈普通信技术股份有限公司 组播报文跨卡转发方法、装置、网络设备及可读存储介质
CN111404776A (zh) * 2020-03-11 2020-07-10 深圳市东晟数据有限公司 一种开放式硬件实现深度数据过滤分流的***及方法
WO2022105289A1 (zh) * 2020-11-23 2022-05-27 北京锐安科技有限公司 流量转发方法、业务卡和***
CN113132257A (zh) * 2021-04-29 2021-07-16 杭州迪普信息技术有限公司 报文处理方法及装置

Also Published As

Publication number Publication date
CN103986658B (zh) 2017-06-06

Similar Documents

Publication Publication Date Title
CN103986658A (zh) 一种报文输出方法及装置
CN113726816B (zh) 软件定义网络sdn设备和实时多媒体通信方法
CN103428094B (zh) 开放流OpenFlow***中的报文转发方法及装置
EP3748916A1 (en) Forwarding multicast traffic over link aggregation ports
JP2021530912A (ja) ネットワークスライス制御方法及び装置、コンピュータ読み取り可能な記憶媒体
CN101459607B (zh) 一种报文发送方法和路由器
US20190109902A1 (en) Automated Mirroring and Remote Switch Port Analyzer (RSPAN) Functions Using Fabric Attach (FA) Signaling
CN105939267B (zh) 带外管理方法及装置
US20060164984A1 (en) Limiting unauthorized sources in a multicast distribution tree
US20120230194A1 (en) Hash-Based Load Balancing in Large Multi-Hop Networks with Randomized Seed Selection
EP3200398B1 (en) Automated mirroring and remote switch port analyzer (rspan)/encapsulated remote switch port analyzer (erspan) functions using fabric attach (fa) signaling
CN105763472A (zh) 一种跨板转发的方法和装置
CN112583689B (zh) 将服务映射到隧道以便使用网络装置转发分组
US20180316686A1 (en) Security access for a switch device
EP3072265B1 (en) Filtering at lower network protocol layers
KR20170076064A (ko) 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램
CN107483341A (zh) 一种跨防火墙报文快速转发方法及装置
CN107517129A (zh) 一种基于OpenStack配置设备上行接口的方法和装置
CN110391919A (zh) 组播流量转发方法、装置、电子设备
CN103384222B (zh) 一种数据流匹配acl的方法
CN101115001B (zh) Adsl路由器的主机和pvc动态绑定的方法
CN106789713A (zh) 一种报文转发的方法及装置
US10516597B2 (en) Selective data transmission in networks
US9455957B2 (en) Map sharing for a switch device
US9231862B2 (en) Selective service based virtual local area network flooding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant