Neutron中的物理网络详解

2023-05-16

Neutron的模型定义,关于物理网络(provider:physical_network),有三个地方都有所涉及,如下表所示。
应该说,这三处描述仍然不能很好地表达这个物理网络的准确含义。物理网络具体意味着什么呢?
一 物理网络的实际意义
首先,根据运营商网络的使用场景以及表中的三个描述,我们可以得出物理网络的一种理解。如下图所示:
图中,物理网络就是运营商需要匹配的那个网络。综合表中的三个描述,这样的理解似乎没有什么问题。但是,Neutron在创建运营商网络时,特别提到:VLAN和Flat类型的网络,需要参数provider:physical_network,而VXLAN类型的网络则不需要这个参数。
这非常令人困惑!从上图中我们看到,那个所谓的物理网络(名称是“市场部网络”),不过是帮助“人”阅读和理解的,对于实际的网络连接来说,并没有实质的作用。只要VM发送的报文,从br-xx1出去以后,打上VLAN ID=100的标签,到达那个物理网络后,VM与物理网络中的计算机就能互通。这与传入provider:physical_network参数与否有什么关系呢?
这需要从Neutron的实现模型说起,如下图:
我们知道,对于非隧道型网络(VLAN或Flat),br-int外接的网桥一般称为br-ethx。Br-ethx有几个特点。
1 一般来说,一个br-ethx与一个物理网口(Host的物理网口)相对接。
2 br-ethx是提前创建好的,在Neutron启动之前就已经创建好了,而且与物理网口的对接也已经建立好了(物理网口挂接在br-ethx上)。
运营商网络的VM与物理网络的计算机互通图如下:
图中VM属于一个运营商网络(记为PN1)。虽然这个运营商网络,我们已经正确创建了它的网路类型(VLAN)和网络ID(100),但是,VM发出的报文,必须要经过物理网口NIC1才能到达物理网络中的计算机。我们该如何告诉Neutron,VM发出的报文经过br-int以后,必须要转发到br-eth1,然后经过NIC1出去,才能达到正确的目的地呢?
这个时候,字段provider:physical_network就派上用场了。用户创建网络时,传入这个字段(比如“市场部网络”),Neutron就能做出正确的转发。
所以,对于非隧道网络而言,物理网络有两层含义,如下图所示:
这两层含义是:
1 对于运营商网络,物理网络就是运营商网络所要匹配的外部网络名称;
2 物理是运营商网络还是租户网络,物理网络都意味着br-ethx的选择(背后是主机网卡的选择)。
对于隧道网络,我们一般称br-int外接的网桥为br-tun。
Neutron不需要选择网卡。这要从隧道型网络的报文说起,如下图所示:
从图中我们看到,隧道型网络离开主机的报文,里面是有一层隧道Header的,这个隧道Header包括源IP和目的IP。只要有了目的IP,主机的IP协议栈就会找到合适的网卡将报文发送出去。也就是说,Neutron只需要能够做到使br-tun正确地封装报文隧道Header即可,不必操作报文从哪个网卡出去。
在此,我们对物理网络实际的意义,做个总结,如下表:
物理网络对于非隧道型网络创建时选择哪个br-ethx有着直接意义。
二 Neutron选择br-ethx的方案
在Neutron启动之前,需要提前将br-ethx创建好,并且要将相应的物理网口也对接在br-ethx上。这些都是属于规划设计的工作,同时需要规划设计的还包括br-ethx与物理网络之间的对应关系,并写在Neutron的配置文件中以告知Neutron。我们假设br-ethx的实现方法是OVS(Open vSwitch),那么这个配置文件就是etc/neutron/plugins/ml2/openvswitch_agent.ini。其内容如下:
#etc/neutron/plugins/ml2/openvswitch_agent.ini
bridge_mappings=physnet1:br-ethx1,physnet2:br-ethx2
这个内容表明,要想连接physnet1,就得先连接br-ethx1.要想physnet2,就得先连接br-ethx2.
有了这些提前好的规划设计,但Neutron启动以后,管理员创建运营商网络时会传入字段provider:physical_network。Neutron接到这个字段以后,再与配置文件一映射,就知道选择哪个br-ethx了。比如传入physnet1,Neutron就知道选择br-ethx1。
但是,创建租户网络时并不传入这个字段。怎么办?这就需要另外一个配置文件etc/neutron/plugins/ml2/ml2_conf.ini。我们假设网络类型是VLAN,配置文件的内容举例如下:
#etc/neutron/plugins/ml2/ml2_conf.ini
[ml2_type_vlan]
network_vlan_ranges=physnet1:1000:2999,physnet2:3000:4000
这个配置信息表明有两个物理网络,其中physnet1的VLAN范围是1000~2999,physnet2的VLAN范围是3000~4000。创建租户网络时并没有传入网络ID,neutorn需要通过配置信息来决定网络ID是什么。对于VLAN来说,配置信息就是类似上面举例的内容。根据这个配置信息,Neutron再根据它的策略决定网络ID的同时,同样获取到了物理网络的名称。Neutron就是通过这种间接的方法得到物理网络的名称,进而决定选择哪儿br-ethx。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Neutron中的物理网络详解 的相关文章

  • 文献查找几种方法

    这几天忙着统计学院院长的一些个人研究成果 xff0c 其中要对每条研究标明相关的信息 xff0c 找到了一些途径 xff0c 可以留个备用 1 专著 1 xff09 专著估计最不好找的要算出版日期了 xff0c 所以下次要用的话 xff0c
  • Debian 11 KDE Plasma桌面环境,编译Fcitx5(只编译,不安装)

    Debian 11 KDE Plasma桌面环境 xff0c 编译Fcitx5 xff08 只编译 xff0c 不安装 xff09 安装依赖的工具和库 安装前需要检查电脑上是不是具备这些工具 xff0c 或者库 xff08 这是我根据实际情
  • 快速解决 vsftpd nologin 虚拟用户 拒绝访问 无法登录

    搭建好了vsftpd服务之后 xff0c 新建了一个nologin虚拟用户 xff0c 然而在另一台win7上用WinSCP连接ftp时提示错误 useradd d home ftp s sbin nologin ftpUser1 pass
  • 云计算的部署

    一 云计算的服务和交付模式 基础设施即服务 xff08 Iaas xff09 平台即服务 xff08 Paas xff09 软件即服务 xff08 Saas xff09 衍生出 xff1a 存储即服务 数据库即服务 安全即服务 通信即服务
  • MapReduce的数据流程、执行流程

    MapReduce的大体流程是这样的 xff0c 如图所示 xff1a 由图片可以看到mapreduce执行下来主要包含这样几个步骤 1 首先对输入数据源进行切片 2 master调度worker执行map任务 3 worker读取输入源片
  • 免费下载中国知网、万方学术论文的几种方法(福利合集)

    在国内 xff0c 中国知网收录了最多的期刊论文和硕博士论文 无论学霸学渣 xff0c 都得上去下载论文 如果你的学校在知网购买了相应的下载版权 xff0c 那恭喜你 xff0c 你通过校园网就能免费下载了 但一旦你回了家 xff0c 或学

随机推荐

  • 使用apt离线安装deb包

    文章目录 apt 下载的deb路径阻止apt自动删除缓存文件的方法只下载不安装的方法离线安装deb包离线安装gcc1 下载依赖2 打包下载的deb文件 xff0c 上传到没有外网连接的服务器3 安装deb包 apt 下载的deb路径 默认存
  • haar分类

    今天说一说haar分类算法 首先介绍haar like特征 haar like的特征有边缘特征 线性特征 中心特征和对角线特征 我们使用特征模板来表示特征的计算 xff0c 如图所示 xff1a 这些特征分别对应着不同的矩阵以便于进行计算
  • POI window excel 打开提示部分内容有问题, 是否尝试尽量恢复

    问题如下 window excel 打开报错如下 但是WPS打开正常 问题在于 window excel 冻结窗口只能设置一行 WPS可以设置多行 设置冻结窗口如下 冻结第一行 sheet createFreezePane 0 1 0 1
  • 解决从数据库中取出json数据有转义符

    不处理从数据库取出数据如下 String s1 61 34 34 MsgId 34 1 34 TotalCount 34 10 34 FilterCount 34 8 34 SentCount 34 7 34 ErrorCount 34 0
  • 查询数据报错 com.mysql.cj.exceptions.DataConversionException

    com mysql cj exceptions DataConversionException Caused by java sql SQLDataException Cannot determine value type from str
  • 微信调用接口报错:"errcode":45009,"errmsg":"reach max api daily quota limit hints:

    api请求次数达到最大上限 每个帐号每月共10次清零操作机会 xff0c 清零生效一次即用掉一次机会 xff08 10次包括了平台上的清零和调用接口API的清零 xff09 https developers weixin qq com do
  • @FeignClient注解 中属性 contextId使用

    64 FeignClient注解 中属性 contextId 比如我们有个user服务 xff0c 但user服务中有很多个接口 xff0c 我们不想将所有的调用接口都定义在一个类中 xff0c 比如 xff1a Client span c
  • toString和toJSONString的区别

    Map span class token generics function span class token punctuation lt span String span class token punctuation span Int
  • Neutron运营商网络和租户网络详解

    由租户创建并且管理的网络 xff0c Neutron称之为租户网络 但是Openstack不是万能的 xff0c Neutron也不是万能的 还有很多网络不在Neutron管理范围内 xff08 Neutron称之为外部网络 xff09 有
  • mysql in查询太慢, 使用join优化

    mysql中查询 in 参数太多 导致查询很慢 使用join优化 在实例中in查询话费2s 优化后0 4s span class token keyword SELECT span span class token operator spa
  • Springboot 多数据源事务,切换数据源+事务

    项目有多个数据源 根据配置文件配置的连接数来自动生成多数据源配置 并且使用 aop切换数据源 使用的是 AbstractRoutingDataSource 重写 determineCurrentLookupKey 方法 在切换数据源之前 6
  • Redisson自定义序列化方式

    redissonClient span class token punctuation span span class token function getBucket span span class token punctuation s
  • 方法区使用举例

    span class token keyword public span span class token keyword class span span class token class name MethodAreaDemo span
  • mysql动态字段行转列

    动态行转列 table schema id name s 001 是否吃饭了 s 002 你的汽车品牌 table schema value id user id schema id schema value span class toke
  • freertos学习02-队列 stream buffer message buffer

    1 freertos数据传递简介 在freertos中 xff0c 各个模块都是独立的任务 xff0c 那么任务之间怎么进行大量的数据通信呢 xff1f 在V10版本给出了三种方法 队列queue xff0c 发送固定长度的数据串strea
  • stlink故障修复

    前言 一直用的是国产版stlink xff0c 但是最近手头手头上的两个stlink在下载的时候出故障了 xff0c 无法识别 上淘宝一搜发现涨价了 xff0c 记得以前是20左右 xff0c 现在都要40快一个 于是想着能不能进行修复 百
  • ssd.pytorch源码分析(三)— 非极大值抑制NMS

    NMS源码 SSD论文链接 NMS介绍 吴恩达对于NMS xff08 非极大值抑制 xff09 的介绍 xff1a 说白了 xff0c NMS的作用就是去掉目标检测任务重复的检测框 例如 xff0c 一个目标有多个选择框 xff0c 现在要
  • Hexo的常用命令

    Hexo 常见命令 hexo s hexo s 启动服务器 xff0c 用于预览主题 hexo s 是 hexo server 的缩写 xff0c 命令效果一致 xff1b 预览的同时可以修改文章内容或者主题的代码 xff0c 保存后刷新即
  • hexo史上最全搭建教程

    外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img CF2m4SwD 1628816637063 http peu31tfv4 bkt clouddn com 1 jpg 花了几天搭建了个网站 xff0c 先上链接
  • Neutron中的物理网络详解

    Neutron的模型定义 xff0c 关于物理网络 xff08 provider physical network xff09 有三个地方都有所涉及 xff0c 如下表所示 应该说 xff0c 这三处描述仍然不能很好地表达这个物理网络的准确