网络虚拟化方法及设备技术

技术编号:15395079 阅读:64 留言:0更新日期:2017-05-19 06:41
本申请提供一种网络虚拟化方法及设备,通过将物理机的网络配置镜像到虚拟机上,实现模拟物理机网络环境的目的,一方面,对应用进程造成了直接运行物理网络的假象,同时因为虚拟机和物理机操作系统内核的独立性自然满足了轻量级网络隔离性的要求,另一方面,对于虚拟机和物理机操作系统内核来说,隔离后的网络配置也与常规情况下几无区别,也不需要进行任何的全局网络配置修改,所以从协议栈上来说也没有复杂修改,整个系统的维护成本也很低。

Network virtualization method and apparatus

The invention provides a device and a method for network virtualization, the network configuration of mirror physical machine to the virtual machine, to simulate physical machine network environment, on the one hand, resulting in the direct operation of the physical network on the application process at the same time because of the illusion, the independence of the virtual machine and the physical machine operating system kernel nature to meet the requirements of lightweight network isolation, on the other hand, for virtual machines and physical machine operating system kernel, after the isolation of the network configuration and the conventional case almost no difference, does not need any modification of the global network configuration, so the protocol stack is also no complex modification, maintenance of the whole system the cost is very low.

【技术实现步骤摘要】
网络虚拟化方法及设备
本申请涉及计算机领域,尤其涉及一种网络虚拟化方法及设备。
技术介绍
一般来说,虚拟机与物理机在生产环境下处于完全的网络隔离状态,要么在2层(以太网级协议或TCP协议)隔离开,要么在3层(IP协议)上隔离开。这使得虚拟化环境下的生产系统网络配置极为复杂。其实对于一般应用来说,网络隔离性的要求性并不高。例如典型场景是在虚拟机内运行“要求物理机网络环境”的第三方应用程序,对于这种应用,有时甚至没有源代码。这种情况下,网络子系统的隔离性更多指的是物理机网络资源在命名空间上的隔离,称这种隔离性为“轻量级网络隔离”。在虚拟化环境下,虚拟机与物理机运行的是各自独立的操作系统,它们的协议栈是完全独立运行的。两套协议栈在资源的命名上完全没有交互,这导致了两者完全无法实现网络地址资源的良性共享,也就无法在虚拟机内安全运行“要求物理机网络环境”下的应用程序了。现有技术中,有如下三种常规的网络虚拟化技术方案:1.NAT技术,即在物理机上通过NAT地址变换将流量导入导出到虚拟网络上;2.桥接技术,即在物理机上通过2层转发技术将流量导入导出到虚拟网络上;3.将虚拟机的网络在3层以上彻底虚拟化,由虚拟网络中的某个网关把流量转发到物理网络环境中。以上三种现有方案都可以做到完全隔离的目的,但对于轻量级网络隔离场景过于笨重,甚至还有功能限制:1.NAT技术,物理机操作系统必须维护复杂的地址转换状态机,在网络转发的核心路径上还需要执行昂贵的地址转换操作,这种方法也难于实现在虚拟机中提供接受被动连接请求的网络服务;2.桥接技术,物理机操作系统必须维护复杂的地址转换状态机和执行地址转换,代价虽然比NAT方法低,但在2层进行网络虚拟化的缺点在于我们需要事先确定好虚拟2层网络的配置、2层地址转换等问题,维护整个环境的综合成本甚至大于NAT技术的成本。3.将虚拟机的网络在3层以上彻底虚拟化,这种方法比桥接更进一步。虚拟网络与物理网络的边界可能位于另一台机器上,这其间的配置管理代价和运行开销都非常大,很难获得与物理机协议栈上相妨的性能指标。
技术实现思路
本申请的一个目的是提供一种网络虚拟化方法及设备,能够解决轻量级网络隔离场景中隔离方案过于笨重的问题。根据本申请的一个方面,提供了一种网络虚拟化方法,该方法包括:将物理机的网络配置镜像到虚拟机上;对虚拟机上的网络协议栈加以端口使用限制;由所述物理机为所述虚拟机分配仅供其使用的端口;其中,所述端口使用限制包括禁止传输层通信协议连接的目标地址使用物理机上的传输层通信协议端口,以及禁用原始套接字接口。进一步地,上述方法中,将物理机的网络配置镜像到虚拟机上包括:将所述物理机上的网卡的配置镜像到虚拟机上;关闭所述虚拟机上的网卡的地址解析协议;将所述物理机上的网卡的网际互连的协议地址镜像到所述虚拟机上,但将所述虚拟机上的网络掩码设置为32;将所述物理机上的默认路由器设为所述虚拟机的默认路由器,并将虚拟机的默认路由器的物理地址设置成虚构的地址;将所述物理机上的地址解析协议信息包过滤系统的规则镜像到对应的虚拟机。进一步地,上述方法中,将物理机的网络配置镜像到虚拟机上,还包括:将所述物理机上的多队列和中断配置镜像到虚拟机上。进一步地,上述方法中,将物理机的网络配置镜像到虚拟机上,还包括:将所述物理机上的域名系统配置镜像到虚拟机上。进一步地,上述方法中,所述端口使用限制还包括:除了传输层通信协议,只允许预设协议的流量进出所述虚拟机,所述预设协议的流量包括地址解析协议请求和响应的流量及预设类型的网际控制报文协议的流量。进一步地,上述方法中,由所述物理机为所述虚拟机分配仅供其使用的端口,包括:所述物理机根据所述虚拟机的镜像端口的分配请求,建立一个传输控制协议套接字;所述物理机检查所述虚拟机的镜像端口的分配请求的类型,若是绑定系统调用,则执行绑定系统调用,在传输控制协议绑定哈希表中占据一个镜像端口,若是连接系统调用,则执行连接系统调用,在传输控制协议已经建立的哈希表中占据一个镜像端口,若占据成功,则在所述传输控制协议套接字中保存对应的虚拟机标识,并标识该传输控制协议套接字为镜像套接字,所述镜像套接字中包括所述占据的镜像端口,并向虚拟机返回分配功能的响应;若占据不成功,则关闭所述传输控制协议套接字,并向虚拟机返回分配失败的响应。进一步地,上述方法中,由所述物理机为所述虚拟机分配仅供其使用的端口之后,还包括:虚拟机将经过其传输控制协议套接字层、传输控制协议栈和网络之间互连的协议层后,输出的传输控制协议及网络之间互连的协议的报文不通过其网卡,直接传递到所述物理机的操作系统中,其中,所述报文为依次封装好目标4、3、2层地址的报文;所述物理机上的地址解析协议层替换掉所述报文中目标2层地址后,将该报文通过其网卡发送出去。进一步地,上述方法中,由所述物理机为所述虚拟机分配仅供其使用的端口之后,还包括:物理机判断接收到的报文是否为传输控制协议及网络之间互连的协议的报文,若是,在所述传输控制协议已经建立的哈希表中查找是否有对应于该报文的传输控制协议套接字,若查找到,判断该传输控制协议套接字是否为镜像套接字,若是镜像套接字,则物理机将进行其内核的报文进行4层之前的除类型接收装卸、填充套接字和网络轮循接口操作之外的所有操作后,将所述报文送入虚拟机的传输控制协议层,若不是镜像套接字,则将所述报文转到常规协议栈进行处理;若未查找到,则将所述报文转到常规协议栈进行处理;若否,则将所述报文转到常规协议栈进行处理。根据本申请的另一个方面,还提供一种网络虚拟化设备,该设备包括:镜像装置,用于将物理机的网络配置镜像到虚拟机上;协议栈限制装置,用于对虚拟机上的网络协议栈加以端口使用限制;物理机,用于由所述物理机为所述虚拟机分配仅供其使用的端口;其中,所述端口使用限制包括禁止传输层通信协议连接的目标地址使用物理机上的传输层通信协议端口,以及禁用原始套接字接口。进一步地,上述设备中,所述镜像装置,用于将所述物理机上的网卡的配置镜像到虚拟机上;关闭所述虚拟机上的网卡的地址解析协议;将所述物理机上的网卡的网际互连的协议地址镜像到所述虚拟机上,但将所述虚拟机上的网络掩码设置为32;将所述物理机上的默认路由器设为所述虚拟机的默认路由器,并将虚拟机的默认路由器的物理地址设置成虚构的地址;将所述物理机上的地址解析协议信息包过滤系统的规则镜像到对应的虚拟机。进一步地,上述设备中,所述镜像装置,还用于将所述物理机上的多队列和中断配置镜像到虚拟机上。进一步地,上述设备中,所述镜像装置,还用于将所述物理机上的域名系统配置镜像到虚拟机上。进一步地,上述设备中,所述端口使用限制还包括:除了传输层通信协议,只允许预设协议的流量进出所述虚拟机,所述预设协议的流量包括地址解析协议请求和响应的流量及预设类型的网际控制报文协议的流量。进一步地,上述设备中,所述物理机,用于根据所述虚拟机的镜像端口的分配请求,建立一个传输控制协议套接字;检查所述虚拟机的镜像端口的分配请求的类型,若是绑定系统调用,则执行绑定系统调用,在传输控制协议绑定哈希表中占据一个镜像端口,若是连接系统调用,则执行连接系统调用,在传输控制协议已经建立的哈希表中占据一个镜像端口,若占本文档来自技高网
...
网络虚拟化方法及设备

【技术保护点】
一种网络虚拟化方法,其中,该方法包括:将物理机的网络配置镜像到虚拟机上;对虚拟机上的网络协议栈加以端口使用限制;由所述物理机为所述虚拟机分配仅供其使用的端口;其中,所述端口使用限制包括禁止传输层通信协议连接的目标地址使用物理机上的传输层通信协议端口,以及禁用原始套接字接口。

【技术特征摘要】
1.一种网络虚拟化方法,其中,该方法包括:将物理机的网络配置镜像到虚拟机上;对虚拟机上的网络协议栈加以端口使用限制;由所述物理机为所述虚拟机分配仅供其使用的端口;其中,所述端口使用限制包括禁止传输层通信协议连接的目标地址使用物理机上的传输层通信协议端口,以及禁用原始套接字接口。2.如权利要求1所述的方法,其中,将物理机的网络配置镜像到虚拟机上包括:将所述物理机上的网卡的配置镜像到虚拟机上;关闭所述虚拟机上的网卡的地址解析协议;将所述物理机上的网卡的网际互连的协议地址镜像到所述虚拟机上,但将所述虚拟机上的网络掩码设置为32;将所述物理机上的默认路由器设为所述虚拟机的默认路由器,并将虚拟机的默认路由器的物理地址设置成虚构的地址;将所述物理机上的地址解析协议信息包过滤系统的规则镜像到对应的虚拟机。3.如权利要求2所述的方法,其中,将物理机的网络配置镜像到虚拟机上,还包括:将所述物理机上的多队列和中断配置镜像到虚拟机上。4.如权利要求2或3所述的方法,其中,将物理机的网络配置镜像到虚拟机上,还包括:将所述物理机上的域名系统配置镜像到虚拟机上。5.如权利要求1至4任一项所述的方法,其中,所述端口使用限制还包括:除了传输层通信协议,只允许预设协议的流量进出所述虚拟机,所述预设协议的流量包括地址解析协议请求和响应的流量及预设类型的网际控制报文协议的流量。6.如权利要求1至5任一项所述的方法,其中,由所述物理机为所述虚拟机分配仅供其使用的端口,包括:所述物理机根据所述虚拟机的镜像端口的分配请求,建立一个传输控制协议套接字;所述物理机检查所述虚拟机的镜像端口的分配请求的类型,若是绑定系统调用,则执行绑定系统调用,在传输控制协议绑定哈希表中占据一个镜像端口,若是连接系统调用,则执行连接系统调用,在传输控制协议已经建立的哈希表中占据一个镜像端口,若占据成功,则在所述传输控制协议套接字中保存对应的虚拟机标识,并标识该传输控制协议套接字为镜像套接字,所述镜像套接字中包括所述占据的镜像端口,并向虚拟机返回分配功能的响应;若占据不成功,则关闭所述传输控制协议套接字,并向虚拟机返回分配失败的响应。7.如权利要求1至6任一项所述的方法,其中,由所述物理机为所述虚拟机分配仅供其使用的端口之后,还包括:虚拟机将经过其传输控制协议套接字层、传输控制协议栈和网络之间互连的协议层后,输出的传输控制协议及网络之间互连的协议的报文不通过其网卡,直接传递到所述物理机的操作系统中,其中,所述报文为依次封装好目标4、3、2层地址的报文;所述物理机上的地址解析协议层替换掉所述报文中目标2层地址后,将该报文通过其网卡发送出去。8.如权利要求6或7所述的方法,其中,由所述物理机为所述虚拟机分配仅供其使用的端口之后,还包括:物理机判断接收到的报文是否为传输控制协议及网络之间互连的协议的报文,若是,在所述传输控制协议已经建立的哈希表中查找是否有对应于该报文的传输控制协议套接字,若查找到,判断该传输控制协议套接字是否为镜像套接字,若是镜像套接字,则物理机将进行其内核的报文进行4层之前的除类型接收装卸、填充套接字和网络轮循接口操作之外的所有操作后,将所述报文送入虚拟机的传输控制协议层,若不是镜像套接字,则将所述报文转到常规协议栈进行处理;若未查找到,则将所述报文转到常...

【专利技术属性】
技术研发人员:李雨张军伟
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1