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. luogu2564 [SCOI2009]生日礼物

    排序枚举左端点,则右端点必定不降 #include <algorithm> #include <iostream> #include <cstring> #incl ...

  2. 30、自定义gridview

    要想实现自定义gridview效果,有下边几个步骤: 1.定义grivew中的item的xml文件 假如item需要显示一个图片,图片下边显示文字: <?xml version="1. ...

  3. 大数据学习——sparkSql对接hive

    1.   安装mysql 2.   上传.解压.重命名 2.1.  上传 在随便一台有hadoop环境的机器上上传安装文件 su - hadoop rz –y 2.2.  解压 解压缩:apache- ...

  4. WebApplicationContextUtils源码

    package org.springframework.web.context.support; import javax.servlet.ServletContext; import javax.s ...

  5. 【转】简要分析unity3d中剪不断理还乱的yield

    在学习unity3d的时候很容易看到下面这个例子: 1 void Start () { 2 StartCoroutine(Destroy()); 3 } 4 5 IEnumerator Destroy ...

  6. iOS学习笔记46-Swift(六)扩展

    一.Swift扩展 扩展就是向一个已有的类.结构体或枚举类型添加新功能,这包括在没有权限获取原始源代码的情况下扩展类型的能力.扩展和 Objective-C中的分类(category)类似,但是它要比 ...

  7. Excel VBA基础教程

    https://www.w3cschool.cn/excelvba/excelvba-basics.html Excel VBA语言基础 VBA语言的基础认识 详解VBA编程是什么 excel处理录制 ...

  8. mysql explain字段意思解释

    mysql explain字段意思解释 explain包含id.select_type.table.type.possible_keys.key.key_len.ref.rows.extra字段 id ...

  9. 【BZOJ4555】【TJOI2016】【HEOI2016】求和 (第二类斯特林数+NTT卷积)

    Description 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: $$f(n)=\sum_{i=0}^n\sum_{j=0}^i S(i,j)\tim ...

  10. CSS实现Footer固定底部,超过一屏自动撑开

    方法一:给html.body都设置100%的高度,确定body下内容设置min-height有效,然后设置主体部分min-height为100%,此时若没有header.footer则刚好完美占满全屏 ...