一种对虚拟机间二层流量进行监控的系统及方法

文档序号:10666329阅读:625来源:国知局
一种对虚拟机间二层流量进行监控的系统及方法
【专利摘要】本发明公开了一种对虚拟机间二层流量进行监控的系统和方法,包括:安全应用APP调用虚拟交换机OVS控制器API接口获取虚拟机与OVS端口间的连接信息,生成虚拟机间通信报文的转发策略;并通过API接口向OVS下发该转发策略;OVS接收并根据转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;并处理和转发虚拟机间的非ARP报文,使该非ARP报文流经防火墙模块,过滤后转发回OVS,由OVS转发到目的虚拟机。通过该方案能够在不改变传统以太网帧格式,充分利用物理防火墙安全防护功能的前提下,实现对虚拟机间二层流量的监控。
【专利说明】
一种对虚拟机间二层流量进行监控的系统及方法
技术领域
[0001]本发明涉及信息安全技术领域,具体涉及一种对虚拟机间二层流量进行监控的系统及方法。
【背景技术】
[0002]近年来,随着计算机技术的不断发展,传统一对一的利用方式使得单台物理设备计算性能提高与资源利用率降低之间的矛盾日渐凸显。云计算、虚拟化技术支持一对多的利用方式,将传统的服务器、磁盘、网络设备等物理资源转化为计算资源、存储资源、网络资源等虚拟资源,通过动态调度供多个用户同时使用,最大化提升资源利用率,降低成本,具有按需分配、绿色环保、易管理、易扩展等优势。特别是对于聚集了大量计算资源、数据资源的数据中心而言,该技术的采用已经成为了一种发展趋势。
[0003]虚拟机及虚拟网络的出现使得网络边界向宿主服务器内部延伸,例如,在实际部署当中,属于同一子网或VLAN(虚拟局域网)的虚拟机之间的二层网络流量转发通常由宿主服务器内部软件实现的二层虚拟交换机、或者接入交换机来完成,也就是说流量不再流经传统的、部署在汇聚交换机或核心交换机处的安全设备,成为监管盲区,从而使得虚拟机完全暴露于破坏力更强的内网攻击之下。由于运行在同一个宿主机HOST之上的虚拟机间存在资源共享的情况,一台虚拟机遭受攻击,则HOST上的其他所有虚拟机甚至是HOST都同样处于危险之中。因此,虚拟网络中的二层网络流量的安全问题不容忽视。
[0004]对虚拟机之间的二层网络流量的一种常见方式是将虚拟环境下的二层网络流量迀出到物理网络环境中、仍然采用物理设备进行监管,具有不占用虚拟化平台资源、技术复用、处理性能高等优点。现有的代表技术包括Cisco (思科)的VN-Tag(虚拟网络标识)和HP (惠普)的VEPA(虚拟以太端口汇聚器),能够将所有的虚拟机网络流量都发送到与宿主服务器相连的物理交换机上进行转发处理,使用物理交换机上的流量统计、端口安全、ACL(访问控制列表)、QoS(服务质量)等功能对虚拟机的网络流量进行监控。VN-Tag技术在标准以太网帧上添加VN-Tag标签作为外部交换机寻址转发的依据。VN-TAG标签中的DVIF_ID、SVIF_ID分别代表目的虚拟接口、源虚拟接口,虚拟接口对应虚拟网卡,可以标识来自不同虚拟机流量。VEPA技术是通过HOST上的VEPA设备将虚拟机的流量全部发送到相连的物理交换机上,沿用MAC(介质访问控制层)学习转发机制。VEPA技术的关键是当相互通信的虚拟机处于同一台宿主服务器时,物理交换机的端口必须支持数据包从入口返回,即打开“发卡弯”方式。
[0005]VN-Tag技术对传统以太网帧的结构进行了扩展,与传统网络设备不兼容,软、硬件升级成本高;VEPA技术基于相连交换机的端口安全、ACL功能不能实现对网络流量的深度防护;对于目前常用的虚拟化平台KVM(Kernel-based Virtual Machine)和XEN,VN-Tag和VEPA技术都不能做到全面支持。

【发明内容】

[0006]为了解决上述问题,本发明提出了一种对虚拟机间二层流量进行监控的系统及方法,能够在不改变传统以太网帧格式,充分利用物理防火墙丰富的安全防护功能的前提下,实现对虚拟机间二层流量的监控,并且支持KVM和Xen等常用的虚拟化平台。
[0007]为了达到上述目的,本发明提出了一种对虚拟机间二层流量进行监控的系统,该系统包括:安全应用APP、OVS控制器、虚拟交换机0VS、防火墙模块。
[0008]安全APP,调用OVS控制器的应用程序接口 API接口获得虚拟机与OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器的API接口,下发该转发策略。
[0009]OVS控制器,向安全APP开放API接口,通过OpenFlow协议与OVS交互,用于获得虚拟机与OVS的端口的连接信息并反馈给安全APP,还用于向OVS下发安全APP生成的转发策略。
[0010]0VS,通过OpenFlow协议与OVS控制器交互,用于向OVS控制器反馈虚拟机与其端口的连接信息,接收OVS控制器下发的转发策略,并根据该转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还用于接收并根据转发策略处理和转发第一虚拟机VMl和第二虚拟机VM2间的非ARP报文,使第一虚拟机VMl和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机。
[0011]防火墙模块,采取单臂路由模式,用于接收OVS转发来的第一虚拟机VMl和第二虚拟机VM2间的通信报文,过滤后将通信报文路由转发回0VS。
[0012]优选地,第一虚拟机VMl、第二虚拟机VM2和OVS位于同一个宿主机HOST上。
[0013]HOST包括第一防火墙接口。
[0014]OVS包括第一接口、第二接口和第三接口。
[0015]OVS控制器包括第一控制接口。
[0016]防火墙模块包括第二防火墙接口。
[0017]其中,第一接口与第一虚拟机VMl的第一 IP地址接口相连,第二接口与第二虚拟机VM2的第二 IP地址接口相连,第一防火墙接口的一端与第三接口相连。
[0018]第一防火墙接口的另一端通过通信通道分别与第二防火墙接口、第一控制接口相连。
[0019]其中,第一 IP地址接口处的第一 IP地址、第二 IP地址接口处的第二 IP地址和第二防火墙接口处的第三IP地址属于同一网段。
[0020]优选地,
[0021]HOST上的虚拟机分属于多个虚拟局域网VLAN,每个VLAN中包括多个虚拟机,每个VLAN内的虚拟机之间相互通信;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
[0022]或者,第一虚拟机VMl和第二虚拟机VM2位于不同的HOST上;第一虚拟机VMl和第二虚拟机VM2属于同一个VLAN,第一虚拟机VMl和第二虚拟机VM2分别具有各自的OVS ;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
[0023]HOST与防火墙模块之间通过建立通用路由协议封装GRE隧道进行通信;或者,在多个HOST与防火墙模块之间构建GRE隧道时,构建一个GRE网关,在GRE网关与防火墙模块之间建立GRE隧道;GRE网关汇聚来自多个HOST的OVS网络流量,统一进行GRE隧道的封装与解封。
[0024]优选地,
[0025]OVS控制器还用于向OVS下发安全APP生成的虚拟机间通信报文的转发策略是指:
[0026]OVS控制器通过Openflow协议与OVS建立连接,安全APP通过OVS控制器的API接口获得OVS上与第一虚拟机VMl、第二虚拟机VM2对应的端口号、MAC地址,安全APP生成虚拟机之间进行数据通信的转发策略,通过OVS控制器的API接口下发给OVS ;该转发策略依次通过第一控制接口、通信通道、第一防火墙接口和第三接口被发送到OVS。
[0027]其中,当第一虚拟机VMl和第二虚拟机VM2分别连接各自的HOST上的OVS时,安全APP通过OVS控制器向每个OVS下发第一虚拟机VMl和第二虚拟机VM2间通信报文的转发策略。
[0028]OVS还用于接收并根据转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指:
[0029]OVS接收OVS控制器下发的转发策略,根据转发策略以传统交换机模式对第一虚拟机VMl和第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、第一虚拟机VMl和防火墙模块间的ARP请求/ARP应答数据包、第二虚拟机VM2和防火墙模块间的ARP请求/ARP应答数据包进行转发。
[0030]优选地,
[0031]OVS还用于接收并根据转发策略处理和转发第一虚拟机VMl和第二虚拟机VM2间的非ARP报文,使第一虚拟机VMl和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机是指:
[0032]第一虚拟机VMl/第二虚拟机VM2向第二虚拟机VM2/第一虚拟机VMl发出ICMP请求报文,ICMP请求报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
[0033]OVS接收经过防火墙模块之后的ICMP请求报文,转发给第二虚拟机VM2/第一虚拟机 VMl ο
[0034]第二虚拟机VM2/第一虚拟机VMl向第一虚拟机VMl/第二虚拟机VM2发出ICMP应答报文,ICMP应答报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
[0035]OVS接收经过防火墙模块之后的ICMP应答报文,转发给第一虚拟机VMl/第二虚拟机 VM2。
[0036]优选地,
[0037]防火墙模块用于接收OVS转发来的第一虚拟机VMl和第二虚拟机VM2间通信报文,过滤后将通信报文路由转发回OVS是指:
[0038]防火墙模块收到OVS转发来第一虚拟机VMl和第二虚拟机VM2间的ICMP请求报文或ICMP应答报文后,对ICMP请求报文或ICMP应答报文进行过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将ICMP请求报文或ICMP应答报文的MAC修改为目的虚拟机的MAC后通过第二防火墙接口、通信通道、第一防火墙接口及第三接口转发至OVS0
[0039]其中,防火墙模块与第一虚拟机VMl和第二虚拟机VM2间首次转发报文时,防火墙模块与目的虚拟机之间首先进行ARP请求和应答,获得目的虚拟机的IP-MAC对应关系,并存入ARP表中;其中,防火墙模块与目的虚拟机之间的ARP请求和应答通过OVS以传统交换机工作模式转发。
[0040]本发明还提出一种对虚拟机间二层流量进行监控的方法,该方法包括:
[0041]OVS通过OpenFlow协议与OVS控制器交互,向OVS控制器反馈虚拟机与其端口的连接信息。
[0042]OVS控制器通过OpenFlow协议与OVS交互,获得虚拟机与OVS的端口的连接信息并反馈给安全应用APP。
[0043]安全APP调用OVS控制器的应用程序接口 API接口获得虚拟机与OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器的API接口,下发该转发策略。
[0044]OVS控制器向OVS下发安全APP生成的转发策略。
[0045]OVS接收OVS控制器下发的转发策略,并根据转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还接收并根据转发策略处理和转发第一虚拟机VMl和第二虚拟机VM2间的非ARP报文,使第一虚拟机VMl和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机。
[0046]防火墙模块采取单臂路由模式,接收OVS转发来的第一虚拟机VMl和第二虚拟机VM2间的通信报文,过滤后将通信报文路由转发回OVS。
[0047]优选地,第一虚拟机VMl、第二虚拟机VM2和OVS位于同一个HOST上。
[0048]第一虚拟机VMl的第一 IP地址接口处的第一 IP地址、第二虚拟机VM2的第二 IP地址接口处的第二 IP地址和防火墙模块的第二防火墙接口处的第三IP地址属于同一网段。
[0049]优选地,
[0050]HOST上的虚拟机分属于多个虚拟局域网VLAN,每个VLAN中包括多个虚拟机,每个VLAN内的虚拟机之间相互通信;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
[0051]或者,第一虚拟机VMl和第二虚拟机VM2位于不同的HOST上;第一虚拟机VMl和第二虚拟机VM2属于同一个VLAN,第一虚拟机VMl和第二虚拟机VM2分别连接各自的HOST上的OVS ;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
[0052]HOST与防火墙模块之间通过建立通用路由协议封装GRE隧道进行通信;或者,在多个HOST与防火墙模块之间构建GRE隧道时,构建一个GRE网关,在GRE网关与防火墙模块之间建立GRE隧道;GRE网关汇聚来自多个HOST的OVS网络流量,统一进行GRE隧道的封装与解封。
[0053]优选地,
[0054]OVS控制器向OVS下发安全APP生成的转发策略是指:
[0055]OVS控制器通过Openflow协议与OVS建立连接,安全APP通过OVS控制器的API接口获得OVS上与第一虚拟机VMl、第二虚拟机VM2对应的端口号、MAC地址,安全APP生成虚拟机之间进行数据通信的转发策略,通过OVS控制器的API接口下发给OVS ;该转发策略依次通过第一控制接口、通信通道、第一防火墙接口和第三接口被发送到OVS。
[0056]其中,当第一虚拟机VMl和第二虚拟机VM2分别连接各自的HOST上的OVS时,安全APP通过OVS控制器向每个OVS下发第一虚拟机VMl和第二虚拟机VM2间通信报文的转发策略。
[0057]OVS还用于接收并根据转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指:
[0058]OVS接收OVS控制器下发的转发策略,根据转发策略以传统交换机模式对第一虚拟机VMl和第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、第一虚拟机VM2和防火墙模块间的ARP请求/ARP应答数据包、第二虚拟机VM2和防火墙模块间的ARP请求/ARP应答数据包进行转发。
[0059]优选地,
[0060]OVS接收并根据转发策略处理和转发第一虚拟机VMl和第二虚拟机VM2间的非ARP报文,使第一虚拟机VMl和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机是指:
[0061]第一虚拟机VMl/第二虚拟机VM2向第二虚拟机VM2/第一虚拟机VMl发出ICMP请求报文,ICMP请求报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
[0062]OVS接收经过防火墙模块之后的ICMP请求报文,转发给第二虚拟机VM2/第一虚拟机 VMl ο
[0063]第二虚拟机VM2/第一虚拟机VMl向第一虚拟机VMl/第二虚拟机VM2发出ICMP应答报文,ICMP应答报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
[0064]OVS接收经过防火墙模块之后的ICMP应答报文,转发给第一虚拟机VMl/第二虚拟机 VM2。
[0065]优选地,
[0066]防火墙模块接收OVS转发来的第一虚拟机VMl和第二虚拟机VM2间通信报文,过滤后将通信报文路由转发回OVS是指:
[0067]防火墙模块收到OVS转发来第一虚拟机VMl和第二虚拟机VM2间的ICMP请求报文或ICMP应答报文后,对ICMP请求报文或ICMP应答报文进行过滤后,查询路由表、ARP表,获得目的虚拟机的IP-MAC对应关系,将ICMP请求报文或ICMP应答报文的MAC修改为目的虚拟机的MAC后通过第二防火墙接口、通信通道、第一防火墙接口及第三接口转发至OVS。
[0068]其中,防火墙模块与第一虚拟机VMl和第二虚拟机VM2间首次转发报文时,防火墙模块与目的虚拟机之间首先进行ARP请求和应答,获得目的虚拟机的IP-MAC对应关系,并存入ARP表中;其中,防火墙模块与目的虚拟机之间的ARP请求和应答通过OVS以传统交换机工作模式转发。
[0069]与现有技术相比,本发明包括:安全应用APP、0VS控制器、虚拟交换机0VS、防火墙模块。安全APP,调用OVS控制器的应用程序接口 API接口获得虚拟机与OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器的API接口,下发该转发策略。OVS控制器,向安全APP开放API接口,通过OpenFlow协议与OVS交互,用于获得虚拟机与OVS的端口的连接信息并反馈给安全APP,还用于向OVS下发安全APP生成的转发策略。0VS,通过OpenFlow协议与OVS控制器交互,用于向OVS控制器反馈虚拟机与其端口的连接信息,接收OVS控制器下发的转发策略,并根据该转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还用于接收并根据转发策略处理和转发第一虚拟机VMl和第二虚拟机VM2间的非ARP报文,使第一虚拟机VMl和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机。防火墙模块,采取单臂路由模式,用于接收OVS转发来的第一虚拟机VMl和第二虚拟机VM2间的通信报文,过滤后将通信报文路由转发回0VS。通过本发明的方案,能够在不改变传统以太网帧格式,充分利用物理防火墙丰富的安全防护功能的前提下,实现对虚拟机间二层流量的监控,并且支持KVM和Xen等常用的虚拟化平台。
【附图说明】
[0070]下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
[0071]图1为本发明的对虚拟机间二层流量进行监控的系统示意图;
[0072]图2为本发明的对虚拟机间二层流量进行监控的系统的一种实施方式;
[0073]图3为本发明的对虚拟机间二层流量进行监控的系统的另一种实施方式;
[0074]图4为本发明的对虚拟机间二层流量进行监控的系统的另一种实施方式;
[0075]图5为本发明的对虚拟机间二层流量进行监控的系统的另一种实施方式;
[0076]图6为本发明的对虚拟机间二层流量进行监控的方法流程图。
【具体实施方式】
[0077]为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
[0078]Open vSwitch(OVS)是一种应用在虚拟化平台上的、采用Apache 2.0许可证的开源交换机软件(虚拟交换机)。OVS —方面支持传统交换机的MAC学习、转发机制,另一方面还可以通过OpenFlow协议与OVS控制器交互,接收OVS控制器下发的细粒度转发策略并按照策略转发。Linux内核从3.3版本开始包含OVS内核模块,软件包可以在乌班图Ubuntu、Debian 和 Fedora 上使用。OVS 支持的虚拟化平台包括 KVM、Xen、XenServer、Proxmox VE和VirtualBox,在开源虚拟化环境中应用较为广泛。OVS也称为OpenFlow交换机,区别于采取MAC表学习、转发机制的传统交换机。
[0079]本技术方案利用OVS可以按照OVS控制器下发的转发策略对数据包进行处理、转发的机制,与防火墙单臂路由模式配合完成虚拟机间二层流量的深度监控。
[0080]具体地,本发明提出了一种对虚拟机间二层流量进行监控的系统,如图1所示,该系统对第一虚拟机VM102、第二虚拟机VM203进行监测,具体地,该系统包括:安全应用APP
01、OVS控制器04、虚拟交换机OVS 05、防火墙模块07。
[0081 ] 安全APP 01,调用OVS控制器04的应用程序接口 API接口获得虚拟机与OVS 05的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器04的API接口,下发该转发策略。
[0082]OVS控制器04,向安全APP 01开放API接口,通过OpenFlow协议与OVS 05交互,用于获得虚拟机与OVS 05的端口的连接信息并反馈给安全APP 01,还用于向OVS 05下发安全APP 01生成的转发策略。
[0083]OVS 05,通过OpenFlow协议与OVS控制器04交互,用于向OVS控制器04反馈虚拟机与其端口的连接信息,接收OVS控制器04下发的转发策略,并根据该转发策略转发第一虚拟机VM102和第二虚拟机VM203间、第一虚拟机VM102和防火墙模块07间、第二虚拟机VM203和防火墙模块07间的ARP报文;用来构建第一虚拟机VM102、第二虚拟机VM203、路由模式防火墙模块07的ARP表;还用于接收并根据转发策略处理和转发第一虚拟机VM102和第二虚拟机VM203间的非ARP报文,使第一虚拟机VM102和第二虚拟机VM203间的非ARP报文流经防火墙模块07后到达目的虚拟机。
[0084]防火墙模块07,采取单臂路由模式,用于接收OVS 05转发来的第一虚拟机VM102和第二虚拟机VM203间的通信报文,过滤后将通信报文路由转发回OVS 05。
[0085]在图1的实施例中,该系统在OVS 05和防火墙模块07之间加入了物理交换机06,用于为第一虚拟机VM102和所述第二虚拟机VM203之间的数据通信提供通路,作为OVS 05和防火墙模块07之间的通信通道。
[0086]优选地,第一虚拟机VM102、第二虚拟机VM203和OVS 05位于同一个HOST 08上。
[0087]HOST 08包括第一防火墙接口 081。
[0088]第一虚拟机VM102包括第一 IP地址接口 021 ;第二虚拟机VM203包括第二 IP地址接口 031。
[0089]OVS 05包括第一接口 051、第二接口 052和第三接口 053。
[0090]OVS控制器04包括第一控制接口 041。
[0091]物理交换机06包括第一交换接口 061、第二交换接口 062和第三交换接口 063。
[0092]防火墙模块07包括第二防火墙接口 071。
[0093]其中,第一虚拟机VM102的第一 IP地址接口 021与第一接口 051相连,第二虚拟机VM203的第二 IP地址接口 031与第二接口 052相连,第一防火墙接口 081的一端与第三接口 053相连。
[0094]第一防火墙接口 081的另一端与第二交换接口 062相连。
[0095]第一交换接口 061与第一控制接口 041相连。
[0096]第三交换接口 063与第二防火墙接口 071相连。
[0097]其中,第一 IP地址接口 021处的第一 IP地址、第二 IP地址接口 031处的第二 IP地址和第二防火墙接口 071处的第三IP地址属于同一网段。
[0098]优选地,
[0099]OVS控制器04还用于向OVS下发安全APP 01生成的虚拟机间通信报文的转发策略是指:
[0100]OVS控制器04通过Openflow协议与OVS 05建立连接,安全APP 01通过OVS控制器04的API接口获得OVS 05上与第一虚拟机VM102、第二虚拟机VM203对应的端口号、MAC地址,安全APP 01生成虚拟机之间进行数据通信的转发策略,通过OVS控制器04的API接口下发给OVS 05 ;该转发策略依次通过第一控制接口 041、通信通道(在图1的实施例中为物理交换机06的第一交换接口 061、第二交换接口 062)、第一防火墙接口 081和第三接口053被发送到OVS 05。
[0101]其中,当第一虚拟机VM102和第二虚拟机VM203分别具有各自的0VS05时,安全APP 01通过OVS控制器04向每个OVS 05下发第一虚拟机VM102和第二虚拟机VM203间通信报文的转发策略。
[0102]OVS 05还用于接收并根据转发策略转发第一虚拟机VM102和第二虚拟机VM203间、第一虚拟机VM102和防火墙模块07间、第二虚拟机VM203和防火墙模块07间的ARP报文是指:
[0103]OVS 05接收OVS控制器04下发的转发策略,根据转发策略以传统交换机模式对第一虚拟机VM102和第二虚拟机VM203间的地址解析协议ARP请求/ARP应答数据包、第一虚拟机VM102和防火墙模块07间的ARP请求/ARP应答数据包、第二虚拟机VM203和防火墙模块07间的ARP请求/ARP应答数据包进行转发。
[0104]优选地,
[0105]OVS 05还用于接收并根据转发策略处理和转发第一虚拟机VM102和第二虚拟机VM203间的非ARP报文,使第一虚拟机VM102和第二虚拟机VM203间的非ARP报文流经防火墙模块07后到达目的虚拟机是指:
[0106]第一虚拟机VM102/第二虚拟机VM203向第二虚拟机VM203/第一虚拟机VM102发出ICMP请求报文,ICMP请求报文到达OVS 05后,0VS05将ICMP请求报文的目的MAC修改为防火墙模块07的第二防火墙接口 071的MAC后通过第三接口 053、第一防火墙接口 081、通信通道(在图1的实施例中为物理交换机06的第二交换接口 062,第三交换接口 063)及第二防火墙接口 071转发至防火墙模块07。
[0107]OVS 05接收经过防火墙模块07之后的ICMP请求报文,转发给第二虚拟机VM203/第一虚拟机VM102。
[0108]第二虚拟机VM203/第一虚拟机VM102向第一虚拟机VM102/第二虚拟机VM203发出ICMP应答报文,ICMP应答报文到达OVS 05后,0VS05将ICMP请求报文的目的MAC修改为防火墙模块07的第二防火墙接口 071的MAC后通过第三接口 053、第一防火墙接口 081、通信通道(在图1的实施例中为物理交换机06的第二交换接口 062,第三交换接口 063)及第二防火墙接口 071转发至防火墙模块07。
[0109]OVS 05接收经过防火墙模块07之后的ICMP应答报文,转发给第一虚拟机VM102/第二虚拟机VM203。
[0110]优选地,
[0111]防火墙模块用于接收OVS 05转发来的第一虚拟机VM102和第二虚拟机VM203间通信报文,过滤后将通信报文路由转发回OVS 05是指:
[0112]防火墙模块07收到OVS 05转发的第一虚拟机VM102和第二虚拟机VM203间的ICMP请求报文或ICMP应答报文后,对ICMP请求报文或ICMP应答报文进行过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将ICMP请求报文或ICMP应答报文的MAC修改为目的虚拟机的MAC后通过第二防火墙接口 071、通信通道(在图1的实施例中为物理交换机06的第三交换接口 063,第二交换接口 062)、第一防火墙接口 081及第三接P 053 转发至 OVS 05。
[0113]其中,防火墙模块07与第一虚拟机VM102和第二虚拟机VM203间首次转发报文时,防火墙模块07与目的虚拟机之间首先进行ARP请求和应答,获得目的虚拟机的IP-MAC对应关系,并存入ARP表中;其中,防火墙模块07与目的虚拟机之间的ARP请求和应答通过OVS以传统交换机工作模式转发。
[0114]本发明对于虚拟机之间的通信还设计了多种实施方式,如下所述:
[0115]实施例1
[0116]如图2所示,HOST 08与防火墙模块07之间通过建立通用路由协议封装GRE隧道09进行通信,并从防火墙模块07的第二防火墙接口 071引申出GRE隧道09的端点设备091。
[0117]在云计算的实际应用当中,通常采用划分VLAN的方法来实现租户网络的隔离。在本方案的具体实施中,也提供了对VLAN划分的支持。如图3、图4所示,分别给出了两种VLAN的划分场景,其中图3所示的VLAN处于同一个HOST,图4所示的VLAN跨了两个HOST。下面通过几个具体实施例进一步介绍本发明的其他实施方案。
[0118]实施例2
[0119]如图3所示,HOST上的虚拟机分属多个虚拟局域网VLANjn VLAN113和VLAN214,每个VLAN中包括多个虚拟机,如VM11、VM12和VM21、VM22,每个VLAN内的虚拟机之间相互通信,如VMll与VM12通信,VM21与VM22通信。防火墙模块07通过一个端口第二防火墙接口 071与物理交换机06单臂连接,工作在路由模式。防火墙模块07的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址,如072、073 ;其中,通信时每个VLAN中的虚拟机可以选择与本身处于相同网段的防火墙模块07中的VLAN设备的IP地址。
[0120]对于图3所示的场景,安全应用APP 01通过OVS控制器04给OVS 05下发VMll和VM12 (或VM21和VM22)通信相关的静态转发策略,确保OVS 05按照传统交换机工作模式转发VMl I和VMl2间、防火墙和VMl I间、防火墙和VMl2间的ARP报文;VM11和VMl2间的非ARP报文能够按照图3所示的路线传输,VM21和VM22通信相关的静态转发策略与VMll和VMl2的通信过程相同。
[0121]设置完图3所示的场景后,下面以图3中VMll ping VMl2为例,说明具体的通信流程:
[0122]S10UVM11与VM12之间进行ARP请求和应答交互。ARP请求和应答报文到达OVS05后,OVS 05按照传统交换机工作模式转发该ARP请求和应答报文。
[0123]S102、VMll向VMl2发出ICMP请求报文。ICMP请求报文到达OVS 05后,OVS 05将ICMP请求报文的目的MAC修改为防火墙模块07的第二防火墙接口 071的MAC后通过第三接口 053、第一防火墙接口 081、通信通道(在图3的实施例中为物理交换机06的第二交换接口 062,第三交换接口 063),第二防火墙接口 071及VLAN设备072转发至防火墙模块07ο
[0124]S103、防火墙模块07收到OVS 05转发的ICMP请求报文后,对ICMP请求报文进行深度过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将ICMP请求报文的MAC修改为目的虚拟机的MAC后通过VLAN设备072、第二防火墙接口 071、通信通道(在图1的实施例中为物理交换机06的第三交换接口 063,第二交换接口 062)、第一防火墙接口 081及第三接口 053转发至OVS 05。(但VLAN设备072和VMl2之间首次转发报文时,ARP表中没有VMl2的IP-MAC对应关系,因此VLAN设备072与VMl2之间首先进行ARP请求和应答,获得VM12的IP-MAC对应关系,并存入ARP表中。ARP请求和应答报文到达OVS05后,OVS 05按照传统交换机工作模式转发该ARP报文。)
[0125]S104、OVS 05收到ICMP请求报文,转发给VM12。
[0126]S105、VMl2向VMll发出ICMP应答报文。ICMP应答报文到达OVS 05后,OVS 05将ICMP应答报文的目的MAC修改为防火墙模块07的第二防火墙接口 071的MAC后通过第三接口 053、第一防火墙接口 081、通信通道(在图3的实施例中为物理交换机06的第二交换接口 062,第三交换接口 063),第二防火墙接口 071及VLAN设备072转发至防火墙模块07ο
[0127]S106、防火墙模块07收到OVS 05转发的ICMP应答报文后,对ICMP应答报文进行深度过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将ICMP应答报文的MAC修改为目的虚拟机的MAC后通过VLAN设备072、第二防火墙接口 071、通信通道(在图1的实施例中为物理交换机06的第三交换接口 063,第二交换接口 062)、第一防火墙接口 081及第三接口 053转发至OVS 05。(但VLAN设备072和VMll之间首次转发报文时,ARP表中没有VMll的IP-MAC对应关系,因此VLAN设备072与VMll之间首先进行ARP请求和应答,获得VMlI的IP-MAC对应关系,并存入ARP表中。ARP请求和应答报文到达OVS05后,OVS 05按照传统交换机工作模式转发该ARP报文。)
[0128]S107、OVS 05收到ICMP应答报文后,转发给VM11。
[0129]通过以上步骤,图3中的VMll与VM12之间的请求和应答交互完成,后续的ICMP请求和应答报文重复执行步骤S102?S107。
[0130]实施例3
[0131]如图4所示,第一虚拟机VM102和第二虚拟机VM203位于不同的HOST上;但第一虚拟机VM102和第二虚拟机VM203属于同一个VLAN,并且第一虚拟机VM102和第二虚拟机VM203分别连接各自的HOST上的OVS 05。同样,防火墙模块07通过一个端口第二防火墙接口 071与物理交换机06单臂连接,工作在路由模式。防火墙模块07的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址,如072、073 ;其中,通信时第一虚拟机VM102和第二虚拟机VM203可以选择与本身处于相同网段的防火墙模块07中的VLAN设备的IP地址。
[0132]对于图4所示的场景,安全应用APP 01通过OVS控制器04分别向两个OVS 05下发第一虚拟机VM102和第二虚拟机VM203通信相关的静态转发策略,确保:0VS 05按照传统交换机工作模式转发第一虚拟机VM102和第二虚拟机VM203间、防火墙和第一虚拟机VM102间、防火墙和第二虚拟机VM203间的ARP报文;第一虚拟机VM102和第二虚拟机VM203的非ARP报文能够按照图4所示的路线传输。
[0133]图4场景中的第一虚拟机VM102和第二虚拟机VM203之间通信的具体实施步骤与上述步骤SlOl?S107相同,在此不再赘述。
[0134]实施例4
[0135]如前所述,在如图2所示的场景中,H0ST08与防火墙模块07之间可以通过建立GRE隧道09进行通信。当在一个场景中包含多个HOST时,也可以通过建立GRE隧道09进行通信,如图5所示,在多个HOST,如HOST 1、11,与防火墙模块07之间构建GRE隧道09时,构建一个GRE网关12,在GRE网关12与防火墙模块07之间建立GRE隧道09,并且从防火墙模块07的第二防火墙接口 071引申出多个VLAN设备,如072、073。GRE网关12汇聚来自多个HOST 10和11等的OVS网络流量,统一进行GRE隧道09的封装与解封。
[0136]本发明还提出一种对虚拟机间二层流量进行监控的方法,如图6所示,该方法包括:
[0137]S201、OVS通过OpenFlow协议与OVS控制器交互,向OVS控制器反馈虚拟机与其端口的连接信息。
[0138]S202、OVS控制器通过OpenFlow协议与OVS交互,获得虚拟机与OVS的端口的连接信息并反馈给安全APP。
[0139]S203、安全APP调用OVS控制器的API接口获得虚拟机与OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器的API接口,下发该转发策略。
[0140]S204、OVS控制器向OVS下发安全APP生成的转发策略。
[0141]优选地,OVS控制器向OVS下发安全APP生成的转发策略是指:
[0142]OVS控制器通过Openflow协议与OVS建立连接,安全APP通过OVS控制器的API接口获得OVS上与第一虚拟机VMl、第二虚拟机VM2对应的端口号、MAC地址,安全APP生成虚拟机之间进行数据通信的转发策略,通过OVS控制器的API接口下发给OVS ;该转发策略依次通过第一控制接口、通信通道、第一防火墙接口和第三接口被发送到OVS。
[0143]其中,当第一虚拟机VMl和第二虚拟机VM2分别连接各自的HOST上的OVS时,安全APP通过OVS控制器向每个OVS下发第一虚拟机VMl和第二虚拟机VM2间通信报文的转发策略。
[0144]S205、OVS接收OVS控制器下发的转发策略,并根据转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还接收并根据转发策略处理和转发第一虚拟机VMl和第二虚拟机VM2间的非ARP报文,使第一虚拟机VMl和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机。
[0145]优选地,OVS接收并根据转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指:
[0146]OVS接收OVS控制器下发的转发策略,根据转发策略以传统交换机模式对第一虚拟机VMl和第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、第一虚拟机VMl和防火墙模块间的ARP请求/ARP应答数据包、第二虚拟机VM2和防火墙模块间的ARP请求/ARP应答数据包进行转发。
[0147]优选地,
[0148]OVS接收并根据转发策略处理和转发第一虚拟机VMl和第二虚拟机VM2间的非ARP报文,使第一虚拟机VMl和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机是指:
[0149]第一虚拟机VMl/第二虚拟机VM2向第二虚拟机VM2/第一虚拟机VMl发出ICMP请求报文,ICMP请求报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
[0150]OVS接收经过防火墙模块之后的ICMP请求报文,转发给第二虚拟机VM2/第一虚拟机 VMl ο
[0151]第二虚拟机VM2/第一虚拟机VMl向第一虚拟机VMl/第二虚拟机VM2发出ICMP应答报文,ICMP应答报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
[0152]OVS接收经过防火墙模块之后的ICMP应答报文,转发给第一虚拟机VMl/第二虚拟机 VM2。
[0153]S206、防火墙模块采取单臂路由模式,接收OVS转发来的第一虚拟机VMl和第二虚拟机VM2间的通信报文,过滤后将通信报文路由转发回0VS。
[0154]优选地,防火墙模块接收OVS转发来的第一虚拟机VMl和第二虚拟机VM2间通信报文,过滤后将通信报文路由转发回OVS是指:
[0155]防火墙模块收到OVS转发来第一虚拟机VMl和第二虚拟机VM2间的ICMP请求报文或ICMP应答报文后,对ICMP请求报文或ICMP应答报文进行过滤后,查询路由表、ARP表,获得目的虚拟机的IP-MAC对应关系,将ICMP请求报文或ICMP应答报文的MAC修改为目的虚拟机的MAC后通过第二防火墙接口、通信通道、第一防火墙接口及第三接口转发至OVS。
[0156]其中,防火墙模块与第一虚拟机VMl和第二虚拟机VM2间首次转发报文时,防火墙模块与目的虚拟机之间首先进行ARP请求和应答,获得目的虚拟机的IP-MAC对应关系,并存入ARP表中;其中,防火墙模块与目的虚拟机之间的ARP请求和应答通过OVS以传统交换机工作模式转发。
[0157]优选地,第一虚拟机VMl、第二虚拟机VM2和OVS位于同一个HOST上。
[0158]第一虚拟机VMl的第一 IP地址接口处的第一 IP地址、第二虚拟机VM2的第二 IP地址接口处的第二 IP地址和防火墙模块的第二防火墙接口处的第三IP地址属于同一网段。
[0159]优选地,
[0160]HOST上的虚拟机分属于多个虚拟局域网VLAN,每个VLAN中包括多个虚拟机,每个VLAN内的虚拟机之间相互通信;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
[0161]或者,第一虚拟机VMl和第二虚拟机VM2位于不同的宿主机上;第一虚拟机VMl和第二虚拟机VM2属于同一个VLAN,第一虚拟机VMl和第二虚拟机VM2分别连接各自的HOST上的OVS ;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
[0162]HOST与防火墙模块之间通过建立通用路由协议封装GRE隧道进行通信;或者,在多个HOST与防火墙模块之间构建GRE隧道时,构建一个GRE网关,在GRE网关与防火墙模块之间建立GRE隧道;GRE网关汇聚来自多个HOST的OVS网络流量,统一进行GRE隧道的封装与解封。
[0163]具体地,如图3所示,HOST上的虚拟机分属于多个虚拟局域网VLAN,如VLANl 13和VLAN214,每个VLAN中包括多个虚拟机,如VM1UVM12和VM2UVM22,每个VLAN内的虚拟机之间相互通信,如VMll与VM12通信,VM21与VM22通信。防火墙模块07通过一个端口第二防火墙接口 071与物理交换机06单臂连接,工作在路由模式。防火墙模块07的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址,如072、073 ;其中,通信时每个VLAN中的虚拟机可以选择与本身处于相同网段的防火墙模块07中的VLAN设备的IP地址。
[0164]或者,如图4所示,第一虚拟机VM102和第二虚拟机VM203位于不同的HOST上;但第一虚拟机VM102和第二虚拟机VM203属于同一个VLAN,并且第一虚拟机VM102和第二虚拟机VM203分别具有各自的0VS04。同样,防火墙模块07通过一个端口第二防火墙接口 071与物理交换机06单臂连接,工作在路由模式。防火墙模块07的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址,如072、073 ;其中,通信时第一虚拟机VM102和第二虚拟机VM203可以选择与本身处于相同网段的防火墙模块07中的VLAN设备的IP地址。
[0165]如图2所示,HOST与防火墙之间通过建立通用路由协议封装GRE隧道进行通信;或者,如图5所示,在多个HOST与防火墙之间构建GRE隧道时,构建一个GRE网关,在GRE网关与防火墙之间建立GRE隧道;GRE网关汇聚来自多个HOST的OVS网络流量,统一进行GRE隧道的封装与解封。
[0166]本技术方案的关键是OVS的转发策略接收以及数据包修改等机制与防火墙单臂路由模式配合应用,实现了虚拟机间二层流量的深度监控。该方案的优点在于不改变传统以太网帧格式,可以充分利用物理防火墙丰富的安全防护功能,并且支持KVM和Xen等常用的虚拟化平台。该方案还支持在HOST与防火墙之间建立通用路由协议封装GRE隧道,来实现传统物理网络对OVS网络报文的转发。
[0167]需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。
【主权项】
1.一种对虚拟机间二层流量进行监控的系统,其特征在于,所述系统包括:安全应用APP、OVS控制器、虚拟交换机0VS、防火墙模块; 所述安全APP,调用所述OVS控制器的应用程序接口 API接口获得虚拟机与所述OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用所述OVS控制器的所述API接口,下发所述转发策略; 所述OVS控制器,向所述安全APP开放所述API接口,通过OpenFlow协议与所述OVS交互,用于获得虚拟机与所述OVS的端口的连接信息并反馈给所述安全APP ;还用于向所述OVS下发所述安全APP生成的所述转发策略; 所述0VS,通过所述OpenFlow协议与所述OVS控制器交互,用于向所述OVS控制器反馈虚拟机与其端口的连接信息,接收所述OVS控制器下发的所述转发策略,并根据所述转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还用于接收并根据所述转发策略处理和转发所述第一虚拟机VMl和所述第二虚拟机VM2间的非ARP报文,使所述第一虚拟机VMl和所述第二虚拟机VM2间的所述非ARP报文流经所述防火墙模块后到达目的虚拟机; 所述防火墙模块,采取单臂路由模式,用于接收所述OVS转发来的所述第一虚拟机VMl和所述第二虚拟机VM2间的所述通信报文,过滤后将所述通信报文路由转发回所述0VS。2.如权利要求1所述的系统,其特征在于,所述第一虚拟机VM1、所述第二虚拟机VM2和所述OVS位于同一个宿主机HOST上; 所述宿主机包括第一防火墙接口; 所述OVS包括第一接口、第二接口和第三接口 ; 所述OVS控制器包括第一控制接口 ; 所述防火墙模块包括第二防火墙接口; 其中,所述第一接口与所述第一虚拟机VMl的第一 IP地址接口相连,所述第二接口与所述第二虚拟机VM2的第二 IP地址接口相连,所述第一防火墙接口的一端与所述第三接口相连; 所述第一防火墙接口的另一端通过通信通道分别与所述第二防火墙接口、所述第一控制接口相连; 其中,所述第一 IP地址接口处的第一 IP地址、所述第二 IP地址接口处的第二 IP地址和所述第二防火墙接口处的第三IP地址属于同一网段。3.如权利要求2所述的系统,其特征在于, 所述HOST上的虚拟机分属于不同的虚拟局域网VLAN,每个所述VLAN中包括多个虚拟机,每个所述VLAN内的所述虚拟机之间相互通信;所述防火墙模块通过一个端口第二防火墙接口与所述通信通道单臂连接,工作在路由模式;所述防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个所述VLAN设备分别配置各自的IP地址;其中,通信时每个所述VLAN中的所述虚拟机选择与本身处于相同网段的所述防火墙模块中的所述VLAN设备的IP地址; 或者,所述第一虚拟机VMl和所述第二虚拟机VM2位于不同的所述HOST上;所述第一虚拟机VMl和所述第二虚拟机VM2属于同一个VLAN,所述第一虚拟机VMl和所述第二虚拟机VM2分别连接各自的所述HOST上的所述OVS ;所述防火墙模块通过一个端口第二防火墙接口与所述通信通道单臂连接,工作在路由模式;所述防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个所述VLAN设备分别配置各自的IP地址;其中,通信时每个所述VLAN中的所述虚拟机选择与本身处于相同网段的所述防火墙模块中的所述VLAN设备的IP地址; 所述HOST与所述防火墙模块之间通过建立通用路由协议封装GRE隧道进行通信;或者,在多个所述HOST与所述防火墙模块之间构建GRE隧道时,构建一个GRE网关,在所述GRE网关与所述防火墙模块之间建立所述GRE隧道;所述GRE网关汇聚来自多个所述HOST的OVS网络流量,统一进行所述GRE隧道的封装与解封。4.如权利要求3所述的系统,其特征在于, 所述OVS控制器还用于向所述OVS下发所述安全APP生成的虚拟机间通信报文的所述转发策略是指: 所述OVS控制器通过Openflow协议与所述OVS建立连接,所述安全APP通过所述OVS控制器的所述API接口获得所述OVS上与所述第一虚拟机VMl、所述第二虚拟机VM2对应的端口号、MAC地址,所述安全APP生成虚拟机之间进行数据通信的转发策略,通过所述OVS控制器的所述API接口下发给所述OVS ;所述转发策略依次通过所述第一控制接口、所述通信通道、所述第一防火墙接口和所述第三接口被发送到所述OVS ; 其中,当所述第一虚拟机VMl和所述第二虚拟机VM2分别连接各自的所述HOST上的所述OVS时,所述安全APP通过所述OVS控制器向每个所述OVS下发所述第一虚拟机VMl和所述第二虚拟机VM2间通信报文的所述转发策略; 所述OVS还用于接收并根据所述转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指: 所述OVS接收所述OVS控制器下发的所述转发策略,根据所述转发策略以传统交换机模式对所述第一虚拟机VMl和所述第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、所述第一虚拟机VMl和所述防火墙模块间的所述ARP请求/所述ARP应答数据包、所述第二虚拟机VM2和所述防火墙模块间的所述ARP请求/所述ARP应答数据包进行转发。5.如权利要求2所述的系统,其特征在于, 所述OVS还用于接收并根据所述转发策略处理和转发所述第一虚拟机VMl和所述第二虚拟机VM2间的非ARP报文,使所述第一虚拟机VMl和所述第二虚拟机VM2间的所述非ARP报文流经所述防火墙模块后到达目的虚拟机是指: 所述第一虚拟机VMl/所述第二虚拟机VM2向所述第二虚拟机VM2/所述第一虚拟机VMl发出ICMP请求报文,所述ICMP请求报文到达所述OVS后,所述OVS将所述ICMP请求报文的目的MAC修改为所述防火墙模块的所述第二防火墙接口的MAC后通过所述第三接口、所述第一防火墙接口、所述通信通道及所述第二防火墙接口转发至所述防火墙模块; 所述OVS接收经过所述防火墙模块之后的所述ICMP请求报文,转发给所述第二虚拟机VM2/所述第一虚拟机VMl ; 所述第二虚拟机VM2/所述第一虚拟机VMl向所述第一虚拟机VMl/所述第二虚拟机VM2发出ICMP应答报文,所述ICMP应答报文到达所述OVS后,所述OVS将所述ICMP请求报文的目的MAC修改为所述防火墙模块的所述第二防火墙接口的MAC后通过所述第三接口、所述第一防火墙接口、所述通信通道及所述第二防火墙接口转发至所述防火墙模块; 所述OVS接收经过所述防火墙模块之后的所述ICMP应答报文,转发给所述第一虚拟机VMl/所述第二虚拟机VM2。6.如权利要求5所述的系统,其特征在于, 所述防火墙模块用于接收所述OVS转发来的所述第一虚拟机VMl和所述第二虚拟机VM2间通信报文,过滤后将所述通信报文路由转发回所述OVS是指: 所述防火墙模块收到所述OVS转发来所述第一虚拟机VMl和所述第二虚拟机VM2间的所述ICMP请求报文或所述ICMP应答报文后,对所述ICMP请求报文或所述ICMP应答报文进行过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将所述ICMP请求报文或所述ICMP应答报文的MAC修改为目的虚拟机的MAC后通过所述第二防火墙接口、所述通信通道、所述第一防火墙接口及所述第三接口转发至所述OVS ; 其中,所述防火墙模块与所述第一虚拟机VMl和所述第二虚拟机VM2间首次转发报文时,所述防火墙模块与所述目的虚拟机之间首先进行ARP请求和应答,获得所述目的虚拟机的IP-MAC对应关系,并存入所述ARP表中;其中,所述防火墙模块与所述目的虚拟机之间的所述ARP请求和应答通过所述OVS以传统交换机工作模式转发。7.—种对虚拟机间二层流量进行监控的方法,其特征在于,所述方法包括: 虚拟交换机OVS通过OpenFlow协议与OVS控制器交互,向所述OVS控制器反馈虚拟机与其端口的连接信息; 所述OVS控制器通过所述OpenFlow协议与所述OVS交互,获得虚拟机与所述OVS的端口的连接信息并反馈给安全应用APP ; 所述安全APP调用所述OVS控制器的应用程序接口 API接口获得虚拟机与所述OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用所述OVS控制器的所述API接口,下发所述转发策略; 所述OVS控制器向所述OVS下发所述安全APP生成的所述转发策略; 所述OVS接收所述OVS控制器下发的所述转发策略,并根据所述转发策略转发第一虚拟机VMl和第二虚拟机VM2间、所述第一虚拟机VMl和防火墙模块间、所述第二虚拟机VM2和所述防火墙模块间的ARP报文;还接收并根据所述转发策略处理和转发所述第一虚拟机VMl和所述第二虚拟机VM2间的非ARP报文,使所述第一虚拟机VMl和所述第二虚拟机VM2间的非ARP报文流经所述防火墙模块后到达目的虚拟机; 所述防火墙模块采取单臂路由模式,接收所述OVS转发来的所述第一虚拟机VMl和所述第二虚拟机VM2间的通信报文,过滤后将所述通信报文路由转发回所述0VS。8.如权利要求7所述的方法,其特征在于,所述第一虚拟机VM1、所述第二虚拟机VM2和所述OVS位于同一个HOST上; 所述第一虚拟机VMl的第一 IP地址接口处的第一 IP地址、所述第二虚拟机VM2的第二 IP地址接口处的第二 IP地址和所述防火墙模块的第二防火墙接口处的第三IP地址属于同一网段。9.如权利要求8所述的方法,其特征在于, 所述HOST上的虚拟机分属于不同的虚拟局域网VLAN,每个所述VLAN中包括多个虚拟机,每个所述VLAN内的所述虚拟机之间相互通信;所述防火墙模块通过一个端口第二防火墙接口与所述通信通道单臂连接,工作在路由模式;所述防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个所述VLAN设备分别配置各自的IP地址;其中,通信时每个所述VLAN中的所述虚拟机选择与本身处于相同网段的所述防火墙模块中的所述VLAN设备的IP地址; 或者,所述第一虚拟机VMl和所述第二虚拟机VM2位于不同的所述HOST上;所述第一虚拟机VMl和所述第二虚拟机VM2属于同一个VLAN,所述第一虚拟机VMl和所述第二虚拟机VM2分别连接各自的所述HOST上的所述OVS ;所述防火墙模块通过一个端口第二防火墙接口与所述通信通道单臂连接,工作在路由模式;所述防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个所述VLAN设备分别配置各自的IP地址;其中,通信时每个所述VLAN中的所述虚拟机选择与本身处于相同网段的所述防火墙模块中的所述VLAN设备的IP地址; 所述HOST与所述防火墙模块之间通过建立通用路由协议封装GRE隧道进行通信;或者,在多个所述HOST与所述防火墙模块之间构建GRE隧道时,构建一个GRE网关,在所述GRE网关与所述防火墙模块之间建立所述GRE隧道;所述GRE网关汇聚来自多个所述HOST的OVS网络流量,统一进行所述GRE隧道的封装与解封。10.如权利要求9所述的方法,其特征在于, 所述OVS控制器向所述OVS下发所述安全APP生成的所述转发策略是指: 所述OVS控制器通过Openflow协议与所述OVS建立连接,所述安全APP通过所述OVS控制器的所述API接口获得所述OVS上与所述第一虚拟机VMl、所述第二虚拟机VM2对应的端口号、MAC地址,所述安全APP生成虚拟机之间进行数据通信的转发策略,通过所述OVS控制器的所述API接口下发给所述OVS ;所述转发策略依次通过所述第一控制接口、所述通信通道、所述第一防火墙接口和所述第三接口被发送到所述OVS ; 其中,当所述第一虚拟机VMl和所述第二虚拟机VM2分别连接各自的所述HOST上的所述OVS时,所述安全APP通过所述OVS控制器向每个所述OVS下发所述第一虚拟机VMl和所述第二虚拟机VM2间通信报文的所述转发策略; 所述OVS接收并根据所述转发策略转发第一虚拟机VMl和第二虚拟机VM2间、第一虚拟机VMl和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指: 所述OVS接收所述OVS控制器下发的所述转发策略,根据所述转发策略以传统交换机模式对所述第一虚拟机VMl和所述第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、所述第一虚拟机VMl和所述防火墙模块间的所述ARP请求/所述ARP应答数据包、所述第二虚拟机VM2和所述防火墙模块间的所述ARP请求/所述ARP应答数据包进行转发。11.如权利要求8所述的方法,其特征在于, 所述OVS接收并根据所述转发策略处理和转发所述第一虚拟机VMl和所述第二虚拟机VM2间的非ARP报文,使所述第一虚拟机VMl和所述第二虚拟机VM2间的所述非ARP报文流经所述防火墙模块后到达目的虚拟机是指: 所述第一虚拟机VMl/所述第二虚拟机VM2向所述第二虚拟机VM2/所述第一虚拟机VMl发出ICMP请求报文,所述ICMP请求报文到达所述OVS后,所述OVS将所述ICMP请求报文的目的MAC修改为所述防火墙模块的所述第二防火墙接口的MAC后通过所述第三接口、所述第一防火墙接口、所述通信通道及所述第二防火墙接口转发至所述防火墙模块; 所述OVS接收经过所述防火墙模块之后的所述ICMP请求报文,转发给所述第二虚拟机VM2/所述第一虚拟机VMl ; 所述第二虚拟机VM2/所述第一虚拟机VMl向所述第一虚拟机VMl/所述第二虚拟机VM2发出ICMP应答报文,所述ICMP应答报文到达所述OVS后,所述OVS将所述ICMP请求报文的目的MAC修改为所述防火墙模块的所述第二防火墙接口的MAC后通过所述第三接口、所述第一防火墙接口、所述通信通道及所述第二防火墙接口转发至所述防火墙模块; 所述OVS接收经过所述防火墙模块之后的所述ICMP应答报文,转发给所述第一虚拟机VMl/所述第二虚拟机VM2。12.如权利要求11所述的方法,其特征在于, 所述防火墙模块接收所述OVS转发来的所述第一虚拟机VMl和所述第二虚拟机VM2间通信报文,过滤后将所述通信报文路由转发回所述OVS是指: 所述防火墙模块收到所述OVS转发来所述第一虚拟机VMl和所述第二虚拟机VM2间的所述ICMP请求报文或所述ICMP应答报文后,对所述ICMP请求报文或所述ICMP应答报文进行过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将所述ICMP请求报文或所述ICMP应答报文的MAC修改为目的虚拟机的MAC后通过所述第二防火墙接口、所述通信通道、所述第一防火墙接口及所述第三接口转发至所述OVS ; 其中,所述防火墙模块与所述第一虚拟机VMl和所述第二虚拟机VM2间首次转发报文时,所述防火墙模块与所述目的虚拟机之间首先进行ARP请求和应答,获得所述目的虚拟机的IP-MAC对应关系,并存入所述ARP表中;其中,所述防火墙模块与所述目的虚拟机之间的所述ARP请求和应答通过所述OVS以传统交换机工作模式转发。
【文档编号】H04L29/06GK106034052SQ201510112453
【公开日】2016年10月19日
【申请日】2015年3月13日
【发明人】张如辉, 郭春梅, 任健, 毕学尧
【申请人】北京网御星云信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1