Neutron 网络基本概念

Neutron 管理的网络资源包括 Network  、subnet  、 port

Network

network 是一个隔离的二层广播域。

Neutron 支持多种类型的 network,包括 local, flat, VLAN, VxLAN 和 GRE。

local

local 网络与其他网络和节点隔离。

local 网络中的 instance 只能与位于同一节点上同一网络的 instance 通信,local 网络主要用于单机测试。

flat

flat 网络是无 vlan tagging 的网络。

flat 网络中的 instance 能与位于同一网络的 instance 通信,并且可以跨多个节点。

vlan

vlan 网络是具有 802.1q tagging 的网络。

vlan 是一个二层的广播域,同一 vlan 中的 instance 可以通信,不同 vlan 只能通过 router 通信。

vlan 网络可跨节点,是应用最广泛的网络类型。

vxlan

vxlan 是基于隧道技术的 overlay 网络。

vxlan 网络通过唯一的 segmentation ID(也叫 VNI)与其他 vxlan 网络区分。

vxlan 中数据包会通过 VNI 封装成 UDP 包进行传输。

因为二层的包通过封装在三层传输,能够克服 vlan 和物理网络基础设施的限制。

gre

gre 是与 vxlan 类似的一种 overlay 网络。

主要区别在于使用 IP 包而非 UDP 进行封装。

不同 network 之间在二层上是隔离的。

以 vlan 网络为例:

network A 和 network B 会分配不同的 VLAN ID,这样就保证了 network A 中的广播包不会跑到 network B 中。

当然,这里的隔离是指二层上的隔离,借助路由器不同 network 是可能在三层上通信的。

network 必须属于某个 Project( Tenant 租户),Project 中可以创建多个 network。

Project 与 network 之间是 1对多关系。

subnet

subnet 是一个 IPv4 或者 IPv6 地址段。

instance 的 IP 从 subnet 中分配。

每个 subnet 需要定义 IP 地址的范围和掩码。

network 与 subnet 是 1对多 关系。

一个 subnet 只能属于某个 network;一个 network 可以有多个 subnet,这些 subnet 可以是不同的 IP 段,但不能重叠。

下面的配置是有效的:

network A   subnet A-a: 10.10.1.0/24  {"start": "10.10.1.1", "end": "10.10.1.50"}

subnet A-b: 10.10.2.0/24  {"start": "10.10.2.1", "end": "10.10.2.50"}

但下面的配置则无效,因为 subnet 有重叠

network A    subnet A-a: 10.10.1.0/24  {"start": "10.10.1.1", "end": "10.10.1.50"}

subnet A-b: 10.10.1.0/24  {"start": "10.10.1.51", "end": "10.10.1.100"}

这里不是判断 IP 是否有重叠,而是 subnet 的 CIDR 重叠(都是 10.10.1.0/24)。

但是,如果 subnet 在不同的 network 中,CIDR 和 IP 都是可以重叠的,比如

network A   subnet A-a: 10.10.1.0/24  {"start": "10.10.1.1", "end": "10.10.1.50"}

networkB    subnet B-a: 10.10.1.0/24  {"start": "10.10.1.1", "end": "10.10.1.50"}

如果上面的IP地址是可以重叠的,那么就可能存在具有相同 IP 的两个 instance,这样并不会冲突。

具体原因:

因为 Neutron 的 router 是通过 Linux network namespace 实现的。

network namespace 是一种网络的隔离机制。

通过它,每个 router 有自己独立的路由表。

上面的配置有两种结果:

如果两个 subnet 是通过同一个 router 路由,根据 router 的配置,只有指定的一个 subnet 可被路由。

如果上面的两个 subnet 是通过不同 router 路由,因为 router 的路由表是独立的,所以两个 subnet 都可以被路由。

port

port 可以看做虚拟交换机上的一个端口。

port 上定义了 MAC 地址和 IP 地址,当 instance 的虚拟网卡 VIF(Virtual Interface) 绑定到 port 时,port 会将 MAC 和 IP 分配给 VIF。

subnet 与 port 是 1对多 的关系:

一个 port 必须属于某个 subnet;

一个 subnet 可以有多个 port。

小节

下面总结了 Project,Network,Subnet,Port 和 VIF 之间关系。

Project  1 : m Network

Network 1 : m Subnet

Subnet 1 : m Port

Port 1 : 1 VIF

VIF m : 1 Instance

----------------------------------------------------------引用来自----------------------------------------------------------------------

https://www.cnblogs.com/CloudMan6/p/5716947.html

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587708&idx=1&sn=f7dea80905f19bf460e1aa67c5d2453f&chksm=8d3080e5ba4709f3f934ec4dd099a14f1641b0b200b2f4e2dc27ad39cbc9c58447d46436dc0d&scene=21#wechat_redirect

转载于:https://www.cnblogs.com/gsophy/p/11114367.html

第 7 章 Neutron - 066 - Neutron 网络基本概念相关推荐

  1. Neutron 网络基本概念

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

  2. Neutron中的网络I/O虚拟化(by quqi99)

    作者:张华  发表于:2014-04-03 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99 ) 我的实 ...

  3. Neutron运营商网络和租户网络详解

    由租户创建并且管理的网络,Neutron称之为租户网络.但是Openstack不是万能的,Neutron也不是万能的.还有很多网络不在Neutron管理范围内(Neutron称之为外部网络).有时候, ...

  4. 【neutron】Neutron的基本原理与代码实现

    分享正文 大家好,很高兴今天能与大家分享一些Neutron的知识.今天分享的思路是:OpenStack网络基础.Neutron的软件实现.Nova虚拟机启动时的网络处理以及OVS流表分析. 一.Ope ...

  5. Unity网络多玩家游戏开发教程第1章Unity自带网络功能

    Unity网络多玩家游戏开发教程第1章Unity自带网络功能 Unity拥有大量的第三方插件,专门提供了对网络功能的支持.但是,大部分开发者第一次接触到的还是Unity自带的网络功能,也就是大家经常说 ...

  6. 《图解HTTP》读书笔记--第1章 了解Web及网络基础

    写在前面:本文仅供个人学习使用,如有侵权,请联系删除.文章中所用图片绝大多数来源于<图解HTTP>,请读者支持原版. 文章目录 第1章 了解Web及网络基础 1.1 使用HTTP协议访问W ...

  7. 鸟哥的Linux私房菜(服务器)- 第五章、 Linux 常用网络指令

    第五章. Linux 常用网络指令 最近更新日期:2011/07/18 Linux 的网络功能相当的强悍,一时之间我们也无法完全的介绍所有的网络指令,这个章节主要的目的在介绍一些常见的网络指令而已. ...

  8. 信安精品课:第4章网络安全体系与网络安全模型精讲笔记

    第4章网络安全体系与网络安全模型精讲笔记 一.本章知识框架 二.本章大纲要求 4.1 网络安全体系概述 •网络安全体系概念 •网络安全体系特征 •网络安全体系用途 4.2 网络安全体系相关安全模型 • ...

  9. 鸟哥的Linux私房菜(基础篇)- 第二十一章、系统配置工具(网络与打印机)与硬件侦测

    第二十一章.系统配置工具(网络与打印机)与硬件侦测 最近升级日期:2009/09/15 除了手动配置之外,其实系统提供了一个名为 setup 的命令给系统管理员使用喔!这个命令还能够配置网络呢.此外, ...

  10. 【RL-TCPnet网络教程】第30章 RL-TCPnet之SNTP网络时间获取

    第30章      RL-TCPnet之SNTP网络时间获取 本章节为大家讲解RL-TCPnet的SNTP应用,学习本章节前,务必要优先学习第29章的NTP基础知识.有了这些基础知识之后,再搞本章节会 ...

最新文章

  1. 从 TensorFlow 入门机器学习
  2. 玩转控件:对Dev的GridControl控件扩展
  3. html图片分四面切割播,CSS3切割轮播图
  4. 三勾商城是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS + Android + 公众号 + H5 + 各种小程序
  5. sharepoint中使用xslt构建Spotlight(焦点图效果)
  6. 图说单播,组播,广播,选播和地域播
  7. 玩转web表单网页快速开发(❤建议收藏❤)
  8. Xbox360 十年祭:那些荣耀、激昂、内乱与未尽的未来
  9. 杰里之2M 包加入来电铃声和来电报号的问题【篇】
  10. 装机大师无法发现linux硬盘,如何解决PE无法识别硬盘的问题
  11. officemix安装 0x80091007 哈希数值不正确
  12. Windows Print Spooler CVE-2021-1675 漏洞复现
  13. 用什么软件测试硬盘使用过多少次,硬盘能查看使用次数吗
  14. depth image
  15. 三农数据(1996-2020)十六:农产品进出口、农村居民纯收入、消费支出及结构
  16. 解决Mybatis3.3中NVARCHAR2生僻字乱码
  17. CGB2106-Day10
  18. 精品MySQL面试题
  19. DICOM:基于DCMTK实现C-FIND SCU
  20. 理解GAN对抗神经网络的损失函数和训练过程

热门文章

  1. 南阳oj-----找球号(一)(set)
  2. python属性是什么意思_什么是python类属性
  3. java判断闰年代码_根据输入的年份判断是否是闰年?(在JAVA用if-else)
  4. STM32——库函数版——数码管流动显示程序
  5. java启动脚本_java启动脚本
  6. java 包装类详解_解析包装类
  7. C/C++[PAT B level 1036]图形输出
  8. Spark中的python shell交互界面Ipython和jupyter notebook
  9. CNN 卷积神经网络 池化层Pooling 动手学深度学习v2 pytorch
  10. 基于近邻法的分类器设计