发明内容
针对相关技术中的问题,本发明提出一种基于虚拟网络的安全域控制方法和系统,能够在虚拟网络环境中实现虚拟安全域的功能。
为实现上述目的,一方面,本发明提供了一种基于虚拟网络的安全域控制方法,包括:安全域控制器接收基于虚拟交换标准OVS的OVS交换机发送的数据包头,其中,数据包头为流入OVS交换机的数据流中的数据包的数据包头;安全域控制器根据数据包头携带的信息以及预设的安全域中的白名单确定出OVS接收到的数据流为安全数据流时,指示OVS交换机放行数据流。
根据本发明,在安全域控制器接收基于虚拟交换标准OVS的OVS交换机发送的数据包头之前,该方法还包括:OVS交换机判断是否有与流入的数据流对应的数据流规则,如果为否,则将数据流中的数据包的数据包头发送给安全域控制器。
根据本发明,安全域控制器根据数据包头携带的信息以及预定的安全域中的白名单确定出OVS接收到的数据流为安全数据流时,指示OVS交换机放行数据流,包括:安全域控制器获取数据包头中的目标IP,并判断目标IP是否对应安全域中的虚拟机;如果是,获取数据包头中的源IP和协议信息,并且将源IP和协议信息与安全域中的白名单进行匹配;如果匹配,则建立与数据包的类型相对应的数据流规则,并向OVS交换机发送数据流规则;以及,安全域控制方法还包括OVS交换机在接收到数据流规则后,根据数据流规则放行数据流。
根据本发明,安全域控制方法还包括:如果源IP和协议信息中的任一个与安全域中的白名单不匹配,则建立与数据包的类型相对应的丢弃规则,并向OVS交换机发送该丢弃规则;OVS交换机在接收到丢弃规则后,丢弃数据流。
根据本发明,安全域控制方法还包括:安全域控制器根据数据包头携带的协议信息判断出数据包为TCP协议数据包时,进一步根据数据包头携带的其他信息检测数据包是否为SYN包以及数据包的源IP地址是否为安全域内的主机;检测为是时,根据安全域中的白名单判断是否允许TCP协议访问,如果为是,则指示OVS交换机放行数据流;如果为否,则指示OVS交换机丢弃数据流。
另一方面,本发明还提供了一种基于虚拟网络的安全域控制系统,包括安全域控制器,安全域控制器包括:接收模块,用于接收基于虚拟交换标准OVS的OVS交换机发送的数据包头,其中,数据包头为流入OVS交换机的数据流中的数据包的数据包头;流控制模块,用于根据数据包头携带的信息以及预设的安全域中的白名单确定出OVS接收到的数据流为安全数据流时,指示OVS交换机放行数据流。
根据本发明,安全域控制系统还包括OVS交换机,用于在接收到数据流后,判断是否有与数据流对应的数据流规则,如果为否,则将数据流中的数据包的数据包头发送给安全域控制器。
根据本发明,安全域控制器的流控制模块根据数据包头携带的信息以及预定的安全域中的白名单确定出OVS接收到的数据流为安全数据流时,指示OVS交换机放行数据流,包括:获取数据包头中的目标IP,并判断目标IP是否对应安全域中的虚拟机;如果是,获取数据包头中的源IP和协议信息,并且将源IP和协议信息与安全域中的白名单进行匹配;如果匹配,则建立与数据包的类型相对应的数据流规则,并向OVS交换机发送数据流规则;以及,OVS交换机还用于在接收到数据流规则后,根据数据流规则放行数据流。
根据本发明,流控制模块还用于在判断出源IP和协议信息中的任一个与安全域中的白名单不匹配时,建立与数据包的类型相对应的丢弃规则,并向OVS交换机发送丢弃规则;OVS交换机还用于在接收到丢弃规则后,丢弃数据流。
根据本发明,安全域控制器还包括:TCP协议的单向访问控制模块,用于根据数据包头携带的协议信息判断出数据包为TCP协议数据包时,进一步根据数据包头携带的其他信息检测数据包是否为SYN包以及数据包的源IP地址是否为安全域内的主机;检测为是时,根据安全域中的白名单判断是否允许TCP协议访问,如果为是,则指示OVS交换机放行数据流;如果为否,则指示OVS交换机丢弃数据流。
与现有技术相比,本发明的有益效果在于:
本发明的基于虚拟网络的安全域控制方法和系统,可以在虚拟网络环境中实现虚拟安全域的功能,并且该虚拟安全域无需考虑虚拟机在物理网络中的位置。无论虚拟机是否处于同一网段都可以被放在同一安全域中。
进一步,安全域的设置不会受到虚拟网络拓扑的变化影响,同时也不会受到虚拟机迁移影响。此外,本发明还可以使得该安全域完全适应虚拟网络环境的伸缩与动态变化。
具体实施方式
下面结合附图对本发明作进一步的说明。
如图1所示,是本发明基于虚拟网络的安全域控制方法的一个实施例,该方法可以包括如下步骤:
S101,安全域控制器接收基于虚拟交换标准OVS的OVS交换机发送的数据包头,其中,数据包头为流入OVS交换机的数据流中的数据包的数据包头;
S102,安全域控制器根据数据包头携带的信息以及预设的安全域中的白名单确定出OVS接收到的数据流为安全数据流时,指示OVS交换机放行数据流。
如图2所示,在本发明的一个可选实施例中,在步骤S101之前,该方法还包括:
S201,OVS交换机判断是否有与流入的数据流对应的数据流规则,如果为否,则将数据流中的数据包的数据包头发送给安全域控制器。
如图3所示,在本发明另一个优选的实施例中,安全域控制器根据数据包头携带的信息以及预定的安全域中的白名单确定出OVS接收到的数据流为安全数据流时,指示OVS交换机放行数据流,包括如下步骤:
S301,安全域控制器获取数据包头中的目标IP,并判断目标IP是否对应安全域中的虚拟机;如果是,获取数据包头中的源IP和协议信息,并且将源IP和协议信息与安全域中的白名单进行匹配;
S302,如果匹配,则建立与数据包的类型相对应的数据流规则,并向OVS交换机发送数据流规则;以及,
S303,OVS交换机在接收到数据流规则后,根据数据流规则放行数据流。
如图4所示,在本发明另一个可选的实施例中,该安全域控制方法还包括:
S401,如果源IP和协议信息中的任一个与安全域中的白名单不匹配,则建立与数据包的类型相对应的丢弃规则,并向OVS交换机发送丢弃规则;
S402,OVS交换机在接收到丢弃规则后,丢弃数据流。
进一步如图5所示,在本发明的一个优选实施例中,安全域控制方法还包括:
S501,安全域控制器根据数据包头携带的协议信息判断出数据包为TCP协议数据包时,进一步根据数据包头携带的其他信息检测数据包是否为SYN包以及数据包的源IP地址是否为安全域内的主机;
S502,检测为是时,根据安全域中的白名单判断是否允许TCP协议访问,如果为是,则指示OVS交换机放行数据流;如果为否,则指示OVS交换机丢弃数据流。
另外,如图6所示,本发明还提供了一种基于虚拟网络的安全域控制系统,该系统包括安全域控制器10。进一步,安全域控制器10包括接收模块20和流控制模块30。其中,接收模块20用于接收基于虚拟交换标准OVS的OVS交换机发送的数据包头,其中,该数据包头为流入OVS交换机的数据流中的数据包的数据包头;而流控制模块30用于根据数据包头携带的信息以及预设的安全域中的白名单确定出OVS接收到的数据流为安全数据流时,指示OVS交换机放行该数据流。
在优选的实施例中,安全域控制系统还可以包括OVS交换机。该OVS交换机可用于在接收到数据流后,判断是否有与数据流对应的数据流规则,如果为否,则将数据流中的数据包的数据包头发送给安全域控制器10。
进一步,安全域控制器10的流控制模块30根据数据包头携带的信息以及预定的安全域中的白名单确定出OVS接收到的数据流为安全数据流时,指示OVS交换机放行数据流,这可以包括:获取数据包头中的目标IP,并判断该目标IP是否对应安全域中的虚拟机;如果是,获取数据包头中的源IP和协议信息,并且将源IP和协议信息与安全域中的白名单进行匹配;如果匹配,则建立与数据包的类型相对应的数据流规则,并向OVS交换机发送该数据流规则。
此外,OVS交换机还可用于在接收到数据流规则后,根据数据流规则放行数据流。
在本发明的一个可选实施例中,流控制模块30还可以用于在判断出源IP和协议信息中的任一个与安全域中的白名单不匹配时,建立与数据包的类型相对应的丢弃规则,并向OVS交换机发送该丢弃规则。进而OVS交换机还可用于在接收到上述丢弃规则后,丢弃该数据流。
在本发明另一个优选的实施例中,安全域控制器10还可以包括:TCP协议的单向访问控制模块。该控制模块可用于根据数据包头携带的协议信息判断出数据包为TCP协议数据包时,进一步根据数据包头携带的其他信息检测数据包是否为SYN包以及数据包的源IP地址是否为安全域内的主机;当检测为是时,根据安全域中的白名单判断是否允许TCP协议访问,如果为是,则指示OVS交换机放行该数据流;如果为否,则指示OVS交换机丢弃该数据流。
结合本发明的原理以及实际应用,对本发明进行描述。具体来说,流控制模块30建立在POX控制器基础上,主要用于维护安全域信息和安全域对应的白名单设置、以及维护虚拟机、IP、和OVS流出接口的对应关系。
流入OVS的数据包,如果在没有建立流规则之前,会将数据包头发送至POX控制器,POX控制器会分析出数据包的源IP、目标IP、协议信息和流入接口等信息。
然后流控制模块30会根据数据包的这些信息与安全域信息和白名单进行比对。具体地,首先,发现目标IP是否对应安全域中的虚拟机,如果是,则会接着取出源IP信息、协议信息与安全域的白名单设置进行比对,如果匹配白名单中的设置,则由流控制模块30向OVS下发数据流规则,对此类数据包放行;相反的,如果不匹配,则下发规则对此类包进行丢弃操作。
应当理解,这种方式还可以实现TCP协议的单向访问,即域内主机可以与域外主机建立TCP连接,而域外主机则无法与安全域内主机建立TCP连接。具体来说,当POX分析到数据包为TCP协议包时,会检测该数据包是否为一个SYN包,如果是,则会检查安全域白名单,如果允许TCP访问,则放行,反之则丢弃。这样就实现了TCP协议的单向访问。
综上所述,本发明的基于虚拟网络的安全域控制方法和系统,可以在虚拟网络环境中实现虚拟安全域的功能,并且该虚拟安全域无需考虑虚拟机在物理网络中的位置。无论虚拟机是否处于同一网段都可以被放在同一安全域中。
进一步,安全域的设置不会受到虚拟网络拓扑的变化影响,同时也不会受到虚拟机迁移影响。此外,本发明还可以使得该安全域完全适应虚拟网络环境的伸缩与动态变化。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。