目录

前文列表

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. 一次且仅一次(once and only once,简称OAOO)

    一次且仅一次(once and only once,简称OAOO)又称为 Don't repeat yourself(不要重复你自己,简称DRY)或一个规则,实现一次(one rule, one pl ...

  2. Mac启动时:boot task failed:fsck-safe处理办法

    mac系统启动到一半,然后突然关机,查看启动信息发现:boot task failed:fsck-safe 处理方法,clover启动的时候按空格,然后选择sigle mode. 进入使用命令:fsc ...

  3. python 操作数据库的常用SQL命令

    这俩天在学习PYTHON操作数据库的知识.其实基本SQL命令是与以前学习的MYSQL命令一致,只是增加了一些PYTHON语句. 1,安装pymysql,并导入. import pymysql 2,因为 ...

  4. MySQL if,ifnull,nullif 函数

    一.IF IF(exPR1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr ...

  5. CSS样式初始化代码

    CSS样式初始化代码 为什么要初始化CSS? 建站老手都知道,这是为了考虑到浏览器的兼容问题,其实不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面差异.当然,初始化 ...

  6. Redis 单机模式,主从模式,哨兵模式(sentinel),集群模式(cluster),第三方模式优缺点分析

    Redis 的几种常见使用方式包括: 单机模式 主从模式 哨兵模式(sentinel) 集群模式(cluster) 第三方模式 单机模式 Redis 单副本,采用单个 Redis 节点部署架构,没有备 ...

  7. PHP面试 MySQL创建高性能索引考点

    MySQL索引 MySQL索引的基础和类型 索引的基础:索引类似于书籍的目录,要想找到一本书的某个特定篇章,需要查找书的目录,定位对应的页码 存储引擎使用类似的方式进行数据查询,先去索引当中找到对应的 ...

  8. Pandas Series数据结构基本操作

    >>> import pandas >>> import numpy as np >>> from pandas import Series,Da ...

  9. 一张图搞清楚Java异常机制

    下面是Java异常类的组织结构,红色区域的异常类表示是程序需要显示捕捉或者抛出的. Throwable Throwable是Java异常的顶级类,所有的异常都继承于这个类. Error,Excepti ...

  10. python-模块-包

    一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...