警告
NOTICE: THIS DOCUMENTATION SITE HAS BEEN SUPERSEDED.
For the current documentation site goto: http://docs.cloudstack.apache.org
在CLOUDSTACK中,客户虚拟机之间可以在共享构架下相互通讯,并且可以在一个私有LAN中实现安全和用户互通。CLOUDSTACK的虚拟路由器是实现客户网络功能的主要组件。
在同一个区域内,客户虚拟机之间可以互访,但在不同的区域内,客户虚拟机之间不可以通过(内网)IP地址互访,而只能通过公网IP路由才可以互连。
下图是一个典型的来宾流量设置:
通常,管理服务会自动为每一个网络建立一个虚拟路由。一个虚拟路由实际上就是运行在物理主机上的一台特殊的虚拟机。每一台在一个独立网络中的虚拟路由有3个网口。如果使用多个公共 VLAN,相应的这台路由器就有多个公共的网口。 它的 eth0 网口是提供客户机通信的网关服务的,它的IP地址是 10.1.1.1。eth1 网口是为系统来配置这个虚拟路由而提供的。eth2 网口被赋予一个公共 IP 地址用来实现外部的公共通信。 同样如果使用了多个公共 VLAN 接入,这台路由器将会拥有多个公共的网口。
虚拟路由器提供DHCP功能,能自动的为每一个客户虚拟机在预先定义好的IP范围之内分配IP地址。用户也可以为虚拟机手工配置不同的IP地址。
Source NAT功能是在虚拟路由里自动配置好的,它可以转发所有来宾虚拟机的外出流量。
下图演示了一个单提供点的网络配置。主机均连接到提供点层级的交换机。每一个主机至少有一个物理网卡连接到交换机。当然,这种环境也支持网卡绑定。提供点层级的交换机由两个1000M冗余组成,它们通过10G线路上联。
服务器以如下形式连接:
我们推荐用多个物理网卡以改进性能,也推荐用冗余的光纤交换机以改进网络可靠性。
下图说明了一个单一区域内的网络设置。
用于管理通信的防火墙工作在NAT模式。通常是分配给网络中的IP地址192.168.0.0/16 B类私有地址空间。每个机柜(POD)分配的IP地址是192.168.*.0/24 C类私有地址空间。
每个区域都有自己的一套公网IP地址。来自不同区域的公网IP地址不重叠。
在一个基本的网络中,物理网络的配置非常直接明了。你只需要配置一个客户网络(虚拟)以承载由客户虚拟机产生的流量。当你首次增加一个区域(Zone)到 CloudStack 中,你通过添加域(Add Zone)页面来设置客户网络(虚拟)。
在使用复杂网络的区域中,你需要告知管理服务器,为了实现隔离不同类型的通讯,物理网络是如何设置的。
下面的步骤假定你已经登录进入 CloudStack 的界面。设置基本的客户网络:
在左边的导航栏,选择基础架构。在区域界面点击查看全部,然后点击你要添加网络的区域。
点击网络选项卡。
点击 添加来宾网络。
添加来宾网络窗口显示:
填写以下内容:
点击确定。
在一个使用高级网络配置的区域中,你需要配置至少一个用于Internet通信的IP地址范围。
在使用高级网络的资源域里, 额外的来宾网络可以在初始安装后任何时间添加. 你还可以通过指定DNS后缀为每个网络自定义关联的域名.
一个虚机的网络在其创建时定义. 当一个虚机创建以后, 就不能对其网络添加删除, 即便用户可以进入客户虚机删除指定网卡的IP地址.
每一个虚机只有一个默认的网络. 在这个默认网络里, 虚拟路由器的DHCP响应将设置客户的默认网关. 除了单一,必须的默认网络, 多个非默认的网络也可以添加到客户虚机里. 管理员可以控制哪个网络作为默认的网络.
附加的网络可以给所有账户使用或者分配给特定的账户. 对所有账户都可用的网络在整个资源域有效. 任何可以访问这个资源域的用户都可以使用这个网络创建虚机. 这些资源域一级的网络基本不提供客户之间的隔离. 分配给特定帐户的网络提供强制隔离的功能.
CloudStack能让你在不同网络间移动VMs和重新配置VM的网络。你可以从一个网络中移除一个VM,再将其移动到另一个网络。你同样可以修改虚拟机的默认我拿过来,使用这个功能,混合和传统的服务器负载可以被轻松缓解。
XenServer、VMware和KVM hypervisors支持这个特性。
确保虚拟机上安装了vm-tools以便通过VMware hypervisor添加或移除网络。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航菜单中,点击实例。
选择你要处理的VM。
点击网络适配器标签。
将网络添加到 VM
显示添加网络对话框。
在下拉列表里选择你要添加给VM的网络。
这样就为这个网络添加了一个新网卡。你可以在网卡页面查看下列信息:
用户或者管理员可以更改与之相关的来宾网络的网络方案。
使用管理员或者终端用户账号登录CloudStack UI。
如果你将使用CloudStack虚拟路由的一个网络方案改成使用公共网络设备作为网络服务商,那么你必须先关掉该网络中的所有虚机。
在左侧的导航栏,选择网络。
点击你要修改的网络名称。
在 详细 页签,点击 编辑按钮。
在网络方案中,选择新的网络方案,然后点击应用。
这时会有一个提示问你是否保持已存在的CIDR不变。这是让你了解如果你改变网络了方案,那么CIDR会受到影响。
如果你将虚拟路由升级到外网设备,在看到变更CIDR以继续时,请选择Yes。
等待更新完成。在网络变更完成之前不要试图重启虚拟机。
如果你停止了任何VMs,请重启他们。
在隔离的来宾网络中,来宾IP地址空间中的一部分可以被保留下来以供非CloudStack VMs或者物理服务器使用。要真么做,你应该在来宾网络应用状态时依靠指定CIDR来配置一个预留IP地址范围。如果你的客户希望在同一个网络中有非CloudStack控制的VMs或者物理服务器,它们可以共享一部分主要为来宾网络提供的IP地址空间。
在高级域中,定义一个网络时要给其赋予一个IP地址范围或CIDR。CloudStack虚拟路由器起着DHCP的作用,并通过CIDR来给客户虚拟机分配IP地址。如果为了预留CIDR不用于cloudstack,应当进行说明,即部分IP地址范围或CIDR仅能被DHCP服务分配给在cloudstack中创建的虚拟机。剩下的IP地址被称作预留IP地址范围。当预留的IP被配置时,管理员可以增加额外的虚拟机或并不属于cloudstack的物理服务器到同一个网络,可以将预留的IP地址指定给他们。cloudstack的客户虚拟机不能够从预留的IP地址中获得地址。
在给非cloudstack内的机器预留IP地址时,要考虑以下几个方面:
IP预留仅在隔离网络内支持
仅当网络在实施状态时,IP预留才能被应用。
默认不做IP预留。
指定客户的CIDR必须是网络CIDR的子网。
指定一个有效的客户虚拟机CIDR。只有不活动的IP在客户虚拟机CIDR存在时,IP预留才能被应用。
如果任一虚拟机被分配了客户虚拟机CIDR之外的IP地址时,IP预留将不能应用。
为重置一个已存在的IP预留,通过在CIDR框指定CIDR值就可应用IP预留。
例如,下表描述了客户网络创建的三种情形:
案例 | CIDR | 网络CIDR | 非cloudstack虚拟机的IP预留范围 | 描述 |
---|---|---|---|---|
1 | 10.1.1.0/24 | 无 | 无 | 无 |
2 | 10.1.1.0/26 | 10.1.1.0/24 | 10.1.1.64-10.1.1.254 | 在界面的CIDR框内输入10.1.1.0/26或通过UpdateNetwork的API配置为guestvmcidr=10.1.1.0/26,进行IP预留配置 |
3 | 10.1.1.0/24 | 无 | 无 | 在界面的CIDR框内输入10.1.1.0/24或通过UpdateNetwork API配置为guestvmcidr=10.1.1.0/24,进行IP预留清除 |
一旦网络状态变为实施,应尽快应用IP预留到客户网络。如果在第一台客户虚拟机部署后应用IP预留,则会在应用IP会有较少的冲突发生。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
点击你要修改的网络名称。
In the Details tab, click Edit.
CIDR框将变为可编辑状态
在CIDR框,说明客户虚拟机的CIDR
点击应用
等待更新完成。
CloudStack可以让你能够独立的为账户预留一部分公共IP地址和VLANS。在创建区域阶段,你可以继续定义一部分VLANS以及多个公共IP范围。这种功能扩展特性可以让你能够为客户预留固定的一部分VLAN和客户IP地址
注意,如果一个账户使用了所有分配给他的VLAN和IP,这个账户可以从系统获得二个以上的资源。CloudStack为根管理员提供了二个参数可以进行控制,分别是use.system.public.ips和use.system.guest.vlans。当一个账户分配了资源并且这些资源已经被消耗掉时,这二个全局参数可以使根管理员拒绝此账户从公共IP和来宾VLAN获取资源。二个配置都能在帐户级别进行配置。
这些特性可提供以下的功能:
从一个高级区域中预留一个VLAN范围和公共IP地址,并可以将其指定给一个账户。
将一个VLAN和IP地址从一个账户解除联系。
查看分配给帐户的公共IP地址。
检查需要的范围是否可用并且要符合帐户限制。
不能超过每个账户最大的IP限制数。
作为管理员登录到CloudStack用户界面。
在左侧导航栏中,点击基础架构
在区域中,点击查看全部
选择你要设置的区域。
点击物理网络标签卡。
在图的公共节点上,点击配置。
点击IP范围页签。
或者指定一个已经的IP范围给帐户,或创建一个新的IP范围并指定给一个帐户。
要指定一个已有IP范围给帐户,按以下操作进行
确定需要分配的IP范围
点击添加帐户按钮。
会弹出添加帐户对话框。
指定以下信息:
要指定一个新的IP范围给帐户,按以下操作进行
指定以下信息:
网关
掩码
VLAN
起始IP
结束IP
帐户: 按以下操作进行:
点击帐户
会显示添加帐户页
指定以下信息:
点击确定。
点击 添加
安装好CloudStack管理端后,使用管理员帐号登录CloudStack用户界面。
在左侧导航栏中,点击基础架构
在区域中,点击查看全部
选择你要设置的区域。
点击物理网络标签卡。
在图中的来宾节点上,点击配置
选择分配VLAN范围页签
点击分配VLAN范围
会弹出分配VLAN对话框。
指定以下信息:
CloudStack能够让你给每个客户虚拟机网卡配置多个私有IP地址,除主IP地址外,你可以指定额外的IP地址到客户虚拟机网卡。在所有的网络配置中,如基础配置,高级配置,VPC,均支持这一功能。安全组,静态NAT及端口转发服务在额外的IP地址上也都被支持。
当然,你也可以从来宾子网中指定一个IP,如果没有指定,将会从来宾虚拟机子网中自动选择一个。可以从UI中查看每一个与来宾虚拟机网卡关联的IP地址。也可以在CloudStack界面中通过网络配置选项在那些额外的来宾虚拟机上应用NAT。但必须指明网卡与哪一个IP关联。
在XenServer,KVM和VMware虚拟机中,都支持这些功能。注意,VMware不支持基础区域的安全组。
一些使用案例见以下描述
为防止IP冲突,当多个网络连接至同一个虚拟机时,要配置不同的子网。
登录到CloudStack的界面
在左侧导航栏,点击实例
点击拟配置的实例
在详细 页签,点击网卡
点击查看二级地址
点击获取新二级IP,在确认对话框点击确定。
需要手动配置来宾虚拟机的网卡。在虚拟机上,CloudStack不会自动配置获取IP。确保在虚拟机重启IP地址配置仍有效。
稍等一会,新的IP地址会出现,状态栏为会显示为分配。现在可以在端口转发或静态NAT规则中使用此IP地址了。
因为每一个网卡都可关联至多IP,CloudStack可以允许为端口转发及静态NAT服务选择一个目标IP。默认为主IP。为开启此功能,另一个可选的配置参数 虚拟机来宾IP 需要被加至端口转发及静态NAT 的API中去(开启静态NAT,创建IP端口转发),以示IP地址NAT需要配置。如果虚拟机来宾IP 没有设置,NAT会配置在虚拟机的私有IP上,如果设置了,NAT会配置在虚拟机的主IP上。
注解
这些功能仅能在IPV4的地址是实现。
在基础区域以及高级区域的开启安全组,CloudStack能够让你从不同的子网添加来宾IP范围。对于高级区域的开启安全组,多个子网可被加至同一个VLAN。随着此功能的增加,当IP地址耗尽时,你能够从同一个子网或从不同的子网添加IP范围。这会允许你添加更多的子网,因此减少了了地址管理的问题。为支持这一特性,创建VLANIP范围的API被加以扩展,这样就能从不同的子网添加IP范围
确实在添加IP范围前,手动配置了子网的网关。注意,CloudStack仅支持一个子网有一个网关。不支持重叠的子网。
使用删除VLAN范围的API删除IP范围。如果拟删除的IP在被使用时,此操作会失败。如果删除的范围包含DHCP服务器拟分配的IP地址CloudStack会从同一个子网下获取新的IP。如果在子网内没有可供利用的IP时,删除操作会失败。
在KVM, xenServer以及VMware虚拟机中,都支持这项功能。
弹性IP(EIP)地址是指与帐户关联的IP地址,能起到静态IP地址的作用。帐户所有者能完全控制隶属于此账户的弹性IP。作为帐户拥有者,你可以从你帐户的EIP池中选择一个IP分配给虚拟机。如果后续需要,你可以继续分配此IP地址给另一个虚拟机。在VM宕机时,此功能特别有用。此IP地址可以重新指定给一个新的虚拟机,而不是取代已经宕机的虚拟机。
与公共IP地址一样,弹性IP地址通过使用静态NAT关联至与之相关的私有IP地址。在起用了EIP的基础域中,EIP的服务与静态NAT的服务一一对应。默认的网络方案,默认共享EIP与负载均衡网络方案,在区域部署了NetScaler设备的前提下,能够提供EIP以及ELB网络服务。参见以下更详细的说明。
在图中,NetScaler设备对CloudStack的实例而言是一个默认的入口或出口,防火墙是剩余数据中心的出口或入口。Netscaler对来宾网络提供负载均衡以及静态NAT的服务。在机架和管理服务器上,来宾流量是不同的子网或VLAN。在数据中心的核心交换机的基础路由策略是通过NetScaler转发公共流量,其他数据中心的流量则通过防火墙。
EIP的工作流如下:
当部署一个用户虚拟机时,会从区域配置的IP中自动获得一个公共IP。这个IP为虚拟机帐户所拥有。
每一个虚拟机都有自己的私有IP。当来客户虚拟机启动时,通过使用在公共IP和私有IP之间的入口网络地址转换(INAT)以及预留地址转换(RNAT),NetScaler设备可以提供静态NAT
注解
入口网络地址转换(INAT)是NetScaler支持的一类NAT类型,在此类型中,来自公共网络(如Internet)的数据包中的目标IP地址被私有网络中虚拟机的私有地址取代。预留地址转换(RNAT)也是NetScaler支持的一类NAT类型,私有网络中虚拟机产生的数据包中的源IP地址被公共IP地址取代。
默认的公共IP在两种情况下会被释放:
对部署而言,公共IP会受限于资源,可以灵活的选择默认不分配公共IP。可以在开启了EIP的基础区域中,通过关联公共IP选项来打开或关闭自动公共IP指定。如果在创建网络方案时,你关闭了自动公共IP指定,则在使用此网络方案部署时,仅会分配一个私有IP给虚拟机。此后,用户虚拟机可以获取一个IP,并可以开启静态NAT。
要了解更多关于关联公共IP的选项,请参考`”创建一个新的网络方案” <networking.html#creating-a-new-network-offering>`_.
注解
设计关联公共IP的功能,仅是为使用用户虚拟机。系统虚拟机仍然默认会获取公共IP和私有IP,与网络配置并不相关。
在基础区域中,使用默认具有EIP和ELB服务的网络方案来创建共享网络时,仍然会给每一个用户虚拟机分配公共IP。
在CloudStack中,端口IP是地域级的IP地址池,其天然具有弹性,亦即可以在地理隔离的区域中进行转发。作为管理员,可以在地域级提供IP地址池供用户使用。如果在用户所属的地域,其管理员提供了端口IP,用户就可以获取此类IP。在高级区域内,这些IP可用于任一服务。也可以在基础区域中为EIP服务使用端口IP。
端口IP的主要功能如下:
在转发至另一网络前,确保没有网络规则(如防火墙,静态NAT,端口转发等等)不存在于端口IP。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧导航栏中,点击地域
选择拟修改的地域。
点击查看端口IP
点击端口IP范围
会出现 添加端口IP范围的窗口
指定以下信息:
点击确定。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
点击拟修改的网络名称。
点击查看IP地址。
点击获取新IP。
获取新IP的窗口会出现。
说明是否需要IP跨区。
在确认对话框中点击确定。
稍等一会,新的IP地址会出现,状态栏为会显示为分配。现在可以在端口转发或静态NAT规则中使用此IP地址了。
IP要从一个网络转换至另一网络的话,只需启用静态NAT。但是,当一个portable IP对应一个网络的时候,你可以在网络中为任何服务使用它 。
要跨网络转换一个portable IP,执行下列API:
http://localhost:8096/client/api?command=enableStaticNat&response=json&ipaddressid=a4bc37b2-4b4e-461d-9a62-b66414618e36&virtualmachineid=a242c476-ef37-441e-9c7b-b303e2a9cb4f&networkid=6e7cd8d1-d1ba-4c35-bdaf-333354cbd49810
用正确的UUID替换此处的UUID。比如,如果你想转换一个portable IP至X网络和一个网络中的VM Y,请执行下列操作:
http://localhost:8096/client/api?command=enableStaticNat&response=json&ipaddressid=a4bc37b2-4b4e-461d-9a62-b66414618e36&virtualmachineid=Y&networkid=X
在共享网络中的隔离来宾流量能被Private VLAN(PVLAN)获取。PVLANs提供同一个VLAN里端口间的2层网络隔离。在启用了PVLAN的共享网络,一个用户VM不能到达其他用户VM,但是他们能与DHCP服务器和网关通讯,反过来这样能允许用户去控制网络内部的流量,并且帮助他们像阻止与其他用户VMs通讯一样的去部署无需通讯的多个应用程序。
在以太网交换机中,VLAN是二层网络中的一个主机之间主机能建立直接通讯的广播域 。Private VLAN被设计成一个标准的VLAN的延伸,为了进一步细分逻辑广播域。一个规则的VLAN是单一广播域,但是一个 private VLAN将一个较大的VLAN广播域划分为较小的多个子域。子域表现为一对VLANs:一个主VLAN和一个辅助VLAN。被划分为较小组的原始VLAN叫主,这意味着所有的在private VLAN中的VLAN对共享着同一个主VLAN。所有的辅助VLANs存在与主VLAN中。每个辅助VLAN有一个特定的区别于其他子域VLAN ID。
在private VLAN中有三种端口类型,它们实质上决定了所包含的主机的流量走势。每组端口都有自己唯一的策略,它能控制配置同一个private VLAN域中连接到端口的主机与其他已连接主机的通讯。使用下面三种端口定义中的一种来配置每个PVLAN对中的主机:
延伸阅读:
在支持的交换机上使用PVLAN。
将所有能识别PVLAN的二层交换机之间互连,并且其中一个要连至一个路由器。主机连接到的所有端口需配置为trunk模式。打开VLAN管理,主VLAN(公共网络)和隔离的辅助VLAN端口。配置交换机连接到路由器的端口为PVLAN混杂trunk,这样可以为不识别PVLAN的路由器转换一个隔离的VLAN到主VLAN。
注意只有Cisco Catalyst 4500有PVLAN混杂trunk模式,可以连接所有普通VLAN和PVLAN到不能识别PVLAN的交换机。其他支持PVLAN的Catalyst交换机,在PVALN对中的每个交换机上使用级联线连接到上联交换机。
在你的物理交换机上使用带外管理配置private VLAN。
在XenServer和KVM上使用PVALN之前,请启用Open vSwitch (OVS)。
注解
XenServer和KVM中的OVS不支持原生的PVLAN。因此,靠修改flow table,CloudStack为XenServer和KVM模拟OVS中的PVLAN。
作为管理员登录到CloudStack用户界面。
在左边的导航,选择基础架构。
在区域页面,点击查看全部。
选择要添加客户网络的那个区域。
点击物理网络标签卡。
选择您要操作的物理网络。
在客户节点界面,点击配置。
点击网络选项卡。
点击 添加来宾网络。
现实添加客户网络窗口。
指定以下信息:
Name: 要建立的网络的名字。这个是用户可见的
描述: 提供一个简短的方案描述。
VLAN ID: VLAN 的ID。
辅助隔离VLAN ID:辅助隔离VLAN的唯一ID。
更多关于辅助隔离VLAN的描述,请参考see 关于 Private VLAN”.
Scope: 可用的范围,包括域,帐户,项目和其他所以。
网络提议: 如果管理员已经配置了多个网络方案,可以选择你需要的那个。
Guest gateway: 虚拟机需要使用的网关。
Netmask: 虚拟机子网要使用的网络掩码。
IP Range: 定义公网IP范围,这些IP用来访问公网或是从公网访问客户虚拟机。
网络域: 如果你想为客户虚机网络定义一个域名,在此处输入后缀名。
点击确定。
安全组提供一种方法来隔离VMs流量。一个安全组是一组依照设置名为入口规则和出口规则来过滤他们进出流量的VMs,这些规则依靠与VM通讯的IP地址来过滤网络流量。安全组在使用基础网络的zones中尤为重要,因为这里只有一个来宾网络。在高级zones中,只有KVM hypervisor支持安全组。
注解
在一个使用高级网络的zone中,你可以改为定义多个来宾网络隔离流量至VMs。
每个CloudStack账号匹配一个拒绝所有入站流量和允许所有出口流量的默认安全组 。可以编辑默认的安全组以便所有新VMs的策略继承一些的想要的设置。
任何CloudStack用户可以增加任意数量的安全组。当一个新的VM运行起来的时候,它会被添加到默认安全组除非其他用户指定了其他安全组。一个VM可以是任何安全组的成员。一旦VM被添加到一个安全组,它会继承这个组的生命周期;你不能移动一台正在运行的VM到其他安全组。
你可以通过删除或添加任意的入口和出口策略来修改一个安全组。当你这么做的时候,新的策略会应用到组中的所有VMs,无论是运行的还是关机的。
如果没有指定入口规则,那么流量会被禁止,除了已经允许通过一个出口规则响应任何流量 。
一个用户或者管理员能定义一个新的安全组。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择安全组。
点击添加安全组。
提供一个名称和描述。
点击确定。
新的安全组出现在安全组详细信息标签中。
要使安全组生效,继续给这个安全组添加入口和出口策略。
以KVM作为虚拟机时,在单共享广域的网络内,CloudStack可以通过安全组来隔离客户。通过使用安全组而不是多VLAN,可以在云中隔离客户时具有更高的灵活性
To use security groups on CentOS/RHEL/Fedora please enable bridge based filtering, ensure that default sysctl configuration file usually at /usr/lib/sysctl.d/00-system.conf set to following and run ‘sysctl -p’:
注解
# Enable netfilter on bridges. net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-arptables = 1
下列不支持此功能:
为使用此特性,在区域内必须开启安全组
使用安全组功能之前,必须先在Zone中启用安全组功能。系统管理员可以在创建一个新的Zone时,通过选择带‘安全组’功能的网络方案进行启用。在高级安装指南的基本Zone配置中有该过程的详细描述。系统管理员不能对现有Zone启用安全组,只能在新建Zone时启用。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络
In Select view, choose Security Groups, then click the security group you want.
为增加入口规则,点击入口规则并填写相应内容,以说明在此安全组内何种网络流量可以到达虚拟机实例。如果没有说明入口规则,则不会允许流量进入。也就只有出口规允许的流量了。
下面这个例子允许内部任何地方的HTTP访问
为添加一个出口规则,点击出口规则并填写以下内容,以说明在此安全组内的虚拟机,被允许哪一类型的流量送出。如果出口规则没有说明,所以的流量都被允许出去一旦进行了说明,则以下流量可以允许出去:在出口规则中进行说明的,查询DNS和DHCP服务器的,响应来自入口规则允许进入的流量的
点击 添加
CloudStack允许通过外部的Jniper SRX 设备和外部NetScaler设备或网关负载均衡设备和负载均衡服务。在此情形下,虚拟机使用SRX作为网关。
在区域中,或高级区域使用隔离网络时,CloudStack支持思杰的NetScaler作为外部网络设备元素作为负责均衡。拟通过其他方案提供负载均衡而不是CloudStack的虚拟路由器时,就可以建立一个外部负载均衡器
注解
在基础区域中,仅在弹性IP或弹性负载均衡服务开启时,才支持负载均衡服务
在基础域中使用NetScaler负载均衡提供EIP或ELB服务时,确保所有的客户虚拟机流量必须通过NetScaler设备进出。当入流量通过NetScaler设备时流量通过使用NAT协议被路由,此NAT协议依赖于公共IP到私有IP的配置。来自客户虚拟机的流量通常要经过3层路由器,为确保出流量通过提供EIP/ELB的NetScaler设备,3层路由器,必须具有基础策略。必有设立一个具有基础策略的路由器可保证所有客户机的流量都能转向NetScaler设备。这也需要确保客户虚拟机的出流量通过使用NAT被路由到公共IP。关于EIP的更多信息,参看`”关于EIP” <#about-elastic-ip>`_.
NetScaler可以设置成直通模式。它必须在区域中部署客户虚拟机负载均衡规则之前加入。
CloudStack中NetScaler的功能作用与CloudStack文档中说明的使用F5 外部负载均衡器的功能作用相同。一点差别就是,F5支持路由域名,而NetScaler无此功能。NetScaler也不可以用作防火墙。
为CLOUDSTACK管理端安装和启用外部负载均衡功能,参阅安装文档里的外部客户负载均衡。
The Citrix NetScaler comes in three varieties. The following summarizes how these variants are treated in CloudStack.
MPX
VPX
SDX
SNMP社区字符串类似于用户ID或用户密码,用来登录网络设备,如路由器。这类字符串随着所有的SNMP请求发送。如果社区字符串正确,设备将反馈相应的字符串若不正确,设备将丢弃请求,不进行处理。
NetScaler设备使用SNMP与虚拟机进行通讯。为保证NetScaler设备与RHEL机器之间安全的通讯,必须安装并配置社区字符串。
确保在RedHat上安装了SNMP,如果没有,执行以下命令:
yum install net-snmp-utils
编辑/etc/snmp/snmpd.conf 文件,以允许来自NetScaler设备的SNMP查询
映射社区名到一个安全的名字(本地,我的网络,依赖于其来源)
注解
编辑下表时,使用一个强密码
# sec.name source community
com2sec local localhost public
com2sec mynetwork 0.0.0.0 public
注解
设置0.0.0.0以允许所有的IP都可以查询NetScaler设备
映射一个安全名到组名
# group.name sec.model sec.name
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork
创建一个视图,以允许组有权限执行:
incl/excl subtree mask view all included .1
授权不同的写权限给二个组及你创建的视图
# context sec.model sec.level prefix read write notif
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all all
在iptalbes中解除对SNMP的锁定。
iptables -A INPUT -p udp --dport 161 -j ACCEPT
开启SNMP服务:
service snmpd start
确保在系统启动时,SNMP服务能够自动启动。
chkconfig snmpd on
当为一个新帐户创建一个虚拟机时,CloudStack会设置程序以让外部防火墙和负载均衡与虚拟机共同工作。会在防火墙上创建以下对象:
以下对象会在负载均衡上创建:
增加的用户行为(如设置端口转发)会引起防火墙和负载均衡的程序化。一个用户可以请求增加公共IP地址以及转发使用此公共IP地址的虚拟机接受到的流量。这是通过静态NAT功能完成的,静态NAT将一个公共IP地址映射给一个虚拟机,并指定一组特定协议,开放一组特定端口。当静态NAT建立好之后,CLOUDSTACK会在区域的外部防火墙上通过程序定制如下对象:
通过源NAT,静态NAT以及负载均衡规则进出的字节数均被计量并保存在每一个外部设备中。按一定的规则对这些数据进行收集,并将其存储在CloudStack的数据库中。
一个CloudStack的用户或管理员可以创建负载均衡规则以平衡一个公共IP地址收到的针对一个或多个虚拟机的外部流量。一个用户可以创建一条规则,说明一个算法,并将其指定给一部分虚拟机。
注解
如果你创建了一个负载均衡规则且使用包括外部负载均衡设备的网络服务方案,如包括NetScaler,但随后将网络方案改成使用CloudStack的虚拟路由器,则你必须在虚拟路由器上创建一个防火墙规则,这些防火墙规则与已经设置的负载均衡规则一一对应,只有这样,才能使那些负载均衡规则继续起作用。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
点击拟进行负载均衡的网络名称
点击查看IP地址。
点击你希望创建规则的IP地址,然后点击配置
在图的负载均衡节点点上,点击 查看全部。
在基础区域中,在不需要或不选择IP的条件下,你可以创建一条负载均衡规则。当你创建负载均衡规则时,CloudStack会内部指定一个IP地址。当规则创建完成时,IP地址会在IP地址页列出来。
为此,选择网络名称,点击 增加负载均衡。按#7继续进行配置。
填写以下内容:
点击添加虚拟机,选择拟分散进入流量的二个或多个虚拟机,点击应用。
在列表中会出现新加的负载均衡规则。可以重复以上步骤以对此IP增加更多的负载均衡规则。
粘性会话应用于基于网页的应用中,以确保在用户的会话中,对用户的多种请求持续提供信息。例如,购物者正在向购物车中增加东西,则需要记住到目前为止已买的东西。粘性的概念也指持久发现或维护状态。
在CloudStack中定义的任何负载均衡规则,都可以具有粘性策略。策略有名字,粘性方法以及参数组成。参数是成对的值-名或标志,这些由负载均衡提供商进行定义。粘发现方法可以加载负载均衡设备产生的cookie,应用生产的cookie,或基于源产生的cookie。在基于源的方法中,源IP地址被用来区分用户和定位用户存储的数据。在其他方法中,则使用cookie。由负载均衡或应用产生的cookie,包含在请求或响应的url中,以产生持久性。cookie的名称可以有管理员指定或自动产生。提供了多种选择来准确控制cookie行为。诸如如何产生的以及是否进行缓存。
对于多数粘性方法变量列表,可以参看CloudStack UI或者调用网络列表,并检查粘性方法支持能力。
(仅对NetScaler负载均衡设备,需要NetScaler版本10.0以上。)
负载均衡应用中的健康检查,能够确保转发需求运行,服务可用。当创建一个负载均衡规则里,你可以指定一个健康检查策略。这是对粘性策略,算法,其他负载均衡设备规则的附加说明。可以为每一条负载均衡设备进行配置。
在CloudStackk中的NetScaler负载均衡设备定义的任一负载均衡规则都可以有一条健康检查策略。该策略有ping路径,定义健康或非健康状态的阀值,健康检查频率以及等待超时间隔。
当健康检查策略生效时,负载均衡被发现处于非健康状态时,会停止转发到源的任何请求。如果随后资源变为可用,周期性进行的健康检查就会发现,此资源就会再一次被添加至从负载均衡器收到的请求资源池里。任一时刻,最近的健康检查结果会显示在UI中。对绑定了负载均衡规则的虚拟机,且此规则配置了健康检查,依据最近的检查,状态会显示为正常或失败。
可以删除或修改存在的健康检查策略。
为配置默认的健康检查执行频率,通过全局配置参数 healthcheck.update.interval进行设备,默认值是600秒。可以根据需要进行设置此值。
如何通过UI进行健康检查策略的设置,可参看 增加一条负载均衡规则。
自缩放允许你能够根据定义的条件进行无缝且自动的增加或减少后端服务或应用虚拟机。当开启自缩放时,可以确保在需求增加时,无缝的增加正在使用虚拟机的数量。因此他会通过关闭未使用的虚拟机或者需要时开启新的虚拟机,从而节省你的计算成本。这些操作,都不需要手动干预。
NetScaler的自缩放定义为基于用户定义的条件,无缝的开启或关闭虚拟机。触发扩大或缩小行为的条件从监控服务器cpu的使用率的单一用例到监控服务器响应及cpu使用率的组合用例,各不相同。例如,你可以一个自缩放,能够在CPU使用超过80%持续15分钟时启动一个新的虚拟机,或CPU使用率低于20%持续30分钟时,移除一个虚拟机。
CloudStack使用NetScaler负载均衡器来监控系统健康的各方面,并与CloudStack共同工作以初始化扩大或缩小的行为。
注解
自缩放在NetScaler发布的10版本以上适用。(Build 74.4006.e 及以上)
在配置自缩放前,需要考虑以下几点:
确保在配置自缩放时有必需的模板。当使用模板部署虚拟机并使虚拟机启动时,应用能够起动并运行。
注解
如果应用没有运行,NetScaler设备会认为虚拟机无效并持续无条件的创建虚拟机,直到资源耗尽。
部署准备好的模板。确保应用在第一次启动时能够开启并准备好接管流量。观察部署模板需要的时间。在配置自缩放时,要考虑这段时间。
The AutoScale feature supports the SNMP counters that can be used to define conditions for taking scale up or scale down actions. To monitor the SNMP-based counter, ensure that the SNMP agent is installed in the template used for creating the AutoScale VMs, and the SNMP operations work with the configured SNMP community and port by using standard SNMP managers. For example, see “Configuring SNMP Community String on a RHELServer” to configure SNMP on a RHEL machine.
确保在全局配置中的结束点地址参数已设置为管理服务器的API地址。例如:http://10.102.102.22:8080/client/api
。 在多管理节点的部署中,使用配置在负载均衡器上的虚拟IP地址作为管理服务器集群的IP地址。此外,确保NetScaler设备有读取为提供自缩放而配置的IP地址的权限。
如果更新了endpointe.url,在系统自动负载均衡器规则里,先关闭自缩放功能随后再开启,以应用此更新。。更多信息,参见 更新自动扩展配置。
如果为自缩放用户生成了API值和秘钥,确保用户参与的负载均衡器的自缩放功能先关闭,再开启,以应用NetScaler配置的变化。
在高级区域中,在配置带自缩放的负载均衡规则时,确保至少要有一个虚拟机。在网络中存在一个虚拟机,可保证在配置自缩放时,网络处于使用状态。
指定以下信息:
模板: 模板由基本的操作系统镜像和应用组成。在自缩放动作中,模板用来提供一个应用的新的实例。当从模板部署虚拟机时,虚拟机在管理员不干预的情形下开始从负载均衡器那里接管流量。例如,如果虚拟机部署为WEB服务应用,则虚拟机上的WEB服务器应该在运行,并且连接了数据库,等等。
计算方案: 一个预定义的虚拟硬件资源集,包括CPU速度,CPU数量,RAM,用户在创建虚拟时可以选择这些。选择一个计算方案作为提供虚拟机实例中自缩放行为的一部分。
最小实例: 指定给负载均衡规则活动的虚拟机实例的最小数量,活动的虚拟机实例是开启的应用实例,并服务于流量和负载均衡。这个参数确保负载均衡规则拥有至少一个配置的活动虚拟机实例,并且能够服务于流量。
注解
如果一个应用程序,比如SAP,它运行在一个VM实例上,但是VM因为某些原因宕机了,那么这个VM没有被算成是Min实例的一部分,并且如果这些活动的VM实例是下面配置的数值,那么自动扩展功能启动一个扩展的动作。同样的,当应用程序实例从宕机的状态恢复了以后,这个应用程序实例会被算为活动实例计数的一部分,并且当活动实例计数超出Max实例数值的时候,自动扩展启动一个缩减动作。
最大实例数:最大数量的**应该被指派到**一条负载均衡策略的活动VM实例。这个参数定义了能被指派到一条负载均衡策略的活动VM实例的上限。
给最大量实例参数指定一个大的值可能引发大量VM实例的分发,这个过程会导致一个负载均衡策略耗尽账户或者域级别下VM实例指定的限制。
注解
如果一个应用程序,比如SAP,它运行在一个VM实例上,但是VM因为某些原因宕机了,那么这个VM没有被算成是Max实例的一部分。所以这个情况中为扩展动作分发的VMs数量可能会超过配置的MAX实例数值。一旦这个VMs中的应用程序实例从先前的宕机中恢复的时候,自动扩展功能就会校正Max实例的数值。
指定下列扩展和缩减的策略:
另外,如果你想配置高级设置,点击显示高级设置,接着指定下列参数:
如果你想对一个自动扩展VM实例执行任何维护操作,请禁用自动扩展配置。当自动扩展配置被禁用,扩展和缩减动作不会执行。你可以利用停机时间进行维护活动。要禁用自动扩展配置,点击禁用自动扩展按钮 。
这个按钮是启用和禁止的切换开关,取决于当前是否启用了自动扩展。在执行完维护操作以后,你可以启用回自动扩展配置。要启用,请再次打开自动扩展配置页面,然后点击启用自动扩展按钮|EnableDisable.png|。
你可以更新各种参数和添加或者删除扩展或缩减策略中的条件。在你更新自动扩展配置之前,请确保你已经通过点击禁止自动扩展按钮禁止了自动扩展负载均衡策略。
在你修改了所需的自动扩展参数之后,点击应用。要应新的自动扩展策略,再次打开自动扩展配置页面,然后点击启用自动扩展按钮。
CLOUDSTACK支持全局服务器负载均衡 (GSLB) 功能以提供可持续的商业运营。GSLB可以在CLOUDSTACK环境中实现资源的无缝迁移。CLOUDSTACK通过集成NetScaler应用交付控制器 (ADC)来提供GSLB功能,ADC可以提供各种各样的GSLB能力,比如灾难恢复,负载均衡。CLOUDSTACK在实现GSLB功能进,使用了DNS重定向技术。
为了支持这个功能,引进了地域级别的服务和服务提供者。引进了一项新服务“GSLB”作为地域级别的服务。该GSLB服务提供者介绍将提供GSLB服务。目前,CloudStack中NetScaler可作为GSLB提供者。 GSLB功能工作在Active-Active数据中心环境。
全局服务器负载均衡(GSLB)是负载均衡功能的扩展,为了高效的避免停机时间。基于部署的性质,GSLB代表一组技术的集合,用于各种用途,如负载均衡,灾难恢复,性能,和法定义务。使用GSLB,工作负载可以分布在位于不同地理位置的多个数据中心。 GSLB也可以用于在发生故障时访问资源的另一个备用位置,或对流量提供了简易的维护方式,或两者兼得。
一个典型的GSLB环境由以下服务组件组成:
全局服务器负载均衡-GSLB-用于在不同地域的不同独立区域之间管理WEB服务器的访问流量。以下是CLOUDSTACK中提供的GSLB功能图示:EXZTELCO这个组织用CLOUDSTACK在不同的数据中心部署一个公有云,此云环境包括两个区域,Zone-1 和Zone-2。XYZTELCO里有租户A需要部署一个高可用方案。为了达到此目标,他们分别在两个区域里部署了两个虚拟机实例:Zone-1中有VM1和VM2,Zone-2中有VM5和VM6。租户A在Zone-1中得到一个公网IP-IP-1,并且在VM1和VM2之间配置了负载均衡规则。CLOUDSTACK 编排系统在 Zone-1中LB服务上设置了一个虚拟服务器-Virtual server 1 。客户端对-IP-1的访问会到达Virtual server 1,此虚拟服务器再将流量转发到VM1和VM2上进行流量负载均衡。
租户A在Zone-2中得到一个公网IP-IP-2,并且在VM5和VM6之间配置了负载均衡规则。CLOUDSTACK 编排系统在 Zone-2中LB服务上设置了一个虚拟服务器-Virtual server 2 。客户端对-IP-2的访问会到达Virtual server 2,此虚拟服务器再将流量转发到VM5和VM6上进行流量负载均衡。此时,租户A在两个区域里都启用了服务,但是,无法在这种环境下部署灾难恢复计划,也无法更智能在区域内使用负载均衡。要解决这些问题,XYZTELCO云管理员可以在两个区域内启用GSLB服务,一个GSLB服务通常是一个具有ADNS(认证域名服务器)能力的ADC,并且具有监测本地和远程站点健康状况的手段。云管理员可以在ZONE 1和2中为租户启用GSLB服务。
租户- A希望利用由xyztelco cloud提供的GSLB服务。租户-A配置了一个GSLB规则对Zone-1中的虚拟服务器1和Zone-2中的虚拟服务器2提供流量负载均衡。假设域名是A.xyztelco.com 。CloudStack中协调设置GSLB服务提供者Zone-1中的GSLB虚拟服务器1。 CloudStack绑定Zone-1中的虚拟服务器1和Zone-2中的虚拟服务器2到GSLB虚拟服务器1。CloudStack也将协调设置GSLB服务提供者Zone-2中的GSLB虚拟服务器2.CloudStack绑定Zone-1中的虚拟服务器1和Zone-2中的虚拟服务器2到GSLB虚拟服务器2.GSLB虚拟服务器2配置为开始监视虚拟服务器1和2的健康。CloudStack中会绑定域名A.xyztelco.com到GSLB虚拟服务器1和2。在这一点上,租户-A的服务将在全球范围内可达于A.xyztelco.com。域名xyztelcom.com的专用DNS服务器,被管理员配置为外带管理,由两个区域的GSLB提供者对域名A.xyztelco.com提供解析。它将被配置为域名A.xyztelco.com的ADNS。当客户端请求解析A.xyztelcom.com域名时,将最终由DNS指派到GSLB提供者Zone 1 和Zone2。客户DNS请求将被GSLB提供者接获。GSLB提供者,根据需要解析的域名,将获得与域名关联的GSLB虚拟服务器。根据用于负载均衡的虚拟服务器的运行健康状况,域名DNS请求将被解析到所选择关联的虚拟服务器中。
要配置GSLB的部署,您必须首先为每个区域配置一个标准的负载平衡设置。这使您能够在该地域中每个区域的不同服务器之间进行负载均衡。然后在NetScaler方面,配置您计划添加到每个区域作为权威DNS(ADNS)服务器的两个NetScaler应用。接下来,为每个区域创建GSLB站点、配置GSLB虚拟服务器、创建GSLB服务并绑定GSLB服务到GSLB虚拟服务器中。最后,绑定该域到GSLB虚拟服务器。两个应用的GSLB配置在两个不同区域中是完全相同的,尽管每个网站的负载均衡配置特定于该网站。
作为云管理员执行以下操作。按照上面给出的例子中,由管理员xyztelco设置GSLB:
在全局变量 cloud.dns.name中,为您租户云定义DNS名称并供GSLB服务使用。
在NetScaler方面,给出GSLB配置 `配置全局服务器负载均衡 (GSLB)<http://support.citrix.com/proddocs/topic/netscaler-traffic-management-10-map/ns-gslb-config-con.html>`_:
配置一个标准的负载均衡设置。
配置权威DNS,如下解释 配置权威的DNS服务.
由域名详细信息配置一个GSLB站点和站点名称。
由域名配置一个GSLB站点和站点名称。
按照上面给出的例子,站点名称为 A.xyztelco.com 和 B.xyztelco.com
更多信息,请参阅 配置基本的GSLB站点.
配置GSLB虚拟服务器。
更多信息,请参阅 配置GSLB虚拟服务器.
为每个虚拟服务器配置GSLB服务。
更多信息,请参阅 配置GSLB服务.
绑定GSLB服务到GSLB虚拟服务器。
更多信息,请参阅 绑定GSLB服务到GSLB虚拟服务器.
绑定GSLB域名到GSLB虚拟服务器。从域的详细信息中获得域名。
更多信息,请参阅 绑定GSLB域名到GSLB虚拟服务器.
在每个参与GSLB的区域内,添加启用GSLB功能的NetScaler设备。
更多信息请参考 开启NetScaler的GSLB.
以域管理员/用户执行以下操作:
在两个站点中添加GSLB规则。
参考”添加 GSLB规则”.
分配负载均衡规则。
参考”为GSLB分配负载均衡规则”.
GSLB功能支持基本和高级区域。
GSLB是新添加的网络服务。
GSLB服务提供者可以被添加至区域中的物理网络。
管理员允许开启或禁用地域级别的GSLB功能。
管理员具有启用或配置区域为GSLB的能力
只有在GSLB服务提供者提供的区域中,该区域才被视为有GSLB能力。
当用户的VMs部署在启用GSLB功能的多个可用区域中时,他们可以使用GSLB功能在多个区域中将VM的流量进行负载均衡。
如果管理员在地域中启用了GSLB,用户可以使用GSLB对地狱中的所有区域的VMs进行负载均衡。
用户可以为同一个区域或不同地域间可用的区域流量进行负载均衡。
管理员可以为整个云配置DNS名称。
用户可以为云中的全局负载均衡服务指定一个唯一的名称。所提供名称的域名相当于云的DNS名称。
用户提供的名称与管理员提供的DNS名称一起为用户的全局负载均衡服务产生一个全局解析的FQDN。例如,如果管理员已经配置xyztelco.com为云中的DNS名称,以及用户为GSLB虚拟服务器指定的名称为’foo’,那么GSLB虚拟服务器的FQDN名称是foo.xyztelco.com。
设置GSLB时,用户可以为GSLB跨区域的一部分选择负载均衡方式,例如 round robin。
用户应能设置区域级虚拟服务器的权重。负载均衡在分配流量时会考虑该权重。
该GSLB功能必须支持会话持久性,特定域名的一系列客户端请求被发送到同一个区域中的虚拟服务器上。
从每个GSLB虚拟服务器中收集统计数据。
在每个区域中,添加启用GSLB的NetScaler设备提供负载均衡。
使用管理员登录到CloudStack管理界面。
在左侧导航栏中,点击基础架构
点击区域中的查看更多。
选择你要设置的区域。
点击物理网络选项卡,然后点击物理网络的名称。
点击示意图’网络服务提供程序’中的配置
你可能需要向下滚动才能看到。
点击NetScaler.
点击添加NetScaler设备并提供如下信息:
对于NetScaler:
点击确定。
使用管理员或者用户账号登录CloudStack UI。
在左边的导航栏里,点击区域(为文档翻译中地域的概念,英文为region,下同)
选择你想创建GSLB规则的地域。
在详细选项卡中,点击查看GSLB。
点击添加GSLB。
添加GSLB页面显示如下:
指定以下信息:
点击确定。
目前,CloudStack并不支持跨区域的服务编排。将引入服务的概念和地域服务提供者。
宾客网络流量的IP是由用户以帐号为基础设置的。这允许用户以在他们的宾客网络和他们的客户端之间开通VPN连接的方式配置他们的网络。
存在基本网络和启用安全组的高级网络中的共享网络,你可以灵活的在不同子网中添加多个来宾IP范围。你可以同时添加或移除IP范围。更多信息,请参阅 `章节 15.10, “关于多IP范围”<#about-multiple-ip-ranges>`_.
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
点击拟修改的网络名称。
点击查看IP地址。
点击获取新IP。
获取新IP的窗口会出现。
说明是否需要IP跨区。
如果你想作为 Portable IP则在确认窗口中点击Yes,如果你想作为正常的公共IP则点击No。
关于便携式IP的更多信息,查看 “便携式IP”.
稍等一会,新的IP地址会出现,状态栏为会显示为分配。现在可以在端口转发或静态NAT规则中使用此IP地址了。
当IP的最后一条规则删除后,您就能够释放该IP。然而,该IP仍属于VPC,无论如何,该IP可以再次被VPC中的来宾网络再次获取。
A static NAT rule maps a public IP address to the private IP address of a VM in order to allow Internet traffic into the VM. The public IP address always remains the same, which is why it is called static NAT. This section tells how to enable or disable static NAT for a particular IP address.
如果该公网IP上已经有端口转发规则,则不允许再启用静态NAT。
如果用户VM存在多个网络,则静态NAT规则仅在默认网络上定义时生效。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
点击拟修改的网络名称。
点击查看IP地址。
点击你要修改的IP地址
点击静态NAT按钮。
该按钮在启用和禁用之间切换,这取决于IP地址是否已经启用了静态NAT。
如果是启用静态NAT,会出现一个对话框让您选择目标VM然后点击应用。
默认情况下, 所有从公共IP进来的流量都会被拒绝. 所有在来宾网络出去的流量默认也被阻挡。
为了允许外出的流量,遵循:ref:`egress-fw-rules`中的操作步骤。
为了允许接收到的流量, 用户可以设置一些防火墙规则和/或端口转发规则. 例如, 你可以在公共IP地址上设定防火墙规则来打开一个端口范围, 比如从33到44端口. 然后使用端口转发将流量从这个特定的范围内的端口直接送到指定的用户虚机端口. 例如, 一个端口转发的规则可以将接收的流量从公共IP的33端口到用户虚机私有IP的100端口.
默认情况下,防火墙拒绝所有流入公共IP的流量。要允许外部流量,你需要制定防火墙规则打开防火墙端口。你可以选择性的制定一个或多个CIDR来过滤来源IP。这在当你只需要允许特定IP请求时会很有用。
你不能使用防火墙规则打开弹性IP的端口。当弹性IP处在使用状态时,外部的通过请求将被安全组管理。参阅 “添加安全组”.
在高级Zone中,您也可以用虚拟路由器来创建流出的防火墙规则。更多信息,请查阅”高级区域中的出口防火墙规则”。
防火墙规则能在管理服务器的UI中防火墙选项卡里创建,CloudStac安装好以后,这个规则选项卡默认不显示,你需要以管理员身份修改全局变量 firewall.rule.ui.enabled为 “true”才能显示。
创建防火墙规则:
出口流量起源于从专用网络访问公共网络,例如Internet。默认情况下,在默认网络方案中,出口流量被拒绝,所以没有从来宾网络到Internet的出口流量被允许。不过,你可以通过创建出口防火墙规则来控制高级网络中的出口流量。当出口防火墙规则被应用时,规则指定的流量被允许,其余的流量被阻止。当所有的防火墙规则从默认策略中移除,阻止策略再次被应用。
应用出口防火墙规则时请思考如下方案:
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择来宾网络,然后点击需要的来宾网络。
要添加出口策略,点击出口策略选项卡并填写以下字段指定哪种类型的流量在来宾网络中是被允许从VM中实例发送出的。
点击 添加
通过网络方案配置隔离来宾网络的默认出口策略。通过创建网络方案选项决定来宾网络到公共网络的所有流量在默认策略中是允许或者拒绝。使用该网络方案创建网络。如果没有指定策略,你创建的来宾网络中的所有流量将被允许。
你有两个选择:允许和拒绝。
如果你选择网络方案为允许,则默认出口流量被允许。无论如何,当配置了来宾网络的出口规则,规则被应用于阻止特定的流量和允许其他的 。如果网络中没有配置出口规则,则出口流量会被放行。
如果你选择网络方案为拒绝,则来宾网络中的默认出口流量将被阻挡。无论如何,当配置了来宾网络的出口规则,规则被应用于允许特定的流量。当实施来宾网络时,CloudStack为来宾网络添加防火墙出口规则指定默认的出口策略。
该特定只支持虚拟路由器和Juniper SRX。
为合适的默认出口策略创建一个网络方案:
使用网络方案创建隔离网络。
根据你的选择,网络的出口公共流量将被拒绝或允许。
一个端口转发服务是一系列转发转发规则的集合。一个端口转发服务随后可以应用于一个或多个来宾虚拟机。来宾虚拟机会根据端口转发规则作相关进入端口的管理。你可以定义一个或多个CIDR来过滤源IP地址。当你只希望特定的IP流量进入时是相当有用的。
一个客户VM可以在任意数量的端口转发服务中。端口转发服务可以不包含客户VM。如果客户VM在多个网络中,则端口转发仅在默认网络中定义时才生效。
您不能使用端口转发打开弹性IP地址的端口。当使用弹性IP时,外部访问是由安全组控制的。参见安全组。
设置端口转发:
虚拟路由器为来宾提供DNS和DHCP服务。它将DNS请求代理到在可用区域中配置的DNS服务器。
CloudStack account owners can create virtual private networks (VPN) to access their virtual machines. If the guest network is instantiated from a network offering that offers the Remote Access VPN service, the virtual router (based on the System VM) is used to provide the service. CloudStack provides a L2TP-over-IPsec-based remote access VPN service to guest virtual networks. Since each network gets its own virtual router, VPNs are not shared across the networks. VPN clients native to Windows, Mac OS X and iOS can be used to connect to the guest networks. The account owner can create and manage users for their VPN. CloudStack does not use its account database for this purpose but uses a separate table. The VPN user database is shared across all the VPNs created by the account owner. All VPN users get access to all VPNs created by the account owner.
注解
确保不是所有的网络流量走VPN。也就是说,用于配置VPN的route不是唯一用于该guest network,也不承担全部的网络流量。
为云设置VPN:
为特定的网络启用VPN:
使用用户或管理员身份登录到CloudStack用户界面。
在左边导航栏,点击网络。
选择你要操作的网络名称
点击查看IP地址。
点击一个显示的IP地址名称。
点击启用VPN按钮。
IPsec密钥将显示在弹出的窗口中。
在VPC中启用远程访问VPN,任何VPC以外的VPN客户端都可以使用远程VPN连接访问VPC中的VM。VPN客户端可以在除了用户启用了远程访问VPN服务的VPC中的任何位置。
为VPC开启VPN:
使用用户或管理员身份登录到CloudStack用户界面。
在左边导航栏,点击网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击VPC的配置按钮。
对于每一个层,会显示以下选项。
显示以下路由器信息:
在路由器节点中,选择公共IP地址。
系统显示IP地址页面。
点击源NAT IP地址。
点击启用VPN按钮。
点击OK确认。IPsec密钥将显示在弹出的窗口中。
现在,需要添加VPN用户。
一个站点到站点的VPN连接可以帮助你建立从云基础架构到企业内部数据中心的安全连接.这就允许一个账户从企业内部数据中心的设备连接到此账户启用VPN连接的虚拟路由器上, 从而通过VPN连接到该账户的虚拟机.你也可以在两个VPC之间或是高可用区域之间建立VPC以加强安全。这样一来,就不需要在虚拟机之间建立VPN连接的必要了。
与Remote VPN不同,Site-to-site VPNs是将两个网络相互连接。比如,将一个分支办公室的网络与总公司网络互联,Site-to-site VPN的两个主机不需要VPN客户端软件,它们通过VPN网关收发普通的TCP/IP数据包流量 。
目前支持的数据中心的终端设备是:
注解
除了上述指定的Cisco和Juniper设备, 所期望的是任何Cisco或Juniper的设备在支持的操作系统上都可以建立VPN连接.
为了建立站点到站点的VPN连接, 需要执行以下步骤:
创建一个虚拟私有云(VPC).
参考”配置一个虚拟私有云(VPC)”.
创建一个VPN客户网关.
为你创建的VPC设定一个VPN网关.
从VPC的VPN网关到客户的VPN网关建立VPN连接.
注解
一个VPN客户网关在同一时间只能连接一个VPN网关。
添加 VPN 客户网关
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图里,选择VPN客户网关。
点击添加 VPN 客户网关。
填写以下内容:
名称: 你添加的VPN客户网关的一个唯一的名称。
IP地址: 远端网关的IP地址。
CIDR列表: 远端客户子网的CIDR。输入一个CIDR或是以逗号分隔的多个CIDR。在确认客户的CIDR和VPC的CIDR或是另一个客户的CIDR不重叠冲突。CIDR的格式必须符合 RFC1918标准。
IPsec Preshared Key: Preshared keying is a method where the endpoints of the VPN share a secret key. This key value is used to authenticate the customer gateway and the VPC VPN gateway to each other. The sequence cannot contain a newline or double-quote.
注解
Internet密钥交换协议(IKE)匹配点 ( VPN 端点 ) 通过计算并发送包含预共享密钥的哈希键值来进行相互验证。如果收接点通过自己的预共享密钥算出同一个键值的话,这就说明两个点是用的同一个密钥,相互之间认证通过,形成匹配。
IKE 加密: Internet密钥交换协议(IKE)第一阶段(phase-1)策略。支持的加密算法包括 AES128, AES192, AES256和3DES.。认证通过预共享密钥完成。
注解
phase-1是IKE过程的第一阶段。在这个开始的协商阶段,两个VPN端点在将底层IP流量加密安全的方法上取得一致。第一阶段认证通过的条件是:两个VPN网关之间使用的是同一个预定义密钥。
IKE 哈希: IKE第一阶段( phase-1)哈希散列使用的算法。支持SHA1 和 MD5.
IKE DH(Diffie-Hellman组): IKE的DH加密协议,可以在不安全的连接上确保共享KEY的安全。1536位的DH组用在IKE中用来建立会话KEYS。在这里,支持的选项是 None, Group-5 (1536-bit) 和 Group-2 (1024-bit).
ESP 加密: 封装安全有效负荷(Encapsulating Security Payload,ESP)算法是发生在第二阶段(phase-2)。其支持的加密算法包括 AES128, AES192, AES256, 和 3DES。
注解
phase-2是IKE过程的第二阶段,其目标是协助IPSec安全关联 (SA) 以建立IPSec通道。在 phase-2阶段,会利用 phase-1阶段建立好的DH安全协议方法来交换新的密钥。
ESP哈希散列:phase-2支持的封装安全有效负荷(Encapsulating Security Payload,ESP)哈希算法包括:SHA1 和MD5.
**Perfect forward secrecy(完全正向保密,PFS) **: PFS的性质是确保来自一组的长期的公共密钥和私人密钥之间的会话密钥不会妥协失效。PFS会促使一组新的DH KEY发生交换。这组新KEY具有更长的生命周期因此可以抵制更强大的功击。DH的可用选项是 None, Group-5 (1536-bit)和 Group-2 (1024-bit). 当新KEY交换之后,DH组会变得更大。
注解
当PFS打开后,两个网关之间的新的phase-2 SA协商都会产生新的phase-1的一组KEY,这就会导致增加一个额外的层。这个层的作用是保证即使phase-2 SA失效过期,其KEY也不会由phase-1生成。
IKE 存活期(秒): SA的phase-1的存活期。默认是86400 秒 (1 天).当这个时间过了之后,会发生一次新的 phase-1 KEY交换。
ESP存活期 (秒):SA的 phase-2存活期。默认为 3600 秒(1 小时). 当过了这个时间之后,会有一个新的KEY初始化,用来加密和认证 IPsec的会话KEY。
死亡匹配点检测:这是一种检测不可用IKE节点的方法。如果你希望虚拟路由器随时测试IKE节点的存活情况,选择了这个选项。 一般来说,最好在VPN连接的两端都同时配置DPD(Dead Peer Detectio).
点击确定。
你可以更新一个客户网关:即可以从无到有新建一个VPN,或是将有错误提示的VPN改正。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击要部署虚机的VPC的配置按钮。
系统会显示VPC页面,您创建的所有层都列在图中。
对于每一个层,会显示以下选项。
显示以下路由器信息:
选择点对点VPN
如果您是第一次创建VPN网关,选择点对点VPN会提示您创建一个VPN网关。
在信息确认对话框,点击“是”。
过一会儿,VPN网关就创建出来了。系统会提示您查看VPN网关的详细信息,请点击“是”。
VPN网关页面会显示以下详细信息:
注解
CloudStack最多支持建立8个VPN连接。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
页面上列出了该账号下所有的VPC。
点击要部署虚机的VPC的配置按钮。
系统会显示VPC页面,您创建的所有层都列在图中。
点击设置图标。
对于每一个层,会显示以下选项。
显示以下路由器信息:
选择点对点VPN
系统会显示点对点VPN页面。
在选择视图下拉框,请确保选择VPN连接。
选择创建vpn连接按钮
系统会显示创建VPN连接对话框:
选择想要的用户网关。
如果你希望在两个VPC虚拟路由器之间建立连接,选择被动模式。
如果你希望在两个VPC虚拟路由器之间建立连接,需要等待另一个虚拟路由器来初始化连接,则只有其中一个虚拟器上选择被动模式。在这种情况下,不要在初始化连接的虚拟路由器上选择被动模式。
点击确定。
过一会儿,系统会显示该VPN连接。
VPN连接信息
CloudStack可以在虚拟路由器之间部署站点到站点的VPN连接,这需要添加一个被动模式的站点到站点VPN。有了这个功能之后,用户就可以在多个区域或VPC之间通过安全的VPN通道互联。
这个特性支持所有类型的HYPERVISOR.
创建两个VPC。比如,VPC A和VPC B。
更多信息,参考”配置一个虚拟私有云(VPC)”.
在创建的VPC两边都添加VPN网关。
更多信息,参考 “为VPC创建VPN网关”.
在VPC两边都创建VPN客户网关。
更多信息,参考`”创建和更新VPN客户网关” <#creating-and-updating-a-vpn-customer-gateway>`_.
在VPC A这边启用VPN的被动连接模式。
更多信息,请参阅 “创建VPN连接”。
确保客户网关指向VPC B。这个VPN当前显示的是未连接状态。
在VPC B上启用VPN连接。
确保客户网关指向VPC A。在这个示例里,因为VPC A的虚拟路由器是处于被动模式且等待着VPC B进行初始化连接,所以VPC B的虚拟路由器不要设置为被动模式。
VPN连接当前显示为未连接状态。
VPC两边的VPN会进行初始化连接。默认为30秒之后,两边VPN都会显示为已连接状态。
使用管理员或者终端用户账号登录CloudStack UI。
在左侧的导航栏,选择网络。
在选择视图中,选择VPC。
此帐号创建的所有VPC将显示在页面中。
点击要部署虚机的VPC的配置按钮。
系统会显示VPC页面,您创建的所有层都列在图中。
点击设置图标。
对于每一个层,会显示以下选项。
显示以下路由器信息:
选择点对点VPN
系统会显示点对点VPN页面。
在选择视图下拉框,请确保选择VPN连接。
系统会显示创建VPN连接对话框:
选择您要操作的VPN连接。
系统显示详细信息页。
删除一个VPN连接,点击删除VPN连接按钮。
要重启VPN连接,请点击详细信息页的重置VPN连接按钮。
vlan间路由(多层应用)提供了在vlan间通过流量路由的功能。这个特性使你能够j建立私有云(vpc),独立分割的云,可容纳多层应用程序。这些层被部署在不同的VLAN,可以互相沟通。您提供的VLAN层的创建和部署虚拟机可以在不同的层上。VLAN连接到一个虚拟路由器,这有利于虚拟机之间的通信。实际上,你可以通过不同定义的vlan来分割你的虚拟机到不同网络,以便承担多层应用,如Web,应用程序或数据库的虚拟机。通过VLAN的逻辑上独立的应用程序的虚拟具有较高的安全性和较低的广播,同时任然物理连接到同一设备。
在 XenServer ,KVM和 VMware hypervisors支持这个特性
主要的优势为:
管理可以部署一个vlans集,同时运行用户部署虚拟机在这些vlan上。从预先指定的vlan集中随机的为租户分配一个来宾vlan.租户处于同一层的所有vm处于分配给这个租户的来宾vlan.
注解
一个租户分配到的vlan不能被多个租户共享
管理员允许所有用户创建自己的vpc,并部署应用。这个场景中,租户的虚拟机被部署到改租户的分配到的vlan中
管理员和用户都可以创建多个vpcs.当第一个虚拟机被部署到该层时候,一个来宾网络nic插入到这个vpc虚拟路由器上
管理员创建网关用接受和发送来自vm的流量:
管理员和用户可以创建各种可能的目的地的网关组合。但是,在部署中每种类型只能有一个网关。
例如:
管理员可以在虚拟路由器定义一个访问控制列表(ACL)用于过滤vlan或者因特网和vlan直接的流量。你可定义基于CIDR,端口范围,协议,类型代码(如果选用ICPM协议)和进出流量的acl
下图显示了可能的部署一个VLAN间的场景设置的:
要建立一个多层次的跨VLAN部署,请参考”配置一个虚拟私有云(VPC)”.
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”.
在不部署任何VM的情况下就初始化好的网络称为持久化网络。持久化网络可以是VPC的一部分,也可以不是。
在您创建其它类型的网络时,在网络中第一台VM创建之前,该网络仅是数据库的一条记录。当第一个VM创建时,网络会指定一个VLAN ID并初始化。同样,当网络中最后一个VM销毁后,VLAN ID会被释放,这样该网络就不再可用。通过使用持久化网络,您就有能力在不部署VM的情况下在&PRODUCT;中创建一个网络用来部署物理设备。而且,您可以在该网络中部署物理设备。
使用持久化网络的一个优点是您可以创建具有一个只包含物理设备的层的VPC。例如,您可以为一个三层应用创建一个VPC,在Web层和应用层部署VM,在数据库层使用物理机器。另一个使用场景为如果您使用物理硬件提供网络服务,您可以定义网络为持久化的。这样即便网络中所有VM都销毁了,服务还可以继续提供。
要创建一个Persistent网络,请按如下操作:
创建一个Persistent选项启用的网络方案。
请参考`”创建一个新的网络方案” <networking.html#creating-a-new-network-offering>`_.
从左边的导航栏里选择网络。
选择你希望提供此网络方案服务的客户网络。
点击编辑按钮。
在网络方案下拉列表里,选择你刚才创建的persistent网络方案。
点击确定。
This implementation enables the orchestration of a Palo Alto Networks Firewall from within CloudStack UI and API.
The following features are supported:
No manual configuration is required to setup these zones because CloudStack will configure them automatically when you add the Palo Alto Networks firewall device to CloudStack as a service provider. This implementation depends on two zones, one for the public side and one for the private side of the firewall.
The NAT and firewall rules will be configured between these zones.
This implementation supports standard physical interfaces as well as grouped physical interfaces called aggregated interfaces. Both standard interfaces and aggregated interfaces are treated the same, so they can be used interchangeably. For this document, we will assume that we are using ‘ethernet1/1’ as the public interface and ‘ethernet1/2’ as the private interface. If aggregated interfaces where used, you would use something like ‘ae1’ and ‘ae2’ as the interfaces.
This implementation requires that the ‘Interface Type’ be set to ‘Layer3’ for both the public and private interfaces. If you want to be able to use the ‘Untagged’ VLAN tag for public traffic in CloudStack, you will need to enable support for it in the public ‘ethernet1/1’ interface (details below).
Steps to configure the Public Interface:
Steps to configure the Private Interface:
The Virtual Router on the Palo Alto Networks Firewall is not to be confused with the Virtual Routers that CloudStack provisions. For this implementation, the Virtual Router on the Palo Alto Networks Firewall will ONLY handle the upstream routing from the Firewall to the next hop.
Steps to configure the Virtual Router:
The current implementation of the Palo Alto Networks firewall integration uses CIDRs in the form of ‘w.x.y.z/32’ for the public IP addresses that CloudStack provisions. Because no broadcast or gateway IPs are in this single IP range, there is no way for the firewall to route the traffic for these IPs. To route the traffic for these IPs, we create a single subinterface on the public interface with an IP and a CIDR which encapsulates the CloudStack public IP range. This IP will need to be inside the subnet defined by the CloudStack public range netmask, but outside the CloudStack public IP range. The CIDR should reflect the same subnet defined by the CloudStack public range netmask. The name of the subinterface is determined by the VLAN configured for the public range in CloudStack.
To clarify this concept, we will use the following example.
Example CloudStack Public Range Configuration:
Configure the Public Subinterface:
In order for all the changes we just made to take effect, we need to commit the changes.
There are 6 ‘Supported Services’ that need to be configured in the network service offering for this functionality. They are DHCP, DNS, Firewall, Source NAT, Static NAT and Port Forwarding. For the other settings, there are probably additional configurations which will work, but I will just document a common case.
When adding networks in CloudStack, select this network offering to use the Palo Alto Networks firewall.
In addition to the standard functionality exposed by CloudStack, we have added a couple additional features to this implementation. We did not add any new screens to CloudStack, but we have added a couple fields to the ‘Add Palo Alto Service Provider’ screen which will add functionality globally for the device.
This feature allows you to specify a ‘Security Profile Group’ to be applied to all of the firewall rules which are created on the Palo Alto Networks firewall device.
To create a ‘Security Profile Group’ on the Palo Alto Networks firewall, do the following:
Once you have created a profile, you can reference it by Name in the ‘Palo Alto Threat Profile’ field in the ‘Add the Palo Alto Networks Firewall as a Service Provider’ step.
This feature allows you to specify a ‘Log Forwarding’ profile to better manage where the firewall logs are sent to. This is helpful for keeping track of issues that can arise on the firewall.
To create a ‘Log Forwarding’ profile on the Palo Alto Networks Firewall, do the following:
Once you have created a profile, you can reference it by Name in the ‘Palo Alto Log Profile’ field in the ‘Add the Palo Alto Networks Firewall as a Service Provider’ step.