发明内容
本发明的目的在于提供一种虚拟网络及其实现方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种虚拟网络,包括:服务器,所述服务器包括虚拟机、虚拟交换机和虚拟网关;所述虚拟机与所述虚拟交换机连通,所述虚拟交换机与所述虚拟网关连通;多个所述服务器中的所述虚拟交换机互联;所述虚拟交换机能够获知所述虚拟机发送的所述虚拟网关的MAC地址,且能够禁止在TCP连接的链路上转发所述虚拟机发送的所述虚拟网关的MAC地址。
进一步地,每个所述服务器中的所述虚拟机为多个。
进一步地,所述虚拟机存在于不同的物理地址。
上述虚拟网络的实现方法,包括如下步骤:
S1,创建虚拟交换机,并指明所述虚拟交换机的绑定端口;所述虚拟交换机能够获知所述虚拟机发送的所述虚拟网关的MAC地址,且能够禁止在TCP连接的链路上转发所述虚拟机发送的所述虚拟网关的MAC地址;
S2,创建虚拟网关,配置所述虚拟网关连接到的所述虚拟交换机;
S3,将虚拟机与所述虚拟交换机连通,创建单台服务器虚拟网络;
S4,重复步骤S1-S3,创建多个所述单台服务器虚拟网络;
S5,多个所述单台服务器虚拟网络中的所述虚拟交换机互联。
进一步地,步骤S1还包括,配置所述虚拟交换机的名字和所述虚拟交换机的管理接口。
具体地,步骤S1采用如下方法实施:运行命令#vde_switch–s/tmp/switch1–M/tmp/switch1/mgmt;其中,/tmp/switch1为所述虚拟交换机的名字;/tmp/switch1/mgmt是所述虚拟交换机的管理接口。
具体地,步骤S1中,所述指明所述虚拟交换机的绑定端口,采用如下方法实施:运行命令#vde_switch–s/tmp/switch1–M/tmp/switch1/mgmt–P20500;其中,/tmp/switch1是所述虚拟网关所连接的所述虚拟交换机的名字;/tmp/switch1/mgmt是所述虚拟交换机的管理接口;-P选项用于所述虚拟交换机的绑定端口。
进一步地,步骤S2还包括,开启所述虚拟网关提供的DHCP服务、IP地址资源池大小和IP地址。
具体地,步骤S2采用如下方法实施:运行命令#slirpvde–s/tmp/switch1–D–s192.168.1.28–e192.168.1.49-n192.168.1.1;其中,/tmp/switch1是所述虚拟网关所连接的所述虚拟交换机的名字;-D选项用于开启所述虚拟网关的DHCP服务;-s用于指定所述DHCP服务的起始分配IP地址;-e用于指定所述虚拟网关的终止分配IP地址;-n用于指定所述虚拟网关的IP地址。
具体地,步骤S5中,所述多个所述单台服务器虚拟网络中的所述虚拟交换机互联,采用如下方法实施:运行命令#vdeterm/tmp/switch1/mgmt“conn175.10.2.79:20500”;其中,/tmp/switch1/mgmt是所述虚拟交换机的管理接口。
本发明的有益效果是:本发明实施例提供的虚拟网络及其实现方法,对于多个服务器,在每个服务器上均设置一个虚拟网关,使本服务器上的虚拟机通过本服务器上的虚拟网关访问外网,因此,每个服务器上的虚拟网关的工作负荷都不会很大,每个服务器被占用的资源也不会很大,从而不会影响各个服务器的正常使用。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
如图2所示,本发明实施例提供的一种虚拟网络,包括:服务器,所述服务器包括虚拟机、虚拟交换机和虚拟网关;所述虚拟机与所述虚拟交换机连通,所述虚拟交换机与所述虚拟网关连通;多个所述服务器中的所述虚拟交换机互联;所述虚拟交换机能够获知所述虚拟机发送的所述虚拟网关的MAC地址,且能够禁止在TCP连接的链路上转发所述虚拟机发送的所述虚拟网关的MAC地址。
在本发明中,为了能够使每个服务器上的虚拟机都可以通过本服务器上设置的虚拟交换机访问外网,需要改进现有的虚拟交换机,使虚拟交换机不仅能够获知所述虚拟机发送的所述虚拟网关的MAC地址,且能够禁止在TCP连接的链路上转发所述虚拟机发送的所述虚拟网关的MAC地址,只有这样的虚拟交换机,在接收到虚拟机发送的访问本服务器虚拟网关的MAC地址请求时,才会转发到相应的MAC地址的虚拟网关中,将虚拟机成功的连接到本服务器的虚拟网关,通过该虚拟网关访问外网。
同时,本发明实施例中,每个服务器中的虚拟机除了可以通过本服务器中的虚拟网关访问外网外,还可以通过本服务器中的虚拟交换机通过TCP链路连接到另一个服务器的虚拟交换机,实现各服务器的虚拟交换机之间的互联,进而实现各服务器的虚拟机之间的互联。
具体地,虚拟网络的各服务器中的各虚拟机之间通过如下方式实现互联:虚拟机虚拟广播ARP以获得虚拟网关的IP地址,则本服务器的虚拟网关会回复其MAC地址,虚拟交换机识别目的MAC地址是广播地址,则从TCP链路转发到其他服务器的虚拟交换机上。其他服务器上的虚拟网关也会回复与本服务器回复的相同的MAC地址。所有服务器上的虚拟网关都采用相同的MAC地址,虚拟机内部就不会冲突。
这样,本发明实施例提供的虚拟网络,不仅实现了网络内的互联,也实现了通过本服务器上的虚拟网关与外网的连通。
与现有技术中的虚拟网络相比,在本发明实施例提供的虚拟网络中,包括多个服务器,每个服务器中的虚拟机都可以通过本服务器中设置的虚拟网关访问外网,而不需要再通过虚拟交换机连通到另外的设置有虚拟网关的服务器上,与其他的多个服务器中的虚拟机共同使用一个虚拟网关。因此,使用本发明实施例提供的虚拟网络,虚拟网关的负载压力会比较小,同时虚拟网关可以为所在服务器上的各虚拟机的带宽进行控制,扩展其他的功能等。由于在虚拟网络中的每个服务器中都设置了一个虚拟网关,所以各服务器被占用的资源都比较小,不会有哪个服务器因为设置了虚拟网关而被占用大量的资源,从而导致正常的使用受到影响。
如本领域普通技术人员可以理解的,本发明实施例提供的虚拟网络访问外网时,每个服务器的虚拟网关通过服务器的网卡,连通到物理交换机,物理交换机连通到物理网关,通过该物理网关访问外网。
另外,本发明实施例提供的虚拟网络,还包括网络管理代理,通过提供管理网络的API接口,与桌面云***对接,从而使虚拟网络可以根据桌面云***发布的命令在该虚拟网络指定的服务器上运行上述命令来创建单台服务器的虚拟网络,即本地网络,命令中的参数如端口、DHCP地址池等都有桌面云***动态管理。
在本发明的一个实施例中,每个所述服务器中的所述虚拟机为多个。将虚拟机提供给租户,虚拟机内部的硬件资源和网络资源动态划分给租户,服务器中的虚拟机个数越多,可供给的租户数就会越多。
更优选地,所述虚拟机存在于不同的物理地址。与物理网络中的物理机不同,在同一个局域网内,物理机处于相同网段内,而本发明实施例提供的虚拟网络中的虚拟机,可以处于不同的物理地址,从而实现虚拟机的自由组网和分布式网络的创建。
如图3所示,本发明实施例提供的上述虚拟网络的实现方法,包括如下步骤:
S1,创建虚拟交换机,并指明所述虚拟交换机的绑定端口;所述虚拟交换机能够获知所述虚拟机发送的所述虚拟网关的MAC地址,且能够禁止在TCP连接的链路上转发所述虚拟机发送的所述虚拟网关的MAC地址;
S2,创建虚拟网关,配置所述虚拟网关连接到的所述虚拟交换机;
S3,将虚拟机与所述虚拟交换机连通,创建单台服务器虚拟网络;
S4,重复步骤S1-S3,创建多个所述单台服务器虚拟网络;
S5,多个所述单台服务器虚拟网络中的所述虚拟交换机互联。
在本发明中,为了能够使每个服务器上的虚拟机都可以通过本服务器上设置的虚拟交换机访问外网,需要改进现有的虚拟交换机,使虚拟交换机不仅能够获知所述虚拟机发送的所述虚拟网关的MAC地址,且能够禁止在TCP连接的链路上转发所述虚拟机发送的所述虚拟网关的MAC地址,只有这样的虚拟交换机,在接收到虚拟机发送的访问本服务器虚拟网关的MAC地址请求时,才会转发到相应的MAC地址的虚拟网关中,将虚拟机成功的连接到本服务器的虚拟网关,通过该虚拟网关访问外网。
其中,步骤S1还可以包括,配置所述虚拟交换机的名字和所述虚拟交换机的管理接口。本发明实施例中,可以采用如下方法实施:运行命令#vde_switch–s/tmp/switch1–M/tmp/switch1/mgmt;其中,/tmp/switch1为所述虚拟交换机的名字;/tmp/switch1/mgmt是所述虚拟交换机的管理接口。
步骤S1中,需要指明所述虚拟交换机的绑定端口,用于本服务器上的虚拟交换机能够与其他服务器上的虚拟交换机通过TCP链路连接。本发明实施例中,可以采用如下方法指明所述虚拟交换机的绑定端口:运行命令#vde_switch–s/tmp/switch1–M/tmp/switch1/mgmt–P20500;其中,/tmp/switch1是所述虚拟网关所连接的所述虚拟交换机的名字;/tmp/switch1/mgmt是所述虚拟交换机的管理接口;-P选项用于所述虚拟交换机的绑定端口。
步骤S2还可以包括,开启所述虚拟网关提供的DHCP服务、IP地址资源池大小和IP地址。本发明实施例中,步骤S2可以采用如下方法实施:运行命令#slirpvde–s/tmp/switch1–D–s192.168.1.28–e192.168.1.49-n192.168.1.1;其中,/tmp/switch1是所述虚拟网关所连接的所述虚拟交换机的名字;-D选项用于开启所述虚拟网关的DHCP服务;-s用于指定所述DHCP服务的起始分配IP地址;-e用于指定所述虚拟网关的终止分配IP地址;-n用于指定所述虚拟网关的IP地址。如本领域普通技术人员可以理解的,在创建本服务器上的虚拟网关时,该虚拟网关所支持的DHCP服务的地址池要规划好,各个服务器的虚拟网关所支持的DHCP服务的地址池不能交叉。
步骤S3中,可以采用本领域的常用技术实现虚拟机与虚拟交换机的连通。由于在步骤S2中,已经配置了虚拟网关连接的虚拟交换机,因此,将虚拟交换机与虚拟机连通后,就可以形成单台服务器的虚拟网络。
本发明实施例中,步骤S4中,采用上述步骤S1-S3的相同的操作,创建多个单台服务器虚拟网络。
然后再执行步骤S5,将多个单台服务器虚拟网络中的虚拟交换机互联,从而将多个单台服务器虚拟网络连通,形成完整的虚拟网络。该虚拟网络中可以包含多个服务器,每个服务器中可以包含多个虚拟机,每个服务器中的任意虚拟机都可以通过所在的服务器中的虚拟网关访问外网,也可以通过所在服务器的虚拟交换机连通其他服务器中的虚拟机。
由于本发明实施例中,需要各服务器中的虚拟交换机之间需要连通,而且需要通过TCP链路连接,所以在步骤S1中,创建虚拟交换机时,需要指明所述虚拟交换机的绑定端口。
其中,步骤S5,可以采用如下方法实现多个单台服务器虚拟网络中的虚拟交换机互联:运行命令#vdeterm/tmp/switch1/mgmt“conn175.10.2.79:20500”;其中,/tmp/switch1/mgmt是所述虚拟交换机的管理接口。
另外,本发明实施例提供的虚拟网络的实现方法,通过网络管理代理提供管理网络的API接口,与桌面云***对接,从而使虚拟网络可以根据桌面云***发布的命令在该虚拟网络指定的服务器上运行上述命令来创建单台服务器的虚拟网络,即本地网络,命令中的参数如端口、DHCP地址池等都有桌面云***动态管理。
如本领域普通技术人员可以理解的,本发明实施例提供的虚拟网络访问外网时,每个服务器的虚拟网关通过服务器的网卡,连通到物理交换机,物理交换机连通到物理网关,通过该物理网关访问外网。上述设备之间的连通均可以采用本领域的常规技术手段实现。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明实施例提供的虚拟网络及其实现方法,对于多个服务器,在每个服务器上均设置一个虚拟网关,使该单个服务器上的虚拟机通过该服务器上的虚拟网关访问外网,因此,每个服务器上的虚拟网关的工作负荷都不会很大,每个服务器被占用的资源也不会很大,从而不会影响各个服务器的正常使用。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。
上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。