Neutron是OpenStack核心项目之中的一个,提供云计算环境下的虚拟网络功能。Neutron的功能日益强大,并在Horizon面板中已经集成该模块。作为Neutron的核心开发人员之中的一个。个人认为Neutron全然取代Nova Network模块作为云计算网络管理中心是必定趋势。要使用好OpenStack,了解Neutron概念及其对应操作就显得格外重要。为此目的,这篇博客主要讲述Neutron网络的一些基本概念,网络规划和Horizon中怎样使用Neutron中的网络功能。

Neutron基本概念

  1. 网络

在普通人的眼里,网络就是网线和供网线插入的port。一个盒子会提供这些port。对于网络project师来说,网络的盒子指的是交换机和路由器。所以在物理世界中,网络能够简单地被觉得包含网线,交换机和路由器。当然。除了物理设备。我们还有软的物件:IP地址,交换机和路由器的配置和管理软件以及各种网络协议。

要管理好一个物理网络须要很深的网络专业知识和经验。

Neutron网络目的是(为OpenStack云更灵活地)划分物理网络,在多租户环境下提供给每一个租户独立的网络环境。

另外,Neutron提供API来实现这样的目标。Neutron中“网络”是一个能够被用户创建的对象,假设要和物理环境下的概念映射的话。这个对象相当于一个巨大的交换机。能够拥有无限多个动态可创建和销毁的虚拟port。

  1. port

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

  1. 路由器

和物理环境下的路由器类似。Neutron中的路由器也是一个路由选择和转发部件。仅仅只是在Neutron中,它是能够创建和销毁的软部件。

  1. 子网

简单地说,子网是由一组IP地址组成的地址池。不同子网间的通信须要路由器的支持,这个Neutron和物理网络下是一致的。Neutron中子网隶属于网络。

Neutron网络的一种典型结构

有这么多的基本概念,使用起来是不是非常麻烦?事实上仅仅要我们好好梳理一下。neutron的基本操作还是非常easy的。

首先我们规划一下我们的网络。

Neutron典型的网络结构例如以下图所看到的:

在这个图中。我们有一个和互联网(互联网能够由其他网络取代。比方办公网络)连接的外部网络。这个外部网络是租户虚拟机訪问互联网或者互联网訪问虚拟机的途径。外部网络有一个子网。它是一组在互联网上可寻址的IP地址。

普通情况下,外部网络仅仅有一个(neutron是支持多个外部网络的),且由管理员创建。租户网络可由租户随意创建。

当一个租户的网络上的虚拟机须要和外部网络以及互联网通信时,这个租户就须要一个路由器。路由器有两种臂,一种是gateway网关臂,还有一种是interfaces接口臂。网关臂仅仅有一个,连接外部网。接口臂能够有多个。连接租户网络的子网。经过这种网络规划,我们有以下的步骤来实施:

  1. 首先管理员拿到一组能够在互联网上寻址的IP地址。而且创建一个外部网络和子网
  2. 租户创建一个网络和子网
  3. 租户创建一个路由器而且连接租户子网和外部网络
  4. 租户创建虚拟机

Horizon上操作网络

如今我们规划好了网络。我们就能够在Horizon上进行操作了。

管理员创建外网

我们说过外网要由管理员创建。如果我们拿到的外部网络的IP地址是20.0.2.0/24,可用的地址段是20.0.2.10-20.0.2.20,网关是20.0.2.1。我们如今就以管理员的身份在horzion上创建一个外网和子网:

  1. 以管理员身份登录后。选择管理员面板,点击’Networks’项后显示当前网络列表:
  2. 在上图中点击“Create Network”button弹出“Create Network”窗体:在上面的弹出窗体中,填入网络名:ExternalNet,并且勾选External
    Network然后点击“Create Network”。
  3. 以下是我们刚才创建好的网络:
  4. 如今我们点击“ExternalNet”查看这个网络的具体情况:
  5. 在网络具体情况页面中。我们点击“Create Subnet”弹出窗体创建外部网络的子网:

这是一个多标签页面,在上面的“Subnet”页面中填入子网名,子网CIDR(Network Address)。

在以下的“Subnet Detail”页中填入地址范围:

注意:由于外部网络不挂接虚拟机,能够不选泽“Enable DHCP“。最后点击子网创建窗体上的“Create”完毕子网的创建。

租户demo创建租户网络

我们如今以普通租户登录horizon。并点击“Netowrks”项:

点击上图的“Create Network”弹出租户网络创建窗体:

显然。这是一个多Tab的界面,和我们先前管理员创建网络的界面不一样。在这个界面里。我们能够一气完毕网络和子网的创建。

我们在“Network”页中填入网络名。在“Subnet”页中填入CIDR (Network Address):

“Subnet Datail”页面能够让我们填入IP地址池,缺省情况是Neutron使用整个CIDR规定的地址范围。

所以我们不关心“Subnet Datail”页面。

我们点击“Create”button完毕租户子网的创建。

租户创建路由器

选择“Routers”项。系统显演示样例如以下页面:

  1. 创建路由器

点击右面的“Create Router”弹出路由器创建对话框:

这个对话框及其简单,我们仅仅需输入全部的路由器的名字,然后点击“Create Router”创建路由器。

  1. 配置网关臂

路由器创建出来之后。会显示在路由器列表中:

我们点击“Set Gateway”来设置这个路由器的网关臂:

如上图所看到的,我们选择管理员创建好的外部网络“ExternalNet”。然后点击“Set Gateway”。

  1. 配置接口臂

下图显示了租户刚才创建的路由器及其网关臂:

如今我们点击路由器名字查看路由器详情:

为了设置路由器的接口臂。我们点击“Add Interface”button弹出“Add Interface”窗体:

上图显示的窗体,我们仅仅需选择我们所要连接的子网。然后点击“Add Interface”。

如今这个租户的路由器以及连接了外网和租户的子网。接下来这个租户能够创建虚拟机,这个虚拟机借助路由器就能够訪问外部网络甚至互联网。

租户创建虚拟机

这里不想详述创建虚拟机的过程。我们着重叙述一下这个过程中怎样选择网络:

从上面的图中我们能够看出,租户能够选择的网路包含了租户刚才创建的网络。点击网络右边的“+”符号,或者拖拽这个网络进入“Selected Networks”框中。租户所创建的虚拟机就会使用这个网络。

租户查看网络拓扑

最后我想要说的是Horizonproject师费尽心思实现的网络拓扑图:

从这个拓扑图能够看到我们前面全部操作的结果:

  1. 绿色的是管理员创建的外部网络
  2. 跨在外部网络和租户网络上的是具有网关臂和接口臂的路由器
  3. 蓝色的是租户网路及其子网
  4. 最后是租户创建的虚拟机

点击拓扑图上的虚拟机图像,我们能够使用VNC訪问虚拟机的控制台,例如以下图所看到的:

我们能够看出。这个虚拟机从租户网络中获取到了IP地址:10.0.1.3。它通过租户自己的路由器能訪问互联网。

总结

是不是有了Neutron就不须要物理网络的网络project师了呢?不是的。虚拟网络的负载终于还须要跑到物理网络上去传递。Neutron仅仅只是是把部分传统网络管理的功能推到了租户方。比方租户能够创建一个虚拟网络及其子网,创建一个路由器等等,这个从上面的操作中能够看出来。

在虚拟网络功能的帮助下,基础物理网络就能够向外提供额外的网络服务了,比方租户全然能够创建一个属于自己的类似于数据中心网络的虚拟网络。

Neutron提供了比較完好的多租户环境下的虚拟网络模型以及API。

像部署物理网络一样。使用Neutron创建虚拟网络时也须要做一些主要的规划和设计。本文提出了一个Neutron环境下的典型网络结构和Horzion下的操作流程。

在兴许的博客中,我会继续介绍Neutron的其他功能。比方负载均衡。防火墙,VPN等。

Neutron网络入门的更多相关文章

  1. Neutron网络-OPENSTACK讲得比较透和方便

    http://www.ustack.com/blog/neutron_intro/ Neutron是OpenStack核心项目之一,提供云计算环境下的虚拟网络功能.Neutron的功能日益强大,并在H ...

  2. Neutron网络性能测试与分析(一) CVR

    测试环境:网络节点运行在Intel(R) Xeon(R) CPU E5-2630 v3服务器上,网卡使用intel的万兆卡82599ES 测试仪使用本人基于dpdk编写的程序,基本上可以打满万兆卡,小 ...

  3. openstack第四章:neutron— 网络服务

    第四篇neutron— 网络服务 一.neutron 介绍:   Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是 ...

  4. Neutron 网络基本概念

    Neutron 网络基本概念 上次我们讨论了 Neutron 提供的功能,今天我们学习 Neutron 模块几个重要的概念. Neutron 管理的网络资源包括 Network,subnet 和 po ...

  5. Neutron网络学习

    学习 Neutron 系列文章: 转http://www.cnblogs.com/sammyliu/p/4622563.html (1)Neutron 所实现的网络虚拟化 (2)Neutron Ope ...

  6. CentOS7安装OpenStack(Rocky版)-06.安装Neutron网络服务(控制节点)

    上一章介绍了独立的nova计算节点的安装方法,本章分享openstack的网络服务neutron的安装配制方法 ------------------- 完美的分割线 ----------------- ...

  7. OpenStack之Neutron网络服务(一)

    1.Neutron概要 OpenStack网络服务提供了一个API接口,允许用户在云上设置和定义网络连接和地址.这个网络服务的项目代码名称是Neutron.OpenStack网络处理虚拟设备的创建和管 ...

  8. Openstack实践(1)部署使用实例及neutron网络

    版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://www.cnblogs.com/SuperXJ/ 如何快速部署使用openstack,使用kolla吧,o ...

  9. openstack (5)-- 部署 Neutron 网络服务

    Neutron 概念: 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要创建.修改和删除网络,网络的连 ...

随机推荐

  1. EXCEL常用命令

    查找和选择:定位条件(定位空值.错误值) 选择性粘贴

  2. 如何从Maven中央存储库下载?

    根据 Apache Maven说明: 下载时由项目的 pom.xml 文件的依赖来决定,目前不在本地存储库触发(当中央存储库包含了一个更新).默认情况下,Maven将从中央存储库下载. 在Maven中 ...

  3. c/c++内存泄露的检测方法

    此文内容摘自 https://zhuanlan.zhihu.com/p/22664202 作为   从零开始的 JSON 库教程(三):解析字符串解答篇  的笔记 1A. Windows 下的内存泄漏 ...

  4. 【Luogu】P2150寿司晚宴(状压DP)

    题目链接 反正……我是没什么想法了,全程看题解 (或者说自己想了半天错解) 因为大于根n的质数最多只会在一个数里出现一种,所以可以把数拆成两部分:小数的二进制集合和大数. 然后把大数一样的放到一起DP ...

  5. 【bzoj1257】[CQOI2007]余数之和sum

    [bzoj1257][CQOI2007]余数之和sum 2014年9月1日1,9161 Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod ...

  6. cf359D Pair of Numbers

    Simon has an array a1, a2, ..., an, consisting of n positive integers. Today Simon asked you to find ...

  7. 不支持模块化规范的插件可以使用import 导入的原因

    模块化当中的模块其实是个闭包,然后导出这个闭包,这个是为了解决全局变量污染的问题的. 所以模块当中直接定义的变量 比如  var foo = 0; 这个并不会是全局变量,而是当前模块闭包当中的局部变量 ...

  8. APUE 学习笔记(四) 标准I/O库

    1.流与FILE对象 unix I/O系统调用都是针对文件描述符的 标准C的I/O函数都是针对流(文件指针)的,我们使用一个流与一个文件相关联   2.缓冲 标准I/O库提供缓冲的目的就是尽可能减少r ...

  9. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---0

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: <Linux命令行与shell脚本 ...

  10. Linux spi驱动分析(二)----SPI核心(bus、device_driver和device)

    一.spi总线注册 这里所说的SPI核心,就是指/drivers/spi/目录下spi.c文件中提供给其他文件的函数,首先看下spi核心的初始化函数spi_init(void).程序如下: 点击(此处 ...