一种用于虚拟专用拨号网中动态数据注入的方法与流程

文档序号:12068103阅读:266来源:国知局
一种用于虚拟专用拨号网中动态数据注入的方法与流程

技术领域

本发明涉及动态数据注入的装置及方法,尤其是一种用于虚拟专用拨号网中动态数据注入的装置及其方法。



背景技术:

VPDN(Virtual Private Dial-up Network,虚拟专用拨号网络),是基于拨号用户的虚拟专用拨号网业务,亦即以拨号接入的方式上网,通过公共电话交换网传输数据时对网络数据的封包和加密;VPDN中可以传输私有数据,达到私有网络的安全级别。它是利用IP网络的承载功能结合相应的认证和授权机制建立起来的安全的虚拟专用网,是近年来随着Internet技术的发展而迅速发展起来的一种技术。

目前比较常用的VPDN业务是,企业出差人员和跨区域办公的企业可以远程经过公共网络、通过虚拟的加密通道与企业内部的网络连接,而公共网络上的用户则无法穿过虚拟通道访问该企业的内部网络;另外VPDN业务还有一些其他的典型业务如:保险行业无线定损应用、电力行业的无线移动抄表应用等。目前应用在VPDN业务上的转发分流设备能够通过各种高效的查询方法将数据流过滤以及转发,这种装置和方法可以很好的解决对VPDN业务进行监控以及统计的需求,但是如果需要在同一个装置上既能监视上网用户的行为又能给上网用户推送自定义的数据,即对上网用户的上网请求干预后再返回给用户,如有非法的请求或者企业内部指定的请求需要监视但又不丢弃用户的请求,传统的基于VPDN的分流设备是不能满足这种需求的。

传统的分流设备的结构图如图1所示。其中,网络I的上网数据通过串接口达到分类匹配模块后只能单向的通过业务口输出到监控设备。

申请号0213628508的中国发明专利申请公开了虚拟专用拨号网业务数据包的转发方法,利用会话号进行相应会话的快速查询,快速的定位到相应的VPDN数据区;将用户的数据通过查询后转发出去,并不能改变用户的请求目标,也不能做到将上网用户的上网行为干预后再返回给用户,即不能动态的将自定义的数据注入给用户。



技术实现要素:

本发明要解决的问题是目前VPDN服务中并不能实现对上网用户的上网行为进行干预后再返回给用户的现状。

为了解决上述技术问题,本发明提出的具体技术方案是:一种用于虚拟专用拨号网中动态数据注入的装置,包括:串接口单元1、全局控制单元2、分类匹配单元3、业务单元4、回传单元5;

所述串接口单元1,是至少一对串接在网络服务器和交换机之间作为串联流量的转发口;

所述全局控制单元2,是通过配置界面配置业务口和回传口,配置需要重定向到回传口数据包的规则和行为;初始化流表;

所述分类匹配单元3,是接收串接口单元1的数据包,查询规则后根据结果转发至业务单元4、串接口单元1或者回传单元5;接收回传单元5的数据包,查询流表,分析数据包的上下行方向,查询原端口;置数据包的 转发端口为查询到的端口后发送给串接口单元1;

所述业务单元4,是接收分类匹配单元3的数据包,根据上述结果标签将数据包转发到特定的设备或者其他的网络中;

所述回传单元5,是接收分类匹配单元3的数据,将数据发送至外接的服务器,接收外接服务器的数据包并将数据包发送给分类匹配单元3。

上述串接口单元1是成对的;装置上可以有多对串接口以满足串接多条链路。

上述串接口单元1,包含串接口A和串接口B,接收分类匹配单元输出的数据包,根据上下行方向分别从串接口B和串接口A转发到原始链路中。

上述全局控制单元2运行于本发明装置的CPU上,通过数据总线控制其他的单元。

上述全局控制单元2通过管理界面设置接口的属性为业务口或者回传口,初始化流表的空间。本发明装置上可见的物理接口中了除了串接口、管理串口和管理网口外,其他所有的接口都可以是业务口或者回传口,业务口和回传口需要用户明确的定义,但一个接口不能既是回传口也是业务口。

上述分类匹配单元3接收串接口单元1输入的数据包,并在流表中查询行为,如若没有命中则新建流到流表中,然后再查询规则;如若命中则将数据包的行为置为流的行为;同时分类匹配单元3接收回传单元5输入的数据包,并在流表中查询流是否存在,如若存在则需要分析数据包的上下行方向,根据上下行方向查询端口,并置数据包的转发端口为查询到的端口。

上述回传单元5接收来自分类匹配单元3并且命中特定规则的数据包,将所述数据包发送至外接的服务器;接收外接服务器发送的数据包给分类匹配单元3。

本发明是串接在原始链路中,并可以外接服务器,该外接服务器根据不同的规则产生不同的数据包,并将所述数据包通过回传口发回本发明装置中,本发明装置再通过分类匹配单元中的流表匹配上述数据包的原端口,并给上述数据包打上原端口的结果标签,最终根据结果标签将上述动态数据包发送至原始链路中,自此就实现了面向虚拟专用拨号网的动态数据注入。

本发明还提供一种用于虚拟专用拨号网中动态数据注入的方法,步骤包括:

步骤S1,串接口单元1接收上网用户的上网请求,并提取上网请求数据包的流特征;

步骤S2,分类匹配单元3匹配需要转发到回传口的数据包;

根据流特征判断是否在流表中存在,若存在判断该数据包的命中门限值;若不存在则根据所述流特征在流表中动态创建一条流,并将所述新建的流更新到流表中,再查询规则;

判断数据包的命中数,若大于流的命中门限值,置所述数据包的行为为查询流的行为,若小于流动命中门限值则需要查询规则;

命中数小于命中门限或者在流表中不存在的数据包,查询规则集中的三类规则,三类规则分为:target规则、L4规则、L7规则;

根据规则查询结果给数据包打上行为标签结果;

步骤S3,回传口接收外接服务器动态产生的数据包,并查询流表;

所述流表指步骤S2中动态更新过的流表;

查询流表表示,根据所述数据包的流特征在流表中查询符合该特征的流是否存在;若存在,分析所述数据包的上下行方向;若不存在则置该数据包的行为为丢弃;

步骤S4,分析上下行方向,查询端口号;

所述分析上下行方向表示,如果所述数据包方向为上行,则需要在上述流表中查询目的端口;如果所述数据包的方向为下行,则需要在上述流表中查询源端口;并置所述数据包的转发端口为查询到的目的端口或者源端口;

步骤S5,根据流的行为和转发端口将数据包发送到原始链路。

技术效果:

如图2所示,当企业的出差人员经过公共网络访问企业内部的网络时,企业内部的网络可对VPDN的上网数据进行监控和干预,如有非法的请求或者企业内部指定的请求需要监视但又不丢弃用户的请求时就可采用本发明的动态数据注入装置和方法。

与现有技术相比,本发明增加了回传单元,解决了对上网用户的上网请求干预后再返回给用户的需求。本装置上的业务口既能实现公知的数据过滤据转发业务,并且还能实现动态数据注入的业务,且业务口和回传口的定义可以在全局控制单元灵活的配置,这种灵活性和可扩展性可以极大的满足日益复杂的业务需求。

附图说明

图1是传统的过滤转发装置结构图。

图2是本发明装置的网络接入位置图。

图3是本发明面向VPDN的动态数据注入的装置结构图。

图4是本发明面向VPDN的动态数据注入的装置及其方法的结构模块图。

图5是本发明面向VPDN的动态数据注入的装置及其方法的基本流程图。

图6是本发明面向VPDN的动态数据注入的装置及其方法的详细数据流程图。

具体实施方式

下面结合附图和实施对本发明作进一步说明。在下列描述中,限于篇幅原因,不再对一些现有公知常识的内容,包括结构和功能进行赘述。

如图2所示,本发明提供一种串接在网络服务器(简称:LNS)和交换机之间的装置,图2是本发明面向VPDN的动态数据注入的装置及其方法的网络接入位置图。

本发明装置的结构图如图3所示。网络I的上网数据通过串接口达到分类匹配模块,分类匹配模块可以实现传统的转发过滤,转发数据到监控设备,还能实现把上述数据通过回传口输出到外接的服务器,并接收外接服务器产生的数据回传到原始网络中。

图4是本发明面向VPDN的动态数据注入的装置及其方法的结构模块图。

包括串接口单元1中的串接口A和串接口B、全局控制单元2、分类匹配单元3、业务单元4、回传单元5。

串接口A:提供一对外部端口的其中1个,用以连接2个被串接网元设备的其中1个,作为串接流量转发口的其中一个。

端口A为可见的物理接口,可为光接口或者电接口,具备一种或者多重速率能力。端口A和端口B是一对串接口,这属于公知的内容,在此不再赘述。

串接口B:提供一对外部端口的其中1个,用以连接2个被串接网元设备的其中1个,作为串接流量转发口的其中一个。

端口B为可见的物理接口,可为光接口或者电接口,具备一种或者多重速率能力。端口B和端口A是一对串接口,这属于公知的内容,在此不再赘述。

全局控制单元2:提供配置界面,指定装置上的接口哪些为业务口,哪些为回传口,可以指定装置上任意数量的非串接口为回传口。

分类匹配单元3:接收串接口单元1的数据,在流表中查询数据包所属的特征流,如果查询成功则得到匹配结果,如果查询失败再查询规则,得到匹配结果。

具体地,接收串接口单元1输入的数据包,提取流特征,然后在流表中查询该条流是否存在。根据所述查询结果新建流或者继续查询规则。查询流成功的数据包直接得到转发结果,否则查询规则得到转发结果。

接收回传口的数据包,在流表中查询上述数据包所属的流是否存在,如果存在,分析所述数据包的上下行方向,并查找端口号,最后根据转发端口号转发原始数据包。这属于公知的内容,在此不再详述。

业务单元4:接收分类匹配单元3的数据包并根据转发行为转发数据包,这属于公之内容,在此不再详述。

回传单元5:接收分类匹配单元3匹配的特定数据包并转发所述数据包至外接的服务器;接收外接的服务器产生的数据包并将所述数据包转发至分类匹配单元3进行行为结果查询和上下行分析。回传口是物理上可见的端口,可以是电口或者收发的光口。

如图5是本发明面向VPDN的动态数据注入的方法基本流程图。

步骤S1,串接口单元1接收上网用户的上网请求,并提取上网请求数据包的流特征;

步骤S2,分类匹配单元3匹配需要转发到回传口的数据包;

根据流特征判断是否在流表中存在,若存在判断该数据包的命中门限值;若不存在则根据所述流特征在流表中动态创建一条流,并将所述新建的流更新到流表中,再查询规则;

判断数据包的命中数,若大于流的命中门限值,置所述数据包的行为为查询流的行为,若小于流动命中门限值则需要查询规则;

命中数小于命中门限或者在流表中不存在的数据包,查询规则集中的三类规则,三类规则分为:target规则、L4规则、L7规则;

根据规则查询结果给数据包打上行为标签结果;

步骤S3,回传口接收外接服务器动态产生的数据包,并查询流表;

所述流表指步骤S2中动态更新过的流表;

查询流表表示,根据所述数据包的流特征在流表中查询符合该特征的流是否存在;若存在,分析所述数据包的上下行方向;若不存在则置该数据包的行为为丢弃;

步骤S4,分析上下行方向,查询端口号;

所述分析上下行方向表示,如果所述数据包方向为上行,则需要在上述流表中查询目的端口;如果所述数据包的方向为下行,则需要在上述流表中查询源端口;并置所述数据包的转发端口为查询到的端口;

步骤S5,根据流的行为和串接口将数据包发送到原始链路。

下面结合图6以某公司的一个具体需求为例,对本发明面向VPDN的动态数据注入的装置作示例性说明。

如图6所示,用户名为终端1,发送域名(domain)为"www.wiki.com",且搜索的关键字为"VPDN"的数据请求从串接口A进入本发明装置。本发明装置可以将访问“www.wiki.com”的HTTP请求报文重定向到公司内部的wiki服务器优先进行搜索,如果在公司内部的wiki上没有搜到关键字的结果就将请求发送给www.wiki.com。本发明装置完成以上功能的方法包括如下步骤:

初始状态中,串接口A连接公司内部局域网的路由器,串接口B连接公司外网的路由器,串接口C连接了一台服务器1,假设这台服务器的ip地址为"192.168.8.100",且这台服务器上运行着公司内部的wiki网站。

用户通过SSH登录到设备的管理界面,配置接口C为回传口,配置一条domain="www.wiki.com"的规则,设置这条规则的转发行为为“从接口C转发。”

步骤6a01,终端1向"www.wiki.com"发起HTTP请求,关键字为“VPDN”。假设终端1的IP地址为192.168.8.111,该局域网的网关为192.168.8.1。

步骤6a02,串接口A收到请求报文后,首先从数据包中提取流特征,即sip="192.168.8.111", dip="192.168.8.1", sport="A", dport="B", protocol="http";然后进入步骤6a03。

流表项的信息如下表表1所示,通常流是由五元组所唯一定义的,包括协议类型(Protocol)、源IP(sip)、目的IP(dip)、源端口(sport)、目的端口(dport)。具有相同五元组特征的数据包属于同一条流。由于五元组区分了源和目的IP,因此这样的流具有单向的特征。对于一个完整的交互过程,其数据包将属于两条不同的流。在很多应用中更关注的是连接,即完整的交互过程。连接包括了两条源IP地址、源端口与目的IP地址、目的端口互换的流。为了便于表述,这里用流的概念来表示连接,或者说是双向流。这样一条流由协议类型与一对IP、端口组来唯一定义。初始状态下流表为空,原始端口号、目的端口号和协议类型暂时填为0,原始IP和目的IP暂时填为0.0.0.0,流的行为暂时填为丢弃(drop)。表1:

步骤6a03,利用提取的流特征查找流表,如果在流表中找到了符合这条流特征的流,则转入步骤6a04,否则进入步骤6a05。

步骤6a04,如果数据包所属的流在流表中存在:这条流的前门限值(matchCounter)个包都会查询规则表(转步骤6a07),直到查不到匹配规则,或者超过这个门限值(matchCounter),则该用户定义的静态流的行为决定后续数据包的转发方式。门限值(matchCounter)默认为10,用户可以在命令行中自定义这个值。

步骤6a05,如果在流表中没有匹配到原始端口号为A,目的端口号为B,原始IP为192.168.8.111,目的端口号为192.168.8.1,协议类型为http的流,则在流表中新建这条流,并更新到流表中,然后进入第二层规则查询。更新后的流表内容见下表表2所示:

步骤6a06,如果流存在且命中数大于流的命中门限值,置查询流的行为为数据包最终的行为。

步骤6a07,在流表中没有命中的数据包和小于门限值的数据包,都需要进行第二层的规则匹配。

规则的匹配通过规则表来实现,本发明包含4个规则集和3类规则组成。3类规则包括:特定对象(target)规则、L4规则、L7规则。target规则可与L4或L7规则组合,即同时命中target规则的分类表项和L4规则的分类表项或L7规则的分类表项才算命中。

每个规则子类按不同的匹配处理和转发方式分为4个优先级,每个优先级可以设置各自的数据处理和转发行为。每个优先级里面可以添加20K具有相同处理行为的规则分类表项(class-entry)。

未命中任何规则的数据包会自动命中成为default的表项,并且按default定义的行为进行处理。

数据包首先查询target规则表,然后根据行为查询L4或者L7的表。通过设置target规则表的default决定先查L4还是L7。

target规则包含两种分类表项:ip和name。ip是用户连接认证成功后所使用的上网IP;name是radius和ppp用户名。

target规则有1-4以及default优先级,1是最高优先级,4是最低优先级,default是默认优先级。每个优先级可以添加分类表项的容量为20K,不同优先级不允许存储相同规则,默认优先级default不允许配置规则。

默认优先级default的默认行为是loop,其余优先级的默认行为未设置(UNSET)。每个优先级的行为可配置,target规则的行为可配置为loop、drop、fw hash、redirect hash、to l4、to l7,即正常转发、丢弃、hash转发(正常转发同时复制到回传口或输出口)、重定向(重定向到输出口或回传口)、转至L4规则查询、转至L7规则查询。

L4规则表项如下表表3所示,包含ip、protocol、protocol+port、domain几种类型的分类表项。ip是数据包L2TP内层的ip;protocol内层中的protocol;protocol+port是{UDP|TCP}+端口号;domain是dns请求的域名,最终是匹配域名对应的ip,ip由设备自动获取dns响应包学习得到。默认情况下规则表项为空,暂时不填入任何数据。表3:

L4规则都有1-4以及default优先级,1是最高优先级,4是最低优先级,default为默认优先级。每个优先级可以添加分类表项的容量为20K,默认优先级不允许配置规则,不同优先级不允许存储相同规则。

默认优先级default的默认行为是loop,其余优先级的默认行为未设置(UNSET)。每个优先级的行为可配置,L4规则的行为可配置为loop、drop、fw hash、redirect hash、to l7,即正常转发、丢弃、hash转发、hash 重定向、转至L7规则查询。

默认优先级的行为还可以设置为to l7,转至L7规则查询。若同时命中不同优先级,取优先级最高规则对应的转发行为。dns域名对应的ip会根据设备收到的dns数据包动态维护,每个域名最多保存256个ip,获取的ip的个数超过该数目会自动覆盖最初保存的ip。

L7规则包含ud、host、uri、host+uri分类表项。主动控制和被动监视最多分别支持128条ud分类表项,每条4个ud,每个ud支持四个字节。

L7规则都有1-4以及default优先级,1是最高优先级,4是最低优先级,default是默认优先级。每个优先级可以添加分类表项的容量为20K,默认优先级不允许配置规则,不同优先级不允许存储相同规则。

默认优先级default的默认行为是loop,其余优先级的默认行为未设置(UNSET)。每个优先级的行为可配置,L7规则的行为可配置为loop、drop、fw hash、redirect hash、to l4,即正常转发、丢弃、hash转发、hash重定向、转至L4规则查询。

默认优先级的行为还可设置为to l4,转到L4规则查询。若同时命中不同优先级,取优先级最高规则对应的转发行为。

终端1根据用户设置的静态规则优先匹配target规则,由于target规则表项中不对域名(domain)进行匹配,而L4规则会对域名(domian)匹配,所以用户可以将target的default规则设置为转向L4,具体的规则配置如下所示:

add ruleset 1 control l4: 1 domain= "www.wiki.com"

由于公司需要对"www.wiki.com"的请求重定向到内部的wiki,就需要在静态规则中配置一条将上述规则中的ruleset 1 从回传口C转发的行为,具体行为配置如下所示(假设回传口C的在本发明装置上的物理接口号为9):

set ruleset 1 control target: default to l4

set ruleset 1 control l4: 1 redirect hash s 9

行为转发和规则集的对应表,由于是公知内容,本处就不再详述。

步骤6a08,终端1的数据请求包如果在规则集中匹配到规则表项,就将该数据包的行为置为规则的行为。

步骤6a09,如果终端1的数据请求包在规则集中匹配失败,置该数据包的行为为丢弃。

步骤6b01, 终端1的数据请求通过回传口C发送给了IP地址为192.168.6.100的服务器1。服务器1在数据库中查找关键字为“VPDN”的数据,并将查询到的结果回传给接口C。

步骤6b02,回传口收到数据后首先提取数据包的流特征,并在表1所述的流表中查询流。如果找到符合特征的流,转到步骤6b03,否则转到6b04。

步骤6b03,服务器1发回来的数据包,如果在流表中存在符合该数据包特征的流,首先需要分析数据包的上下行方向。本实例中,终端1的请求数据在服务器1经过处理后返回的数据有可能是上行也有可能是下行;如果在服务器1的数据库中找到了关键字为“VPDN”的信息,则数据包为应答包,就为下行;如果在服务器1的数据库中未找到关键字为“VPDN”的信息,则需要将终端1的请求重新返回到链路中,此时回传口C收到的数据包为请求包,为上行。数据包的信息下表表4所示:

步骤6b04,服务器1发回的数据包如果没有在流表中匹配成功,则置该包的行为为丢弃。

步骤6b05,根据步骤5、6b03中分析上下行的结果,更新表4内容。如果服务器1发回来的数据包为上行数据,即没有找到关键字为“VPDN”的信息;则需要在表2所示的流表中查找这条数据包的原始目的端口号,表2中找到了目的端口为B。如果服务器1发回来的数据包为下行数据,即找到了关键字为“VPDN”的信息;则需要在表2所示的流表中查找这条数据包的原始输入端口号,表2中找到了原始端口为A。更新后的表4有两种可能,如下表表5和表6所示。表5:

表6:

步骤610,根据数据包的转发行为将数据包从特定端口转发出去,或者丢弃。这里的转发行为可以转发到回传口,也可以转发到串接口。

综上所述,结果即为:公司的服务器上如果能找到“VPDN”的内容,则将公司内部的wiki网页推送回用户端,如果在公司内部没有找到“VPDN”的资料则将www.wiki.com中搜索“VPDN”的请求发送出去转至域名为www.wiki.com的网站。

综上所述,本实施例中用户通过VPDN的上网请求已经被公司内部的网络设备进行了干预,但并没有丢弃用户的请求;并且还对用户发起的互联网请求进行了内部数据优先匹配,即将内部数据库中的数据注入给了上网的用户,因此实现了面向VPDN的动态数据注入的需求。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1