CN106034052A - 一种对虚拟机间二层流量进行监控的系统及方法 - Google Patents
一种对虚拟机间二层流量进行监控的系统及方法 Download PDFInfo
- Publication number
- CN106034052A CN106034052A CN201510112453.8A CN201510112453A CN106034052A CN 106034052 A CN106034052 A CN 106034052A CN 201510112453 A CN201510112453 A CN 201510112453A CN 106034052 A CN106034052 A CN 106034052A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- ovs
- fwsm
- interface
- message
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种对虚拟机间二层流量进行监控的系统和方法,包括:安全应用APP调用虚拟交换机OVS控制器API接口获取虚拟机与OVS端口间的连接信息,生成虚拟机间通信报文的转发策略;并通过API接口向OVS下发该转发策略;OVS接收并根据转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;并处理和转发虚拟机间的非ARP报文,使该非ARP报文流经防火墙模块,过滤后转发回OVS,由OVS转发到目的虚拟机。通过该方案能够在不改变传统以太网帧格式,充分利用物理防火墙安全防护功能的前提下,实现对虚拟机间二层流量的监控。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种对虚拟机间二层流量进行监控的系统及方法。
背景技术
近年来,随着计算机技术的不断发展,传统一对一的利用方式使得单台物理设备计算性能提高与资源利用率降低之间的矛盾日渐凸显。云计算、虚拟化技术支持一对多的利用方式,将传统的服务器、磁盘、网络设备等物理资源转化为计算资源、存储资源、网络资源等虚拟资源,通过动态调度供多个用户同时使用,最大化提升资源利用率,降低成本,具有按需分配、绿色环保、易管理、易扩展等优势。特别是对于聚集了大量计算资源、数据资源的数据中心而言,该技术的采用已经成为了一种发展趋势。
虚拟机及虚拟网络的出现使得网络边界向宿主服务器内部延伸,例如,在实际部署当中,属于同一子网或VLAN(虚拟局域网)的虚拟机之间的二层网络流量转发通常由宿主服务器内部软件实现的二层虚拟交换机、或者接入交换机来完成,也就是说流量不再流经传统的、部署在汇聚交换机或核心交换机处的安全设备,成为监管盲区,从而使得虚拟机完全暴露于破坏力更强的内网攻击之下。由于运行在同一个宿主机HOST之上的虚拟机间存在资源共享的情况,一台虚拟机遭受攻击,则HOST上的其他所有虚拟机甚至是HOST都同样处于危险之中。因此,虚拟网络中的二层网络流量的安全问题不容忽视。
对虚拟机之间的二层网络流量的一种常见方式是将虚拟环境下的二层网络流量迁出到物理网络环境中、仍然采用物理设备进行监管,具有不占用虚拟化平台资源、技术复用、处理性能高等优点。现有的代表技术包括Cisco(思科)的VN-Tag(虚拟网络标识)和HP(惠普)的VEPA(虚拟以太端口汇聚器),能够将所有的虚拟机网络流量都发送到与宿主服务器相连的物理交换机上进行转发处理,使用物理交换机上的流量统计、端口安全、ACL(访问控制列表)、QoS(服务质量)等功能对虚拟机的网络流量进行监控。VN-Tag技术在标准以太网帧上添加VN-Tag标签作为外部交换机寻址转发的依据。VN-TAG标签中的DVIF_ID、SVIF_ID分别代表目的虚拟接口、源虚拟接口,虚拟接口对应虚拟网卡,可以标识来自不同虚拟机流量。VEPA技术是通过HOST上的VEPA设备将虚拟机的流量全部发送到相连的物理交换机上,沿用MAC(介质访问控制层)学习转发机制。VEPA技术的关键是当相互通信的虚拟机处于同一台宿主服务器时,物理交换机的端口必须支持数据包从入口返回,即打开“发卡弯”方式。
VN-Tag技术对传统以太网帧的结构进行了扩展,与传统网络设备不兼容,软、硬件升级成本高;VEPA技术基于相连交换机的端口安全、ACL功能不能实现对网络流量的深度防护;对于目前常用的虚拟化平台KVM(Kernel-based Virtual Machine)和XEN,VN-Tag和VEPA技术都不能做到全面支持。
发明内容
为了解决上述问题,本发明提出了一种对虚拟机间二层流量进行监控的系统及方法,能够在不改变传统以太网帧格式,充分利用物理防火墙丰富的安全防护功能的前提下,实现对虚拟机间二层流量的监控,并且支持KVM和Xen等常用的虚拟化平台。
为了达到上述目的,本发明提出了一种对虚拟机间二层流量进行监控的系统,该系统包括:安全应用APP、OVS控制器、虚拟交换机OVS、防火墙模块。
安全APP,调用OVS控制器的应用程序接口API接口获得虚拟机与OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器的API接口,下发该转发策略。
OVS控制器,向安全APP开放API接口,通过OpenFlow协议与OVS交互,用于获得虚拟机与OVS的端口的连接信息并反馈给安全APP,还用于向OVS下发安全APP生成的转发策略。
OVS,通过OpenFlow协议与OVS控制器交互,用于向OVS控制器反馈虚拟机与其端口的连接信息,接收OVS控制器下发的转发策略,并根据该转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还用于接收并根据转发策略处理和转发第一虚拟机VM1和第二虚拟机VM2间的非ARP报文,使第一虚拟机VM1和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机。
防火墙模块,采取单臂路由模式,用于接收OVS转发来的第一虚拟机VM1和第二虚拟机VM2间的通信报文,过滤后将通信报文路由转发回OVS。
优选地,第一虚拟机VM1、第二虚拟机VM2和OVS位于同一个宿主机HOST上。
HOST包括第一防火墙接口。
OVS包括第一接口、第二接口和第三接口。
OVS控制器包括第一控制接口。
防火墙模块包括第二防火墙接口。
其中,第一接口与第一虚拟机VM1的第一IP地址接口相连,第二接口与第二虚拟机VM2的第二IP地址接口相连,第一防火墙接口的一端与第三接口相连。
第一防火墙接口的另一端通过通信通道分别与第二防火墙接口、第一控制接口相连。
其中,第一IP地址接口处的第一IP地址、第二IP地址接口处的第二IP地址和第二防火墙接口处的第三IP地址属于同一网段。
优选地,
HOST上的虚拟机分属于多个虚拟局域网VLAN,每个VLAN中包括多个虚拟机,每个VLAN内的虚拟机之间相互通信;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
或者,第一虚拟机VM1和第二虚拟机VM2位于不同的HOST上;第一虚拟机VM1和第二虚拟机VM2属于同一个VLAN,第一虚拟机VM1和第二虚拟机VM2分别具有各自的OVS;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
HOST与防火墙模块之间通过建立通用路由协议封装GRE隧道进行通信;或者,在多个HOST与防火墙模块之间构建GRE隧道时,构建一个GRE网关,在GRE网关与防火墙模块之间建立GRE隧道;GRE网关汇聚来自多个HOST的OVS网络流量,统一进行GRE隧道的封装与解封。
优选地,
OVS控制器还用于向OVS下发安全APP生成的虚拟机间通信报文的转发策略是指:
OVS控制器通过Openflow协议与OVS建立连接,安全APP通过OVS控制器的API接口获得OVS上与第一虚拟机VM1、第二虚拟机VM2对应的端口号、MAC地址,安全APP生成虚拟机之间进行数据通信的转发策略,通过OVS控制器的API接口下发给OVS;该转发策略依次通过第一控制接口、通信通道、第一防火墙接口和第三接口被发送到OVS。
其中,当第一虚拟机VM1和第二虚拟机VM2分别连接各自的HOST上的OVS时,安全APP通过OVS控制器向每个OVS下发第一虚拟机VM1和第二虚拟机VM2间通信报文的转发策略。
OVS还用于接收并根据转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指:
OVS接收OVS控制器下发的转发策略,根据转发策略以传统交换机模式对第一虚拟机VM1和第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、第一虚拟机VM1和防火墙模块间的ARP请求/ARP应答数据包、第二虚拟机VM2和防火墙模块间的ARP请求/ARP应答数据包进行转发。
优选地,
OVS还用于接收并根据转发策略处理和转发第一虚拟机VM1和第二虚拟机VM2间的非ARP报文,使第一虚拟机VM1和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机是指:
第一虚拟机VM1/第二虚拟机VM2向第二虚拟机VM2/第一虚拟机VM1发出ICMP请求报文,ICMP请求报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
OVS接收经过防火墙模块之后的ICMP请求报文,转发给第二虚拟机VM2/第一虚拟机VM1。
第二虚拟机VM2/第一虚拟机VM1向第一虚拟机VM1/第二虚拟机VM2发出ICMP应答报文,ICMP应答报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
OVS接收经过防火墙模块之后的ICMP应答报文,转发给第一虚拟机VM1/第二虚拟机VM2。
优选地,
防火墙模块用于接收OVS转发来的第一虚拟机VM1和第二虚拟机VM2间通信报文,过滤后将通信报文路由转发回OVS是指:
防火墙模块收到OVS转发来第一虚拟机VM1和第二虚拟机VM2间的ICMP请求报文或ICMP应答报文后,对ICMP请求报文或ICMP应答报文进行过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将ICMP请求报文或ICMP应答报文的MAC修改为目的虚拟机的MAC后通过第二防火墙接口、通信通道、第一防火墙接口及第三接口转发至OVS。
其中,防火墙模块与第一虚拟机VM1和第二虚拟机VM2间首次转发报文时,防火墙模块与目的虚拟机之间首先进行ARP请求和应答,获得目的虚拟机的IP-MAC对应关系,并存入ARP表中;其中,防火墙模块与目的虚拟机之间的ARP请求和应答通过OVS以传统交换机工作模式转发。
本发明还提出一种对虚拟机间二层流量进行监控的方法,该方法包括:
OVS通过OpenFlow协议与OVS控制器交互,向OVS控制器反馈虚拟机与其端口的连接信息。
OVS控制器通过OpenFlow协议与OVS交互,获得虚拟机与OVS的端口的连接信息并反馈给安全应用APP。
安全APP调用OVS控制器的应用程序接口API接口获得虚拟机与OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器的API接口,下发该转发策略。
OVS控制器向OVS下发安全APP生成的转发策略。
OVS接收OVS控制器下发的转发策略,并根据转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还接收并根据转发策略处理和转发第一虚拟机VM1和第二虚拟机VM2间的非ARP报文,使第一虚拟机VM1和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机。
防火墙模块采取单臂路由模式,接收OVS转发来的第一虚拟机VM1和第二虚拟机VM2间的通信报文,过滤后将通信报文路由转发回OVS。
优选地,第一虚拟机VM1、第二虚拟机VM2和OVS位于同一个HOST上。
第一虚拟机VM1的第一IP地址接口处的第一IP地址、第二虚拟机VM2的第二IP地址接口处的第二IP地址和防火墙模块的第二防火墙接口处的第三IP地址属于同一网段。
优选地,
HOST上的虚拟机分属于多个虚拟局域网VLAN,每个VLAN中包括多个虚拟机,每个VLAN内的虚拟机之间相互通信;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
或者,第一虚拟机VM1和第二虚拟机VM2位于不同的HOST上;第一虚拟机VM1和第二虚拟机VM2属于同一个VLAN,第一虚拟机VM1和第二虚拟机VM2分别连接各自的HOST上的OVS;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
HOST与防火墙模块之间通过建立通用路由协议封装GRE隧道进行通信;或者,在多个HOST与防火墙模块之间构建GRE隧道时,构建一个GRE网关,在GRE网关与防火墙模块之间建立GRE隧道;GRE网关汇聚来自多个HOST的OVS网络流量,统一进行GRE隧道的封装与解封。
优选地,
OVS控制器向OVS下发安全APP生成的转发策略是指:
OVS控制器通过Openflow协议与OVS建立连接,安全APP通过OVS控制器的API接口获得OVS上与第一虚拟机VM1、第二虚拟机VM2对应的端口号、MAC地址,安全APP生成虚拟机之间进行数据通信的转发策略,通过OVS控制器的API接口下发给OVS;该转发策略依次通过第一控制接口、通信通道、第一防火墙接口和第三接口被发送到OVS。
其中,当第一虚拟机VM1和第二虚拟机VM2分别连接各自的HOST上的OVS时,安全APP通过OVS控制器向每个OVS下发第一虚拟机VM1和第二虚拟机VM2间通信报文的转发策略。
OVS还用于接收并根据转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指:
OVS接收OVS控制器下发的转发策略,根据转发策略以传统交换机模式对第一虚拟机VM1和第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、第一虚拟机VM2和防火墙模块间的ARP请求/ARP应答数据包、第二虚拟机VM2和防火墙模块间的ARP请求/ARP应答数据包进行转发。
优选地,
OVS接收并根据转发策略处理和转发第一虚拟机VM1和第二虚拟机VM2间的非ARP报文,使第一虚拟机VM1和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机是指:
第一虚拟机VM1/第二虚拟机VM2向第二虚拟机VM2/第一虚拟机VM1发出ICMP请求报文,ICMP请求报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
OVS接收经过防火墙模块之后的ICMP请求报文,转发给第二虚拟机VM2/第一虚拟机VM1。
第二虚拟机VM2/第一虚拟机VM1向第一虚拟机VM1/第二虚拟机VM2发出ICMP应答报文,ICMP应答报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
OVS接收经过防火墙模块之后的ICMP应答报文,转发给第一虚拟机VM1/第二虚拟机VM2。
优选地,
防火墙模块接收OVS转发来的第一虚拟机VM1和第二虚拟机VM2间通信报文,过滤后将通信报文路由转发回OVS是指:
防火墙模块收到OVS转发来第一虚拟机VM1和第二虚拟机VM2间的ICMP请求报文或ICMP应答报文后,对ICMP请求报文或ICMP应答报文进行过滤后,查询路由表、ARP表,获得目的虚拟机的IP-MAC对应关系,将ICMP请求报文或ICMP应答报文的MAC修改为目的虚拟机的MAC后通过第二防火墙接口、通信通道、第一防火墙接口及第三接口转发至OVS。
其中,防火墙模块与第一虚拟机VM1和第二虚拟机VM2间首次转发报文时,防火墙模块与目的虚拟机之间首先进行ARP请求和应答,获得目的虚拟机的IP-MAC对应关系,并存入ARP表中;其中,防火墙模块与目的虚拟机之间的ARP请求和应答通过OVS以传统交换机工作模式转发。
与现有技术相比,本发明包括:安全应用APP、OVS控制器、虚拟交换机OVS、防火墙模块。安全APP,调用OVS控制器的应用程序接口API接口获得虚拟机与OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器的API接口,下发该转发策略。OVS控制器,向安全APP开放API接口,通过OpenFlow协议与OVS交互,用于获得虚拟机与OVS的端口的连接信息并反馈给安全APP,还用于向OVS下发安全APP生成的转发策略。OVS,通过OpenFlow协议与OVS控制器交互,用于向OVS控制器反馈虚拟机与其端口的连接信息,接收OVS控制器下发的转发策略,并根据该转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还用于接收并根据转发策略处理和转发第一虚拟机VM1和第二虚拟机VM2间的非ARP报文,使第一虚拟机VM1和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机。防火墙模块,采取单臂路由模式,用于接收OVS转发来的第一虚拟机VM1和第二虚拟机VM2间的通信报文,过滤后将通信报文路由转发回OVS。通过本发明的方案,能够在不改变传统以太网帧格式,充分利用物理防火墙丰富的安全防护功能的前提下,实现对虚拟机间二层流量的监控,并且支持KVM和Xen等常用的虚拟化平台。
附图说明
下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
图1为本发明的对虚拟机间二层流量进行监控的系统示意图;
图2为本发明的对虚拟机间二层流量进行监控的系统的一种实施方式;
图3为本发明的对虚拟机间二层流量进行监控的系统的另一种实施方式;
图4为本发明的对虚拟机间二层流量进行监控的系统的另一种实施方式;
图5为本发明的对虚拟机间二层流量进行监控的系统的另一种实施方式;
图6为本发明的对虚拟机间二层流量进行监控的方法流程图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
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表学习、转发机制的传统交换机。
本技术方案利用OVS可以按照OVS控制器下发的转发策略对数据包进行处理、转发的机制,与防火墙单臂路由模式配合完成虚拟机间二层流量的深度监控。
具体地,本发明提出了一种对虚拟机间二层流量进行监控的系统,如图1所示,该系统对第一虚拟机VM102、第二虚拟机VM203进行监测,具体地,该系统包括:安全应用APP 01、OVS控制器04、虚拟交换机OVS 05、防火墙模块07。
安全APP 01,调用OVS控制器04的应用程序接口API接口获得虚拟机与OVS 05的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器04的API接口,下发该转发策略。
OVS控制器04,向安全APP 01开放API接口,通过OpenFlow协议与OVS 05交互,用于获得虚拟机与OVS 05的端口的连接信息并反馈给安全APP 01,还用于向OVS 05下发安全APP 01生成的转发策略。
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后到达目的虚拟机。
防火墙模块07,采取单臂路由模式,用于接收OVS 05转发来的第一虚拟机VM102和第二虚拟机VM203间的通信报文,过滤后将通信报文路由转发回OVS 05。
在图1的实施例中,该系统在OVS 05和防火墙模块07之间加入了物理交换机06,用于为第一虚拟机VM102和所述第二虚拟机VM203之间的数据通信提供通路,作为OVS 05和防火墙模块07之间的通信通道。
优选地,第一虚拟机VM102、第二虚拟机VM203和OVS 05位于同一个HOST 08上。
HOST 08包括第一防火墙接口081。
第一虚拟机VM102包括第一IP地址接口021;第二虚拟机VM203包括第二IP地址接口031。
OVS 05包括第一接口051、第二接口052和第三接口053。
OVS控制器04包括第一控制接口041。
物理交换机06包括第一交换接口061、第二交换接口062和第三交换接口063。
防火墙模块07包括第二防火墙接口071。
其中,第一虚拟机VM102的第一IP地址接口021与第一接口051相连,第二虚拟机VM203的第二IP地址接口031与第二接口052相连,第一防火墙接口081的一端与第三接口053相连。
第一防火墙接口081的另一端与第二交换接口062相连。
第一交换接口061与第一控制接口041相连。
第三交换接口063与第二防火墙接口071相连。
其中,第一IP地址接口021处的第一IP地址、第二IP地址接口031处的第二IP地址和第二防火墙接口071处的第三IP地址属于同一网段。
优选地,
OVS控制器04还用于向OVS下发安全APP 01生成的虚拟机间通信报文的转发策略是指:
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。
其中,当第一虚拟机VM102和第二虚拟机VM203分别具有各自的OVS05时,安全APP 01通过OVS控制器04向每个OVS 05下发第一虚拟机VM102和第二虚拟机VM203间通信报文的转发策略。
OVS 05还用于接收并根据转发策略转发第一虚拟机VM102和第二虚拟机VM203间、第一虚拟机VM102和防火墙模块07间、第二虚拟机VM203和防火墙模块07间的ARP报文是指:
OVS 05接收OVS控制器04下发的转发策略,根据转发策略以传统交换机模式对第一虚拟机VM102和第二虚拟机VM203间的地址解析协议ARP请求/ARP应答数据包、第一虚拟机VM102和防火墙模块07间的ARP请求/ARP应答数据包、第二虚拟机VM203和防火墙模块07间的ARP请求/ARP应答数据包进行转发。
优选地,
OVS 05还用于接收并根据转发策略处理和转发第一虚拟机VM102和第二虚拟机VM203间的非ARP报文,使第一虚拟机VM102和第二虚拟机VM203间的非ARP报文流经防火墙模块07后到达目的虚拟机是指:
第一虚拟机VM102/第二虚拟机VM203向第二虚拟机VM203/第一虚拟机VM102发出ICMP请求报文,ICMP请求报文到达OVS 05后,OVS05将ICMP请求报文的目的MAC修改为防火墙模块07的第二防火墙接口071的MAC后通过第三接口053、第一防火墙接口081、通信通道(在图1的实施例中为物理交换机06的第二交换接口062,第三交换接口063)及第二防火墙接口071转发至防火墙模块07。
OVS 05接收经过防火墙模块07之后的ICMP请求报文,转发给第二虚拟机VM203/第一虚拟机VM102。
第二虚拟机VM203/第一虚拟机VM102向第一虚拟机VM102/第二虚拟机VM203发出ICMP应答报文,ICMP应答报文到达OVS 05后,OVS05将ICMP请求报文的目的MAC修改为防火墙模块07的第二防火墙接口071的MAC后通过第三接口053、第一防火墙接口081、通信通道(在图1的实施例中为物理交换机06的第二交换接口062,第三交换接口063)及第二防火墙接口071转发至防火墙模块07。
OVS 05接收经过防火墙模块07之后的ICMP应答报文,转发给第一虚拟机VM102/第二虚拟机VM203。
优选地,
防火墙模块用于接收OVS 05转发来的第一虚拟机VM102和第二虚拟机VM203间通信报文,过滤后将通信报文路由转发回OVS 05是指:
防火墙模块07收到OVS 05转发的第一虚拟机VM102和第二虚拟机VM203间的ICMP请求报文或ICMP应答报文后,对ICMP请求报文或ICMP应答报文进行过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将ICMP请求报文或ICMP应答报文的MAC修改为目的虚拟机的MAC后通过第二防火墙接口071、通信通道(在图1的实施例中为物理交换机06的第三交换接口063,第二交换接口062)、第一防火墙接口081及第三接口053转发至OVS 05。
其中,防火墙模块07与第一虚拟机VM102和第二虚拟机VM203间首次转发报文时,防火墙模块07与目的虚拟机之间首先进行ARP请求和应答,获得目的虚拟机的IP-MAC对应关系,并存入ARP表中;其中,防火墙模块07与目的虚拟机之间的ARP请求和应答通过OVS以传统交换机工作模式转发。
本发明对于虚拟机之间的通信还设计了多种实施方式,如下所述:
实施例1
如图2所示,HOST 08与防火墙模块07之间通过建立通用路由协议封装GRE隧道09进行通信,并从防火墙模块07的第二防火墙接口071引申出GRE隧道09的端点设备091。
在云计算的实际应用当中,通常采用划分VLAN的方法来实现租户网络的隔离。在本方案的具体实施中,也提供了对VLAN划分的支持。如图3、图4所示,分别给出了两种VLAN的划分场景,其中图3所示的VLAN处于同一个HOST,图4所示的VLAN跨了两个HOST。下面通过几个具体实施例进一步介绍本发明的其他实施方案。
实施例2
如图3所示,HOST上的虚拟机分属多个虚拟局域网VLAN,如VLAN113和VLAN214,每个VLAN中包括多个虚拟机,如VM11、VM12和VM21、VM22,每个VLAN内的虚拟机之间相互通信,如VM11与VM12通信,VM21与VM22通信。防火墙模块07通过一个端口第二防火墙接口071与物理交换机06单臂连接,工作在路由模式。防火墙模块07的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址,如072、073;其中,通信时每个VLAN中的虚拟机可以选择与本身处于相同网段的防火墙模块07中的VLAN设备的IP地址。
对于图3所示的场景,安全应用APP 01通过OVS控制器04给OVS 05下发VM11和VM12(或VM21和VM22)通信相关的静态转发策略,确保OVS 05按照传统交换机工作模式转发VM11和VM12间、防火墙和VM11间、防火墙和VM12间的ARP报文;VM11和VM12间的非ARP报文能够按照图3所示的路线传输,VM21和VM22通信相关的静态转发策略与VM11和VM12的通信过程相同。
设置完图3所示的场景后,下面以图3中VM11 ping VM12为例,说明具体的通信流程:
S101、VM11与VM12之间进行ARP请求和应答交互。ARP请求和应答报文到达OVS 05后,OVS 05按照传统交换机工作模式转发该ARP请求和应答报文。
S102、VM11向VM12发出ICMP请求报文。ICMP请求报文到达OVS 05后,OVS 05将ICMP请求报文的目的MAC修改为防火墙模块07的第二防火墙接口071的MAC后通过第三接口053、第一防火墙接口081、通信通道(在图3的实施例中为物理交换机06的第二交换接口062,第三交换接口063),第二防火墙接口071及VLAN设备072转发至防火墙模块07。
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和VM12之间首次转发报文时,ARP表中没有VM12的IP-MAC对应关系,因此VLAN设备072与VM12之间首先进行ARP请求和应答,获得VM12的IP-MAC对应关系,并存入ARP表中。ARP请求和应答报文到达OVS 05后,OVS 05按照传统交换机工作模式转发该ARP报文。)
S104、OVS 05收到ICMP请求报文,转发给VM12。
S105、VM12向VM11发出ICMP应答报文。ICMP应答报文到达OVS 05后,OVS 05将ICMP应答报文的目的MAC修改为防火墙模块07的第二防火墙接口071的MAC后通过第三接口053、第一防火墙接口081、通信通道(在图3的实施例中为物理交换机06的第二交换接口062,第三交换接口063),第二防火墙接口071及VLAN设备072转发至防火墙模块07。
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和VM11之间首次转发报文时,ARP表中没有VM11的IP-MAC对应关系,因此VLAN设备072与VM11之间首先进行ARP请求和应答,获得VM11的IP-MAC对应关系,并存入ARP表中。ARP请求和应答报文到达OVS 05后,OVS 05按照传统交换机工作模式转发该ARP报文。)
S107、OVS 05收到ICMP应答报文后,转发给VM11。
通过以上步骤,图3中的VM11与VM12之间的请求和应答交互完成,后续的ICMP请求和应答报文重复执行步骤S102~S107。
实施例3
如图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地址。
对于图4所示的场景,安全应用APP 01通过OVS控制器04分别向两个OVS 05下发第一虚拟机VM102和第二虚拟机VM203通信相关的静态转发策略,确保:OVS 05按照传统交换机工作模式转发第一虚拟机VM102和第二虚拟机VM203间、防火墙和第一虚拟机VM102间、防火墙和第二虚拟机VM203间的ARP报文;第一虚拟机VM102和第二虚拟机VM203的非ARP报文能够按照图4所示的路线传输。
图4场景中的第一虚拟机VM102和第二虚拟机VM203之间通信的具体实施步骤与上述步骤S101~S107相同,在此不再赘述。
实施例4
如前所述,在如图2所示的场景中,HOST08与防火墙模块07之间可以通过建立GRE隧道09进行通信。当在一个场景中包含多个HOST时,也可以通过建立GRE隧道09进行通信,如图5所示,在多个HOST,如HOST10、11,与防火墙模块07之间构建GRE隧道09时,构建一个GRE网关12,在GRE网关12与防火墙模块07之间建立GRE隧道09,并且从防火墙模块07的第二防火墙接口071引申出多个VLAN设备,如072、073。GRE网关12汇聚来自多个HOST 10和11等的OVS网络流量,统一进行GRE隧道09的封装与解封。
本发明还提出一种对虚拟机间二层流量进行监控的方法,如图6所示,该方法包括:
S201、OVS通过OpenFlow协议与OVS控制器交互,向OVS控制器反馈虚拟机与其端口的连接信息。
S202、OVS控制器通过OpenFlow协议与OVS交互,获得虚拟机与OVS的端口的连接信息并反馈给安全APP。
S203、安全APP调用OVS控制器的API接口获得虚拟机与OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用OVS控制器的API接口,下发该转发策略。
S204、OVS控制器向OVS下发安全APP生成的转发策略。
优选地,OVS控制器向OVS下发安全APP生成的转发策略是指:
OVS控制器通过Openflow协议与OVS建立连接,安全APP通过OVS控制器的API接口获得OVS上与第一虚拟机VM1、第二虚拟机VM2对应的端口号、MAC地址,安全APP生成虚拟机之间进行数据通信的转发策略,通过OVS控制器的API接口下发给OVS;该转发策略依次通过第一控制接口、通信通道、第一防火墙接口和第三接口被发送到OVS。
其中,当第一虚拟机VM1和第二虚拟机VM2分别连接各自的HOST上的OVS时,安全APP通过OVS控制器向每个OVS下发第一虚拟机VM1和第二虚拟机VM2间通信报文的转发策略。
S205、OVS接收OVS控制器下发的转发策略,并根据转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还接收并根据转发策略处理和转发第一虚拟机VM1和第二虚拟机VM2间的非ARP报文,使第一虚拟机VM1和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机。
优选地,OVS接收并根据转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指:
OVS接收OVS控制器下发的转发策略,根据转发策略以传统交换机模式对第一虚拟机VM1和第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、第一虚拟机VM1和防火墙模块间的ARP请求/ARP应答数据包、第二虚拟机VM2和防火墙模块间的ARP请求/ARP应答数据包进行转发。
优选地,
OVS接收并根据转发策略处理和转发第一虚拟机VM1和第二虚拟机VM2间的非ARP报文,使第一虚拟机VM1和第二虚拟机VM2间的非ARP报文流经防火墙模块后到达目的虚拟机是指:
第一虚拟机VM1/第二虚拟机VM2向第二虚拟机VM2/第一虚拟机VM1发出ICMP请求报文,ICMP请求报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
OVS接收经过防火墙模块之后的ICMP请求报文,转发给第二虚拟机VM2/第一虚拟机VM1。
第二虚拟机VM2/第一虚拟机VM1向第一虚拟机VM1/第二虚拟机VM2发出ICMP应答报文,ICMP应答报文到达OVS后,OVS将ICMP请求报文的目的MAC修改为防火墙模块的第二防火墙接口的MAC后通过第三接口、第一防火墙接口、通信通道及第二防火墙接口转发至防火墙模块。
OVS接收经过防火墙模块之后的ICMP应答报文,转发给第一虚拟机VM1/第二虚拟机VM2。
S206、防火墙模块采取单臂路由模式,接收OVS转发来的第一虚拟机VM1和第二虚拟机VM2间的通信报文,过滤后将通信报文路由转发回OVS。
优选地,防火墙模块接收OVS转发来的第一虚拟机VM1和第二虚拟机VM2间通信报文,过滤后将通信报文路由转发回OVS是指:
防火墙模块收到OVS转发来第一虚拟机VM1和第二虚拟机VM2间的ICMP请求报文或ICMP应答报文后,对ICMP请求报文或ICMP应答报文进行过滤后,查询路由表、ARP表,获得目的虚拟机的IP-MAC对应关系,将ICMP请求报文或ICMP应答报文的MAC修改为目的虚拟机的MAC后通过第二防火墙接口、通信通道、第一防火墙接口及第三接口转发至OVS。
其中,防火墙模块与第一虚拟机VM1和第二虚拟机VM2间首次转发报文时,防火墙模块与目的虚拟机之间首先进行ARP请求和应答,获得目的虚拟机的IP-MAC对应关系,并存入ARP表中;其中,防火墙模块与目的虚拟机之间的ARP请求和应答通过OVS以传统交换机工作模式转发。
优选地,第一虚拟机VM1、第二虚拟机VM2和OVS位于同一个HOST上。
第一虚拟机VM1的第一IP地址接口处的第一IP地址、第二虚拟机VM2的第二IP地址接口处的第二IP地址和防火墙模块的第二防火墙接口处的第三IP地址属于同一网段。
优选地,
HOST上的虚拟机分属于多个虚拟局域网VLAN,每个VLAN中包括多个虚拟机,每个VLAN内的虚拟机之间相互通信;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
或者,第一虚拟机VM1和第二虚拟机VM2位于不同的宿主机上;第一虚拟机VM1和第二虚拟机VM2属于同一个VLAN,第一虚拟机VM1和第二虚拟机VM2分别连接各自的HOST上的OVS;防火墙模块通过一个端口第二防火墙接口与通信通道单臂连接,工作在路由模式;防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址;其中,通信时每个VLAN中的虚拟机选择与本身处于相同网段的防火墙模块中的VLAN设备的IP地址。
HOST与防火墙模块之间通过建立通用路由协议封装GRE隧道进行通信;或者,在多个HOST与防火墙模块之间构建GRE隧道时,构建一个GRE网关,在GRE网关与防火墙模块之间建立GRE隧道;GRE网关汇聚来自多个HOST的OVS网络流量,统一进行GRE隧道的封装与解封。
具体地,如图3所示,HOST上的虚拟机分属于多个虚拟局域网VLAN,如VLAN113和VLAN214,每个VLAN中包括多个虚拟机,如VM11、VM12和VM21、VM22,每个VLAN内的虚拟机之间相互通信,如VM11与VM12通信,VM21与VM22通信。防火墙模块07通过一个端口第二防火墙接口071与物理交换机06单臂连接,工作在路由模式。防火墙模块07的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址,如072、073;其中,通信时每个VLAN中的虚拟机可以选择与本身处于相同网段的防火墙模块07中的VLAN设备的IP地址。
或者,如图4所示,第一虚拟机VM102和第二虚拟机VM203位于不同的HOST上;但第一虚拟机VM102和第二虚拟机VM203属于同一个VLAN,并且第一虚拟机VM102和第二虚拟机VM203分别具有各自的OVS04。同样,防火墙模块07通过一个端口第二防火墙接口071与物理交换机06单臂连接,工作在路由模式。防火墙模块07的网卡虚拟成多个虚拟局域网VLAN设备,每个VLAN设备分别配置各自的IP地址,如072、073;其中,通信时第一虚拟机VM102和第二虚拟机VM203可以选择与本身处于相同网段的防火墙模块07中的VLAN设备的IP地址。
如图2所示,HOST与防火墙之间通过建立通用路由协议封装GRE隧道进行通信;或者,如图5所示,在多个HOST与防火墙之间构建GRE隧道时,构建一个GRE网关,在GRE网关与防火墙之间建立GRE隧道;GRE网关汇聚来自多个HOST的OVS网络流量,统一进行GRE隧道的封装与解封。
本技术方案的关键是OVS的转发策略接收以及数据包修改等机制与防火墙单臂路由模式配合应用,实现了虚拟机间二层流量的深度监控。该方案的优点在于不改变传统以太网帧格式,可以充分利用物理防火墙丰富的安全防护功能,并且支持KVM和Xen等常用的虚拟化平台。该方案还支持在HOST与防火墙之间建立通用路由协议封装GRE隧道,来实现传统物理网络对OVS网络报文的转发。
需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。
Claims (12)
1.一种对虚拟机间二层流量进行监控的系统,其特征在于,所述系统包括:安全应用APP、OVS控制器、虚拟交换机OVS、防火墙模块;
所述安全APP,调用所述OVS控制器的应用程序接口API接口获得虚拟机与所述OVS的端口的连接信息;生成虚拟机间通信报文的转发策略,并调用所述OVS控制器的所述API接口,下发所述转发策略;
所述OVS控制器,向所述安全APP开放所述API接口,通过OpenFlow协议与所述OVS交互,用于获得虚拟机与所述OVS的端口的连接信息并反馈给所述安全APP;还用于向所述OVS下发所述安全APP生成的所述转发策略;
所述OVS,通过所述OpenFlow协议与所述OVS控制器交互,用于向所述OVS控制器反馈虚拟机与其端口的连接信息,接收所述OVS控制器下发的所述转发策略,并根据所述转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文;还用于接收并根据所述转发策略处理和转发所述第一虚拟机VM1和所述第二虚拟机VM2间的非ARP报文,使所述第一虚拟机VM1和所述第二虚拟机VM2间的所述非ARP报文流经所述防火墙模块后到达目的虚拟机;
所述防火墙模块,采取单臂路由模式,用于接收所述OVS转发来的所述第一虚拟机VM1和所述第二虚拟机VM2间的所述通信报文,过滤后将所述通信报文路由转发回所述OVS。
2.如权利要求1所述的系统,其特征在于,所述第一虚拟机VM1、所述第二虚拟机VM2和所述OVS位于同一个宿主机HOST上;
所述宿主机包括第一防火墙接口;
所述OVS包括第一接口、第二接口和第三接口;
所述OVS控制器包括第一控制接口;
所述防火墙模块包括第二防火墙接口;
其中,所述第一接口与所述第一虚拟机VM1的第一IP地址接口相连,所述第二接口与所述第二虚拟机VM2的第二IP地址接口相连,所述第一防火墙接口的一端与所述第三接口相连;
所述第一防火墙接口的另一端通过通信通道分别与所述第二防火墙接口、所述第一控制接口相连;
其中,所述第一IP地址接口处的第一IP地址、所述第二IP地址接口处的第二IP地址和所述第二防火墙接口处的第三IP地址属于同一网段。
3.如权利要求2所述的系统,其特征在于,
所述HOST上的虚拟机分属于不同的虚拟局域网VLAN,每个所述VLAN中包括多个虚拟机,每个所述VLAN内的所述虚拟机之间相互通信;所述防火墙模块通过一个端口第二防火墙接口与所述通信通道单臂连接,工作在路由模式;所述防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个所述VLAN设备分别配置各自的IP地址;其中,通信时每个所述VLAN中的所述虚拟机选择与本身处于相同网段的所述防火墙模块中的所述VLAN设备的IP地址;
或者,所述第一虚拟机VM1和所述第二虚拟机VM2位于不同的所述HOST上;所述第一虚拟机VM1和所述第二虚拟机VM2属于同一个VLAN,所述第一虚拟机VM1和所述第二虚拟机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上与所述第一虚拟机VM1、所述第二虚拟机VM2对应的端口号、MAC地址,所述安全APP生成虚拟机之间进行数据通信的转发策略,通过所述OVS控制器的所述API接口下发给所述OVS;所述转发策略依次通过所述第一控制接口、所述通信通道、所述第一防火墙接口和所述第三接口被发送到所述OVS;
其中,当所述第一虚拟机VM1和所述第二虚拟机VM2分别连接各自的所述HOST上的所述OVS时,所述安全APP通过所述OVS控制器向每个所述OVS下发所述第一虚拟机VM1和所述第二虚拟机VM2间通信报文的所述转发策略;
所述OVS还用于接收并根据所述转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指:
所述OVS接收所述OVS控制器下发的所述转发策略,根据所述转发策略以传统交换机模式对所述第一虚拟机VM1和所述第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、所述第一虚拟机VM1和所述防火墙模块间的所述ARP请求/所述ARP应答数据包、所述第二虚拟机VM2和所述防火墙模块间的所述ARP请求/所述ARP应答数据包进行转发。
5.如权利要求2所述的系统,其特征在于,
所述OVS还用于接收并根据所述转发策略处理和转发所述第一虚拟机VM1和所述第二虚拟机VM2间的非ARP报文,使所述第一虚拟机VM1和所述第二虚拟机VM2间的所述非ARP报文流经所述防火墙模块后到达目的虚拟机是指:
所述第一虚拟机VM1/所述第二虚拟机VM2向所述第二虚拟机VM2/所述第一虚拟机VM1发出ICMP请求报文,所述ICMP请求报文到达所述OVS后,所述OVS将所述ICMP请求报文的目的MAC修改为所述防火墙模块的所述第二防火墙接口的MAC后通过所述第三接口、所述第一防火墙接口、所述通信通道及所述第二防火墙接口转发至所述防火墙模块;
所述OVS接收经过所述防火墙模块之后的所述ICMP请求报文,转发给所述第二虚拟机VM2/所述第一虚拟机VM1;
所述第二虚拟机VM2/所述第一虚拟机VM1向所述第一虚拟机VM1/所述第二虚拟机VM2发出ICMP应答报文,所述ICMP应答报文到达所述OVS后,所述OVS将所述ICMP请求报文的目的MAC修改为所述防火墙模块的所述第二防火墙接口的MAC后通过所述第三接口、所述第一防火墙接口、所述通信通道及所述第二防火墙接口转发至所述防火墙模块;
所述OVS接收经过所述防火墙模块之后的所述ICMP应答报文,转发给所述第一虚拟机VM1/所述第二虚拟机VM2。
6.如权利要求5所述的系统,其特征在于,
所述防火墙模块用于接收所述OVS转发来的所述第一虚拟机VM1和所述第二虚拟机VM2间通信报文,过滤后将所述通信报文路由转发回所述OVS是指:
所述防火墙模块收到所述OVS转发来所述第一虚拟机VM1和所述第二虚拟机VM2间的所述ICMP请求报文或所述ICMP应答报文后,对所述ICMP请求报文或所述ICMP应答报文进行过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将所述ICMP请求报文或所述ICMP应答报文的MAC修改为目的虚拟机的MAC后通过所述第二防火墙接口、所述通信通道、所述第一防火墙接口及所述第三接口转发至所述OVS;
其中,所述防火墙模块与所述第一虚拟机VM1和所述第二虚拟机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控制器下发的所述转发策略,并根据所述转发策略转发第一虚拟机VM1和第二虚拟机VM2间、所述第一虚拟机VM1和防火墙模块间、所述第二虚拟机VM2和所述防火墙模块间的ARP报文;还接收并根据所述转发策略处理和转发所述第一虚拟机VM1和所述第二虚拟机VM2间的非ARP报文,使所述第一虚拟机VM1和所述第二虚拟机VM2间的非ARP报文流经所述防火墙模块后到达目的虚拟机;
所述防火墙模块采取单臂路由模式,接收所述OVS转发来的所述第一虚拟机VM1和所述第二虚拟机VM2间的通信报文,过滤后将所述通信报文路由转发回所述OVS。
8.如权利要求7所述的方法,其特征在于,所述第一虚拟机VM1、所述第二虚拟机VM2和所述OVS位于同一个HOST上;
所述第一虚拟机VM1的第一IP地址接口处的第一IP地址、所述第二虚拟机VM2的第二IP地址接口处的第二IP地址和所述防火墙模块的第二防火墙接口处的第三IP地址属于同一网段。
9.如权利要求8所述的方法,其特征在于,
所述HOST上的虚拟机分属于不同的虚拟局域网VLAN,每个所述VLAN中包括多个虚拟机,每个所述VLAN内的所述虚拟机之间相互通信;所述防火墙模块通过一个端口第二防火墙接口与所述通信通道单臂连接,工作在路由模式;所述防火墙模块的网卡虚拟成多个虚拟局域网VLAN设备,每个所述VLAN设备分别配置各自的IP地址;其中,通信时每个所述VLAN中的所述虚拟机选择与本身处于相同网段的所述防火墙模块中的所述VLAN设备的IP地址;
或者,所述第一虚拟机VM1和所述第二虚拟机VM2位于不同的所述HOST上;所述第一虚拟机VM1和所述第二虚拟机VM2属于同一个VLAN,所述第一虚拟机VM1和所述第二虚拟机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上与所述第一虚拟机VM1、所述第二虚拟机VM2对应的端口号、MAC地址,所述安全APP生成虚拟机之间进行数据通信的转发策略,通过所述OVS控制器的所述API接口下发给所述OVS;所述转发策略依次通过所述第一控制接口、所述通信通道、所述第一防火墙接口和所述第三接口被发送到所述OVS;
其中,当所述第一虚拟机VM1和所述第二虚拟机VM2分别连接各自的所述HOST上的所述OVS时,所述安全APP通过所述OVS控制器向每个所述OVS下发所述第一虚拟机VM1和所述第二虚拟机VM2间通信报文的所述转发策略;
所述OVS接收并根据所述转发策略转发第一虚拟机VM1和第二虚拟机VM2间、第一虚拟机VM1和防火墙模块间、第二虚拟机VM2和防火墙模块间的ARP报文是指:
所述OVS接收所述OVS控制器下发的所述转发策略,根据所述转发策略以传统交换机模式对所述第一虚拟机VM1和所述第二虚拟机VM2间的地址解析协议ARP请求/ARP应答数据包、所述第一虚拟机VM1和所述防火墙模块间的所述ARP请求/所述ARP应答数据包、所述第二虚拟机VM2和所述防火墙模块间的所述ARP请求/所述ARP应答数据包进行转发。
11.如权利要求8所述的方法,其特征在于,
所述OVS接收并根据所述转发策略处理和转发所述第一虚拟机VM1和所述第二虚拟机VM2间的非ARP报文,使所述第一虚拟机VM1和所述第二虚拟机VM2间的所述非ARP报文流经所述防火墙模块后到达目的虚拟机是指:
所述第一虚拟机VM1/所述第二虚拟机VM2向所述第二虚拟机VM2/所述第一虚拟机VM1发出ICMP请求报文,所述ICMP请求报文到达所述OVS后,所述OVS将所述ICMP请求报文的目的MAC修改为所述防火墙模块的所述第二防火墙接口的MAC后通过所述第三接口、所述第一防火墙接口、所述通信通道及所述第二防火墙接口转发至所述防火墙模块;
所述OVS接收经过所述防火墙模块之后的所述ICMP请求报文,转发给所述第二虚拟机VM2/所述第一虚拟机VM1;
所述第二虚拟机VM2/所述第一虚拟机VM1向所述第一虚拟机VM1/所述第二虚拟机VM2发出ICMP应答报文,所述ICMP应答报文到达所述OVS后,所述OVS将所述ICMP请求报文的目的MAC修改为所述防火墙模块的所述第二防火墙接口的MAC后通过所述第三接口、所述第一防火墙接口、所述通信通道及所述第二防火墙接口转发至所述防火墙模块;
所述OVS接收经过所述防火墙模块之后的所述ICMP应答报文,转发给所述第一虚拟机VM1/所述第二虚拟机VM2。
12.如权利要求11所述的方法,其特征在于,
所述防火墙模块接收所述OVS转发来的所述第一虚拟机VM1和所述第二虚拟机VM2间通信报文,过滤后将所述通信报文路由转发回所述OVS是指:
所述防火墙模块收到所述OVS转发来所述第一虚拟机VM1和所述第二虚拟机VM2间的所述ICMP请求报文或所述ICMP应答报文后,对所述ICMP请求报文或所述ICMP应答报文进行过滤后,查询路由表、ARP表,获得所述目的虚拟机的IP-MAC对应关系,将所述ICMP请求报文或所述ICMP应答报文的MAC修改为目的虚拟机的MAC后通过所述第二防火墙接口、所述通信通道、所述第一防火墙接口及所述第三接口转发至所述OVS;
其中,所述防火墙模块与所述第一虚拟机VM1和所述第二虚拟机VM2间首次转发报文时,所述防火墙模块与所述目的虚拟机之间首先进行ARP请求和应答,获得所述目的虚拟机的IP-MAC对应关系,并存入所述ARP表中;其中,所述防火墙模块与所述目的虚拟机之间的所述ARP请求和应答通过所述OVS以传统交换机工作模式转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510112453.8A CN106034052B (zh) | 2015-03-13 | 2015-03-13 | 一种对虚拟机间二层流量进行监控的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510112453.8A CN106034052B (zh) | 2015-03-13 | 2015-03-13 | 一种对虚拟机间二层流量进行监控的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106034052A true CN106034052A (zh) | 2016-10-19 |
CN106034052B CN106034052B (zh) | 2019-05-17 |
Family
ID=57150139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510112453.8A Active CN106034052B (zh) | 2015-03-13 | 2015-03-13 | 一种对虚拟机间二层流量进行监控的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106034052B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953788A (zh) * | 2017-02-16 | 2017-07-14 | 北京西普阳光教育科技股份有限公司 | 一种虚拟网络控制器及控制方法 |
CN107360058A (zh) * | 2017-07-12 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种实现流量监控的方法及装置 |
CN108459909A (zh) * | 2018-02-27 | 2018-08-28 | 北京临近空间飞行器系统工程研究所 | 一种适于并行处理的多体分离网格重叠方法及系统 |
CN109240796A (zh) * | 2018-08-10 | 2019-01-18 | 新华三云计算技术有限公司 | 虚拟机信息获取方法及装置 |
CN110365697A (zh) * | 2019-07-26 | 2019-10-22 | 新华三大数据技术有限公司 | 一种虚拟防火墙设置方法、装置、电子设备及存储介质 |
CN110401923A (zh) * | 2019-04-19 | 2019-11-01 | 广州天链通信科技有限公司 | 一种vsat终端网桥和路由方式同时支持的方法和vsat终端 |
CN113079183A (zh) * | 2021-04-25 | 2021-07-06 | 安徽科大擎天科技有限公司 | 一种分布式防火墙的板间通信系统及其通信方法 |
CN113132155A (zh) * | 2021-03-29 | 2021-07-16 | 新华三大数据技术有限公司 | 一种虚拟交换机分布式逃生方法、装置及存储介质 |
CN113765798A (zh) * | 2021-11-09 | 2021-12-07 | 广东睿江云计算股份有限公司 | 使用外置过滤器的QoS方法、装置、计算机设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152239A (zh) * | 2013-02-25 | 2013-06-12 | 汉柏科技有限公司 | 一种基于Open VSwitch的虚拟网络实现方法和系统 |
US20140280997A1 (en) * | 2013-03-14 | 2014-09-18 | Cisco Technology, Inc. | Establishing translation for virtual machines in a network environment |
CN104168200A (zh) * | 2014-07-10 | 2014-11-26 | 汉柏科技有限公司 | 一种基于Open vSwitch实现ACL功能的方法及系统 |
CN104283756A (zh) * | 2013-07-02 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种实现分布式多租户虚拟网络的方法和装置 |
CN104322022A (zh) * | 2012-05-15 | 2015-01-28 | 日本电气株式会社 | 多租户系统、交换机、控制器和分组传输方法 |
CN104378264A (zh) * | 2014-12-12 | 2015-02-25 | 武汉噢易云计算有限公司 | 一种基于sFlow的虚拟机进程流量监控方法 |
-
2015
- 2015-03-13 CN CN201510112453.8A patent/CN106034052B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104322022A (zh) * | 2012-05-15 | 2015-01-28 | 日本电气株式会社 | 多租户系统、交换机、控制器和分组传输方法 |
CN103152239A (zh) * | 2013-02-25 | 2013-06-12 | 汉柏科技有限公司 | 一种基于Open VSwitch的虚拟网络实现方法和系统 |
US20140280997A1 (en) * | 2013-03-14 | 2014-09-18 | Cisco Technology, Inc. | Establishing translation for virtual machines in a network environment |
CN104283756A (zh) * | 2013-07-02 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种实现分布式多租户虚拟网络的方法和装置 |
CN104168200A (zh) * | 2014-07-10 | 2014-11-26 | 汉柏科技有限公司 | 一种基于Open vSwitch实现ACL功能的方法及系统 |
CN104378264A (zh) * | 2014-12-12 | 2015-02-25 | 武汉噢易云计算有限公司 | 一种基于sFlow的虚拟机进程流量监控方法 |
Non-Patent Citations (1)
Title |
---|
邵国林等: ""基于OpenFlow的虚拟机流量检测系统的设计与实现"", 《计算机应用》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953788A (zh) * | 2017-02-16 | 2017-07-14 | 北京西普阳光教育科技股份有限公司 | 一种虚拟网络控制器及控制方法 |
CN106953788B (zh) * | 2017-02-16 | 2019-12-13 | 北京西普阳光教育科技股份有限公司 | 一种虚拟网络控制器及控制方法 |
CN107360058A (zh) * | 2017-07-12 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种实现流量监控的方法及装置 |
CN108459909A (zh) * | 2018-02-27 | 2018-08-28 | 北京临近空间飞行器系统工程研究所 | 一种适于并行处理的多体分离网格重叠方法及系统 |
CN108459909B (zh) * | 2018-02-27 | 2021-02-09 | 北京临近空间飞行器系统工程研究所 | 一种适于并行处理的多体分离网格重叠方法及系统 |
CN109240796A (zh) * | 2018-08-10 | 2019-01-18 | 新华三云计算技术有限公司 | 虚拟机信息获取方法及装置 |
CN110401923A (zh) * | 2019-04-19 | 2019-11-01 | 广州天链通信科技有限公司 | 一种vsat终端网桥和路由方式同时支持的方法和vsat终端 |
CN110365697A (zh) * | 2019-07-26 | 2019-10-22 | 新华三大数据技术有限公司 | 一种虚拟防火墙设置方法、装置、电子设备及存储介质 |
CN113132155A (zh) * | 2021-03-29 | 2021-07-16 | 新华三大数据技术有限公司 | 一种虚拟交换机分布式逃生方法、装置及存储介质 |
CN113079183A (zh) * | 2021-04-25 | 2021-07-06 | 安徽科大擎天科技有限公司 | 一种分布式防火墙的板间通信系统及其通信方法 |
CN113765798A (zh) * | 2021-11-09 | 2021-12-07 | 广东睿江云计算股份有限公司 | 使用外置过滤器的QoS方法、装置、计算机设备及介质 |
CN113765798B (zh) * | 2021-11-09 | 2022-02-08 | 广东睿江云计算股份有限公司 | 使用外置过滤器的QoS方法、装置、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106034052B (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106034052A (zh) | 一种对虚拟机间二层流量进行监控的系统及方法 | |
CN104022960B (zh) | 基于OpenFlow协议实现PVLAN的方法和装置 | |
EP3229421B1 (en) | Media access control address forwarding table transmission control method, apparatus, and system | |
US8819267B2 (en) | Network virtualization without gateway function | |
CN104301321B (zh) | 一种实现分布式网络安全防护的方法及系统 | |
US20140006585A1 (en) | Providing Mobility in Overlay Networks | |
CN107592216B (zh) | 一种支持多场景实验隔离的虚实网络融合仿真方法 | |
CN111064649B (zh) | 一种分层端口绑定实现方法、装置、控制设备及存储介质 | |
CN109561033B (zh) | Overlay网络中组播复制的方法及装置 | |
CN103081418A (zh) | 计算机系统和计算机系统中的通信方法 | |
CN104335531A (zh) | 在大规模分布式虚拟交换机中实现pvlan | |
CN105284080A (zh) | 数据中心的虚拟网络管理方法及数据中心系统 | |
CN104285416A (zh) | 在存储区域网络中端接覆盖隧道的虚拟路由器 | |
CN106452857A (zh) | 生成配置信息的方法和网络控制单元 | |
CN107306215B (zh) | 一种数据处理方法、系统及节点 | |
Naranjo et al. | Underlay and overlay networks: The approach to solve addressing and segmentation problems in the new networking era: VXLAN encapsulation with Cisco and open source networks | |
CN107018058A (zh) | 一种云环境下共用vlan和vxlan通信的方法及系统 | |
CN106899478B (zh) | 电力测试业务通过云平台实现资源弹性扩展的方法 | |
EP3066786B1 (en) | Enabling load balancing in a network virtualization overlay architecture | |
US20180270084A1 (en) | Technique for exchanging datagrams between application modules | |
Tran et al. | A network topology-aware selectively distributed firewall control in sdn | |
CN104601428A (zh) | 虚拟机之间的通信方法 | |
CN104092684A (zh) | 一种OpenFlow协议支持VPN的方法及设备 | |
CN104144130B (zh) | 虚拟机系统互联的方法、系统和接入交换机 | |
Callegati et al. | Implementing dynamic chaining of Virtual Network Functions in OpenStack platform |
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 |