一种虚拟网络控制器及控制方法与流程

文档序号:11732027阅读:367来源:国知局
本发明涉及虚拟网络
技术领域
:,具体涉及一种虚拟网络控制器及控制方法。
背景技术
::云计算是分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等传统计算机和网络技术发展融合的产物。云计算是一种it资源的交付和使用模式,是指通过网络以按需、弹性的方式获得所需的硬件、平台、软件以及服务等资源,提供资源的网络被称为“云”。“云”中的资源在用户看来可以无限扩展,并且可以随时获取、按需使用、随时扩展、按量付费。云计算的主要内容包括基础设施即服务iaas(infrastructureasaservice)、平台即服务和软件即服务等。目前,云计算时代线下产品越来越丰富,需求与功能的变化往往会导致iaas层虚拟化网络的大变动。传统的虚拟网络架构如图1所示,具有简单、易操作(操作人员不需要掌握复杂的虚拟化网络技术)等优点。它的使用场景单一,功能简单,特别适用于中小型企业内部及个人测试使用。但这种架构对于云计算领域中的线下产品,还存在以下问题:多个用户在同一主机生产虚拟机,为了保证用户间网络的隔离性,主机需要为每个用户分配主机网口和虚拟网桥。因此,网络的每次变化(比如用户数量的变动)都需要对底层虚拟网络架构进行调整,通用性不强。如果后期需要新的网络需求,传统虚拟网络架构也不利于扩展。网络间通信依赖外部网络设备,用户无法控制不同网络间的虚拟机通信,也无法控制同网络内的虚拟机间通信,导致安全功能缺乏。技术实现要素:为了解决现有技术中存在的上述问题,本发明提出一种虚拟网络控制器及控制方法。为实现上述目的,本发明采用如下技术方案:相互连接的第一ovs(openvsitch)网桥和第二ovs网桥,与第二ovs网桥相连的路由器和dhcp(dynamichostconfigurationprotocol,动态主机配置协议)服务器,还包括至少一个linux网桥,一个linux网桥连接一个虚拟机,并通过由第一虚拟网卡和第二虚拟网卡组成的虚拟网卡对与第二ovs网桥相连;第一ovs网桥与主机网口相连,是外部流量入口,虚拟机流量的出口;dhcp服务器为基于命名空间的dhcp服务器,用于提供ip地址分配服务;路由器为基于命名空间(namespace)的虚拟路由器,用于提供路由、防火墙服务。进一步地,ovs网桥包括流表和通道,流表包括头域、计数器和操作列表,头域包括输入端口、mac源地址、mac目的地址、以太网类型、虚拟局域网id、ip源地址、ip目的地址、ip端口、tcp源端口、tcp目的端口,用于对输入的流量进行匹配检查;计数器用于统计匹配的数据包和字节的数量;操作列表用于存放匹配后的动作策略。本发明还提供一种虚拟网络控制方法,包括:虚拟机输入流量步骤:第一ovs网桥获取外部流量,并对所述流量进行检查,如果所述流量的数据报文的某一字段或多个字段与用户自定义流表的头域字段匹配,则将所述流量按流表策略转换后转发到第二ovs网桥;如果所述流量的数据报文中没有与用户自定义流表的头域字段匹配的字段,则将所述流量直接转发到第二ovs网桥;第二ovs网桥对由第一ovs网桥转发来的流量进行检查,如果所述流量的数据报文的某一字段或多个字段与用户自定义流表的头域字段匹配,则将所述流量按流表策略转换后再转发所述流量;如果所述流量的数据报文中没有与用户自定义流表的头域字段匹配的字段,则直接转发所述流量:如果是dhcp请求,转发到dhcp服务器,如果是跨网络访问,转发到路由器,如果是同网络访问,通过虚拟网卡对转发到linux网桥;路由器对由第二ovs网桥转发来的流量进行防火墙规则检查,如果防火墙放行,则将所述流量转发到放行网络的linux网桥;如果防火墙拒绝,则丢弃所述流量;linux网桥对由第二ovs网桥转发来的流量进行主机防火墙规则检查,如果主机防火墙放行,则将所述流量转发到虚拟机;如果主机防火墙拒绝,则丢弃所述流量;虚拟机输出流量步骤:linux网桥从虚拟机获取流量,并检查主机防火墙规则,如果主机防火墙放行,则将所述流量通过虚拟网卡对转发到第二ovs网桥;如果主机防火墙拒绝,则丢弃所述流量;第二ovs网桥对从linux网桥获取的流量进行检查,如果所述流量的数据报文的某一字段或多个字段与用户自定义流表的头域字段匹配,则将所述流量按流表策略转换后转发所述流量;如果所述流量的数据报文中没有与用户自定义流表的头域字段匹配的字段,则直接转发所述流量:如果是dhcp请求,转发到dhcp服务器,如果是跨网络访问,转发到路由器,如果是同网络访问,经虚拟网卡对转发到目的虚拟机的linux网桥,如果所述流量的目的地址与源地址不在同一主机,则转发到第一ovs网桥;路由器对由第二ovs网桥转发来的流量进行防火墙规则检查,如果防火墙放行且目的地址在同一主机,则将所述流量直接转发到放行网络的linux网桥;如果不在同一主机则转发到第一ovs网桥;如果防火墙拒绝,则丢弃所述流量;第一ovs网桥对由第二ovs网桥转发来的流量进行检查,如果所述流量的数据报文的某一字段或多个字段与用户自定义流表的头域字段匹配,则将所述流量按流表策略转换后将所述流量转发到主机网口;如果所述流量的数据报文中没有与用户自定义流表的头域字段匹配的字段,则将所述流量直接转发到主机网口。与现有技术相比,本发明具有以下有益效果:本发明所述虚拟网络控制器包括ovs网桥、基于命名空间的路由器、dhcp服务器,以及用于一对一连接虚拟机的linux网桥(一个linux网桥连接一个虚拟机),使系统资源不再是全局性的,而是属于特定的命名空间。由于每个命名空间里的资源对其它namespace都是透明的,实现了虚拟网络、实体网络的任意组合及互通、隔离;并可对网络流量的源ip、目的ip、源端口、目的端口、连接状态等特性过滤,起到安全防护作用。附图说明图1为传统的虚拟网络架构示意图;图2为本发明一种虚拟网络控制器的一实施例的架构示意图;图3为本发明一种虚拟网络控制器的另一实施例的架构示意图;图4为本发明实施例一种虚拟网络控制方法的流程图。图中:1-第一ovs网桥,2-第二ovs网桥,3-虚拟网卡对,31-第一虚拟网卡,32-第二虚拟网卡,4-linux网桥,5-路由器,6-dhcp服务器。具体实施方式下面结合附图对本发明作进一步详细说明。本发明实施例一种虚拟网络控制器的架构示意图如图2所示,包括:相连的第一ovs网桥1和第二ovs网桥2,与第二ovs网桥2相连的路由器5和dhcp服务器6,还包括至少一个linux网桥4,一个linux网桥4连接一个虚拟机,并通过由第一虚拟网卡31第二虚拟网卡32组成的虚拟网卡3对与第二ovs网桥2相连;dhcp服务器6为基于命名空间的dhcp服务器,用于提供ip地址分配服务;路由器5为基于命名空间的虚拟路由器,用于提供路由、防火墙服务。本实施例中,虚拟网卡对3(vethpair)是linux下的一对儿虚拟网卡,用于不同networknamespace间进行通信的方式。从一张veth网卡发出的数据包可以直接到达它的peerveth,两者之间存在着虚拟链路。如图2所示,虚拟网卡对3的第一虚拟网卡31连接第二ovs网桥2,第二虚拟网卡32连接linux网桥4,用于传输第二ovs网桥2和linux网桥4之间的流量。本实施例中,第一ovs网桥1和第二ovs网桥2都是openvsitch网桥。openvsitch是由niciranetworks开发的虚拟交换机控制器,openvsitch网桥是openvsitch创建的虚拟交换机。openvsitch支持openflow协议,支持每虚拟机网卡的流量的流量控制策略,支持基于源mac负载均衡模式、主备模式、l4哈希模式的多端口绑定,支持ipv6,支持多种隧道协议。在本实施例中,路由器5为基于命名空间的虚拟路由器,可支持不同网络间的路由策略,也支持iptables防火墙规则,能够实现三层网络的安全互通。iptables是一个配置linux内核防火墙的命令行工具,用来控制linux内核netfilters模块。如果linux系统连接到因特网或lan、服务器或连接lan和因特网的代理服务器,则该系统有利于在linux系统上更好地控制ip信息包过滤和防火墙配置。防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在linux内核中。在信息包过滤表中,规则被分组放在所谓的链(chain)中。在本实施例中,linux网桥4用于连接虚拟机,并通过虚拟网卡对3与第二ovs网桥2相连。linux网桥4是基于linux的网桥,用来连接tcp/ip二层协议交换的设备,与真实的交换机功能相似。linux网桥可以和linux上其他网络设备连接,既附加一个从设备,相当于在真实的交换机和一个用户终端之间连接一根网线。linux网桥工作在数据链路层,当有数据到达时,linux网桥会根据报文中的mac信息进行广播、转发、丢弃处理。在本实施例中,一个主机可以对应多个虚拟机,不同的虚拟机可以属于相同的网络,也可以属于不同的网络,一个linux网桥4连接一个虚拟机。因此,linux网桥4的数量至少为1个。通过设置不同数量的虚拟机,可以使本发明的虚拟控制器应用于不同的场景。图2是虚拟机的数量为1个时的最简单的应用场景;图3是虚拟机的数量为2个且属于相同的网络的应用场景。作为一种可选实施例,ovs网桥(1、2)包括流表和通道(ovs支持用于管理ovs网桥流表的协议openflow),流表包括头域、计数器和操作列表,头域包括输入端口、mac源地址、mac目的地址、以太网类型、虚拟局域网id、ip源地址、ip目的地址、ip端口、tcp源端口、tcp目的端口,用于对输入的流量进行匹配检查;计数器用于统计匹配的数据包和字节的数量;操作列表用于存放匹配后的动作策略,包括转换头域字段后转发、正常转发、丢弃等。本发明还提供一种虚拟网络控制方法实施例,流程图如图4所示,包括:步骤100,虚拟机输入流量:步骤101,第一ovs网桥1获取外部流量,并对所述流量进行检查,如果所述流量的数据报文的某一字段或多个字段与用户自定义流表的头域字段匹配,则将所述流量按流表策略转换(比如,若用户自定义的一个流表策略为:匹配源ip地址为192.168.1.1且虚拟局域网id为10的流量将虚拟局域网id改为11。如果所述流量的数据报文中源ip地址为192.168.1.1且虚拟局域网id字段为10,则需要将所述流量的数据报文的虚拟局域网id转换为11)后转发到第二ovs网桥2;如果所述流量的数据报文中没有与用户自定义流表的头域字段匹配的字段,则将所述流量直接转发到第二ovs网桥2;步骤102,第二ovs网桥2对由第一ovs网桥1转发来的流量进行检查,如果所述流量的数据报文的某一字段或多个字段与用户自定义流表的头域字段匹配,则将所述流量按流表策略转换后再转发所述流量;如果所述流量的数据报文中没有与用户自定义流表的头域字段匹配的字段,则直接转发所述流量:如果是dhcp请求,转发到dhcp服务器6,如果是跨网络访问,转发到路由器5,如果是同网络访问,通过虚拟网卡3对转发到linux网桥4;步骤103,路由器5对由第二ovs网桥2转发来的流量进行防火墙规则检查,如果防火墙放行,则将所述流量转发到放行网络的linux网桥;如果防火墙拒绝,则丢弃所述流量;步骤104,linux网桥4对由第二ovs网桥2转发来的流量进行主机防火墙规则检查,如果主机防火墙放行,则将所述流量转发到虚拟机;如果主机防火墙拒绝,则丢弃所述流量;步骤200,虚拟机输出流量:步骤201,linux网桥4从虚拟机获取流量,并检查主机防火墙规则,如果主机防火墙放行,则将所述流量通过虚拟网卡对3转发到第二ovs网桥2;如果主机防火墙拒绝,则丢弃所述流量;步骤202,第二ovs网桥2对从linux网桥4获取的流量进行检查,如果所述流量的数据报文的某一字段或多个字段与用户自定义流表的头域字段匹配,则将所述流量按流表策略转换后转发所述流量;如果所述流量的数据报文中没有与用户自定义流表的头域字段匹配的字段,则直接转发所述流量:如果是dhcp请求,转发到dhcp服务器6,如果是跨网络访问,转发到路由器5,如果是同网络访问,经虚拟网卡对3转发到目的虚拟机(不同于步骤201中的虚拟机)的linux网桥4,如果所述流量的目的地址与源地址不在同一主机(物理主机),则转发到第一ovs网桥1;步骤203,路由器5对由第二ovs网桥2转发来的流量进行防火墙规则检查,如果防火墙放行且目的地址在同一主机,则将所述流量直接转发到放行网络的linux网桥4;如果不在同一主机则转发到第一ovs网桥1;如果防火墙拒绝,则丢弃所述流量;步骤204,第一ovs网桥对由第二ovs网桥转发来的流量进行检查,如果所述流量的数据报文的某一字段或多个字段与用户自定义流表的头域字段匹配,则将所述流量按流表策略转换后将所述流量转发到主机网口;如果所述流量的数据报文中没有与用户自定义流表的头域字段匹配的字段,则将所述流量直接转发到主机网口。上述仅对本发明中的几种具体实施例加以说明,但并不能作为本发明的保护范围,凡是依据本发明中的设计精神所做出的等效变化或修饰或等比例放大或缩小等,均应认为落入本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1