Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10327147
  • 博文数量: 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)

分类: 云计算

2016-03-21 11:20:12

CloudStack隔离网络VM的创建与VM通信

来源:IT165收集  发布日期:2014-07-09 20:37:04

原文地址:

下面整理的内容都是在CloudStack的Advance Zone 中创建隔离的来宾网络(不是VPC中的网络),vlan id :305,VM 模板为 ubuntu 10.04,

流程图

下图为整理的创建VM以及VM通信的主要流程。

看到流程图,就应该大体清楚是怎么回事了,再说一下自己的一些总结,不一定正确,如觉得有异议,可以讨论


验证过程遇到的问题及结论

1、 由于每个隔离的来宾网络,都有一个单独vrouter虚拟机提供gateway服务,不同的vlan,可以有相同的subnet。

2、当使用隔离的来宾网络创建VM时,会为该网络创建一个VRouter 虚拟机,会在VRouter所在的主机以及新建的VM所在的主机穿件vlan接口,如下图所示:(系统为该网 络分配vlan id:305,该隔离网络为 192.168.1.1/24)

2.1 在隔离网络中创建虚拟机时,首先创建该网络对应的vrouter 虚拟机,该vrouter虚拟机对应的网卡信息为:

[[Nic:Public-10.41.2.233-vlan://untagged], [Nic:Guest-192.168.1.1-vlan://305], [Nic:Control-169.254.3.76-null]]

2.2 将将要新建的VM的mac地址和IP 配置到Vrouter虚拟机

执行函数:

com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource.execute(DhcpEntryCommand)

执行的脚本dhcp_entry.sh,最终执行的脚本为vrouter 虚拟机上的:/root/edithosts.sh (该脚本主要是配置dhcp,该文不做说明)

2.3 创建VM,此时携带的网卡信息:[Nic:Guest-192.168.1.113-vlan://305],但是该IP为被使用,虚拟机的IP从Vrouter 虚拟机获 取(根据新建VM的mac地址获取)

2.4

在启动VM的时候会去在host主机上创建vlan接口:函数:

com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.createVifs(VirtualMachineTO, LibvirtVMDef)

获取vlanid使用脚本modifyvlan.sh (传融喎?"" target="_blank" class="keylink">rss7K/SCjqDMwNSxldGgwLGJyZXRoMC0zMDUsdmxhbqOp1Npob3N0tLS9qHZsYW6907/aKGJyZXRoMC0zMDUsZXRoMC4zMDUpPC9wPgo8cD4gICAgICDG5NbQMzA1IM6quMPN+MLntcR2bGFuaWQsZXRoMCDOqtb3u/rJzyBwcml2YXRlIG5ldHdvcmu21NOmtcTO78DtvdO/2jwvcD4KCjxwPrSrtd24+GFnZW50tcRuaWOyzsr9vdjNvKO6PC9wPgoKPGltZyBzcmM9"" alt="">



2.5 脚本modifyvlan.sh 中的重要代码

vconfig set_name_type DEV_PLUS_VID_NO_PAD 设置命名格式

vconfig add $pif $vlanId //($pif=eth0 $vlanId-305) eth0网口增加vlan 305

brctl addbr $vlanBr //($vlanBr=br0eth0-305) 增加网桥br0eth0-305

brctl addif $vlanBr $vlanDev //($vlanBr=br0eth0-305 $vlanDev=eth0.305) 将eth0.305 作为网桥br0eth0-305的一个端口,即:所有目的地为eth0.305的流量,都会被当做目的地为br0eth0-305,同时,当流量通过br0eth0-305流出时,所有流量都会被当做从eth0.305 网口流出。

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