`
lynnkong
  • 浏览: 303184 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Quantum中的L3模型实战

阅读更多

Quantum中的L3模型实战

 

 本博客欢迎转发,但请保留原作者(@孔令贤HW)信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!

截止到OpenStack Folsom版,Quantum中的对象模型有以下几个:Network Subnet Port Router FloatingIP。前三个在我之前的博客已有所分析,今天来看下RouterFloatingIP

以官方文档中给出的一个quantum部署示例为例:

 
这个图是用户视角的虚拟机网络部署。每个租户可以创建自己的router,并把自己的private networkrouter关联。同时,可以把router与一个external network关联,在这个external network上创建公网IP池(即创建subnetsubnet里的IP是公网IP)。更进一步,可以创建floatingIP并将其与虚拟机的port绑定,这样就可以从公网访问虚拟机。

下面使用quantum命令行来从无到有完成上述的网络模型。注意,实际执行命令时,将尖括号内的内容替换成实际内容,我都是以管理员角色执行的命令,实际执行时,可以根据需要在命令参数中添加--tenant-id

1. 创建network
为租户A创建网络TenantA_PrivateNet

quantum net-create --tenant-id <tenantA_ID> TenantA_PrivateNet --provider:network_type vlan --provider:physical_network physnet1 --provider:segmentation_id 1024
(我的ovs_quantum_plugin.ini中有如下配置:tenant_network_type=vlannetwork_vlan_ranges = physnet1:1:4094
为租户C创建网络TenantC_PrivateNet1TenantC_PrivateNet2
quantum net-create --tenant-id <tenantC_ID> TenantC_PrivateNet1 --provider:network_type vlan --provider:physical_network physnet1 --provider:segmentation_id 1025
quantum net-create --tenant-id <tenantC_ID> TenantC_PrivateNet2 --provider:network_type vlan --provider:physical_network physnet1 --provider:segmentation_id 1026

创建外部网络External_Net
quantum net-create External_Net --router:external=True

2. 为网络添加subnet
在租户A的网络上添加subnet

quantum subnet-create --tenant-id <tenantA_ID> TenantA_PrivateNet 10.0.0.0/24
在租户C的网络上分别添加subnet
quantum subnet-create --tenant-id <tenantC_ID> TenantC_PrivateNet1 10.0.0.0/24
quantum subnet-create --tenant-id <tenantC_ID> TenantC_PrivateNet2 10.0.1.0/24

(
注意设置配置项allow_overlapping_ips=true)
在外部网络添加subnet

quantum subnet-create External_Net --gateway 30.0.0.1 30.0.0.0/22 --enable_dhcp=False

3. 指定网络创建虚拟机
虚拟机的创建不属于本篇范畴,略去。假设:
租户ATenantA_PrivateNet网络上创建两个虚拟机A_VM1A_VM2,这样,在Quantum上就对应的创建了两个portA_Port1A_Port2.
同样的,租户C创建虚拟机:C_VM1, C_VM2, C_VM3, C_VM4,对应的portC_Port1, C_Port2, C_Port3, C_Port4

4. 创建router
为租户A创建路由RouterA

quantum router-create --tenant-id <tenantA_ID> RouterA
为租户C创建路由RouterC
quantum router-create --tenant-id <tenantC_ID> RouterC
router
创建完后,其实什么也没做,只在数据库添加了一条记录。

5. 将租户ACrouter与外部网络关联
quantum router-gateway-set RouterA External_Net
quantum router-gateway-set RouterC External_Net

上述命令,其实是在External_Net上面创建了两个Portport的属性中device_owner=network:router_gatewaydevice_id=router_id。在创建Port的同时,分别分配了公网IP(因为外部网络的子网是公网IP)。

6. 将租户AC的虚拟机绑定到各自的router
quantum router-interface-add RouterA <A_Subnet_ID>
quantum router-interface-add RouterC <C_Subnet1_ID>
quantum router-interface-add RouterC <C_Subnet2_ID>

上述命令,其实是在各自subnet所对应的network内创建portport的属性中device_owner=network:router_interfacedevice_id=router_idfixed_ip={'ip_address': subnet['gateway_ip'], 'subnet_id': subnet['id']}
需要注意的是,在同一个Router内,IP地址是不能重复的。

7. 给虚拟机关联公网IP
首先创建四个floatingIP

quantum floatingip-create External_Net
quantum floatingip-create External_Net
quantum floatingip-create External_Net
quantum floatingip-create External_Net

上述命令执行后,其实是在External_Net分配了四个portport的属性中device_owner=network:floatingip
然后关联floatingIP和虚拟机port

quantum floatingip-associate <floatingip1-ID> <A_Port1_ID>
quantum floatingip-associate <floatingip2-ID> <A_Port2_ID>
quantum floatingip-associate <floatingip3-ID> <C_Port1_ID>
quantum floatingip-associate <floatingip4-ID> <C_Port2_ID>

至此,完成了上述的网络模型。

当然,逻辑上的网络模型只是为了方便应用,其实并不能说明什么,底层的实现才是关键。Quantum的安装部署中,有一个l3 agent进程(可以是一个或多个),这个进程脚本其实就是个死循环,不停的调用QuantumAPI获取routerfloatingIP的信息,然后通过底层的网络命令实现上层的模型(主要还是iptable命令)。这样,在大规模部署时,如果系统中存在多个routerfloatingIP,将会对l3 agent造成较大的负载,虽然可以通过增加循环间隔的方式缓解,但这样又会造成信息的延迟生效。所以,需要寻求两外的方式来满足规模部署的需求。

 

本博客欢迎转发,但请保留原作者(@孔令贤HW)信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!

  • 大小: 58 KB
0
2
分享到:
评论
4 楼 lynnkong 2013-04-14  
u010233314 写道

博主你好,我也遇到这个问题
虚拟机之间能通过tenant网络通信,但是在物理主机上通过内网和外网都ping不通。
我装的是folsom版本,你还有一篇文章介绍Essex版本的网络模型说过要用nova-network,具体怎么配置nova-networ?
谢谢


你好,目前我搭建了openstack最新的G版,虚拟机之间,虚拟机和物理机之间,可以ping,可以ssh,虚拟机也可以ping通外网。

另外,我的更新blog地址是:blog.csdn.net/lynn_kong,ITeye的博客不再更新。请知~
3 楼 u010233314 2013-04-11  
baiweiyll 写道
我们使用quantum以后,网络这块一直有问题,在folsom下,能够创建虚拟机,ip也能分得到,但是就是通过这个ip访问不到虚拟机,内网和外网都访问不到虚拟机,是不是quantum的原因,以前使用network就没有这种现象。



博主你好,我也遇到这个问题
虚拟机之间能通过tenant网络通信,但是在物理主机上通过内网和外网都ping不通。
我装的是folsom版本,你还有一篇文章介绍Essex版本的网络模型说过要用nova-network,具体怎么配置nova-networ?
谢谢
2 楼 lynnkong 2012-12-28  
baiweiyll 写道
我们使用quantum以后,网络这块一直有问题,在folsom下,能够创建虚拟机,ip也能分得到,但是就是通过这个ip访问不到虚拟机,内网和外网都访问不到虚拟机,是不是quantum的原因,以前使用network就没有这种现象。

你说的访问是指怎么访问?通过VNC?SSH?还是简单的ping?
1 楼 baiweiyll 2012-12-27  
我们使用quantum以后,网络这块一直有问题,在folsom下,能够创建虚拟机,ip也能分得到,但是就是通过这个ip访问不到虚拟机,内网和外网都访问不到虚拟机,是不是quantum的原因,以前使用network就没有这种现象。

相关推荐

    unity3d Quantum Cold 雪山模型.zip模型资源unity模型资源下载

    unity3d Quantum Cold 雪山模型.zip模型资源unity模型资源下载unity3d Quantum Cold 雪山模型.zip模型资源unity模型资源下载unity3d Quantum Cold 雪山模型.zip模型资源unity模型资源下载 1.合个人学习技术做项目...

    Unity3D 山地模型带贴图 Quantum Arid.zip模型资源unity模型资源下载

    Unity3D 山地模型带贴图 Quantum Arid.zip模型资源unity模型资源下载Unity3D 山地模型带贴图 Quantum Arid.zip模型资源unity模型资源下载Unity3D 山地模型带贴图 Quantum Arid.zip模型资源unity模型资源下载 ...

    openstack quantum安装文档

    - L3 Agent 是 Quantum 中用于实现 L3 路由和 NAT 功能的服务。 - 说明了如何配置 L3 Agent 以支持跨网络通信。 **7. 认证与授权** - **Authentication and Authorization** - 详细解释了 Quantum 如何与 ...

    Unity3D 山地模型带贴图 Quantum Arid.zip

    在这个“Unity3D 山地模型带贴图 Quantum Arid.zip”压缩包中,包含的是一个适用于Unity3D的山地场景模型,附带有纹理贴图。让我们深入探讨一下Unity3D中的山地建模和贴图技术。 首先,山地建模通常使用高度图...

    Quantum Computation and Quantum Information

    One of the most cited books in physics of all time, Quantum Computation and Quantum Information remains the best textbook in this exciting field of science. This 10th Anniversary Edition includes a ...

    openstack quantum网络介绍.pdf

    ### OpenStack Quantum网络模型介绍 #### 一、OpenStack Essex架构回顾 OpenStack Essex作为早期版本之一,在架构设计上相对简单。在Essex版本中,网络功能主要由`nova-network`组件来实现,该组件负责处理虚拟机...

    JBL Quantum Duo用户配置说明书.pdf

    * 模型号:JBL Quantum Duo * 传感器:2.5 英寸低音喇叭,0.75 英寸高音喇叭 * 等效输出功率:20W RMS * 频率响应:60Hz – 20kHz * 信噪比:&gt; 80dB * 蓝牙版本:4.2 * 蓝牙配置文件:A2DP v1.3, AVRCP v1.5 * 蓝牙...

    JBL Quantum Duo用户快速说明书.pdf

    手册中介绍了JBL Quantum Duo耳机的组件,包括耳机本体、充电线、音频线、用户手册等。 2. 产品 TOUR 手册中提供了JBL Quantum Duo耳机的产品tour,指导用户如何正确地使用耳机的各个组件,例如音频输入、音频输出...

    谷歌推出量子机器学习框架TFQ-TensorFlow Quantum,一个可训练量子模型的机器学习框架.pdf

    最近,谷歌推出了TensorFlow Quantum(TFQ),一个开源的量子机器学习框架,它允许开发者快速构建量子机器学习模型原型。 TensorFlow Quantum框架提供了一系列高级抽象,用于设计和训练量子模型。这些模型既可以是...

    Quantum GIS 中文教程

    ### Quantum GIS (QGIS) 中文教程知识点概览 #### 一、QGIS概述 - **定义与背景**:QGIS是一款开源的桌面地理信息系统,适用于多种操作系统平台,包括Linux、Unix、MacOSX和Windows。该软件项目始于2002年5月,采用...

    Modicon Quantum 宣传手册.pdf

    从提供的文件内容中,我们可以提炼出有关Modicon Quantum系列PLC(可编程逻辑控制器)的关键知识点。Modicon Quantum是施耐德电气旗下的一款高性能PLC,具有模块化设计,广泛应用于工业自动化领域。以下是根据文件...

    quantum optics toolbox for MATLAB.rar_matlab_matlab optics_quant

    matlab 中quantum optics 的帮助文档

    Quantum-SI中文介绍

    Quantum-SI是一款专为高速PCB设计提供信号完整性、串扰分析和时序分析的综合性工具。这款软件由QSI技术公司开发,是目前唯一能够处理真正意义上的High-Speed Design ClosureTM的系统级解决方案。其核心功能在于帮助...

    Quantum walks_a comprehensive review

    Quantum walks, the quantum mechanical counterpart of classical random walks, is an advanced tool for building quantum algorithms that has been recently shown to constitute a universal model of quantum...

    quantum-espresso安装.docx

    相较于其前辈如CPMD、CP2K等,Quantum Espresso在安装过程中优化了许多流程,使其更加便捷。本文将详细介绍Quantum Espresso的安装步骤及相关知识点。 #### 二、安装环境准备 - **硬件要求**:建议使用多核处理器...

    Unity 游戏内控制台 Quantum Console

    通过使用Quantum Console,开发者可以更好地理解和解决游戏中出现的问题,提升开发效率。 首先,Quantum Console 的核心特性包括实时过滤和搜索功能,允许开发者快速定位到特定的日志条目。这在处理大量日志输出时...

    Quantum_quantumcomputing_quantum_pdfword_

    2. **量子控制理论**:介绍基本的最优控制概念,如 Pontryagin's 最大原则,动态规划方法,以及现代控制理论中的线性二次型调节器(LQR)和模型预测控制(MPC)等。 3. **量子误差纠正**:讨论量子系统中的噪声和...

Global site tag (gtag.js) - Google Analytics