专利名称:一种基于脚本语言的报文处理方法和装置的制作方法
技术领域:
本发明涉及网络通信领域,尤其涉及一种基于脚本语言的报文处理方法和装置。
背景技术:
现有的技术方案主要是以web管理界面对网络设备进行配置,所有配置操作在浏览器中完成,这对于一些常规简单配置十分方便。但是,当前的网络数据多种多样,不同的报文可能会有不同的处理方式,如果仍然以web管理界面对网络设备进行配置,则需要添加相应的管理页面。即使这样,仍然不能满足对不同报文增加的处理条件,而且也不能满足对不同报文进行精细控制的需求。
发明内容
有鉴于此,本发明的目的是提供一种基于脚本语言的报文处理方法和装置,实现 对网络设备功能的定制更加灵活和方便。为实现上述目的,本发明提供技术方案如下一种基于脚本语言的报文处理方法,应用于网络设备上,包括获取用于对报文进行处理的脚本文件,所述脚本文件中包括多个事件,每个事件包括触发条件、事件链名称和命令集这三者的对应关系;通过web页面将所述脚本文件下发到操作系统,由操作系统对所述脚本文件进行解析后,将各事件挂到事件链表中对应的事件链中;从接口接收到报文时,根据该接口对应的触发条件,在事件链表中匹配相应的事件链,对匹配到的事件链中的命令进行解析后,根据解析结果对报文执行相应的处理。一种基于脚本语言的报文处理装置,应用于网络设备上,包括脚本文件获取模块,用于获取用于对报文进行处理的脚本文件,所述脚本文件中包括多个事件,每个事件包括触发条件、事件链名称和命令集这三者的对应关系;脚本文件解析模块,用于通过web页面将所述脚本文件下发到操作系统,由操作系统对所述脚本文件进行解析后,将各事件挂到事件链表中对应的事件链中;报文处理模块,用于从接口接收到报文时,根据该接口对应的触发条件,在事件链表中匹配相应的事件链,对匹配到的事件链中的命令进行解析后,根据解析结果对报文执行相应的处理。根据本发明的技术方案,能够使得网络设备对网络流量的控制,以及对各种协议和应用数据的控制更加灵活,定制功能更加简单易行。
图1是本发明实施例的基于脚本语言的报文处理方法流程图;图2是本发明实施例的基于脚本语言的报文处理方法示意图;图3是本发明实施例的基于脚本语言的报文处理装置结构图。
具体实施例方式脚本语言能够为网络设备提供灵活强大的定制功能,所述网络设备可以是网络安全设备、流量控制设备和应用交付平台设备等。例如,对于应用交付平台设备,其支持大多数应用交付的标准功能,可以满足大部分网络系统对这方面的功能及部署要求,当某些应用系统对数据控制有着更加精细的定制要求,或者对标准协议的功能支持有更高的要求,这时候就可以使用一些脚本来增强网络设备的功能,实现这些功能要求。图1是本发明实施例的基于脚本语言的报文处理方法流程图,所述报文处理方法应用于网络设备上,所述网络设备可以是网络安全设备、流量控制设备和应用交付平台设备等。
参照图1,所述报文处理方法可以包括如下步骤步骤101,获取用于对报文进行处理的脚本文件,所述脚本文件中包括多个事件,每个事件包括触发条件、事件链名称和命令集这三者的对应关系;步骤102,通过web页面将所述脚本文件下发到操作系统,由操作系统对所述脚本文件进行解析后,将各事件挂到事件链表中对应的事件链中;步骤103,从接口接收到报文时,根据该接口对应的触发条件,在事件链表中匹配相应的事件链,对匹配到的事件链中的命令进行解析后,根据解析结果对报文执行相应的处理。以下结合图2对本发明进行详细说明。在本发明中,每个脚本是以事件为最基本的处理单位,以事件中命令和逻辑的灵活组合和排序定制IP层以上的数据流量处理功能。事件是以“触发条件事件链名称{命令集} ”三部分组成一个完整事件命令。相同事件链名称会把事件命令集挂到同一个事件链表遍历执行每一个事件中的命令。图2 中,PACKET IN, PACKETOUT, PACKETFORffARD 和 PACKETLLB 为事件链名称,其中PACKETIN为接收报文时触发;PACKETFORffARD为转发报文时触发,上送本机可以不做处理;PACKET0UT为报文发送时触发;PACKETLLB为进链路负载做调度时触发。事件入接口是在特定业务处理位置定义一个相应事件调用接口,所有经过业务都应当经过事件流程。其中,PACKETIN是在报文从驱动上送接收函数中定义的接口 ;PACKETFORWARD是在报文转发时定义的接口,报文在转发时分本机报文和转发报文;PACKET0UT是在需要再将报文发送到驱动时的接口函数中定义;PACKETLLB是在链路负载模块入口定义。脚本文件通过WEB页面进行管理,在下发保存到设备系统内的同时,读取脚本文件下发到系统内核进行脚本中事件解析,挂到相应事件链表,例如,挂到PACKET IN、PACKETOUT,PACKETFORffARD等事件链表。当在特定事件入口有报文经过时触发相应事件链上的命令对其解析、执行。具体地,当报文经过事件接口时,进入相应事件链表执行事件链表上相应命令操作,完成之后根据相应结果或流程继续后续工作。需要说明的是,本发明中事件的触发条件以及对应的命令集可以根据对报文的处理需要进行定制,本发明对其具体内容不做限制。也就是说,本发明的关键不在于如何编写脚本文件,而是,本领域技术人员可以根据对报文处理的各种需求,编写能够满足该需求的脚本文件。对于PACKETIN事件链,可以根据接收报文的目的地址、目的地址网段、协议或端口判断是那个服务请求的报文,是否需要进行转发或做相关处理。例如,例可以使用相关命令做网络地址转换(nat)。对于PACKETFORWARD事件链,其为对报文进行转发时执行,可以根据报文的信息绑定接口信息或是为其他模块提供打印一些标记。对于PACKETOUT事件链,与PACKETIN对应,可以做nat应用。以PACKETLLB链路调度事件链为例,可以执行如下命令
(I)如当前运营商链路负载低于50%选择当前链路。(2)如高于50%查看其他链路有没有低于50%的有则选择低于50%的链路中链接数最小的链路。(3)如果都高于50%则使用最小负载算法。对于PACKETLLB事件链,对应的脚本文件中的脚本可以如下
when PACKETLLB ( set ispid O
set minload 10000000set mincount 10000000set mincountif 10000000
权利要求
1.一种基于脚本语言的报文处理方法,应用于网络设备上,其特征在于,包括获取用于对报文进行处理的脚本文件,所述脚本文件中包括多个事件,每个事件包括触发条件、事件链名称和命令集这三者的对应关系;通过web页面将所述脚本文件下发到操作系统,由操作系统对所述脚本文件进行解析后,将各事件挂到事件链表中对应的事件链中;从接口接收到报文时,根据该接口对应的触发条件,在事件链表中匹配相应的事件链,对匹配到的事件链中的命令进行解析后,根据解析结果对报文执行相应的处理。
2.如权利要求1所述的报文处理方法,其特征在于,所述事件链表中包括以下事件链中的至少一个接收报文PACKETIN事件链,对应的触发条件为报文从驱动上送到报文接收函数中定义的接口 ;转发报文PACKETFORWARD事件链,对应的触发条件为报文到达报文转发函数中定义的接口 ;发送报文PACKET0UT事件链,对应的触发条件为报文到达用于将报文发送到驱动的接Π ;负载均衡PACKETLLB事件链,对应的触发条件为报文到达链路负载均衡处理接口。
3.一种基于脚本语言的报文处理装置,应用于网络设备上,其特征在于,包括脚本文件获取模块,用于获取用于对报文进行处理的脚本文件,所述脚本文件中包括多个事件,每个事件包括触发条件、事件链名称和命令集这三者的对应关系;脚本文件解析模块,用于通过web页面将所述脚本文件下发到操作系统,由操作系统对所述脚本文件进行解析后,将各事件挂到事件链表中对应的事件链中;报文处理模块,用于从接口接收到报文时,根据该接口对应的触发条件,在事件链表中匹配相应的事件链,对匹配到的事件链中的命令进行解析后,根据解析结果对报文执行相应的处理。
4.如权利要求3所述的报文处理装置,其特征在于,所述事件链表中包括以下事件链中的至少一个接收报文PACKETIN事件链,对应的触发条件为报文从驱动上送到报文接收函数中定义的接口 ;转发报文PACKETFORWARD事件链,对应的触发条件为报文到达报文转发函数中定义的接口 ;发送报文PACKET0UT事件链,对应的触发条件为报文到达用于将报文发送到驱动的接Π ;负载均衡PACKETLLB事件链,对应的触发条件为报文到达链路负载均衡处理接口。
全文摘要
本发明提供一种基于脚本语言的报文处理方法和装置,属于网络通信领域。所述报文处理方法包括获取用于对报文进行处理的脚本文件,所述脚本文件中包括多个事件,每个事件包括触发条件、事件链名称和命令集这三者的对应关系;通过web页面将所述脚本文件下发到操作系统,由操作系统对所述脚本文件进行解析后,将各事件挂到事件链表中对应的事件链中;从接口接收到报文时,根据该接口对应的触发条件,在事件链表中匹配相应的事件链,对匹配到的事件链中的命令进行解析后,根据解析结果对报文执行相应的处理。根据本发明,能够实现对网络设备功能的定制更加灵活和方便。
文档编号H04L12/70GK103023765SQ20121052268
公开日2013年4月3日 申请日期2012年12月4日 优先权日2012年12月4日
发明者刘竹辰 申请人:杭州迪普科技有限公司