Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9307562
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 云计算

2014-06-05 10:13:47

CloudStack仅用一个对外IP搭建测试环境

关于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映射可行,如果确定以后要这么演示,可以提供脚本来实现. 希望对大家有帮助.

    分享到:

关于 李学辉

CloudStack中国社区创办者, Apache CloudStack Committer 熟悉Linux, C语言及socket编程; 拥有3年的嵌入式开发经验,4年的安全软件开发经验及3年的云计算开发经验. 目前主要承担CloudStack的顾问及CloudStack在中国的推广应用.
此条目发表在 ,  分类目录,贴了 , , ,  标签。将加入收藏夹。

CloudStack仅用一个对外IP搭建测试环境》有 8 条评论

  1.  说:

    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

  2. lvshumin 说:

    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.

  3. 王波 说:

    楼主,请问你可以在外网访问虚拟机吗?

    • 李学辉 说:

      这里MS占的IP其实也不是外网IP,但是Office环境的IP.
      如果要外网访问,需要你Office防火墙与MS上的iptables DNAT都要设置.
      外网IP/端口––内网IP(MS的Office IP及端口)–>DNAT到VM的IP及端口,注意这里没法用静态NAT,因为IP就一个,管理服务器用的,只能设置端口转发.

阅读(1304) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~