关于 Apache CloudStack 的 最佳实践 (三)
配置云外的 防火墙与交换机
对Cisco VNMC(Cisco Virtual Network Management Center)设备集成云外的客户机网路防火墙:
思科虚拟网络管理中心为思科网络虚拟服务提供了中心化的多设备和多策略管理能力。你可以把思科VNMC集成到Apache CloudStack中以充分利用由思科ASA 1000v云防火墙提供的防火墙服务能力和网络地址转换能力。在集成了Cisco Nexus 1000v 分布式虚拟交换机集群的Apache CloudStack中,你将能够:
- 给每个客户及网路都配置一个Cisco ASA 1000v防火墙
- 用Cisco ASA 1000v 创建和应用包含设定了进出口流量的安全控制列表策略的安全轮廓
- 用Cisco ASA 1000v 创建和应用源网络地址转换、端口转发静态网络地址转换等
Apache CloudStack也支持在集成了Cisco Nexus 1000v分布式虚拟交换机集群的VMware虚拟化引擎上的Cisco VNMC。
向Apache CloudStack集成Cisco ASA 1000v 防火墙、Cisco Nexus 1000v 分布式虚拟交换机和Cisco 虚拟网络管理中心的操作指南:
- 预知
·Cisco ASA 1000v 防火墙仅在隔离的客户机网络中受支持
·Cisco ASA 1000v 防火墙在虚拟私有云业务上不受支持
·Cisco ASA 1000v 防火墙不支持负载均衡
·如果使用Cisco 虚拟网络管理中心下的防火墙创建了客户机网络,那么伴随源网络地址转换IP的那个额外公网IP就是必须的。源网络地址转换IP被防火墙规则所使用,然而这个额外的公网IP则用于Cisco ASA 1000v 防火墙的外置网卡(请确保这个额外的IP不被释放)。一旦网络处于生效状态且在获取其他公网IP之前,你便可识别到这个额外的公网IP。这个额外的公网IP是没有被标记为源网络地址转换IP的。你可以通过查看应用于你客户机网络的Cisco 虚拟网络管理中心来查找被Cisco ASA 1000v 防火墙外置网卡所使用的那个IP地址。
·只能使用单个分支网络中的IP范围,不能添加来自不同分支网路的IP地址。
·每个VALN中只允许通过一个Cisco ASA 1000v 防火墙实例,因为多路VLAN无法被汇聚到Cisco ASA 1000v 防火墙端口。因此,每个客户机网路中只能使用一个Cisco ASA 1000v 防火墙实例。
·每个Apache CloudStack专职地带中至允许存在一个Cisco 虚拟网络管理中心。
·仅支持带有负载均衡的内联模式部署。
·Cisco ASA 1000v 防火墙的规则适用于客户机网路中的全部公网IP。不像虚拟路由器上的防火墙规则那样,Cisco ASA 1000v 防火墙创建的规则不会绑定到特定的公网IP上。
·要使用支持 vservice command的Cisco Nexus 1000v分布式虚拟交换机,例如“nexus-1000v.4.2.1.SV1.5.2b.bin”。Cisco 虚拟网络管理中心需要vservice command在Nexus交换机上可用,以便在Apache CloudStack中创建客户机网络。
- 前置条件
·在一个VMware vCenter中配置Cisco Nexus 1000v分布式虚拟交换机。在Cisco Nexus 1000v分布式虚拟交换机上配置云的内外网的端口策略,记下对内的端口策略,向Apache CloudStack添加Cisco ASA 1000v 防火墙时需要使用它。
·部署并配置Cisco 虚拟网络管理中心。
·注册Cisco Nexus 1000v分布式虚拟交换机和Cisco 虚拟网络管理中心。
·在Cisco Nexus 1000v分布式虚拟交换机上创建内外端口策略。
·部署Cisco ASA 1000v 防火墙装置。你需要创建一个Cisco ASA 1000v 防火墙实例装置池、并把他们注册到Apache CloudStack(你需要提供Cisco 虚拟网络管理中心的宿主机IP地址、通过Cisco 虚拟网络管理中心添加Cisco ASA 1000v 防火墙实例、提前在Cisco Nexus 1000v分布式虚拟交换机上创建好给管理网口和高可用网口的端口策略、内外网端口策略、给Cisco ASA 1000v 防火墙的管理IP、Cisco 虚拟网络管理中心可达的网路关口、管理员凭证)。
·向Cisco 虚拟网络管理中心注册Cisco ASA 1000v 防火墙。
- 使用Cisco ASA 1000v 防火墙
·确保前置条件已满足。
·添加Cisco 虚拟网络管理中心实例。
·添加Cisco ASA 1000v 防火墙实例。
·创建一个网络并使用Cisco 虚拟网络管理中心实例作为服务提供者。
·使用你刚创建的网络生成一个隔离的客户机网络。
- 添加一个Cisco 虚拟网络管理中心实例
·以管理员身份登录到Apache CloudStack的web-Portal。
·点击左侧的导航栏、选中“基础设施”
·点击“专职地带”查看更多内容。
·选择你想要使用的“专职地带”。
·点击“实体网络”。
·选择网络服务提供者并点击“配置”。
·选中“Cisco 虚拟网络管理中心”。
·点击查看Cisco 虚拟网络管理中心下属的设备。
·选择添加Cisco 虚拟网络管理中心设备(需要提供Cisco 虚拟网络管理中心实例的IP、Cisco 虚拟网络管理中心账户的用户名、Cisco 虚拟网络管理中心账户的用户密码)。
·点击“确认”
- 添加Cisco ASA 1000v 防火墙
·以管理员身份登录到Apache CloudStack的web-Portal。
·点击左侧的导航栏、选中“基础设施”。
·点击“专职地带”查看更多内容。
·选择你想要使用的“专职地带”。
·点击“实体网络”。
·选择网络服务提供者并点击“配置”。
·选中“Cisco 虚拟网络管理中心”。
·点击查看“Cisco ASA 1000v 防火墙”。
·添加Cisco ASA 1000v 防火墙资源信息(需要Cisco ASA 1000v 防火墙实例的管理IP、配置在Cisco Nexus 1000v分布式虚拟交换机上的内向网口策略、目标VMware集群)。
·点击“确认”
- 通过Cisco ASA 1000v 防火墙添加网络服务
通过以下操作实现Cisco ASA 1000v 防火墙供应客户机网络:
·以管理员身份登录到Apache CloudStack的web-Portal。
·导航到网络服务。
·点击添加网络。
·依次填入:网络服务名称、网络服务简述、网络传输速率、网络服务所承载的网络流量类型、客户机网路是隔离的还是共享的、客户机网络是否为持久网络、客户机网络是否启用VPC、在隔离的客户机网络中是否启用特定VLAN、是否启用网络资源保护模式等
·点击“确认”。
网络服务至此创建完毕。
- 在新的客户机网络中复用Cisco ASA 1000v 防火墙实例
Cisco ASA 1000v 防火墙实例中的必要信息清除后,可以把它复用到新的客户机网络中。通常,从Cisco 虚拟网络管理中心中删除一个逻辑的边缘防火墙就意味着一个Cisco ASA 1000v 防火墙实例被清除了。如果这种被清除行为没有发生,那就需要把Cisco ASA 1000v 防火墙实例重置为初始状态才能在新的客户机网络中使用。为进行此操作,你需要在Cisco ASA 1000v 防火墙实例上启用SSH、并把SSH凭证存储到Cisco 虚拟网络管理中心。
S1 打开Cisco ASA 1000v 防火墙实例的命令行,执行:
输入N以重启Cisco ASA 1000v 防火墙实例
S2 把Cisco ASA 1000v 防火墙实例注册到Cisco 虚拟网络管理中心
为Apache CloudStack的客户机网路集成负载均衡服务
Apache CloudStack支持使用Citrix NetScaler或BigIP F5硬件负载均衡设备为客户机网路提供负载均衡服务。如果不使用这类硬件负载均衡设备,Apache CloudStack默认使用虚拟路由器中的软件提供负载均衡服务。
为Apache CloudStack部署配置云外负载均衡器,需执行以下步骤:
- 根据供应商的知道设定负载均衡设备。
- 把负载均衡器连接到承载公网流量和管理流量的网路。
- 记录IP地址、用户名、用户密码、对公网卡、对云内网卡。
- 确保VLAN被汇集到了管理网卡。
- 以管理员身份登录到Apache CloudStack的web-Portal。
- 在左侧的导航栏中点击“基础设施”。
- 在专职地带中查看更多内容。
- 选择即将被使用的“专职地带”。
- 点击“网络”标签。
- 在网络服务图表中点击“配置”。
- 点击设备Citrix NetScaler或BigIP F5。
- 点击“添加”,并依次填入:
·防火墙的IP(此处使用了Juniper SRX系列防火墙)
·访问此设备的用户名和密码
·输入即将添加的设备类型(此处使用了Citrix NetScaler负载均衡器)
·本设备上用于连接公网的网口
·本设备上用于连接云内网的网口
·在本设备上执行指令的尝试次数(默认为2)
·本设备可以处理的网路数量
·本设备是否专用。当本设备被标记为“专注”后,它将被分配给某单一账户。此时本设备可以处理的网路数量这个值实际上会成为“1”。
- 点击“确认”。
至此,给Apache CloudStack部署配置云外负载均衡器就结束了。
Apache CloudStack云管理服务的负载均衡
Apache CloudStack借助负载均衡器可以给多个云管理服务提供一个虚拟IP地址。Apache CloudStack云管理员有责任为多个云管理服务实例创建必要的负载均衡规则。负载均衡程序需要以持久化或粘性形式在多个回话间交互。下列图标展示了哪些端口需要被负载均衡代理及是否需要持久会话。
此外,Apache CloudStack云管理员有责任设置从各云管理服务IP到负载均衡虚拟IP的“host”全局配置,如果“host”没有正确配置到负载均衡IP的解析,一旦某个云管理服务实例宕机,Apache CloudStack的系统级虚拟机便可能与云管理服务失联。
网络拓扑设计
安全性:从公网不可访问云管理服务上的8096、8250端口。
运行时的云内通讯:云管理服务于其他节点交互时使用TCP协议、占用端口8250和9090。同一个专职地带中的豆荚舱必须连接到云内管理网上。辅助存储虚拟机和控制台代理虚拟机需要连接到云管理服务实例的8250端口,如果使用云管理服务负载均衡则需保证负载均衡IP上的8250端口可达。
存储网路:辅助存储的NFS导出器必须被挂载到云内的辅助存储虚拟机上。即便是有隔离的存储网路,辅助存储的流量依旧跑在㕯管理网络上(主存储的流量跑在存储网路上)。如果你要把NFS辅助存储放置到存储网路中,请确保在管理网和存储网之间存在路由。
云外防火墙:部署云外防火墙设施后,公网VLAN必须能被汇集到宿主机上。这么做是为了支持使用辅助存储虚拟机和控制台代理虚拟机。
高级专职地带:公网和云内网必须使用隔离的分支网络。
XenServer虚拟化引擎:云管理服务和XenServer引擎通讯需要使用的端口号是22、80和443。
VMware虚拟化引擎:云内管理服务、辅助存储虚拟机、必须能连接到vCenter及ESXi所在的宿主机,因此需要确保穿越防火墙并保持端口443开启。云管理服务和系统级虚拟机用端口3922在云内管理网上通讯。
Hyper-V虚拟化引擎:云管理服务使用“https”协议和Hyper-V虚拟化引擎代理通讯,在云管理服务和Hyper-V宿主机间通讯需要使用端口8250。
KVM虚拟化引擎:云管理服务和KVM宿主机通讯通过22端口进行。
LXC虚拟化引擎:云管理服务和KVM宿主机通讯使用22端口。