关于CloudStack占用太多外网IP地址的说法,这里尝试只占用一个外网IP地址进行测试后可行;并且不需要安装额外的软件.如果有需要自学或演示的朋友,可以做个参考,本文主要以CloudStack 2.2.y版本为例, 但实际上CloudStack 3.0 也同样适用.
以下是一个Brief Guide:
1. 网络划分(以普通的office环境为例):
a) 公用网络: IP: 172.16.206.161
netmask 255.255.255.0
GW: 172.16.206.254
DNS1: 172.16.100.111
此IP也是用到的唯一外网IP (注: 这个IP实际上不是Internet可见, 而是Intranet的IP,或者称为办公环境的IP)
b) CloudStack管理网络: 10.5.5.0/24
c) VM网络对外(vrouter): 10.5.6.0/24
d) VM网络私有(vrouter): 10.1.1.0/24
2. 角色及IP分配:
a) MS(management server)单网卡多IP配置:
1. eth0 : 上述公用网络, IP: 172.16.206.161
2. eth0:0 :上述管理网络, IP: 10.5.5.1; 注, 此IP同时是机架的网关
3. eth1 :上述VM对外, IP: 10.5.6.1, 注, 此IP同时是VM外网的网关
同时,MS节点也同时担当数据库,主存储及二级存储, IP走管理网络eth0:0, 在演示时也充当跳板机
b) XenServer安装:
1. CIDR 10.5.5.0/24
2. 比如两个XenServer: poc-xs1: 10.5.5.6; poc-xs2: 10.5.5.7 网关设置: 10.5.5.1,即MS管理网络的IP地址
3. 安装部署:
a) MS参见安装文档进行部署,安装完成后建议使用XManager启动XWindows对MS进行访问,就像Windows下一样
b) 建议外部DNS要有一个设置成公用网络(172.16.100.111),一个设置成8.8.8.8
c) 添加资源域,并添加主机,主存储,二级存储
d) 正常成功情况下,系统有内置的模板CentOS5.3 X64 NO GUI可用
4. 创建VM,可一个或多个,并配置VM访问外网
a) VM创建成功后,点击”网络”–>”获得新IP”,可以获得一个VM对外的IP,比如10.5.6.12, 做静态NAT到VM,比如i-2-9-VM
b) 此时在MS上ssh到10.5.6.12应该能登入i-2-9-VM,但VM无法访问外网
c) 在MS上设置SNAT:
iptables -t nat -A POSTROUTING -s 10.5.6.0/24 -o eth0 -j SNAT –to 172.16.206.161
d) 此时在VM里连接公网IP应该成功,但DNS域名解析不行
e) 尝试在VM里设置DNS: echo “DNS1=8.8.8.8”>>/etc/sysconfig/network-script/ifcfg-eth0
f) 然后再reboot网络: service network restart
g) 外网应该能正常访问
以上是在使用一个外网IP地址的情况下来实现VM的互连及对外访问,这种方法的弊端:
1. XenCenter及VCenter无法安装在Linux(这里特指MS)上,如果要使用,需要先安装一台Windows虚机或物理机
2. VM要对外提供服务时,只能通过MS的公网IP的端口进行DNAT映射,对于上述环境,假如需要i-2-9-VM对外提供SSH服务,占用外网的22222端口,需要:
a) iptables -t nat -A PREROUTING –dst 172.16.206.161 -i eth0 -p tcp –dport 22222 -j DNAT –to-destination 10.5.6.12:22
b) iptables -I FORWARD -p tcp -i eth0 -o eth1 -d 10.5.6.12 –dport 22 –sport 22222 -m state –state NEW -j ACCEPT
(这也是需要MS双网卡的原因)
3. 每个VM要访问Internet都要在MS上做SNAT,VM对外提供服务只能通过MS做端口映射
目前两层DNAT映射可行,如果确定以后要这么演示,可以提供脚本来实现. 希望对大家有帮助.
If you’re reading this, you’re all set, prdaner!
That’s a creative anwser to a difficult question
I was drawn by the hnoesty of what you write
i-2-9-VM是什么意思,请版主帮忙解释一下,谢谢!
辛苦!
Just cause it’s smilpe doesn’t mean it’s not super helpful.
How could any of this be better staetd? It couldn’t.
楼主,请问你可以在外网访问虚拟机吗?
这里MS占的IP其实也不是外网IP,但是Office环境的IP.
如果要外网访问,需要你Office防火墙与MS上的iptables DNAT都要设置.
外网IP/端口––内网IP(MS的Office IP及端口)–>DNAT到VM的IP及端口,注意这里没法用静态NAT,因为IP就一个,管理服务器用的,只能设置端口转发.