报文转发方法及装置与流程

文档序号:14253066阅读:286来源:国知局
报文转发方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种报文转发方法及装置。



背景技术:

目前,为了保护网络服务器(webserver)不会受到外网的攻击。在webserver前架设网络应用防火墙/防护系统(也称:网站应用级入侵防御系统,英文:webapplicationfirewall,简称:waf)。通过waf的反向代理功能,在转发客户端发送的请求报文前,对请求进行一次清洗。也即,只有合法的请求报文才会被送到webserver处进行处理,不合法的请求报文将被waf进行安全策略过滤而丢弃。

如图1a-图1d为现有技术中客户端通过waf访问webserver以及webserver通过waf回应客户端的流程示意图。以客户端发送的请求为超文本传输协议(英文:hypertexttransferprotocol,简称:http)请求报文为例,图1a所示为客户端访问waf的流程。http请求报文到达防火墙后,防火墙根据网络地址转换原则,将http请求报文通过网关转发至负载均衡(英文:loadbalance,简称:lb)设备。lb选择一个waf后,再次将http请求报文发送至网关,网关将http请求转发至选择出的waf。

图1b所示为waf访问webserver的流程。waf的业务检测接口在接收到http请求报文后,对http请求报文进行安全策略匹配。若http请求报文为合法报文,则对该http请求报文进行代理。通过业务检测接口,将http请求报文发送至网关。网关向lb设备发送http请求报文。lb设备确定该http请求报文为发送至webserver的请求报文后,再发送至网关。由网关将该http请求报文发送至webserver处。

图1c所示为webserver回应waf的流程。webserver收到http请求报文后,对http请求报文进行回应,将回应报文发送至网关。网关收到回应报文后,将回应报文转发至waf所在私网中。图1d所示为waf回应客户端的流程。waf回应客户端的流程为图1a客户端访问waf的流程的逆过程,在此不再复述。

在对上述流程的描述可知,在图1b所示的流程中,由于waf向网关发送的http请求报文的源网络协议(英文:internetprotocol,简称:ip)地址为waf的业务检测接口的ip地址,网关在根据自身的转发表进行匹配时,会将该http请求报文直接转发至lb设备,由lb设备进行地址匹配后转发至网关,最后再由网关发送至webserver,这使得waf访问webserver的路径在网关和lb设备上存在冗余转发,增加了网关和lb设备的负担。



技术实现要素:

有鉴于此,本发明提出了一种报文转发方法及装置,减轻了网关和lb设备的负担,同时,也实现了waf访问webserver的流量与外网访问waf的流量隔离。

在第一方面,本发明提供了一种报文转发方法,所述方法应用于web应用防护系统waf,所述方法包括:

从所述waf的第一虚接口接收客户端发送的第一请求报文,所述第一请求报文包括所述客户端待访问的服务器的域名;

根据所述服务器的域名,获取所述服务器的ip地址;

根据所述服务器的ip地址查找已存储的转发信息,生成第二请求报文,所述第二请求报文的源ip地址为所述waf的第二虚接口的ip地址,目的ip地址为所述服务器的ip地址;

通过所述第二虚接口向所述waf的下一跳网络设备发送所述第二请求报文,以使所述下一跳网络设备向所述服务器转发所述第二请求报文。

在一种可能的实现方式中,所述方法还包括:

从所述第二虚接口接收所述服务器发送的第一回应报文,所述第一回应报文的源ip地址为所述服务器的ip地址,目的ip地址为所述第二虚接口的ip地址;

当确定所述第一回应报文为所述服务器向所述客户端发送的回应报文时,根据所述第二虚接口与所述第一虚接口之间的映射关系,将所述第一回应报文中的源ip地址、目的ip地址进行转换处理,得到第二回应报文,所述第二回应报文的源ip地址为所述第一虚接口的ip地址、目的ip地址为所述客户端的ip地址;

通过所述第一虚接口向所述waf的下一跳网络设备发送所述第二回应报文,以使所述waf的下一跳网络设备向所述客户端转发所述第二回应报文。

在一种可能的实现方式中,所述方法还包括:

接收控制器发送的配置命令,所述配置命令携带有所述转发信息;

将所述转发信息进行存储;

其中,所述转发信息包括所述waf提供保护的服务器的ip地址、下一跳出接口信息以及所述下一跳网络设备的地址信息。

在一种可能的实现方式中,所述从所述waf的第一虚接口接收客户端发送的第一请求报文之后,所述方法还包括:

对所述第一请求报文进行安全策略匹配;

若所述第一请求报文为合法报文,则解析所述第一请求报文,并获取所述服务器的域名。

在一种可能的实现方式中,所述第一虚接口为业务检测接口,所述第二虚接口为服务访问接口。

在第二方面,本发明提供了一种报文转发装置,所述装置应用于web应用防护系统waf,所述装置包括:

第一接收模块,用于从所述waf的第一虚接口接收客户端发送的第一请求报文,所述第一请求报文包括所述客户端待访问的服务器的域名;

获取模块,用于根据所述服务器的域名,获取所述服务器的ip地址;

第一报文生成模块,用于根据所述服务器的ip地址查找已存储的转发信息,生成第二请求报文,所述第二请求报文的源ip地址为所述waf的第二虚接口的ip地址,目的ip地址为所述服务器的ip地址;

第一发送模块,用于通过所述第二虚接口向所述waf的下一跳网络设备发送所述第二请求报文,以使所述下一跳网络设备向所述服务器转发所述第二请求报文。

在一种可能的实现方式中,所述装置还包括:

第二接收模块,用于从所述第二虚接口接收所述服务器发送的第一回应报文,所述第一回应报文的源ip地址为所述服务器的ip地址,目的ip地址为所述第二虚接口的ip地址;

第二报文生成模块,用于当确定所述第一回应报文为所述服务器向所述客户端发送的回应报文时,根据所述第二虚接口与所述第一虚接口之间的映射关系,将所述第一回应报文中的源ip地址、目的ip地址进行转换处理,得到第二回应报文,所述第二回应报文的源ip地址为所述第一虚接口的ip地址、目的ip地址为所述客户端的ip地址;

第二发送模块,用于通过所述第一虚接口向所述waf的下一跳网络设备发送所述第二回应报文,以使所述waf的下一跳网络设备向所述客户端转发所述第二回应报文。

在一种可能的实现方式中,所述装置还包括:

第三接收模块,用于接收控制器发送的配置命令,所述配置命令携带有所述转发信息;

存储模块,用于将所述转发信息进行存储;

其中,所述转发信息包括所述waf提供保护的服务器的ip地址、下一跳出接口信息以及所述下一跳网络设备的地址信息。

在一种可能的实现方式中,所述装置还包括:

匹配模块,用于对所述第一请求报文进行安全策略匹配;

解析模块,用于若所述第一请求报文为合法报文,则解析所述第一请求报文,并获取所述服务器的域名。

在一种可能的实现方式中,所述第一虚接口为业务检测接口,所述第二虚接口为服务访问接口。

在waf访问webserver的过程中,waf通过第一虚接口接收到客户端发送的第一请求报文。由于waf的第二虚接口的ip地址没有加入lb设备的实服务器组成员中。因此,waf生成的第二请求报文到达网络设备后,不会被网络设备中的策略路由送往lb设备进行目的地址匹配后再次转发至网络设备,而是直接转发到了webserver所在的私网中,减轻了网络设备和lb的负担;同时,也实现了waf访问webserver的流量与外网(客户端)访问waf的流量隔离。

根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。

图1a示出一示例的外网客户端通过waf访问服务器流程应用于lb组网场景的示意图;

图1b示出一示例的外网客户端通过waf访问服务器流程应用于lb组网场景的示意图;

图1c示出一示例的外网客户端通过waf访问服务器流程应用于lb组网场景的示意图;

图1d示出一示例的外网客户端通过waf访问服务器流程应用于lb组网场景的示意图;

图2示出根据本发明一实施例的报文转发方法的流程图;

图3示出根据本发明一实施例的报文转发方法的流程图;

图4示出根据本发明一实施例的报文转发方法的流程图;

图5示出根据本发明一实施例的报文转发方法的流程图;

图6是根据一示例性实施例示出的一种报文转发方法的应用场景的示意图;

图7示出根据本发明一实施例的报文转发装置的框图;

图8示出根据本发明一实施例的报文转发装置的框图;

图9示出根据本发明一实施例的报文转发装置的硬件框图。

具体实施方式

以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。

为了解决上述技术问题,本发明实施例提供了一种报文转发方法,以减轻网关和lb设备的负担,并且能够实现在waf访问webserver的过程中,与外网(客户端)访问waf的流量相互隔离。

图2示出根据本发明一实施例的报文转发方法的流程图。该报文转发方法可以应用于waf。该waf可集成部署在网络中的设备上,例如,部署在服务器、路由器上。如图2所示,该方法可以包括:

步骤s101,从所述waf的第一虚接口接收客户端发送的第一请求报文,所述第一请求报文包括所述客户端待访问的服务器的域名。

具体地,客户端发起对webserver的访问。如图1a所示客户端访问waf的流程。客户端生成第一请求报文。该第一请求报文包括源ip地址、目的ip地址以及目的域名。其中,源ip地址为客户端的ip地址;目的ip地址为lb设备的外网ip地址;目的域名为待访问的webserver的域名地址。

该第一请求报文到达防火墙后,防火墙确定目的ip地址为lb设备的外网ip地址,根据自身配置的网络地址转换(英文:networkaddresstranslation,简称:nat)规则以及转发规则,防火墙将第一请求报文的目的ip地址转换为lb设备的虚服务器ip地址。防火墙通过网关将第一请求报文转发至lb设备进行负载均衡调度。

lb设备接收到第一请求报文后,从多个waf中选择出一个可对客户端发送的http请求报文进行处理的waf(lb设备可根据当前多个waf的负载能力进行选择),再次将第一请求报文的目的ip地址转换为选择出的waf的第一虚接口的ip地址。lb设备再次将第一请求报文发送至网关。

网关接收到第一请求报文后,查找自身的路由表,对第一请求报文进行虚拟扩展局域网(英文:virtualextensiblelan,简称:vxlan)隧道封装操作,将该封装后的第一请求报文转发至与选择出的waf连接的vxlan隧道端点(英文:vxlantunnelendpoint,简称:vetp)1处。vetp1对封装后的第一请求报文进行vxlan隧道解封装操作,得到第一请求报文。vetp1根据第一请求报文的目的ip地址,将第一请求报文发送至waf的第一虚接口。

至此,waf通过第一虚接口接收客户端发送的第一请求报文。第一请求报文的源ip地址为客户端的ip地址、目的ip地址为waf的第一虚接口的ip地址。

在本发明实施例中,第一虚接口为业务检测接口,第一虚接口是软件定义网络(英文:softdefinenetwork,简称:sdn)控制器在添加waf时,定义的waf的接口。该接口也可以称为外网流量接口。

举例来说,sdn控制器可以在添加waf时对waf的接口进行定义。例如,sdn控制器定义waf的eth0网卡为业务检测接口,并保存这个接口的mac地址。waf上线时,eth0网卡上电,并以普通虚接口(英文:virtualport,简称:vport)形式上线。sdn控制器学习到这个vport,并获取这个vport对应的网关的ip地址。

在本发明实施例中,第一请求报文可以是http/https请求报文,或者其他网络协议的访问请求报文。

步骤s102,根据所述服务器的域名,获取所述服务器的ip地址。

具体地,waf接收到第一请求报文后,waf根据第一请求报文包括的待访问的webserver的域名,查找本地配置的保护站点域名信息,得到客户端待访问的webserver的ip地址。

步骤s103,根据所述服务器的ip地址查找已存储的转发信息,生成第二请求报文,所述第二请求报文的源ip地址为所述waf的第二虚接口的ip地址,目的ip地址为所述服务器的ip地址。

具体地,waf在得到webserver的ip地址后,查找已存储的转发表。从转发表中获取转发第一请求报文的转发信息。waf根据转发信息,将第一请求报文的源ip地址转换为waf的第二虚接口的ip地址,目的ip地址转换为webserver的ip地址。waf生成第二请求报文。

可以理解的是,转发信息包括waf提供保护的服务器的ip地址、下一跳出接口信息(在本发明实施例中也即是第二虚接口的ip地址)以及下一跳网络设备(在本发明实施例中也即是网关)的地址信息。

在本发明实施例中,第二虚接口为服务访问接口,第二虚接口是sdn控制器在添加waf节点设备时,定义的waf的接口。该接口也可以称为内网流量接口。

举例来说,sdn控制器可以在添加waf时对waf的接口进行定义。例如,sdn控制器定义waf的eth1网卡为服务访问接口,并保存这个接口的mac地址。waf上线时,eth1网卡上电,并以普通vport形式上线。sdn控制器会学习到这个vport,并获取这个vport对应的网关的ip地址。

在本发明实施例中,第二请求报文也可以是http/https请求报文,或者其他网络协议的访问请求报文,本发明实施例对此不作限定。

步骤s104,通过所述第二虚接口向所述waf的下一跳网络设备发送所述第二请求报文,以使所述下一跳网络设备向所述服务器转发所述第二请求报文。

具体地,waf在生成第二请求报文后,需将第二请求报文发送至webserver。根据步骤s101中网关通过与waf连接的vtep1向waf转发第一请求报文的逆过程,waf生成第二请求报文后,通过第二虚接口向与自身连接的vtep1发送第二请求报文。vtep1根据第二请求报文的源、目的ip地址信息,确定第二请求报文需通过vxlan隧道进行转发。vtep1对第二请求报文进行vxlan隧道封装操作,并通过vxlan隧道向网关发送封装后的第二请求报文。

网关接收到封装后的第二请求报文后,进行vxlan隧道解封装操作。网关得到第二请求报文。根据第二请求报文的源、目的ip地址信息查找自身的路由表,网关确定还需再次对第二请求报文进行vxlan隧道封装操作,并通过vxlan隧道才可将第二请求报文转发至webserver中。此时,网关再次对第二请求报文进行vxlan隧道封装操作,并将封装后的第二请求报文发送至与webserver连接的vtep2处。vetp2对封装后的第二请求报文进行vxlan隧道解封装操作,得到第二请求报文。vetp2根据第二请求报文的目的ip地址,将第二请求报文发送至webserver。

webserver接收到第二请求报文后,对第二请求报文进行相应的处理。

进一步地,waf可与webserver建立tcp连接。通过tcp连接方式,waf与webserver之间进行通信交互。例如,waf通过第二虚接口向webserver发送第二请求报文。

因此,在waf访问webserver的过程中,由于waf的第二虚接口的ip地址没有加入lb设备的实服务器组成员中。因此,waf生成的第二请求报文到达网关后,不会再被网关的策略路由送往lb设备进行目的地址匹配后再次转发至网关,而是直接通过网关转发至webserver所在的私网中,减轻了网关和lb设备的负担。通过为waf配置相互独立的第一虚接口与第二虚接口,将waf访问webserver的流量通过第二虚接口进行转发,也实现了waf访问webserver的流量与外网访问waf的流量隔离。

图3示出根据本发明一实施例的报文转发方法的流程图。如图3所示,waf接收到第一请求报文后,所述方法还可以包括:

步骤s105,对所述第一请求报文进行安全策略匹配;

步骤s106,若所述第一请求报文为合法报文,则解析所述第一请求报文,并获取服务器的域名。

具体地,sdn控制器在添加waf时,还为waf配置了安全策略、转发规则和保护站点配置信息等。其中,保护站点配置信息可以包括保护站点域名和对应的ip地址等。

在本发明实施例中,保护站点为前述实施例中的webserver。每一个webserver都有唯一的域名以及对应的ip地址。在实际应用中,保护站点还可以是防火墙等其他网络设备,本发明实施例对此不作限定。

在一个例子中,第一请求报文为http请求报文。waf在接收到第一http请求报文后,先对第一http请求报文进行安全策略匹配。若第一http请求报文为合法报文,则waf解析第一http请求报文,并获取webserver的域名。waf获取webserver的域名后,根据保护站点配置信息,waf进行域名映射操作,得到webserver的ip地址。

需要说明的是,在图3中的步骤s101-步骤s104与前述实施例图2中的步骤s101-步骤s104相同,在此不再复述。

图4示出根据本发明一实施例的报文转发方法的流程图。如图4所示,在图4中的步骤s101-步骤s104与前述实施例图2中的步骤s101-步骤s104相同,在此不再复述。在步骤s104之后,所述方法还可以包括:

步骤s107,从所述第二虚接口接收所述服务器发送的第一回应报文,所述第一回应报文的源ip地址为所述服务器的ip地址,目的ip地址为所述第二虚接口的ip地址。

具体地,webserver在接收到waf发送的第二请求报文后,对第二请求报文做出回应,webserver回应waf的流程可参考图1c所示。

webserver生成第一回应报文。其中,第一回应报文的源ip地址为webserver的ip地址,目的ip为第二虚接口的ip地址。webserver向与自身连接的vtep2发送第一回应报文。vtep2根据第一回应报文的源、目的ip地址信息,确定第一回应报文需通过vxlan隧道进行转发。vtep2对第一回应报文进行vxlan隧道封装操作,并通过vxlan隧道向网关发送封装后的第一回应报文。

网关接收到封装后的第一回应报文后,进行vxlan隧道解封装操作。网关得到第一回应报文。根据第一回应报文的源、目的ip地址信息查找自身的路由表,网关确定还需再次对第一回应报文进行vxlan隧道封装操作,并通过vxlan隧道才可将第一回应报文转发至waf中。此时,网关再次对第一回应报文进行vxlan隧道封装操作,并将封装后的第一回应报文发送至与waf连接的vtep1处。vetp1对封装后的第一回应报文进行vxlan隧道解封装操作,得到第一回应报文。vetp1根据第一回应报文的目的ip地址,将第一回应报文发送至waf的第二虚接口。

至此,waf通过第二虚接口接收webserver发送的第一回应报文。

可以理解的是,在本发明实施例中,第一回应报文也可以是http回应报文。

步骤s108,根据所述第二虚接口与第一虚接口之间的映射关系以及第一回应报文生成第二回应报文,所述第二回应报文的源ip地址为所述第一虚接口的ip地址、目的ip地址为所述客户端的ip地址。

具体地,waf从第二虚接口接收服务器回应于第二请求报文发送的第一回应报文后,waf先将第一回应报文复制在自身的内存中。

waf根据已记录的接收第一请求报文的第一虚接口与发送第二请求报文的第二虚接口之间的映射关系,查找接收第一回应报文的第二虚接口对应的第一虚接口。

根据查找到的第一虚接口,waf生成第二回应报文。进一步地,waf从内存中获取第一回应报文,并将第一回应报文的源ip地址转换为查找到的第一虚接口的ip地址,目的ip地址转换为客户端的ip地址。waf还将第一回应报文包括的报文内容复制到第二回应报文中,waf得到第二回应报文。

步骤s109,通过所述第一虚接口向所述waf的下一跳网络设备发送所述第二回应报文,以使所述waf的下一跳网络设备向所述客户端转发所述第二回应报文。

具体地,waf在生成第二回应报文后,需将第二回应报文发送至客户端。根据步骤s101中客户端通过网关、与waf连接的vtep1向waf转发第一请求报文的逆过程,waf生成第二回应报文后,通过第一虚接口向与自身连接的vtep1发送第二回应报文。vtep1根据第二回应报文的源、目的ip地址信息,确定第二回应报文需通过vxlan隧道进行转发。vtep1对第二回应报文进行vxlan隧道封装操作,并通过vxlan隧道向网关发送封装后的第二回应报文。

网关接收到封装后的第二回应报文后,进行vxlan隧道解封装操作。网关得到第二回应报文。根据第二回应报文的源ip地址信息确定需将第二回应报文转发至lb设备。网关向lb设备发送第二回应报文。

lb设备接收到第二回应报文后,根据第二回应报文的源、目的ip地址进行地址匹配。lb设备将第二回应报文的源ip地址转换为lb的需服务器的ip地址,目的ip地址保持不变。lb再次将第二回应报文发送至网关。

网关接收到第二回应报文后,查找自身的路由表,将第二回应报文转发至防火墙。该第二回应报文到达防火墙后,防火墙确定目的ip地址为客户端的ip地址,根据自身配置的nat规则以及转发规则,防火墙将第二回应报文的源ip地址转换为lb设备的外网ip地址。防火墙将第二回应报文转发至客户端。

至此,客户端接收到第二回应报文。客户端、waf、webserver完成一次访问请求交互流程。

图5示出根据本发明一实施例的报文转发方法的流程图。如图5所示,在图5中的步骤s101-步骤s104与前述实施例图2中的步骤s101-步骤s104相同,在此不再复述。在步骤s101之前,所述方法还可以包括:

步骤s110,接收控制器发送的配置命令,所述配置命令携带有所述转发信息。

步骤s111,将所述转发信息进行存储。

具体地,sdn控制器在添加waf时,为waf配置的、waf提供保护的保护站点的转发信息。sdn控制器生成配置命令。该配置命令包括转发信息。其中,转发信息包括waf提供保护的服务器的ip地址、下一跳出接口信息以及下一跳网络设备的地址等信息。waf接收到sdn控制器下发的配置命令后,从配置命令中获取转发信息,并将转发信息进行存储。

可以理解的是,转发信息可以是向waf配置去往webserver的路由。sdn控制器指定waf的下一跳出接口为第二虚接口,下一跳为第二虚接口对应的网络设备的ip地址(例如,第二虚接口对应的网关的ip地址),使用vxlan隧道转发报文等。

在一个示例中,当waf与webserver位于不同子网时,下一跳网络设备的地址为第二虚接口对应的网关的ip地址。

在另一示例中,当waf与webserver位于相同子网时,waf设备主动学习到去往webserver的主机路由。该主机路由的优先级高于sdn控制器下发的转发信息中包括的路由。则waf按照主机路由方式查找自身的路由表,以获取下一跳网络设备的地址。

因此,通过为waf配置waf提供保护的保护站点的转发信息,将waf访问保护站点的下一跳出接口设置为第二虚接口,使得网关接收到waf发送的请求报文后,不会再被网关的策略路由送往lb设备进行目的地址匹配后再次转发至网关,而是直接通过网关转发至保护站点所在的私网中,减轻了网关和lb设备的负担。

应用示例

图6是根据一示例性实施例示出的一种报文转发方法的应用场景的示意图。以下结合图6对本发明实施例提供的报文转发方法的流程进行描述,以便于理解本发明实施例的目的,本领域技术人员应该理解,以下示例不应视为对本发明的限制。

如图6所示,在该应用示例中,包括客户端、防火墙、网关、lb设备、多个vtep(vtep1、vtep2)、与vtep1连接的多个waf,以及与vtep2连接的webserver。

sdn控制器添加waf时,通过发送配置命令,为每个waf配置了第一虚接口(下述以业务检测接口为例进行说明)和第二虚接口(下述以服务访问接口为例进行说明),并且还为每个waf配置了安全策略、转发规则和保护站点配置信息等。

如图6所示,以各网络设备转发http请求报文为例,本发明实施例提供的报文转发方法具体过程为:waf从业务检测接口接收客户端发送的第一http请求报文,第一http请求报文的源ip地址为源ip地址为客户端的ip地址、目的ip地址为业务检测接口的ip地址。第一http请求报文还包括客户端待访问的服务器的域名。waf根据已配置的安全策略对第一http请求报文进行安全策略匹配。若第一http请求报文为合法报文,waf从第一http请求报文中获取服务器的域名。

waf根据服务器的域名进行域名映射,得到webserver的ip地址。

根据服务器的ip地址查找已存储的转发信息,waf对第一http请求报文的源ip地址、目的ip地址进行转换,生成第二http请求报文,第二http请求报文的源ip地址为服务访问接口的ip地址,目的ip地址为服务器的ip地址。

可以理解的是,waf接收客户端在通过防火墙、网关、lb设备发送的第一http请求报文的过程在前述实施例中已进行了详细描述,在此不再复述。

waf在生成第二http请求报文后,通过第二虚接口向与自身连接的vtep1发送第二http请求报文。vtep1根据第二http请求报文的源、目的ip地址信息,确定第二http请求报文需通过vxlan隧道进行转发。vtep1对第二http请求报文进行vxlan隧道封装操作,并通过vxlan隧道向网关发送封装后的第二http请求报文。

网关接收到封装后的第二http请求报文后,进行vxlan隧道解封装操作。网关得到第二http请求报文。根据第二http请求报文的源、目的ip地址信息查找自身的路由表,网关确定还需再次对第二http请求报文进行vxlan隧道封装操作,并通过vxlan隧道才可将第二http请求报文转发至webserver中。此时,网关再次对第二http请求报文进行vxlan隧道封装操作,并将封装后的第二http请求报文发送至与webserver连接的vtep2处。vetp2对封装后的第二http请求报文进行vxlan隧道解封装操作,得到第二http请求报文。vetp2根据第二http请求报文的目的ip地址,将第二http请求报文发送至webserver。

webserver接收到第二http请求报文后,对第二请求报文进行相应的处理。

对第二http请求报文做出回应。webserver生成第一http回应报文。其中,第一http回应报文的源ip地址为webserver的ip地址,目的ip为第二虚接口的ip地址。webserver向与自身连接的vtep2发送第一http回应报文。vtep2根据第一http回应报文的源、目的ip地址信息,确定第一http回应报文需通过vxlan隧道进行转发。vtep2对第一http回应报文进行vxlan隧道封装操作,并通过vxlan隧道向网关发送封装后的第一http回应报文。

网关接收到封装后的第一http回应报文后,进行vxlan隧道解封装操作。网关得到第一http回应报文。根据第一http回应报文的源、目的ip地址信息查找自身的路由表,网关确定还需再次对第一http回应报文进行vxlan隧道封装操作,并通过vxlan隧道才可将第一http回应报文转发至waf中。此时,网关再次对第一http回应报文进行vxlan隧道封装操作,并将封装后的第一http回应报文发送至与waf连接的vtep1处。vetp1对封装后的第一http回应报文进行vxlan隧道解封装操作,得到第一http回应报文。vetp1根据第一http回应报文的目的ip地址,将第一http回应报文发送至waf的第二虚接口。

至此,waf通过第二虚接口接收webserver发送的第一http回应报文。

waf将第一http回应报文复制在自身的内存中。waf根据已记录的接收第一http请求报文的第一虚接口与发送第二http请求报文的第二虚接口之间的映射关系,查找接收第一http回应报文的第二虚接口对应的第一虚接口。

根据查找到的第一虚接口,waf生成第二http回应报文。进一步地,waf从内存中获取第一http回应报文,并将第一http回应报文的源ip地址转换为查找到的第一虚接口的ip地址,目的ip地址转换为客户端的ip地址。waf还将第一http回应报文包括的报文内容复制到第二http回应报文中,waf得到第二http回应报文。

waf生成第二http回应报文后,通过第一虚接口向与自身连接的vtep1发送第二http回应报文。vtep1根据第http二回应报文的源、目的ip地址信息,确定第二http回应报文需通过vxlan隧道进行转发。vtep1对第二http回应报文进行vxlan隧道封装操作,并通过vxlan隧道向网关发送封装后的第二http回应报文。

网关接收到封装后的第二http回应报文后,进行vxlan隧道解封装操作。网关得到第二http回应报文。根据第二http回应报文的源ip地址信息确定需将第二http回应报文转发至lb设备。网关向lb设备发送第二http回应报文。

lb设备接收到第二http回应报文后,根据第二http回应报文的源、目的ip地址进行地址匹配。lb设备将第二http回应报文的源ip地址转换为lb的需服务器的ip地址,目的ip地址保持不变。lb再次将第二http回应报文发送至网关。

网关接收到第二http回应报文后,查找自身的路由表,将第二http回应报文转发至防火墙。该第二http回应报文到达防火墙后,防火墙确定目的ip地址为客户端的ip地址,根据自身配置的nat规则以及转发规则,防火墙将第二http回应报文的源ip地址转换为lb设备的外网ip地址。防火墙将第二http回应报文转发至客户端。

至此,客户端接收到第二http回应报文。

因此,在waf访问webserver的过程中,由于waf的第二虚接口的ip地址没有加入lb设备的实服务器组成员中。因此,waf生成的第二请求报文到达网关后,不会再被网关的策略路由送往lb设备进行目的地址匹配后再次转发至网关,而是直接通过网关转发至webserver所在的私网中,减轻了网关和lb设备的负担。通过为waf配置相互独立的第一虚接口与第二虚接口,将waf访问webserver的流量通过第二虚接口进行转发,也实现了waf访问webserver的流量与外网访问waf的流量隔离。

图7示出根据本发明一实施例的报文转发装置的框图。该报文转发装置可以应用于web应用防护系统waf,如图7所示,该装置可以包括:

第一接收模块71,用于从所述waf的第一虚接口接收客户端发送的第一请求报文,所述第一请求报文包括所述客户端待访问的服务器的域名;

获取模块72,用于根据所述服务器的域名,获取所述服务器的ip地址;

第一报文生成模块73,用于根据所述服务器的ip地址查找已存储的转发信息,生成第二请求报文,所述第二请求报文的源ip地址为所述waf的第二虚接口的ip地址,目的ip地址为所述服务器的ip地址;

第一发送模块74,用于通过所述第二虚接口向所述waf的下一跳网络设备发送所述第二请求报文,以使所述下一跳网络设备向所述服务器转发所述第二请求报文。

因此,在waf访问webserver的过程中,由于waf的第二虚接口的ip地址没有加入lb设备的实服务器组成员中。因此,waf生成的第二请求报文到达网关后,不会再被网关的策略路由送往lb设备进行目的地址匹配后再次转发至网关,而是直接通过网关转发至webserver所在的私网中,减轻了网关和lb设备的负担。通过为waf配置相互独立的第一虚接口与第二虚接口,将waf访问webserver的流量通过第二虚接口进行转发,也实现了waf访问webserver的流量与外网访问waf的流量隔离。

可选地,图8示出根据本发明一实施例的报文转发装置的框图。如图8所示,该装置还可以包括:

匹配模块75,用于对所述第一请求报文进行安全策略匹配;

解析模块76,用于若所述第一请求报文为合法报文,则解析所述第一请求报文,并获取所述服务器的域名。

可选地,该装置还可以包括:

第二接收模块77,用于从所述第二虚接口接收所述服务器发送的第一回应报文,所述第一回应报文的源ip地址为所述服务器的ip地址,目的ip地址为所述第二虚接口的ip地址;

第二报文生成模块78,用于当确定所述第一回应报文为所述服务器向所述客户端发送的回应报文时,根据所述第二虚接口与所述第一虚接口之间的映射关系,将所述第一回应报文中的源ip地址、目的ip地址进行转换处理,得到第二回应报文,所述第二回应报文的源ip地址为所述第一虚接口的ip地址、目的ip地址为所述客户端的ip地址;

第二发送模块79,用于通过所述第一虚接口向所述waf的下一跳网络设备发送所述第二回应报文,以使所述waf的下一跳网络设备向所述客户端转发所述第二回应报文。

可选地,所述装置还包括:

第三接收模块710,用于接收控制器发送的配置命令,所述配置命令携带有所述转发信息;

存储模块711,用于将所述转发信息进行存储;

其中,所述转发信息包括所述waf提供保护的服务器的ip地址、下一跳出接口信息以及所述下一跳网络设备的地址信息。

可选地,所述第一虚接口为业务检测接口,所述第二虚接口为服务访问接口。

图9是根据一示例性实施例示出的一种用于报文转发装置900的框图。参照图9,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与报文转发逻辑对应的机器可执行指令以执行上文所述的报文转发方法。

本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:随机存取存储器(英文:radomaccessmemory,简称:ram)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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