|NO.Z.00015|——————————|CloudVirtualiZation|——|OpenStack&组件.V02|——|OpenStack-neutron|组件说明.V02|
一、Neutron:
### --- Neutron:
~~~ 阿里云采用的最新的neutron方案,网易云采用的是旧的FLAT的方案,
~~~ 网易云用过硬件补充实现了公有云的网络方案。
### --- Nova-network:
~~~ Flat
~~~ Flatdhcp
~~~ Vlan

二、FlAT
### --- FlAT
~~~ 指定一个子网,规定虚拟机能使用的IP地址范围:
~~~ 创建实例是,从有效IP地址池获取一个IP,为虚拟机实例分配,
~~~ 然后在虚拟机启动时候注入虚拟机镜像(文件系统)
~~~ 手动配置好网桥,所有的系统实例都是和同一个网桥连接,网桥连接的实例组成一个虚拟网络,
~~~ 网络控制器对虚拟机实例进行NAT转换,实现与外部的通信
~~~ 目前配置注入只能对类UNIX操作系统正常工作
三、FLATDHCP:
### --- FLATDHCP:FLANT网络加了一个DHCP的功能
~~~ 网络控制器运行dnsmasp(功能比较少,软件也比较小,centos中红帽比较推荐的dns服务;
~~~ 比较经典)作为DHCP服务器监听这个网桥
四、Vlan
### --- Vlan
~~~ 每个用户分配一个Vlan,每个用户创建的网络接口在同一个Vlan中
~~~ 每个用户分配一个网段,网络控制器上的DHCP服务器为所有的Vlan分配地址
~~~ 解决了隔离问题,但是Vlan限制为4096个,符合私有云
~~~ 有一个限制,Vlan只能分配4096个,也就意味着只能有4096个用户,所以只能针对于私有云,
~~~ 对于公有云是不可以实现的。
五、存在问题
### --- 存在问题
~~~ 传统桥接模式
~~~ # 用户不能自定义网络:
~~~ 不能自定义网段,IP地址还是可以自定义的。
~~~ 网络隔离
~~~ 大规模部署
六、需求:
基础需求 | 企业级需求 |
高密度 | 自定义网络 |
多租户 | QoS保证 |
大规模扩展 | 防火墙 |
虚拟机的可移动性 | 监控,审计 |
资源管理自动化 | 流量控制 |
低成本实现(后期扩展) |
七、Neutron基本概念
### --- Neutron基本概念
~~~ # 网络连接服务
~~~ 面向租户API接口,用于创建虚拟网络/路由器/负载均衡/关联/
~~~ 网络接口至指定网络和路由器通过API接口管理虚拟机或物理交换机
~~~ 提供Plugin架构来支持不同的技术平台
~~~ Neutron Private Network——提供固定私网地址:主要的部署方式。
~~~ Neutron Public Network ——提供浮动IP地址:主要的部署方式
八、Neutron关键概念
### --- Neutron关键概念
~~~ # Network:
~~~ 可用网络,二层接口,二层单元,二层API,用户可以通过API创建自己的网络的。
~~~ # 一个L2网络单元
~~~ 租户可通过Neutron API创建自己的网络
~~~ # Subnet:
~~~ IPV4/IPV6的地址段,内的描述。
~~~ 一段IPV4/IPV6地址段
~~~ 为Instance提供私网或公网地址
~~~ network讲的是一个地址段;subnet是对具体的范围
~~~ # Router
~~~ # 三层路由器
~~~ 为租户的Instance提供路由功能
~~~ # Port:端口,传统的端口是网卡插入的地方。
~~~ 在openstack中也有端口的概念。
~~~ 虚拟交换机上的端口
~~~ 管理Instance的网卡
九、概念间的对应关系

### --- 概念间的对应关系
~~~ 一对多的关系,
~~~ 地址和subnet之间是一对多的关系
~~~ subnet和路由器之间是一对多的关系;路由器和subnet之间是可以重叠连接的。
~~~ 一个网络只能有一个网络接口,一个接口可以有多个网络。
十、Neutron组件架构

### --- Neutron组件架构
~~~ neutron server服务端
### --- virtual switch代理端:
~~~ 每台主机都有一个virtual switch,而且是唯一的,
~~~ 它是在当前主机之间进行网络实现的组件,它也是一个控制模块。
十一、Neutron Plugin:neutron是通过插件管理器构建的。
### --- Neutron Plugin:neutron是通过插件管理器构建的。
~~~ Open VSwitch:最常用的;开源项目,软件级别的实现二三层网络,流控,监控都是可以实现的
~~~ Linux Bridge:最常用的
~~~ CISO NX1000:
~~~ Nicira NVP:
~~~ Ryu:
~~~ NEC OpenFlow:
~~~ Floodnight:
十二、Neutron+Nova架构

### --- Neutron+Nova架构
~~~ dashboard autonation tools仪表盘套件,输入对应的指令会通过自动工具的整理,
~~~ 通过每个租户的API接口去访问到不同的网络
~~~ 通过网络操作的话,neutron接收到之后,通过neutron plugin去实现,
~~~ 通过internal plugin communication消息队列,
~~~ 代理到VSwitch或者通知到VSwitch,VSwitch在当前节点再进行处理。
~~~ 指令会被nova-api回收,nova-api若是创建主机的话会被nova-scheduler调度,
~~~ 在nova-compute节点上,相当于一个代理节点,去触发nebvrrt,再去触发hypervisor,
~~~ 再去创建对应的虚拟机vm
十三、Neutron组件-1

### --- Neutron组件-1
~~~ neutron server:主要实现neutron API和API的扩展,
~~~ 对外暴露,以及能够实现接入第三方的网络,
~~~ 管理网段及资源池的对应
### --- 管理port的ip地址:
~~~ ML2在我们每个nova节点或者compute节点进行IP地址分配的:对应了一个network节点
~~~ DHCP agent通过dnsmasp来实现的,而不是dnsserver实现的
~~~ L3-agent实现三层特性,或者负载均衡:ML若是计算节点有多个network,ML3就对应了多个。
~~~ # Metadata-agent:
~~~ 提供一些网络连接状态,或者网络信息都是它在提供。
十四、Neutron组件-2

### --- Neutron组件-2
~~~ # 客户端发送指令:
~~~ 客户端接口,或者命令行管理工具,发起创建一个网络的请求
~~~ 这个请求或通过会发送到neutron server上,会进行keystone的身份认证,会返回network 的UUID,
~~~ 再发起创建虚拟机,或者实例的请求,实例创建后也会返回一个UUID,
~~~ 再去把网络发送当前虚拟机网络接口的UUID,再返回给这个为虚拟机创建接口的ID号,
~~~ 然后再拿着这个虚拟机接口的ID号,去和网络绑定,然后返回UUID号,
~~~ 然后再去把网络添加至我们的端点进行绑定操作即可,完成组件构成。
十五、ML2

### --- ML2
~~~ 左边是实现的协议,
~~~ 右边是实现这些协议使用的软件,
~~~ ML2插件可以做到Vlan级别的隔离,GRE/VXlan的网络FLAT的网络
十六、ML2构建模式

### --- ML2构建模式
~~~ 左边的一个是所谓的管理端
~~~ 右边两个是nova节点
~~~ 在不同的组件上开启的服务是不同,
~~~ 每台主机都会有一个ml2的agent,代理端,
~~~ 它的管理端就会出现在管理端上
十七、Neutron
### --- Neutron
~~~ Single FLAT Network
~~~ Multi FLAT Network
~~~ Mixed FLAT and Private Network
~~~ Provider Router with Pricate Network
~~~ Per-tenant Routers with Private Network:最常用的,最有意义的部署方案;
~~~ 能为每个租户创建租户的单独的路由,实现网络连通,非常的有意义,现在企业60%都会采用这种方案

### --- Single FLAT Network
~~~ 类似于Flat Manager Flat DHCP Manager 不支持Floating IP
~~~ 不支持不同网段的隔离
~~~ 存在安全性隐患,地址实现通过DHCP,
~~~ 不支持浮动IP

### --- Muliple FLAT Network
~~~ 类似于Flat Manager Flat DHCP Manager不支持Floating IP
~~~ 支持不同网段的隔离
~~~ 不支持浮动IP

### --- Mixed FLAT and Private Network
~~~ 实现了floating的地址分配
~~~ 可以实现主机这个虚拟机的公网的访问,
~~~ 也就意味着一台虚拟机上有多个IP,一个IP是用于用户之间服务的相互访问,
~~~ 另一个可以分配一个浮动IP,可以用作公网地址,可以通过公网地址去访问了,
~~~ 这种类型可以在正常的环境中去使用了,且不需要进行相关的配置
~~~ 前面两种也可以进行公网的访问,不过要在路由器上进行大量的转换。

### --- Rrovider Routers with Private Network
~~~ neutron中特别关注的模式
~~~ 有一个共同的路由器(虚拟的),且有浮动IP,不同的租户都会使用一个共同的路由器,
~~~ 同一个路由器可以去绑定多个私有IP,这里的私有IP对于虚拟机来说是公有的。
~~~ 这里的虚拟机可以通过虚拟的交换到我们的浮动网络到我们的路由器到外部去通讯的。
~~~ 且租户用的是同一个路由,不太友好。

### --- Per-Tenant Routers with Private Network
~~~ 生产环境中用的最多的。
~~~ 不同的租户有各自的路由,且一个租户下可以是存在多个网段的,
~~~ 每个主机会放在一个网段或者多个网段内,
~~~ 然后再去通过租户自己的路由器到浮动网络,再到外部去通讯,
~~~ 这是到今天为止是最有意义的网络构建类型,后期构建的就是这种网络类型。
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv012-openstack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」