Neutron 网络基本概念

上次我们讨论了 Neutron 提供的功能,今天我们学习 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。 network 与 Project 之间是 1对多 关系。

subnet

subnet 是一个 IPv4 或者 IPv6 地址段。instance 的 IP 从 subnet 中分配。每个 subnet 需要定义 IP 地址的范围和掩码。

subnet 与 network 是 多对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 有重叠

networkA        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 有自己独立的路由表。

上面的配置有两种结果:

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

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

这里只是先简单做个说明,我们会在后面三层路由的章节详细分析这种场景。

port

port 可以看做虚拟交换机上的一个端口。port 上定义了 MAC 地址和 IP 地址,当 instance 的虚拟网卡 VIF(Virtual Interface) 绑定到 port 时,port 会将 MAC 和 IP 分配给 VIF。

port 与 subnet 是 1对多 关系。一个 port 必须属于某个 subnet;一个 subnet 可以有多个 port。

转载于:https://www.cnblogs.com/zpaixx/p/10510312.html

Neutron 网络基本概念相关推荐

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

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

  2. openstack M 版 neutron网络组件基础入门

    在我们openstack学习当中,网络组件neutron无疑是令很多人很难理解的,可以说要深入理解 了neutron组件,你基本完成了openstack 60%的学习,存储方面只要不涉及到分布式,剩下 ...

  3. OpenStack的部署T版(六)——Neutron组件(概念)

    目录 相关概念 一.Neutron网络项目 二.Linux虚拟网络 三.openstack网络基础服务 1.Neutron网络结构 2.网络子网和端口 3.网络拓扑类型 4.网络基本架构 5.Neut ...

  4. neutron网络服务

    OpenStack网络 网络是openstack最重要的资源之一,没有网络,虚拟机将被隔离.Openstack的网络服务最主要的功能就是为虚拟机实例提供网络连接,最初由nova的一个单独模块nova- ...

  5. 【转】启用 SR-IOV 解决 Neutron 网络 I/O 性能瓶颈

    https://blog.csdn.net/Jmilk/article/details/87808582 目录 文章目录 目录 前言 Neutron 的网络实现模型 基于虚拟网络设备的虚拟机流量走向 ...

  6. OpenStack之Neutron网络服务

    Neutron 网络服务 网络是openstack最重要的资源之一, 没有网络,虚拟机将被隔离.Openstack的网络服务最主要的功能就是为虚拟机实例提供网络连接,最初由nova的一-个单独模块no ...

  7. openstack-9:安装neutron网络服务

    neutron网络服务 注册neutroon账号 openstack user create --domain default --password=neutron neutron openstack ...

  8. 计算机及网络的概念,网络的概念是什么意思,以及计算机网络概念的引入

    网络的概念是什么意思? 该网络最初使用巨大的虚拟屏幕连接所有内容,也可以用作动词. 在计算机领域,网络是通过物理链接将各个独立的工作站或主机连接起来以形成数据链接,从而达到资源共享和通信的目的. 通过 ...

  9. 一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)

    一.建立你的第一个网站(目标) 前端开发 最终还是属于 Web 开发 中的一个分支,想要成为一名合格的前端开发人员,就必须要 充分理解Web 的概念. 构建一个专业的网站是一项巨大的工作!对于新手我们 ...

最新文章

  1. PHP后门新玩法:一款猥琐的PHP后门分析
  2. .NET Core采用的全新配置系统[7]: 将配置保存在数据库中
  3. php if !=,php If else 用法
  4. linux命令备记(一)
  5. linux 免sudo,linux 创建用户,免密sudo,ssh免密登录
  6. 从头开始写框架(二):孕育框架的种子_中
  7. PaddleNLP Taskflow
  8. SI 9000 及阻抗匹配学习笔记(三)
  9. 北理珠计算机考试,acst
  10. 旋转变换(二)欧拉角
  11. 《电路分析基础》第11章 耦合电感电路 读书笔记
  12. 敏捷项目管理 第2版[JimHighsmith](一)
  13. Codeforces 954D. Fight Against Traffic
  14. adb连接雷电模拟器失败
  15. 背景图片随页面滚动放大缩小
  16. 关于企业服务总线ESB
  17. 律师查询微信实名认证信息之操作指引
  18. 首个中文全词类知识库-百科知识树 开源啦!搭配开源标注工具,一招搞定知识关联!...
  19. Sql server 日期函数和日期转换
  20. Effective Java 泛型 第28条:利用有限制通配符来提升API的灵活性

热门文章

  1. html 链接 pdf,简单的HTML DOM只解析名称和含有PDF链接链接
  2. 大学mysql教程_MYSQL教程:新手该看的MYSQL操作
  3. vue点击定位到指定位置_百度地图vue-baidu-map自动定位,鼠标选点并进行逆解析,地区检索,使用案列以及解决方案...
  4. 十一、递归----迷宫问题
  5. 车牌检测识别--Towards End-to-End Car License Plates Detection and Recognition with Deep Neural Networks
  6. g++报错解决:error: ‘setw’ is not a member of ‘std’
  7. linux认证授权系统,linux高级操作系统用户认证与授权-20210323002921.doc-原创力文档...
  8. 编写里Linux命令解释器,linux基础教程试卷及答案
  9. redis nio 多路复用
  10. 2020-09-20C++学习笔记之与C语言对比1