目录

前文列表

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. 关于Extjs6.0 controller文件过大,实现模块化分离

    Extjs一般都是一个视图对应着一个controller 一旦碰到视图中逻辑过于繁琐造成controller文件过大不利于维护和修改,所以要通过混入mixins混入功能来实现模块化! 首先创建一个视图 ...

  2. 【C#技术】一篇文章搞掂:Infragistics组件库

    工具栏 // 按钮不可按 tool.SharedProps.Enabled = false; Grid // Grid中记录时间 // 建议SQL Server中使用字符字段(没有深入测试,只是字符字 ...

  3. python 去除字符串两端字符串

    转载:http://blog.sina.com.cn/s/blog_940224600100w8l0.html Python中的strip用于去除字符串的首位字符,同理,lstrip用于去除左边的字符 ...

  4. centos7 rm -rf 删除文件的找回

    今天手贱一不小心把我正个项目目录删除了,没办法只能找回啦      文件系统是ext4的,只能使用extundelete   df -hT 文件名  查看 下删除的文件夹所在的硬盘 1. 安装依赖   ...

  5. qrcode.js生成二维

    使用到qrcode.js生成二维码 pako.js压缩字符串:https://github.com/nodeca/pako 参照代码如下: <!DOCTYPE HTML PUBLIC " ...

  6. table td 溢出隐藏

    需要给table加一个属性:table-layout:fixed;

  7. 用Processing生成屏保(二)

    代码 1: class TPoint 2: { 3: public TPoint(int _x, int _y) { 4: super(); 5: this._x = _x; 6: this._y = ...

  8. activi7流程部署

    package com.zcc.acvitivi; import org.activiti.engine.ProcessEngine;import org.activiti.engine.Proces ...

  9. JPA单向和双向关系

    单向关系 @JoinColumn 双向关系 @OneToMany @ManyToMany mappedBy

  10. 手把手教你吧Python应用到实际开发 不再空谈悟法✍✍✍

    手把手教你吧Python应用到实际开发 不再空谈悟法 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问 ...