前提: 已经安装好cloudstack 并登录至管理界面 本文使用的版本为4.3版本
安装可以看官方文档
http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/latest/
声明: 本文只是方便大家理解高级网络 并可以单机做实验
本文中只使用1台物理机 (centos6.x kvm) (如需多台 需要有支持vlan的交换机)
本实验pc机网卡配置如下
vim /etc/sysconfig/network-scripts/ifcfg-eth0 eth0 DEVICE="eth0" ONBOOT="yes" BRIDGE=br0 vim /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 ONBOOT=yes TYPE=Bridge BOOTPROTO=none IPADDR=192.168.2.254 NETMASK=255.255.255.0 GATEWAY=192.168.2.1 DNS1=114.114.114.114 STP=on DELAY=0
网络规划
网络类型 | Ip范围 | Vlan | 备注 |
Pubilc Network (公网ip) |
192.168.2.100-120 | 无 | 网卡标签br0 |
Management Network (管理网络) |
192.168.2.200-220 | 无 | 网卡标签br0 |
Guest Network (实例网络、租户网络) |
Ioslate网络或者自定义网络(需要创建) | 无 | 网卡标签br0 |
cloudstack的网络可以这么理解
简单网络模式
你在一台pc上创建了一台虚拟机 网卡模式用的是桥接 这台虚拟机的ip 和你宿主机就是一个网络里的了 这个可以理解为cloudstack的简单网络,简单网络中的隔离是通过安全组 也就是iptable转发规则来实现 隔离的
高级网络模式
你在一台pc上创建了一台虚拟机 网卡模式选用的桥接,但是你想把这台虚机的网络和你宿主机网络分开,这时候你可以把虚拟机的ip换成别的网段就可以了(即网段隔离)当然也可以使用vlan 例如你把虚拟机桥接的网卡加个vlan标签 就算用同个网段也是互相不能访问的 cloudstack就是通过在创建实例的时候 将实例的网卡配置成带vlan标签的 这样就可以实现与物理机 及不通网络之间的隔离,隔离后 需要各个网络之间通信 怎么办? 这时候就有了虚拟路由器 一个网口接A网络 一个网口接B网络 来个转发规则 就可以实现了各个网络之间的通信 。当然高级模式中还有自定义网络。
小知识: linux中网卡配置vlan简单介绍
若网卡名字为ifcfg-eth0
创建一个vlan为100的虚拟网卡 只需新加个 ifcfg-eth0.100 即可
高级网络模式中各种流量可以用网卡vlan分开
本文中 存储 管理 公网 的流量都采用 同网段 不打标签的vlan
创建出来的实例 如果选用isolate网络 创建出的虚机的网卡是打vlan标签的
即无法直接访问到实例ip 可以用公网ip(模拟公网 理解为对外提供服务的即可)做静态nat 映射到需要访问的实例ip
配置步骤如下:(图片仅供参考 你需要根据自己的网络规划来填写)
选择高级模式
改下dns就好 (这个dns是给系统虚机用的)(最近8.8.8.8 不好用)
编辑用到的流量标签
改为br0 (桥接网卡的名字)
添加公网ip段 (vlan 留空很重要)
添加系统预留ip
vlan 段 可以随便写 (要是你交换机支持vlan 那就得根据你交换机支持多少个vlan配置)
选择kvm
添加主机 (本文中主机就一个)
添加主存储
添加辅助存储
然后启动吧
启动过程中可以去看管理端 和agent端的log
tail -f /var/log/cloudstack/management/catalina.out
tail -f /var/log/cloudstack/agent/agent.log
启动成功后
要创建实例 需要新建个 实例用的网络
添加个网络 (另外个 添加选项是可以添加 自定义的网络 可以理解为给实例添加自定义的网卡)
填个网关就可以 使用此网络 实例的ip 会从这个子网中随机取 这个网络是vlan进行隔离的 vlan号 就是从我们刚才定义的vlan范围中随机拿的
然后创建实例的时候选择刚刚创建的那个网络 启动 就可以了 实例
然后可以看到实例的ip
这时候是无法直接访问到实例的 实例的网卡有vlan
我们只能访问到公网IP
所以需要拿个公网IP 做下配置
点开我们新建的网络
获得一个新的公网ip (注意到没 那个soucre nat ,实例就是通过那个ip上网的)
点开那个公网IP 然后配置防火墙 和 端口转发 (左下角那个就是负责均衡 )
因为我新建的实例是linux 我就开22端口转发 (那个public的端口 是可以自定义的 图方便 就都22了)
防火墙的配置 第一行 可以ping 第二行 开放22端口 (如果你端口映射的时候public 端口不是22 那你得开放那个端口)
好了 现在你可以 ssh 公网ip 就可以登陆到实例了
最后; 希望本文可以帮助你理解cloudstack的高级网络