openstack网络(三)
openstack网络架构
Neutron中的基本网络元素
Neutron使用所有网络管理员熟悉的元素来构建虚拟网络,包括网络,子网,端口,路由器,负载均衡器等。使用2.0版本核心Neutron API,用户可以构建一个由以下实体组成的网络:
网络:网络(Network)是一个隔离的2层广播域。 通常保留给创建它们的租户,如果相应地配置网络可以在租户之间共享。 网络是Neutron API的核心实体。 子网和端口必须始终与网络相关联。
子网:子网(subnet)是IPv4或IPv6地址块,可以将IP地址分配给虚拟机实例。 每个子网必须具有CIDR并且必须与网络相关联。 多个子网可以与单个网络相关联,并且可以是不连续的。 子网设置DHCP分配范围后可以限制提供给虚拟机的IP地址。
端口:Neutron中的端口(port)表示逻辑虚拟交换机上的虚拟交换机端口。 虚拟机接口映射到Neutron端口,并且端口定义要分配给插入其中的接口MAC地址和IP地址。 Neutron端口定义存储在Neutron数据库中,然后由相应的插件代理使用,以构建和连接虚拟交换基础设备。
管理员和用户可以通过创建和配置网络、子网来配置网络拓扑,然后指示Nova等服务将虚拟设备连接到这些网络上的端口。 用户可以创建多个网络,子网和端口,但限于由云管理员设置的每个租户配额定义的阈值。
插件扩展功能
Neutron引入了对扩展网络功能和Neutron API实现的第三方插件和驱动程序的支持。 可以创建使用各种基于软件和基于硬件的技术来实现由运营商和用户构建的网络的插件和驱动程序。
Neutron架构中有两种主要的插件类型:
•核心插件
•服务插件
核心插件实现核心Neutron API,并负责将网络,端口和子网所描述的逻辑网络适配成可由主机上运行的L2代理和IP地址管理系统实现的东西。服务插件提供额外的网络服务,如路由,负载均衡,防火墙等。
每种plugin代表了一种网络虚拟化的实现技术。不同的实现技术所提供的对外管理接口各不相同,plugin用来实现neutron rest api和相应实现接口之间的适配。
ML2(Modular Layer 2 plugin)
Ml2插件是一种允许OpenStack网络同时地利用多种二层网络技术的框架。目前与openswitch、linux bridge、hyperv L2 agent协同工作。ml2框架对简化新增L2网络技术的做了很好支持,比起以往新增加的核心插件,ML2框架需要更少的初期以及后期维护工作。
ML2驱动包括类型驱动和机制驱动,分别实现了网络类型和网络机制的可扩展性。
1)类型驱动(TypeDriver):
类型驱动可以管理多种网络类型,目前支持local, flat, vlan, gre, vxlan等。
2)机制驱动(MechanismDriver):
ML2机制驱动程序负责获取由类型驱动程序建立的信息, 机制驱动处理由类型驱动建立的信息(例如网络、子网、端口的创建、更新、删除操作),并且确保能够用于指定的网络机制,并确保其正确实现。 多个机制驱动可以被配置为同时操作(如有些节点可以使用openvswitch,有些则使用cisco Nexus 1000V等),并且可以使用三种类型的模型来描述:
• Agent-based:这包括LinuxBridge,Open vSwitch和其他
• Controller-based:这包括OpenDaylight,VMWare NSX和其他
• Top-of-Rack:这包括Cisco Nexus,Arista,Mellanox和其他
LinuxBridge和Open vSwitch ML2机制驱动程序用在托管实例和网络服务的节点内配置各自的交换技术。 LinuxBridge驱动程序支持local,flat,vlan和vxlan网络类型,而Open vSwitch驱动程序支持所有这些以及gre网络类型。
L2驱动器通过设置网络结构来限制广播流量的量。传统的交换行为如单播,多播和广播业务会被洪泛到所有交换机端口,直到学习到了地址。这种行为可能对网络结构产生负面影响,特别是随着云中的主机数量的增加。Neutron可以在所有主机上预填充转发数据库,以避免昂贵的学习操作。当使用ARP代理时,Neutron以类似的方式预填充所有主机上的ARP表,以避免ARP流量通过网络广播。
Neutron架构图
1、Neutron Server
对外提供 OpenStack 网络 API,接收请求,并调用 Plugin 处理请求。
2、Plugin
处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络状态, 并调用 Agent 处理请求。
3、Agent
处理 Plugin 的请求,负责在 network provider 上真正实现各种网络功能。
4、Network provider
提供网络服务的虚拟或物理网络设备,例如 Linux Bridge,Open vSwitch 或者其他支持 Neutron 的物理交换机。
5、Queue
Neutron Server,Plugin 和 Agent 之间通过 Messaging Queue 通信和调用。
6、Database
存放 OpenStack 的网络状态信息,包括 Network, Subnet, Port, Router 等。
参考资料
1、Learning OpenStack Networking (Neutron) Second Edition James Denton
2、https://mp.weixin.qq.com/s/IDjOy7TTQbaj-TJ4u0ixXA CloudMan公众号推送文章
openstack网络(三)的更多相关文章
- 深入理解openstack网络架构(4)-----连接到public network
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3 译文转自:http://b ...
- OpenStack云计算(一)——OpenStack 网络
关于OpenStack OpenStack它是 Rackspace Cloud 和 NASA 负责的一个开源基础架构即服务的云计算项目. OpenStack 是一个由开发者和云计算技术人员的全球协作开 ...
- 深入理解 Neutron -- OpenStack 网络实现(3):VXLAN 模式
问题导读1.VXLAN 模式下,网络的架构跟 GRE 模式类似,他们的不同点在什么地方?2.网络节点的作用是什么?3.tap-xxx.qr-xxx是指什么? 接上篇:深入理解 Neutron -- O ...
- 深入理解 Neutron -- OpenStack 网络实现(2):VLAN 模式
问题导读 1.br-int.br-ethx的作用是什么?2.安全组策略是如何实现的?3.VLAN 模式与GRE模式有哪些不同点?流量上有哪些不同?4.L3 agent实现了什么功能? 接上篇深入理解 ...
- Openstack网络相关概念比较复杂,经常使人混淆,本文进行相关说明。
Openstack网络相关概念比较复杂,经常使人混淆,本文进行相关说明. 文中相关术语与缩写 英文 缩写 中文 Virtual Local Area Network VLAN 虚拟局域网 Virtua ...
- OpenStack 网络:Neutron 初探
OpenStack Neutron 网络模型 OpenStack nova-network 独立成为单独的组件 Neutron 后,形象的网络模型的多平面网络.混合平面私有网络.如图 3,图 4,图 ...
- openstack网络(二)
连接物理服务器 单网卡 多网卡 跨主机安装网络服务 使用单个控制节点安装 使用专用网络节点安装 连接物理服务器 每个物理主机所需的网卡数量取决于云平台使用领域,组织的安全性和性能要求以及硬件的可用性. ...
- OpenStack(三)——allinone云平台的使用方法
接着OpenStack(二)——使用Kolla部署OpenStack-allinone云平台继续操作. 特别感谢https://www.cnblogs.com/openstackteam/p/5519 ...
- 学习openstack(三)
一.OpenStack初探 1.1 OpenStack简介 OpenStack是一整套开源软件项目的综合,它允许企业或服务提供者建立.运行自己的云计算和存储设施.Rackspace与NASA是最初 ...
随机推荐
- vue-create 报错 command failed: yarn --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/dist 完美解决方案
@vue/cli 3.x 创建项目失败解决方案 报错信息 command failed: yarn --registry=https://registry.npm.taobao.org --distu ...
- 图片转换成base64预览
来源:https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsDataURL 真心不错写得,思路比较清晰.已经测试过 注意: ...
- Batch批处理获取当前时间
这不是一个新问题,但是由于网上写的都是针对自己的电脑设置,没有通用性,而我呢,又需要在不同电脑上使用,因此,这命题一个问题了.其实也没有什么好说的,直接上代码. @ECHO OFF set split ...
- 【Spring】Spring的定时任务注解@Scheduled原来如此简单
1 简介 定时任务的实现非常多,JDK的Timer.Spring提供的轻量级的Scheduled Task.QuartZ和Linux Cron等,还有一些分布式的任务调度框架.本文主要介绍Schedu ...
- Django 项目笔记
Django 环境的搭建 Django 安装 pip install django==2.1.4 Django 创建项目 django-admin startproject mysite Django ...
- 【前端vue进阶实战】:从零打造一个流程图、拓扑图项目【Nuxt.js + Element + Vuex】 (一)
本系列教程是用Vue.js + Nuxt.js + Element + Vuex + 开源js绘图库,打造一个属于自己的在线绘图软件,最终效果:topology.le5le.com .如果你觉得好,欢 ...
- vux组件的样式变量的使用
使用x-header,查看文档发现有个样式变量,可以改变x-header的样式 这玩意怎么用呢? 1.在项目中创建一个.less样式文件,例如我这里是创建一个src/style/vux_theme.l ...
- (三十八)golang--json(对切片、map、结构体进行序列化)
JSON(javascript object notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成.key-val JSON是在2001年开始推广的数据格式,目前已 ...
- Hadoop之HDFS文件系统
概念 HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件:其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色. HDFS的设计适合一次写入,多次读出的场景,且不 ...
- vue computed计算属性 watch监听
计算属性 computed:{ 变量:function(){ return 计算好的值 } } 这时候计算好的值 就付给了你的变量 在实例中可以this.使用 注意 声明的变量的data中不可以重复声 ...