警告
NOTICE: THIS DOCUMENTATION SITE HAS BEEN SUPERSEDED.
For the current documentation site goto: http://docs.cloudstack.apache.org
CloudStackVPC是CloudStack云中私有并隔离的部分。一个VPC可以使用自己的虚拟网络拓扑来组建传统物理网络。在这个虚拟网络中,您创建的虚机的私网地址可以由您自主选择IP范围,例如10.0.0.0/16。您可以在VPC网络范围内定义多个网络层,这些层可以让你将类似的虚机按IP地址范围分组。
例如:一个VPC的私有地址范围是10.0.0.0/16,其中的用户网络的地址范围可以分别是10.0.1.0/24、10.0.2.0/24、10.0.3.0/24等等。
VPC主要由以下网络组件构成:
VPC有以下四个基本的网络架构:
你可以连接你的VPC:
在创建VPC之前,确认以下事项:
当创建VPC时,你只需要提供区域名和VPC要使用的一组IP地址。这组IP地址是以CIDR块的形式提供。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
点击添加VPC按钮。页面呈现以下:

填写以下内容:
点击确定。
层在VPC里起来隔离网络的作用,默认规则是层之间不能互访。不同VLAN之间的层可以通过虚拟机实现连接。层在VPC内部提供一种廉价,低延迟的网络连接。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
注解
最终用户能看到他们自己的VPC,系统管理用户和域管理员可以看到所有被授权查看的VPC。
在你希望设置层的VPC里,点击配置按钮。
点击新建网络。
然后,添加层的对话界面就会出现。如下:

如果你已添加层,VPC界面就会出现。点击添加层可以增加一个新的层。
指定以下信息:
所有的区域必须填写的。
名称: 你添加的层的一个唯一的层名。
网络方案: 默认有以下几种网络方案: Internal LB, DefaultIsolatedNetworkOfferingForVpcNetworksNoLB, DefaultIsolatedNetworkOfferingForVpcNetworks
在一个VPC中,用LB-enabled network offering只能创建一个层。
网关:你创建网络层的网关。确保网关在你创建VPC时指定的超级CIDR范围内,并且不能与已存在VPC的任何网络层的CIDR重叠。
VLAN: 指定系统管理员创建的层的VLAN ID号。
这个选项只在你选择的方案在VLAN-enabled的情况下才会显示出来。
如需要更多信息,请参考”为隔离网络分配VLAN” <hosts.html#assigning-vlans-to-isolated-networks>`_.节。
子网掩码:你创建的网络层的子网掩码。
比如,如果VPC CIDR是10.0.0.0/16并且该网络层CIDR是10.0.1.0/24,那么这个网络层的网关是10.0.1.1,子网掩码是255.255.255.0.
点击确定。
继续为层配置访问控制列表。
定义网络访问控制列表(ACL),用以在VPC的层之间,或是层与互联网之间控制进出流量。默认情况下,客户网络的所有进入流量被阻止,所有外出流量被允许。一旦在外出流量方向添加了ACL,则只有ACL规则允许的流量可以被允许,其余的外出流量会被阻止。如果要开放其它端口,则需要在新的ACL中明确定义。只有在支持NetworkACL服务的条件下,只能创建层的ACL。
在CloudStack术语中,ACL指的是一组针对网络条目。其按条目规则顺序执行,从最小值开始。这些规则决定了与此ACL关联的层的进出流量是被允许还是阻止。操作的方法是添加一个ACL,然后将这个ACL与层关联。ACL在整个VPC中使用,它可以被关系到一个VPC当中多个层中。一个层能及只能关联到一个ACL中。
当没有ACL明确关联时,会有一个默认的ACL起作用。默认规则是层中所有进入流量被阻止,所有外出流量被允许默认的ACL不能被删除或修改。默认ACL的内容如下:
| 规则 | 协议 | 流量类型 | 动作 | CIDR |
|---|---|---|---|---|
| 1 | 所有 | 进入流量 | 拒绝 | 0.0.0.0/0 |
| 2 | 所有 | 外出流量 | 拒绝 | 0.0.0.0/0 |
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击VPC的配置按钮。
对于每一个层,会显示以下选项。
显示以下路由器信息:
选择网络ACL列表。
在ACL页面,下面默认规则将会显示出来:default_allow, default_deny.
点击添加ACL列表,指定以下配置:
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击VPC的配置按钮。
选择网络ACL列表。
除了创建的你自定义的ACL列表之后,以下默认ACL规则也会显示在页面中:default_allow, default_deny.
选择需要的ACL列表。
选择ACL规则栏
为了创建ACL规则,需要在VPC中定义下面哪些网络流量是允许的。
点击添加。这个ACL规则就添加好了。
你可以重新编辑ACL标签,或是删除ACL。点击详细信息里的appropriate按钮。
创建一个VPC。
创建一个自定义ACL列表。
将ACL规则加入ACL列表。
在VPC里创建一个层。
在创建层的过程中选择需要的ACL列表。
点击确定。
创建一个VPC。
在VPC里创建一个层。
将默认的ACL规则关联到层。
创建一个自定义ACL列表。
将ACL规则加入ACL列表。
选中你希望赋予自定义ACL的层。
点击替换ACL图标。![]()
替换ACL的对话界面将会弹出来。
选择需要的ACL列表。
点击确定。
A private gateway can be added by the root admin only. The VPC private network has 1:1 relationship with the NIC of the physical network. You can configure multiple private gateways to a single VPC. No gateways with duplicated VLAN and IP are allowed in the same data center (but you can use different VLANs for different gateways, but with same IP ranges/networks)
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
Click the Configure button of the VPC for which you want to configure private gateway
系统会显示VPC页面,您创建的所有层都列在图中。
点击设置图标。
下面这些选项就会出现。
显示以下路由器信息:
选择私有网关。
网关对话框就会显示出来。
点击添加新网关:

指定以下信息:
Physical Network: The physical network you have created in the zone - this is the network which caries GUEST TRAFFIC
IP地址: 关联VPC网关的IP地址。
网关: 定义进出VPC流量的网关。
Netmask: VPC网关的子网掩码。
VLAN: VPC网关的VLAN。
Source NAT: 这个选项会启用VPC私有网关的source NAT服务。
参考”私有网关的Source NAT”.
ACL: 控制VPC私有网关的进出流量,默认情况下,所有流量被阻止。
参考”私有网关的ACL”.
新的网关就会出现在列表中。你可以重复这些步骤为VPC增加更多的网关。
When you provision Private Gateway with i.e. vlan id 1500, CloudStack will try to provision vlan interface with that vlan id on top of the physical interface which is defined for the selected physical network - i.e. if you defined “bond0” as the “traffic label” for the selected Physical Network, this means CloudStack will try to create “bond0.1500” vlan interface, and this will work just fine.
But in some cases, you might not be able to use current Guest Physical Network - i.e. if you are already running VXLAN as isolation method with i.e. bond0.150 being used as Traffic Label (vlan 150 caries all VXLAN tunnels) then CloudStack would try to provision “bond0.150.1500” interface, which will not work. In similar fashion, if you are using cloudbrX as Traffic Label for your Guest network (VLAN used as isolation method), this means CloudStack will try to provision “cloudbrX.1500” interface, which will also not work.
In cases described above, you would perhaps want to create additional Guest Physical Network, and specify bond0 as the Traffic Label (to comply with example values given above) - and here CloudStack will provision “bond0.1500” interface, which will work as expected.
In cases where you have 2 (or more) Guest Physical Networks, and you want one of them to be used for regular Guest Traffic (vlans, or vxlan tunnels), but you want another Guest Physical Network to be used for Private Gateway functionality (solution to the problem described above), then we need to make sure that we properly TAG both Guest Physical Networks and the needed Network Offerings - both the regular Network Offerings and also the hidden network offering that is used for Private Gateways (visible only inside DB), named “System-Private-Gateway-Network-Offering”.
For instruction on how to use tags with Physical networks and Network Offerings, please see “Tagging Guest Physical Network and Network Offerings”.
你可能希望在同一个超级CIDR和客户层CIDR中部署多个VPC。因此,在一个数据中心,不同VPC中的虚拟机通过私有网络可以拥有相同的IP地址。在这种情况下,就需要在私有网关里配置Source NAT服务以避免IP冲突。如果Source NAT服务启用,VPC中的客户虚拟机使用私有网关IP地址与数据中心其它机器交流。
Source NAT服务是添加私有网关时启用。如果删除了私有网关,关联到此私有网关的Source NAT规则也会被删除。
如要有已有私有网关中启用Source NAT,需要先删除(私有网关),然后再建一个启用Source NAT的私有网关。
VPC私有网关的进出流量是被ACL规则控制的。ACL均包含允许和阻止的规则。在每一条规则中,所有进出私有网关接口的流量是被阻止的。
你可以在创建私有网关时,改变这个默认的行为。或者,你也可以按如下方式操作:
在VPC中,验证你想操作的私有网关。
在私有网关页面,按如下步骤操作:
在所选择的私有网关的快速查看视图里,点击替换ACL,选中ACL规则,然后点击OK按钮。
点击你需要操作的私有网关的IP地址。
在详细查看栏。点击替换ACL按钮。![]()
替换ACL的对话框就会出现。
选择ACL规则,然后点击OK按钮。
稍等片刻。你就会看到新的ACL规则出现在详细页面里了。
CloudStack可以让你指定你创建的VPN链接的路由。你可以输入一个或CIDR地址来指定路由返回到网关的具体流量。
在VPC中,验证你想操作的私有网关。
在私有网关页面,点击你需要的私有网关的IP地址。
选择静态路由栏。
指定目标网络的CIDR。
点击 添加
稍等片刻,新的路由就创建好了。
CloudStack允许你定义一个路由黑名单,这样它们就不能关联到任何VPC私有网关。你需要在全局参数blacklisted.routes里定义。要注意,此参数只在新路由创建时才会生效。如果你在黑名单里加入了已存在的静态路由,则此静态路由还是会继续起作用。你不能把在路由黑名单里的路由加入到静态路由当中去。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击要部署虚机的VPC的配置按钮。
所有创建好的层都会有VPC页面里列出来。
指向你想添加虚拟机的层,点击虚拟机栏。

添加实例的页面就会出现。
按照屏幕所指示的操作加入实例。至于如何添加实例,参照安装指南文档。
当获取IP地址时,所有的IP地址会被分配到该VPC,而不是VPC中的用户网络。只有当在IP或用户网络上创建第一个网络规则(端口映射、负载均衡、静态NAT)时,该IP才会关联到用户网络。一个IP不能同时关联一个以上的网络。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击要部署虚机的VPC的配置按钮。
系统会显示VPC页面,您创建的所有层都列在图中。
下面这些选项就会出现。
显示以下路由器信息:
选择IP地址。
公网IP地址页面就显示出来。
点击获得一个新IP, 并且在确认的对话框中点击确定.
因为通常IP地址是有限资源,系统会提示您确认。 在稍等片刻之后,新的IP地址将会出现并且状态是已分配。现在您就可以使用这个IP地址做端口转发、负载均衡或静态NAT。
IP地址是有限资源。如果您不再需要某个IP,请解除该IP和VPC的关联,使其返回到可用地址池中。只有当IP上所有的网络规则(端口映射、负载均衡、静态NAT)都删除后,该IP才能从所属层释放。释放的IP仍属于该VPC。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击要释放IP的VPC的配置按钮。
系统会显示VPC页面,您创建的所有层都列在图中。
下面这些选项就会出现。
显示以下路由器信息:
选择公网IP地址。
系统显示IP地址页面。
点击要释放的IP地址。
在详细查看栏,点击释放IP按钮。 ![]()
静态NAT规则是将公网IP映射到VPC中虚机的私网IP,以便允许互联网流量访问该虚机。本节描述如何在VPC中启用或禁用某个公网IP地址的静态NAT。
如果该公网IP上已经有端口转发规则,则不允许再启用静态NAT。
如果用户VM存在多个网络,则静态NAT规则仅在默认网络上定义时生效。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击要部署虚机的VPC的配置按钮。
系统会显示VPC页面,您创建的所有层都列在图中。
对于每一个层,会显示以下选项。
显示以下路由器信息:
在路由器节点中,选择公共IP地址。
系统显示IP地址页面。
点击您要操作的IP。
在“详细信息”页,点击静态NAT按钮|enable-disable.png| 。该按钮会根据公网IP的静态NAT当前状态,在启用和禁用间切换。
如果是启用静态NAT,会显示如下对话框:

选择层和目标虚机,然后点击“应用”。
在VPC中,你可以配置外部或内部负载均衡。外部负载均衡就是将VPC虚拟路由器接收到的公网流量进行转发的规则。这个流量如何在层里进行均衡取决于你的配置。Citrix NetScaler 和 VPC virtual router都支持外部负载均衡。内部均衡是在层内的虚拟之间进行均衡。比如,到达WEB层请求的流量可以转发到此层另外的虚拟机。外部负载均衡设备不支持内部均衡。内部负载均衡的服务是由目标层的内部虚拟机配置后提供支持服务的。
A CloudStack user or administrator may create load balancing rules that balance traffic received at a public IP to one or more VMs that belong to a network tier that provides load balancing service in a VPC. A user creates a rule, specifies an algorithm, and assigns the rule to a set of VMs within a tier.
添加并启用 Netscaler VPX独立模块。
Netscaler只能在独立模块的形式下应用于VPC环境中。
创建启用持久化选项的网络方案。请参考”创建一个外部负载均衡网络方案”.
在VPC中创建一个基于Netscaler的公用负载均衡。
更多信息,请参考 “添加一个VPC”.
在VPC中获取一个IP地址。
创建并应用一个外部负载均衡规则。请参考:ref:create-ext-lb-rule.
要在VPC中启用外部负载均衡支持,依如下操作建立网络方案:
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击要配置负载均衡规则的VPC的配置按钮。
系统会显示VPC页面,您创建的所有层都列在图中。
对于每一个层,会显示以下选项。
显示以下路由器信息:
在路由器节点中,选择公共IP地址。
系统显示IP地址页面。
点击你希望创建规则的IP地址,然后点击配置
在图的负载均衡节点点上,点击 查看全部。
选择应用规则的层。
指定以下信息:
新的负载均衡策略会显示在列表中。您可以重复以上步骤为该IP地址添加更多的负载均衡策略。
CloudStack支持在VPC内不同层之间共享工作负载。这需要先在你的环境里设置好多个层,比如WEB层,应用层。每一个层的流量通过VPC虚拟路由机进行负载均衡。关于这方面的内容, “在VPC里添加负载均衡规则”. 如果你想将WEB层发向应用层的流量进行负载均衡,需要使用Cloudstack的内部负载均衡功能。
在这个图中,公网负载均衡规则是这样创建的:公网IP为IP 72.52.125.10,外网端口为80,内网端口为81。VPC的虚拟路由机创建的负载均衡规则将互联网的流量分配到WEB层的各个虚拟机上。在应用层创建了两个内部负载均衡规则。其中一个规则是:客户IP为10.10.10.4的将端口23进行负载分发,实例VM和InternalLBVM1的端口25进行了负载。另一条规则是:客户IP为10.10.10.4的将端口45进行负载分发,实例VM和InternalLBVM1的端口46进行了负载。另一条规则是:客户IP为10.10.10.6的将端口23进行负载分发,实例VM和InternalLBVM1的端口25进行了负载。(两条规则还是三条规则?原文如此,希望图示能明解)

要在VPC当中使用内部负载均衡,可以使用默认的DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB,或按如下操作新建一个网络方案:
当你创建好一个内部负载均衡规则,并将之用于一个虚拟之后,一个内部负载均衡的应用就建立起来了。
你可以在实例页面中查看创建的内部LB VM 按如下导航 基础构架 > 区域 > <zone_ name> > <physical_network_name> > 网络服务提供 > 内部负载均衡虚拟机,你就可以看到已创建了内部负载均衡的实例上。也可以在此进行内部负载均衡的管理。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击要配置内部负载均衡规则的VPC的配置按钮。
系统会显示VPC页面,您创建的所有层都列在图中。
指向你想配置内部负载均衡的层,点击内部负载均衡。
在 Internal LB页面里,点击添加 Internal LB。
在对话框里,定义以下内容:
名称: 负载均衡规则的名称。
描述: 提供一个简短的规则描述。
源IP地址: (可选) 是指产生流量的源IP地址。这个地址是从你创建内部负载均衡的层中的CIDR中获取的。如果没有指定,则系统会自动从CIDR中分配。
对于每一个源IP地址,都可以建立一个针对它的内部负载均衡。
源端口: 与源IP地址关联的端口,此端口上的流量是基于负载均衡的。
实例端口: 内部负载均衡虚拟机的端口。
算法。选择您希望CloudStack 使用的负载均衡算法。CloudStack 支持下列知名的算法:
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击要部署虚机的VPC的配置按钮。
系统会显示VPC页面,您创建的所有层都列在图中。
对于每一个层,会显示以下选项。
显示以下路由器信息:
在路由器节点中,选择公共IP地址。
系统显示IP地址页面。
点击你希望创建规则的IP地址,然后点击配置
在图表的端口转发节点,点击查看所有。
选择应用规则的层。
指定以下信息:
公用端口: 你在前面操作所获取的供公共流量使用的公用IP地址的端口。
私有端口: 虚拟机实例将被转发到公共流量的监听端口。
Protocol: 两个端口之间所用的互联协议。
Add VM: 点击增加虚拟机,选择你想将此规则应用上的虚拟机,点击应用。
你可以通过SSH连接实例来测试此规则。
你可以从一个VPC中删除一个层。一个被删除的层是不能被擦除的。当一个层被删除后,只有层的资源被删去。所有的网络规则(端口转发,负载均衡,静态NAT)还有关联到此层的IP地址都会删除。但这些IP地址仍然属于这个VPC。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
在你希望设置层的VPC里,点击配置按钮。
配置VPC的页面显示出来了。指向你需要操作的层。
选择你想删除的层。
在网络详细栏,点击删除网络按钮。
点击YES按钮。稍等片片刻,层就会被删除了。
注解
在删除VPC前,需要先删除所有的层。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
选择你需要的VPC。
在详细栏,点击删除VPC按钮。
你也可以在快速查看视图里点击删除按钮进行VPC的删除。
You can edit the name and description of a VPC. To do that, select
the VPC, then click the Edit button. ![]()
如果要重启一个VPC,点击重启按钮。
In cases you have more than one Guest Physical Network, you might choose to use them for different purposes - i.e. to carry all “regular” VPC Guest Traffic (vlans/vxlans) on one Guest Physical Network, but use another Guest Physical Network for VPC Private Gateway (networks which are created as part of Private Gateway).
Example above would be accomplished by assigning different tags on these two Guest Physical Networks, and then tag proper Guest Network offerings in certain way, as explained later.
To edit tags in existing zone, for Guest Physical Networks, please do the following:
Next, we need to edit tags on existing Guest Network Offerings. Depending on CloudStack versions, you will need to edit database records directly.
mysql> update network_offerings set tags="guestvxlan" where traffic_type="Guest";
This would set tag for all existing Guest Network Offers.
Now we want to put different tag on the hidden Network Offering that is used to provision Guest networks for Private Gateways.
mysql> update network_offerings set tags="guestprivgtw" where name="System-Private-Gateway-Network-Offering";
From now one, whenever you provision regular Guest Network (private tiers, part of VPC), these networks will be created on Guest Physical Network with tag “guestvxlan”, while Private Gateway Guest networks will be created on Guest Physical Network with tag “guestprivgtw”.