目录

前文列表

Openstack组件部署 — Overview和前期环境准备

Openstack组建部署 — Environment of Controller Node

Openstack组件部署 — Keystone功能介绍与认证实现流程

Openstack组件部署 — Keystone Install & Create service entity and API endpoints

Openstack组件部署 — keystone(domain, projects, users, and roles)

Openstack组件实现原理 — Keystone认证功能

Openstack组建部署 — Glance Install

Openstack组件实现原理 — Glance架构(V1/V2)

Openstack组件部署 — Nova overview

Openstack组件部署 — Nova_安装和配置Controller Node

Openstack组件部署 — Nova_Install and configure a compute node

Openstack组件实现原理 — Nova 体系结构

Openstack Networking serivce

OpenStack Networking (neutron) allows you to create and attach interface devices managed by other OpenStack services to networks. Plug-ins can be implemented to accommodate different networking equipment and software, providing flexibility to OpenStack architecture and deployment.

OpenStack Networking service,项目代号Neutron,能够让我们创建、插入接口设备,这些接口设备由其他的OpenStack service来管理。Plug-ins(插件式)的实现可以容纳多种不同的网络设备和软件,为OpenStack架构与部署提供了灵活性。

Neutron包含有以下组件

  • neutron-server:接收和路由API request到合适的OpenStack Network Plug-ins,以达到预想的目的。

  • OpenStack Networking plug-ins and agents(网络插件和代理):创建网络和子网、提供IP地址、插拔端口,这些Plug-ins和agents都根据不同的供应商和技术而不同。基于Plug-ins和agents的OpenStack network,为Cisco虚拟交换机或物理交换机、NEC OpenFlow产品、Open vSwitch、Linux bridging以及VMware NSX产品创造了关联的可能性。

  • Messaging queue消息队列:大多数的OpenStack Networking安装都会应用消息队列的功能,用于在neutron-server和各种各样的agents进程之间进行信息的路由。也为某些特定的插件扮演临时数据库的角色,以此来存储网络状态。

OpenStack networking service主要和OpenStack compute service进行交互,以提供compute service连接到虚拟机实例所需要的网络条件。

Neutron体系结构图

  • neutron-server能够接受并通过Message-queue来转发APIs给对应的Plug-ins
  • neutron-server还能够应用软件定义的网络服务(Software Defined Networking Service)将REST风格的APIs转发给Plug-ins。

基本的Neutron概念

Neutron用于管理OpenStack云计算平台中所有网络方面的虚拟网络基础设施(VNI)物理网络基础设施(PNI)的接入层。它允许Tenant创建包括Firewall(防火墙)、Load Balancer(负载均衡)、virtual private network(VPN)等高级网络拓扑。还为Openstack Networking提供了networks、subnets、routers等抽象对象的概念。每个抽象对象都拥有自己独特的功能,可以模拟各自对应的物理网络设备。

Neutron的抽象对象

其中networks包含了subnets,routers负责在不同的networks和subnets之间实现路由转发功能。每个router都有一个连接到network的Getway,router还有很多连接到subnet中的interface。所以一个subnet下的虚拟机可以访问连接到同一个router中的其他subnet下的虚拟机。

网络networks

Neutron networks目的是为了让OpenStack更灵活地划分物理网络,在多租户环境下能够为每个租户提供独立的网络环境。另外,Neutron还提供API来实现这个目标。Neutron networks是一个可以被用户创建的抽象对象,如果要和物理网络环境的概念进行映射的话,这个抽象对象相当于一个巨大的交换机,可以拥有无数个动态可创建和销毁的虚拟端口。而这些端点都会连接到networks中的subnets。

子网subnets

简单地说,subnets是由一组相同网段的IP地址组成的地址池。不同subnet间的通信需要routers的支持。Neutron中的subnets隶属于networks。

路由器routers

和物理网络环境下的路由器类似,Neutron中的routers也是一个路由选择和转发功能组件。只不过在Neutron中,routers是可以创建和销毁的软件组件。

端口

在物理网络环境中,端口是用于连接设备进入网络的地方。Neutron中的端口起着类似的功能,它是routers和虚拟机挂接网络的着附点。

Neutron的Public外部网络和Private内部网络

任何给定的Networking都需要设置至少有一个Public外部网络,Public外部网络与其他的网络不同,它不仅仅是一个虚拟网络。更重要的是它表示了OpenStack Netowrking能被外部物理网络接入并访问的视图。

注意:Public外部网络的IP地址只能被外部接入的物理网络所访问。因为Public外部网络仅仅代表了进入Internet的一个视图,实际上它的DHCP是关闭的。

Public外部网络之上,拥有一个或多个Private内部网络。这些由软件定义的Private内部网络能够直接连接到虚拟机。但只能是Private内部网络自身所包含的虚拟机或者是那些在通过Interface连接到同一个router的subnet上的虚拟机才能够被连接。即,不相连的Private内部网络之间是互相隔离的。

Neutron的security groups安全组

Neutron同样也支持 security groups(安全组)。安全组允许管理员实现防火墙规则的定义。一个虚拟机可以属于一个或多个安全组,Neutron为这个虚拟机配置这些安全组中的规则,例如:阻止或者开启端口,端口范围或者通信类型。

虚拟机如何连接到Internet外网

如果希望从Internet外网访问虚拟机,那么Openstack Networking中必须至少存在一个虚拟路由器。而且每个路由器至少配有一个能够连接到networks和Interface的Getway,而且这些Interface必须连接着subnet。通过这样一连串的网络配置,才能够保证能成功从外网连接到一个虚拟机。反之亦然。

如同物理路由器一样,subnet中的虚拟机可以访问连接到同一个路由器中的其他subnet的虚拟机,虚拟机也可以通过该路由器的网关访问外网。

Public、Private、路由器、虚拟机的关系示例图:

另外,你可以将Public外部网络的IP地址分配给Private内部网络的端口。这样的话一旦有什么连接到subnet,那么这个连接就叫做一个端口。你可以通过这个端口把外部网络IP地址分给虚拟机。

Openstack组件部署 — Netwotking service组件介绍与网络基本概念的更多相关文章

  1. Android组件系列----Android Service组件深入解析

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. Openstack组件部署 — Networking service_Compute Node

    目录 目录 前文列表 安装组件 配置通用组件 配置自服务网络选项 配置Linux 桥接代理 配置Nova使用网络 完成安装 验证操作Execute following commands on Cont ...

  3. Openstack组件部署 — Networking service_安装并配置Controller Node

    目录 目录 前文列表 前提条件 网络环境 完成下面的步骤以创建数据库 创建service credentials服务凭证 创建Neutron的API Endpoints 配置自服务网络 安装网络组件 ...

  4. Openstack组件部署 — Keystone Install & Create service entity and API endpoints

    目录 目录 前文列表 Install and configure Prerequisites 先决条件 Create the database for identity service 生成一个随机数 ...

  5. Openstack组件部署 — Keystone功能介绍与认证实现流程

    目录 目录 前文列表 Keystone认证服务 Keystone认证服务中的概念 Keystone的验证过程 简单来说 前文列表 Openstack组件部署 - Overview和前期环境准备 Ope ...

  6. Openstack组件部署 — 将一个自定义 Service 添加到 Keystone

    目录 目录 Keystone 认证流程 让 Keystone 为一个新的项目 Service 提供验证功能 最后 Keystone 认证流程 User 使用凭证(username/password) ...

  7. Openstack组件部署 — keystone(domain, projects, users, and roles)

    目录 目录 前文列表 Create a domain projects users and roles domain projects users and roles的意义和作用 Create the ...

  8. Openstack组件部署 — Nova_Install and configure a compute node

    目录 目录 前文列表 Prerequisites 先决条件 Install and configure a compute node Install the packages Edit the etc ...

  9. Openstack组件部署 — Nova_安装和配置Controller Node

    目录 目录 前文列表 Prerequisites 先决条件 To create the databases To create the service credentials Create the C ...

随机推荐

  1. windows下tomcat7+nginx1.8负载均衡

    1.负载平衡是一种常用的跨多个应用程序实例 技术优化资源利用率,最大化吞吐量, 减少延迟,并确保容错配置. 2.使用nginx作为非常有效的HTTP负载均衡器 将流量分发给几个应用程序服务器和改善 性 ...

  2. Linux v4l2编程(摄像头信息采集)

    基于Linux3.4.2,自己做一点儿视频信息采集及网络传输的小实验,边做边学,一些基础知识同步整理..... 1. 定义 V4L2(Video For Linux Two) 是内核提供给应用程序访问 ...

  3. embed元素 autostart false 失效时的解决方法

    embed元素 autostart false 失效时的解决方法 最近在工作中碰到了在网页中嵌入播放器播放声音文件的需求,最后使用了embed元素 代码如下: <embed src='1093. ...

  4. 数据可视化----matplotlib.pylot

    一.输入具体数 plt.plot([3,1,4,5,2]) #自动生成y轴 plt.ylabel("Grade") #y轴的标签 plt.savefig('test1',dpi=6 ...

  5. PHP实现RSA2加密

    PHP实现RSA2加密 1. 需要开启php的 php_openssl扩展 <?php /* * RSA2签名 * @param array 请求的参数 * @param string 私钥 * ...

  6. Dubbo 微服务系列(03)服务注册

    Dubbo 微服务系列(03)服务注册 [TOC] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 图1 Dubbo经典架构图 注:本图来源 Dubbo官方架构 ...

  7. mysql 5.7.20 动态sql 传入参数

    drop procedure test; delimiter ;; CREATE procedure test() -- 取动态sql的值 -- 目前只测试出,在 where 后面, 可以用 ?,类似 ...

  8. mybatis 教程(mybatis in action)

    目录简介: 一:开发环境搭建二:以接口的方式编程 三:实现数据的增删改查 四:实现关联数据的查询 五:与spring3集成(附源码) 六:与Spring MVC 的集成 七:实现mybatis分页(源 ...

  9. C#5.0 异步编程 Async和Await--介绍

    C#5.0引入async和await关键字实现方法的异步调用. 直接进入正题. async只是一个标识符,并没有实际的用途,只是用于表明某个方法是异步方法,在方法前面加上async 表示该方法为一个异 ...

  10. qfile读取txt文件

    QFile f("D:\\测试数据\\单波束数据\\灯浮.TGT"); if (!f.open(QIODevice::ReadOnly|QIODevice::Text))//打开指 ...