菜单

使用CloudStack的VPC功能

2015年8月5日 - CloudStack, 架构
CloudStack中每个来宾(guest)网络一般都对应一个虚拟路由器(vRouter),虚拟路由器在第一个VM加入到该网络时创建,虚拟路由器也是通过一个VM来实现,只是它的创建是由CloudStack自己来完成。VPC可以看作是隔离网络(Isolated network)的容器,每个隔离网络是容器中的一个层(Tier),同时VPC容器中包含一个虚拟路由器,不同层通过虚拟路由器通信,也可以通过虚拟路由器的NAT功能和外网通信。本文假设一个可用的资源域(Zone)已经建立好,在这个基础上使用VPC功能的一些简单步骤。 首先看一下网络视图,来宾网络和VPC网络都没有内容,如下:

点击上图中的“添加VPC”,添加一个VPC,名称叫“vpc”,超级CIDR为“10.10.0.0/16”,界面如下:

创建成功后,VPC列表如下图:

点击上图中的“配置”,转到VPC的配置界面:

点击上图中的“Create network”框,出现“添加新层”界面,这里添加一个名称为“Web”的层,网络信息如下图:


用同样的方法添加App和DB层,添加完毕界面如下图:

现在这个虚拟路由器和3个层连在了一起,转到虚拟路由器界面查看其详细信息,如下图:

上图中看到了公网IP、来宾IP和链接本地IP。我们添加了3个层,这里只显示一个层的IP,可以点击右侧的“NIC”列表查看,或者在XenServer中执行如下图中的命令,登录到虚拟路由器中:

Ifconfig看一下虚拟路由器的IP,可看到“10.10.10.1”,“10.10.20.1”,“10.10.30.1”,分别是3个层的网关IP:

这时候转到网络视图,看一下来宾网络,看到多了3个Isolated类型的网络,每个网络对应刚才添加的一个层:


在每个层中创建一个VM实例,结果如下图:

3个VM都分配到各自网段的IP后,这时候它们通过虚拟路由器是可以通信了,但是无法和外网通信。对应这种3层架构,一般我们需要Web层能和外网连通,因此这里我们在虚拟路由器里给Web虚拟机做NAT。

Web层界面有一个“STATIC NATS”框,点击它转到如下界面,点击“获取新IP”:

获取到新的公网IP后,回到虚拟路由器公网IP界面,如下:

刚刚获取到的新IP是“10.86.11.213”,把鼠标放在右边的快速查看一栏的“+”标志上,下拉边栏左下方出现“启用静态NAT”按钮,点击该按钮转到如下界面:

选择叫Web层名称为“Web”的VM,然后点击“确定”完成NAT映射操作,VPC界面视图变成如下图所示,可看到Web层中“STATIC NATS”数目变为1:

这时候在虚拟路由器系统中执行命令“iptables -t nat -nvL”,可看到如下结果:

Web虚拟机的IP地址为“10.10.10.11”,可看到PREROUTING和POSTROUTING中都正确进行了映射。打开Web虚拟机的控制台,查看其IP,如下图:

分别ping一下外网IP“8.8.8.8”,App虚拟机IP“10.10.20.11”,DB虚拟机IP“10.10.30.11”,都是畅通无阻,如下图:

发表评论