一种云主机基于虚拟局域网的限速方法和系统
技术领域
本发明涉及计算机网络技术,特别是指一种云主机基于虚拟局域网(VLAN,Virtual Local Area Network)的限速方法和系统。
背景技术
云主机是云计算在基础设施应用上的重要组成部分,位于云计算产业链金字塔底层。其特点是高可靠性、安全性、高性能、快速反应能力、弹性计算平台、多节点可选。
云主机是通过CloudEx弹性计算平台建立在通用服务器上的虚拟服务器。弹性计算平台能够根据用户的需求来定义云主机的计算能力、内存大小、存储空间以及网络带宽。
CloudEx弹性计算平台的结构如图1所示。CloudEx弹性计算平台的是一个以虚拟化为基础将整合了服务器、存储、网络资源整合的云计算平台。在CloudEx弹性计算平台中,一台以上的通用服务器102和存储器103通过网络连接。云主机101建立在CloudEx弹性计算平台上,通过CloudEx弹性计算平台分配计算、存储和网络资源。CloudEx弹性计算平台整合了互联网应用三大核心要素:计算、存储、网络,面向用户提供公用化的互联网基础设施服务。通过CloudEx弹性计算平台可以实时监控通用服务器102的资源使用情况,并将云主机101分配给资源充足的通用服务器102和存储器103实现资源的灵活调度。
CloudEx弹性计算节点网络的结构如图2所示,包括:弹性计算平台管理服务器202、监控服务器203、一台以上的通用服务器102和存储器103。
连接到公网(一般是因特网)线路、弹性计算平台管理服务器202、监控服务器203和为云主机101提供资源的通用服务器102分别通过网络交换机201连接到公网VLAN。从而使得弹性计算平台管理服务器202、监控服务器203、云主机101连接到公网。其中,所述监控服务器203和所述通用服务器102分别通过各自的公网卡连接到网络交换机201。
监控服务器203通过私网网卡、通用服务器102通过私网卡连接到网络交换机201私网VLAN,从而实现云主机101之间数据交换。
监控服务器203通过存储网卡、通用服务器102通过存储网卡连接到存储交换机204。
CloudEx弹性计算节点的公网IP地址由网络服务供应商(ISP)分配,分配的这段公网地址的网关配置在和网络交换机201相连的ISP的路由器上。
云主机101的网卡是共享通用服务器102的网卡。
从图2所示的CloudEx弹性计算平台网络结构可以看出,一台通用服务器102有两条网线和网络交换机201相连;一条用于云主机101连接公网,属于公网VLAN,另一条用于云主机101之间数据交换,属于私网VLAN。
通过CloudEx弹性计算平台建立云主机101之后可以确定:云主机101所在的通用服务器102,以及通用服务器102公网网口对应的交换机端口;云主机101公网网卡的MAC地址等。
现有技术的网络带宽限速主要采用如下方法:
从CloudEx弹性计算节点的公网IP地址段中分配一个空闲IP地址给云主机101。在网络交换机201上将云主机101公网网卡MAC地址和公网地址绑定。在云主机101所在通用服务器102的公网网卡与网络交换机201连接的端口,配置源IP地址为云主机101公网IP地址,目的地址为任意IP地址的服务质量(QOS)限速策略。
但是,按照现有技术的限速方案,当一个用户拥有多台云主机101时,只能为每一台云主机101单独分配网络带宽。不能有效解决用户的多台云主机101共享网络带宽的需求。另外,为了防止因一台通用服务器102的故障影响到用户,用户使用多台云主机101时,云主机101应分配在不同的通用服务器102上。目前的交换机功能只能做到同一台通用服务器102上的云主机101共享网络带宽,而当用户的云主机101在不同通用服务器102上则无法实现共享带宽的需求。
弹性计算节点中,所有云主机101私网都在同一个VLAN中。当有多台云主机101用户配置私网IP地址用于数据通信时,其他用户也可能配置了同一网段的地址,这样用户私网传输数据可能会被监听,而两个用户配置同样的私网地址会引发IP地址冲突。
弹性计算节点中,所有云主机101公网都在同一个VLAN中。那么所有的云主机101公网都处于同一个广播域中,虽然在网络交换机201上绑定云主机101公网卡MAC地址和公网IP地址,避免了为云主机101用户私自修改IP地址导致的IP冲突。但是所有的云主机101公网处于同一广播域中,随着网络安全形势的日益严峻,网络攻击越发频繁,如果一台云主机101被黑客攻击或者用户使用监听软件,则会导致其他云主机101用户传输的网络数据被监听。
发明内容
有鉴于此,本发明的目的在于提供一种云主机基于虚拟局域网的限速方法和系统,既实现用户的多个云主机共享网络带宽,同时又能实现用户之间的网络隔离。
基于上述目的本发明提供的一种云主机基于虚拟局域网的限速系统,在弹性计算节点网络中设置核心交换机,弹性计算节点网络中的网络交换机通过所述核心交换机连接到公网;
只拥有单台云主机的用户,以及拥有多台云主机且不需要共享网络带宽和网络隔离的用户共享两个VLAN,一个作为公有云公网VLAN用于公网通讯,另一个作为公有云私网VLAN用于私网通讯;
每个拥有多台云主机且需要共享带宽和网络隔离的用户各自分配有两个VLAN,一个作为私有云公网VLAN用于公网通讯,另一个作为私有云私网VLAN用于私网通讯;
弹性计算节点网络中的每台通用服务器分别通过至少两条线路连接到所述网络交换机,其中一条用于公网通讯,用于承载所述公有云公网VLAN和所有的所述私有云公网VLAN;另一条用于私网通讯,用于承载所述公有云私网VLAN和所有私有云私网VLAN;
所述核心交换机和网络交换机之间所述公有云公网VLAN和每个私有云公网VLAN都分别通过彼此独立的链路进行通讯。
可选的,该系统所述通用服务器与网络交换机之间用于公网通讯的线路和用于私网通讯的线路都分别设置为端口汇聚(Trunk)模式。
可选的,该系统在所述核心交换机上在所述公有云公网VLAN和每个所述私有云公网VLAN的虚拟子接口中分别配置有一个网关。
可选的,该系统在所述核心交换机的与所述私有云公网VLAN连接的接口上,对发往该核心交换机的数据设置限速。
可选的,该系统所述弹性计算节点网络中的监控服务器和弹性计算平台管理服务器分别通过各自的公网网卡连接到所述网络交换机的公有云公网VLAN的虚拟子接口;所述监控服务器通过私网网卡连接到所述公有云私网VLAN的虚拟子接口。
可选的,该系统所述弹性计算节点网络中的监控服务器和通用服务器还通过存储交换机与所述弹性计算节点网络中的存储器相连。
基于上述目的,本发明还提供了一种云主机基于虚拟局域网的限速方法,在弹性计算节点网络中设置核心交换机,弹性计算节点网络中的网络交换机通过所述核心交换机连接到公网;
为只拥有单台云主机的用户,以及拥有多台云主机且不需要共享网络带宽和网络隔离的用户共同设置两个VLAN,一个作为公有云公网VLAN用于公网通讯,另一个作为公有云私网VLAN用于私网通讯;
为每个拥有多台云主机且需要共享带宽和网络隔离的用户分别设置有两个VLAN,一个作为私有云公网VLAN用于公网通讯,另一个作为私有云私网VLAN用于私网通讯;
为弹性计算节点网络中的每台通用服务器分别至少设置两条线路连接到所述网络交换机,其中一条用于公网通讯,用于承载所述公有云公网VLAN和所有的所述私有云公网VLAN;另一条用于私网通讯,用于承载所述公有云私网VLAN和所有私有云私网VLAN;
在所述核心交换机和网络交换机之间,为所述公有云公网VLAN和每个私有云公网VLAN分别设置彼此独立的链路进行通讯;
预先为公有云公网VLAN和每个私有云公网VLAN分别分配公网VLAN ID,为公有云私网VLAN和每个私有云私网VLAN分别分配私网VLAN ID;
云主机向公网传输数据时,云主机将数据封装成标识的网络帧发送到通用服务器弹性计算模块,通用服务器的弹性计算模块将该网络帧的VLAN标签设置为该云主机的公网VLAN ID,将修改后的网络帧发送到所述网络交换机;
所述网络交换机根据公网VLAN ID确定该网络帧所属的VLAN,将所述网络帧通过该VLAN对应的交换机端口转发到所述核心交换机;
所述核心交换机收到所述网络帧后,对该网络帧按照目的地址进行转发。
可选的,该方法在所述核心交换机中的与所述私有云公网VLAN连接的接口上,对所述私有云公网VLAN发往该核心交换机的数据和/或该核心交换机发往该私有云公网VLAN的数据设置限速;所述核心交换机收到所述网络帧后,判断如果该网络帧通过速率不大于该网络帧端口上预设的速率限制值,则正常转发。
可选的,该方法进一步分别将所述通用服务器与网络交换机之间用于公网通讯的线路和用于私网通讯的线路设置为Trunk模式。
可选的,该方法进一步在所述核心交换机上在所述公有云公网VLAN和每个所述私有云公网VLAN的虚拟子接口中分别配置一个网关。
可选的,该方法一步设置所述弹性计算节点网络中的监控服务器和弹性计算平台管理服务器分别通过各自的公网网卡连接到所述网络交换机的公有云公网VLAN的虚拟子接口;所述监控服务器通过私网网卡连接到所述公有云私网VLAN的虚拟子接口。
可选的,该方法将所述弹性计算节点网络中的监控服务器和通用服务器通过存储交换机与所述弹性计算节点网络中的存储器相连。
从上面所述可以看出,本发明提供的云主机基于虚拟局域网的限速方法和系统,通过设置核心交换机巧妙地利用交换机中限制单个端口转发数据包速率的功能,通过新的网络结构将用户的多个云主机的网络接口流量汇集到一个端口,有效地解决多台云主机带宽共享问题和限速问题。
另外,本发明创新性地采用VLAN+IP子网、以及独立VLAN方式很好地实现了不同需求云主机用户间的网络隔离,解决了现有网络结构的缺点。
附图说明
图1为现有技术CloudEx弹性计算平台结构示意图;
图2为现有技术CloudEx弹性计算节点网络结构示意图;
图3为本发明实施例云主机基于VLAN限速系统的逻辑组网结构示意图;
图4为本发明实施例云主机基于VLAN限速系统的物理组网结构示意图;
图5为本发明实施例云主机和CloudEx弹性计算节点网络结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明云主机基于VLAN限速系统的逻辑网络结构,参见图3所示。
在弹性计算节点网络中设置核心交换机301,弹性计算节点网络中的网络交换机201通过所述核心交换机301连接到公网;
只拥有单台云主机101的用户,以及拥有多台云主机101且不需要共享网络带宽和网络隔离的用户共享两个VLAN,一个作为公有云公网VLAN用于公网通讯,另一个作为公有云私网VLAN用于私网通讯;
每个拥有多台云主机101且需要共享带宽和网络隔离的用户各自分配有两个VLAN,一个作为私有云公网VLAN用于公网通讯,另一个作为私有云私网VLAN用于私网通讯;
弹性计算节点网络中的每台通用服务器102分别通过至少两条线路连接到所述网络交换机201,其中一条用于公网通讯,用于承载所述公有云公网VLAN和所有的所述私有云公网VLAN;另一条用于私网通讯,用于承载所述公有云私网VLAN和所有私有云私网VLAN;
所述核心交换机301和网络交换机201之间所述公有云公网VLAN和每个私有云公网VLAN都分别通过彼此独立的链路进行通讯。
虽然现有交换机不支持多个端口的转发数据包速率总和限速,但是交换机可以限制单个端口转发数据包速率。本发明利用交换机的这项功能,通过新的网络结构将用户的多个云主机101的网络接口流量汇集到一个端口进行限速,可以有效的解决多台云主机101带宽共享问题。
另外,本发明汇总将CloudEx弹性计算节点的公网IP地址,根据用户需求划分成多个IP地址段,这里将这些IP地址段称为IP子网。为了实现用户的多台云主机101和其他用户的云主机101网络隔离,云主机101公网采用VLAN+IP子网的方式,私网使用独立VLAN方式实现云主机101用户间实现网络隔离。
其中,IP子网是按照用户的需求分配的一段公网IP地址;数据流入路径是从ISP交换机或者路由器,发送到核心交换机301,核心交换机301根据IP地址所属的子网,将数据通过IP子网的网关发给IP地址所属的云主机101。当网络受攻击的时候影响的最大范围就是这个子网内的云主机101,相对所有云主机101处于一大段地址时,影响面缩小了从而提高网络安全性。
同时,IP子网的网关在核心交换机301上;子网内云主机101数据交换的时候直接在网络交换机201上进行,数据不会流向核心交换机301,在IP子网内部交换数据不受公网带宽限速的影响。
通过图1所示现有系统结构可以了解到云主机101是通过CloudEx弹性计算平台,建立在通用服务器102上的虚拟服务器。云主机101的网卡是共享通用服务器102的网卡,那么一台通用服务器102上有多台云主机101,云主机101的需求不可能全部相同;使用IP子网+VLAN的方式在通用服务器102和网络交换链接的线路上,会出现多个VLAN。CloudEx弹性计算平台平台管理的通用服务器102网卡端口支持Trunk(端口汇聚)模式,在服务器网口和交换机端口设置成Trunk模式即可。
为了方便对整个方案的说明将云主机101按照需求划分成逻辑组,逻辑组划分标准如下:
公有云,由系统中只拥有单台云主机用户的云主机101和多台不需要共享网络带宽和网络隔离的云主机101组成;公有云服务于只拥有单台云主机101的用户,以及拥有多台云主机101且不需要共享网络带宽和网络隔离的用户;
私有云,一个用户的多台云主机101,并且需要多台云主机101共享带宽和实现网络隔离的云主机101组成。私有云服务于每个拥有多台云主机101且需要共享带宽和网络隔离的用户
公有云和每个私有云都有一个公网VLAN、一个私网VLAN、一个IP子网;公有云和私有云的IP子网网关配置在其公网VLAN的虚拟子接口上。
云主机VLAN划分标准:
公有云公网VLAN:公有云中云主机的公网网口;
公有云私网VLAN:公有云中云主机的私网网口;
私有云公网VLAN:私有云中云主机的公网网口;
私有云私网VLAN:私有云中云主机的私网网口。
在图3中,31代表公有云公网VLAN,32代表公有云私网VLAN,33代表私有云1的公网VLAN,34代表代表私有云1的私网VLAN,35代表私有云2的公网VLAN,36代表代表私有云2的私网VLAN。
这样,在原有的网络交换机201的基础上,增加了核心交换机301作为三层交换机,核心交换机301上为公有云和每个私有云分配一个公网VLAN和一个IP子网,IP子网网关在三层交换机上。每个逻辑组的公网VLAN都有一条线路从三层交换机连接到二层交换机,即网络交换机201。
通过网络交换机201按照云主机VLAN划分标准划分VLAN。
公有云或者私有云中的云主机101若要向公网出传输数据,首先要将数据封装成标准的网络帧,网络帧中VLAN tag(标签)会标识这个帧属于哪个VLAN,如私有云1公网VLAN的ID为5。
网络交换机201收到网络帧以后,通过网络帧的VLAN tag知道网络帧属于VLAN5,通过网络交换机201与和核心换机VLAN5相连的链路,将网络帧发往核心交换机301。
核心交换机301将数据帧通过上联链路转发到公网。
对VLAN5限速,在核心交换机301属于VLAN5并与网络交换机201连接的端口,限制流入方向的网络帧的速率,以实现对整个VLAN流向公网方向的限速。
云主机基于VLAN限速系统的物理网络结构,如图4所示。
CloudEx弹性计算节点核心交换机301和局方交换机使用默认路由或路由协议;其中,所述局方交换机用于连接到公网,一般是ISP交换机或者路由器401。
在核心交换机301上为公有云和每个私有云公网配置一个网关,网关配置在公有云或者私有云公网VLAN的虚拟子接口中。
核心交换机301和网络交换机201之间公有云和每个私有云公网VLAN都有一条独立的链路连接。
通用服务器102都有至少两条线路连接到网络交换机201;一条用于公网通讯(图4中用粗实线表示),使用trunk模式,允许公有云和所有私有云公网VLAN通过;另一条用于私网通讯(图4中用粗虚线表示),使用trunk模式,允许公有云和所有私有云私网VLAN通过。
监控服务器203和弹性计算平台管理服务器202分别通过各自的公网网卡连接到网络交换机201公有云公网VLAN;监控服务器203还通过自身的私网网卡连接到公有云私网VLAN。
监控服务器203和通用服务器102通过存储交换机204与存储器103相连;监控服务器203连接存储器103网段用来监控存储器103和通用服务器存储网络。
基于上述系统,本发明的限速方法主要包括:在所述核心交换机301和网络交换机201之间,为所述公有云公网VLAN和每个私有云公网VLAN分别设置彼此独立的链路进行通讯;
预先为公有云公网VLAN和每个私有云公网VLAN分别分配公网VLAN ID,为公有云私网VLAN和每个私有云私网VLAN分别分配私网VLAN ID;
云主机101向公网传输数据时,云主机101将数据封装成标识的网络帧发送到通用服务器102弹性计算模块,通用服务器102的弹性计算模块将该网络帧的VLAN标签设置为该云主机101的公网VLAN ID,将修改后的网络帧发送到所述网络交换机201;
所述网络交换机201根据公网VLAN ID确定该网络帧所属的VLAN,将所述网络帧通过该VLAN对应的交换机端口转发到所述核心交换机301;
所述核心交换机301收到所述网络帧后,对该网络帧按照目的地址进行转发。
具体参见图5所示,图5是基于本发明限速系统的网络结构,云主机和CloudEx弹性计算节点示意图。
为拥有多台云主机101需要共享带宽和网络隔离的用户分配两个VLAN,一个用于公网通讯,另一个用户私网,作为数据交换使用。例如:一个用户有三台云主机101,分布在三台不同的通用服务器102上,即通用服务器1中的云主机1、通用服务器2中的云主机1和通用服务器3中的云主机2,分配给用户公网的VLAN为5,私网VLAN为64。
由于网络交换机201和服务器之间使用Trunk方式连接,服务器公网网卡和网络交换机201的连接线路上可以传输VLAN tag不同的网络帧。其中粗实线表示公网连接Trunk模式,粗虚线表示私网连接Trunk模式。
另外,预先可在所述核心交换机301中的与所述私有云公网VLAN连接的接口上,对所述私有云公网VLAN发往该核心交换机301的数据或该核心交换机301发往该私有云公网VLAN的数据设置限速;或者对所述私有云公网VLAN发往该核心交换机301的数据设置、以及该核心交换机301发往该私有云公网VLAN的数据同时都设置限速。
用户的云主机向公网传送数据过程包括:
将数据封装成标准的网络帧,然后通过云主机101的网卡发送到通用服务器102;一台通用服务器102上可能有多台云主机101,这些云主机101会属于不同的VLAN。
通用服务器102上的CloudEx弹性计算软件,会按照在CloudEx弹性计算平台上云主机101配置文件,按照配置文件修改网络帧,并将网络帧通过通用服务器102公网网卡发往网络交换机201。例如:云主机101公网VLAN ID为5,将那么CloudEx弹性计算软件在收到云主机101的数据帧后会将数据帧的VLAN tag修改成5,然后在将网络帧发通过这台通用服务器102公网网卡发往网络交换机201。
网络交换机201根据网络帧的包头信息中的VLAN tag,确认该网络帧属于哪个VLAN,并将网络帧通过相应的交换机端口转发出去。具体为网络交换机读取网络帧包头信息,得知VLAN tag为5,则会通过网络交换机201与核心交换机301的VLAN5相连的网络端口将网络帧发往核心交换机301。
在核心交换机的属于VLAN5并和网络交换机201的VLAN5相连的交换机端口上,根据需求设置端口流入(或者流出)方向的速率限制。这样当VLAN tag为5的网络帧流入(或者流出)这个交换机端口的时候,交换机会判断网络通过速率是否大于限制值;如果小于限制值则正常转发;如果大于限制值根绝设置丢弃或者使用别的策略。
当核心交换机301的VLAN5端口的流入网络帧数率不大于限制值时,交换机将收到的网络帧通过核心交换机301,将网络帧通过上联链路端口将网络包发往公网。
公网的数据交换分两种:一种是当公网数据交换的用户IP地址在同一个IP子网内时(即属于同一IP网段),数据交换在网络交换机201上进行,不到达核心交换机301,带宽不受限制。另一种是当公网(公有云或私有云公网VLAN)与其IP子网以外的IP地址进行数据交换时,数据首先要发往核心交换机301,通过配置在核心交换机301上的网关将数据转发到其他公网,数据在经过核心交换机301端口的时候会受到带宽限制。
私网(公有云或者私有云私网VLAN)内部通信,比如同一用户云主机101内部通信:首先私网是一个独立的VLAN和其他云主机101二层隔离;用户可以按照自己的需求配置任意网段的IP地址,来进行数据传输和通信。在私网中,用户云主机101只要在同一网段中即可联通。
以上所述的具体实施例仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。